Uuden ajan sähkösuunnittelua – enemmän arvoa asiakkaalle

Home Assistant ESP32 Robotti-imurin käynnistys releellä

https://youtu.be/1ggEFDM_PC0

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ä.

https://youtu.be/bBfUzBJguxY

https://youtu.be/3ZkpkSAF66E

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

https://youtu.be/cNV1U8Yh31M

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

https://youtu.be/EFs0I8Yw9Y0

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
Sähkön kaikki hinnat
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