Home Assistant ESP32 Robotti-imurin käynnistys releellä
ESP32n koodi:
esphome:
name: robot2
esp32:
board: mhetesp32minikit
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "T8lbN/mj+xxJcGRnYcdVCWDh4aGOUBKAA+1y8+ut8wM="
ota:
- platform: esphome
password: "f76aa4ecb929327969ea7c0567839087"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: 192.168.1.110
gateway: 192.168.1.1
subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Robot2 Fallback Hotspot"
password: "5Lf8XVYmqCl4"
captive_portal:
switch:
- platform: gpio
name: "KYTKINR2"
pin: 16
inverted: False
restore_mode: RESTORE_DEFAULT_OFF
Imurin automaatiot:
- id: '1742839773020'
alias: Robot 2 Start to vacum
description: ''
triggers:
- trigger: state
entity_id:
- input_button.start_vacuum
from:
conditions: []
actions:
- sequence:
- type: turn_on
device_id: f46a1851c8924e532596ac5cfc4f8356
entity_id: 7dba5e29c23b5cde41d06ef8e28ff155
domain: switch
- delay:
hours: 0
minutes: 0
seconds: 1
milliseconds: 0
- action: switch.turn_off
metadata: {}
data: {}
target:
entity_id: switch.kytkinr2
mode: single
- id: '1742840644556'
alias: Robot 2 time to clean
description: ''
triggers:
- trigger: time
at: input_datetime.robot_2_time
conditions:
- condition: template
value_template: '{{ now().weekday() in [3, 5] }}'
actions:
- action: automation.trigger
metadata: {}
data:
skip_condition: true
target:
entity_id: automation.robot_2_start_to_vacum
mode: single
Home Assistant ESP32 Liesituuletin
Huomasin jälkeenpäin, että sisääntulot on paras eristää optisesti. Liesikuvun rajakytkin ehti rikkoa suoraan kytketyn inputin, vaikka painike toimi moitteetta. Syynä on ilmeisesti mikrokytkimen huono suojaus ja siitä syntyvät ylijännitepiikit; pelkkä pulldown-vastus ei auttanut. Lisäsin sisääntulojen eteen releet, eikä häiriö enää pääse vaurioittamaan elektroniikkaa. Laitan myöhemmin kuvan kytkennästä.
ESP32n koodi:
esphome:
name: liesituuletin
friendly_name: Liesituuletin
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "wb9G2GeoRdi0f6yKWphQqolwfEqhGLkw3Ar9pFWo0Uk="
ota:
- platform: esphome
password: "8751b2228cd287410e301b0aa7b91460"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: 192.168.1.112
gateway: 192.168.1.1
subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Liesituuletin Fallback Hotspot"
password: "dlRviN1IILuN"
captive_portal:
switch:
- platform: gpio
name: "LT-Valo"
pin: 32
inverted: False
restore_mode: RESTORE_DEFAULT_OFF
- platform: gpio
name: "LT-T1"
pin: 33
inverted: False
restore_mode: RESTORE_DEFAULT_OFF
- platform: gpio
name: "LT-T2"
pin: 25
inverted: False
restore_mode: RESTORE_DEFAULT_OFF
- platform: gpio
name: "LT-T3"
pin: 26
inverted: False
restore_mode: RESTORE_DEFAULT_OFF
binary_sensor:
- platform: gpio
pin:
number: 19
mode: INPUT_PULLUP
name: "Huuva"
device_class: opening
filters:
- invert:
- delayed_on: 50ms
- delayed_off: 50ms
- platform: gpio
pin:
number: 5
mode: INPUT_PULLUP
name: "Power"
device_class: opening
filters:
- invert:
- delayed_on: 50ms
- delayed_off: 50ms
sensor:
- platform: dht
pin: 21
model: DHT22
temperature:
name: "Lämpötila Huuva"
humidity:
name: "Kosteus Huuva"
update_interval: 6s
Liesituulettimen Automaatiot:
- id: '1745089202276'
alias: LIESI - Valo
description: ''
triggers:
- type: opened
device_id: 1bec4ae8ee9a09c1148d7e626234df49
entity_id: cf2a5d78b221d1c674e4e7bc65f11d23
domain: binary_sensor
trigger: device
- type: not_opened
device_id: 1bec4ae8ee9a09c1148d7e626234df49
entity_id: cf2a5d78b221d1c674e4e7bc65f11d23
domain: binary_sensor
trigger: device
conditions: []
actions:
- if:
- type: is_open
condition: device
device_id: 1bec4ae8ee9a09c1148d7e626234df49
entity_id: cf2a5d78b221d1c674e4e7bc65f11d23
domain: binary_sensor
then:
- type: turn_on
device_id: 1bec4ae8ee9a09c1148d7e626234df49
entity_id: a01b8a72147e981776abc67366f8f237
domain: switch
else:
- type: turn_off
device_id: 1bec4ae8ee9a09c1148d7e626234df49
entity_id: a01b8a72147e981776abc67366f8f237
domain: switch
mode: single
- id: '1745091641469'
alias: LIESI - Syötön päälle laitto
description: ''
triggers:
- trigger: state
entity_id:
- binary_sensor.liesituuletin_huuva
from:
- trigger: state
entity_id:
- timer.liesi_aika
to: idle
- type: opened
device_id: 1bec4ae8ee9a09c1148d7e626234df49
entity_id: 7d55476b80cf26df67250d12886baa9d
domain: binary_sensor
trigger: device
- type: not_opened
device_id: 1bec4ae8ee9a09c1148d7e626234df49
entity_id: 7d55476b80cf26df67250d12886baa9d
domain: binary_sensor
trigger: device
conditions: []
actions:
- if:
- condition: and
conditions:
- condition: state
entity_id: binary_sensor.liesituuletin_huuva
state: 'on'
- type: is_temperature
condition: device
device_id: 1bec4ae8ee9a09c1148d7e626234df49
entity_id: f57c06e691a2238beff9a2ecafa6cf2d
domain: sensor
below: 80
- condition: or
conditions:
- condition: state
entity_id: timer.liesi_aika
state: active
- type: is_open
condition: device
device_id: 1bec4ae8ee9a09c1148d7e626234df49
entity_id: 7d55476b80cf26df67250d12886baa9d
domain: binary_sensor
then:
- action: switch.turn_on
metadata: {}
data: {}
target:
entity_id: switch.liesi
else:
- action: switch.turn_off
metadata: {}
data: {}
target:
entity_id: switch.liesi
mode: single
- id: '1745091959952'
alias: LIESI - TIMERI
description: ''
triggers:
- type: opened
device_id: 1bec4ae8ee9a09c1148d7e626234df49
entity_id: cf2a5d78b221d1c674e4e7bc65f11d23
domain: binary_sensor
trigger: device
conditions: []
actions:
- action: timer.start
metadata: {}
data: {}
target:
entity_id: timer.liesi_aika
mode: single
- id: '1745093289166'
alias: LIESI - Kokkaaminen liian kallista, ylilämpö tai PALO
description: ''
triggers:
- trigger: state
entity_id:
- sensor.nordpool_kwh_fi_eur_10_10_0255
from:
- trigger: state
entity_id:
- sensor.liesituuletin_l_mp_tila_huuva
conditions: []
actions:
- if:
- condition: or
conditions:
- condition: numeric_state
entity_id: sensor.nordpool_kwh_fi_eur_10_10_0255
above: 0.2
- type: is_temperature
condition: device
device_id: 1bec4ae8ee9a09c1148d7e626234df49
entity_id: f57c06e691a2238beff9a2ecafa6cf2d
domain: sensor
above: 60
- condition: and
conditions:
- type: is_temperature
condition: device
device_id: 1bec4ae8ee9a09c1148d7e626234df49
entity_id: f57c06e691a2238beff9a2ecafa6cf2d
domain: sensor
above: 60
- type: is_humidity
condition: device
device_id: 1bec4ae8ee9a09c1148d7e626234df49
entity_id: ab2fcf8c37206288024c8462112f52bf
domain: sensor
below: 1
alias: PALO
then:
- action: automation.turn_off
metadata: {}
data:
stop_actions: true
target:
entity_id:
- automation.liesi_paalle_laitto
- automation.liesi_timeri
- action: switch.turn_off
metadata: {}
data: {}
target:
entity_id: switch.liesi
else:
- action: automation.turn_on
metadata: {}
data: {}
target:
entity_id:
- automation.liesi_paalle_laitto
- automation.liesi_timeri
mode: single
- id: '1234567890'
alias: LIESI - LT1-3
description: Kytkee tuuletinnopeudet tarkkojen kosteustasojen mukaan
triggers:
- entity_id: sensor.liesituuletin_kosteus_huuva
trigger: state
- type: opened
device_id: 1bec4ae8ee9a09c1148d7e626234df49
entity_id: cf2a5d78b221d1c674e4e7bc65f11d23
domain: binary_sensor
trigger: device
conditions: []
actions:
- if:
- type: is_open
condition: device
device_id: 1bec4ae8ee9a09c1148d7e626234df49
entity_id: cf2a5d78b221d1c674e4e7bc65f11d23
domain: binary_sensor
then:
- choose:
- conditions:
- condition: numeric_state
entity_id: sensor.liesituuletin_kosteus_huuva
below: 48.9
sequence:
- action: switch.turn_off
metadata: {}
data: {}
target:
entity_id:
- switch.liesituuletin_lt_t1
- switch.liesituuletin_lt_t2
- switch.liesituuletin_lt_t3
- conditions:
- condition: numeric_state
entity_id: sensor.liesituuletin_kosteus_huuva
above: 49
below: 69.9
sequence:
- target:
entity_id: switch.liesituuletin_lt_t1
action: switch.turn_on
data: {}
- action: switch.turn_off
metadata: {}
data: {}
target:
entity_id:
- switch.liesituuletin_lt_t2
- switch.liesituuletin_lt_t3
- conditions:
- condition: numeric_state
entity_id: sensor.liesituuletin_kosteus_huuva
above: 70
below: 89.9
sequence:
- target:
entity_id: switch.liesituuletin_lt_t2
action: switch.turn_on
data: {}
- action: switch.turn_off
metadata: {}
data: {}
target:
entity_id:
- switch.liesituuletin_lt_t1
- switch.liesituuletin_lt_t3
- conditions:
- condition: numeric_state
entity_id: sensor.liesituuletin_kosteus_huuva
above: 90
sequence:
- target:
entity_id: switch.liesituuletin_lt_t3
action: switch.turn_on
data: {}
- action: switch.turn_off
metadata: {}
data: {}
target:
entity_id:
- switch.liesituuletin_lt_t1
- switch.liesituuletin_lt_t2
else:
- action: switch.turn_off
metadata: {}
data: {}
target:
entity_id:
- switch.liesituuletin_lt_t2
- switch.liesituuletin_lt_t1
- switch.liesituuletin_lt_t3
mode: single
Home Assistant Kello
Laita Configuration.yaml tiedostoon, niin saat kellon toimimaan:
- platform: time_date
display_options:
- 'time'
- 'date'
- 'date_time'
- 'date_time_utc'
- 'date_time_iso'
- 'time_date'
- 'time_utc'
- 'beat'
Home Assistant sähkön kustannussensori
Tällä saadaan päiväsähkö, yösähkö, ALV ja sähkön marginaali:
template:
- sensor:
- name: "Hetkellinen sähkön kustannus"
unit_of_measurement: "€/h"
state: >
{% set alv_kerroin = (states('input_number.alv') | float(25.5)) / 100 + 1 %}
{% set hinta = (states('sensor.nordpool_kwh_fi_eur_3_10_0') | float(0)) * alv_kerroin %}
{% set teho = states('sensor.p1_meter_power') | float(0) %}
{% set siirtohinta = states('input_number.yosahko') | float(0.035)
if now().hour >= 22 or now().hour < 6
else states('input_number.paivasahko') | float(0.045) %}
{% set marginaalihinta = (states('input_number.sahkon_marginaalihinta') | float(0)) * alv_kerroin %}
{{ ((hinta + siirtohinta + marginaalihinta) * teho) | round(4) }}
icon: mdi:currency-eur

WordPress sivusto ja hakukoneoptimointi (Tulossa)
Tästä on tulossa ohjeet. Tämä sivusto on oikeastaan osa sitä projektia. Tulen esittämään alkeellisesti, että miten kotisivut tehdään, optimoidaan nopeiksi ja miten googlen hakukone ne löytää.
En tule sukeltamaan pitkälle, mutta näytän teille polun, josta pääsette kehittämään omaa projektianne. Tällekkin sivustolle valitsin vain jonkin topikin, joka kuvastaa eniten omaa osaamista.
Tässä voi kestää vähän aikaa, että saan kaiken tarpeellisen dokumentoitua tähän.
Test
asdasdasd
Test
asdasdasd
Test
asdasdasd
Test
asdasdasd
Test
asdasdasd
Test
asdasdasd
Test
asdasdasd