Smarthome

ESPHome okosítás – Windinator ventillátor

Windinator – az állóventillátor.

Okos ventillátor fillérekért, az Aroma Diffuser után. Ezekből egy olyan, ami kész termék, 15k környékén van, ennyit azért nem akartam kiadni érte.

LIDL állóventillátor
LIDL állóventillátor

Erről a jószágról van szó, szintén LIDL loot, nem volt drága, 5-6k forint környékén vettem. Mondom miért ne, van egy rakás relém itthon, felokosítom én magamnak, easy.

Ventillátor okosítás

Windinator proof of concept
Windinator proof of concept

Abszolút nem egy bonyolult történet. A gombok eredetileg egyszerűen 3 kábelt kapcsoltak felváltva a 3 sebességhez, ill. van még egy gomb, amivel az oszcillációt lehet kapcsolni (ez egy külön motor az aljában).

Ehhez egy 4-es relékártya elég volt, az oszcillációt kapcsoló relét külön felvettem, a másik hármat pedig interlockolva egymást, mint sebesség kapcsoló állítottam be ESPHome-ban.

fan:
  - platform: speed
    output: custom_fan
    name: "Windinator"
    speed_count: 3
    oscillation_output: output_osc

output:
  - id: output_osc
    platform: gpio
    pin:
      number: 14
      inverted: true
  - platform: template
    id: custom_fan
    type: float 
    write_action:
      - if:
          condition:
            lambda: return ((state == 0));
          then:
            # action for off
            - switch.turn_off: switch_speed_1
            - switch.turn_off: switch_speed_2
            - switch.turn_off: switch_speed_3
      - if:
          condition:
            lambda: return ((state > 0) && (state < 0.4));
          then:
            # action for speed 1
            - switch.turn_off: switch_speed_2
            - switch.turn_off: switch_speed_3
            - switch.turn_on: switch_speed_1
            
      - if:
          condition:
            lambda: return ((state > 0.4) && (state < 0.7));
          then:
            # action for speed 2
            - switch.turn_off: switch_speed_1
            - switch.turn_off: switch_speed_3
            - switch.turn_on: switch_speed_2
            
      - if:
          condition:
            lambda: return ((state > 0.7));
          then:
            # action for speed 3
            - switch.turn_off: switch_speed_1
            - switch.turn_off: switch_speed_2
            - switch.turn_on: switch_speed_3

switch:
  - platform: gpio
    name: "Speed 1"
    id: switch_speed_1
    internal: true
    pin:
      number: 27
      inverted: true
    interlock: [switch_speed_2, switch_speed_3]
  - platform: gpio
    name: "Speed 2"
    id: switch_speed_2
    internal: true
    pin:
      number: 26
      inverted: true
    interlock: [switch_speed_1, switch_speed_3]
  - platform: gpio
    name: "Speed 3"
    id: switch_speed_3
    internal: true
    pin:
      number: 25
      inverted: true
    interlock: [switch_speed_1, switch_speed_2]

A kód egész nagy, de hidd el, nem bonyolult. Az interlock itt nagyon fontos, hogy ne kapjon a motor mindkét vezetéken áramot ilyenkor. Nem hiszem, hogy szeretné.

Van 3 belső kapcsoló és egy templateből összerakott float output, mivel a fan entitáshoz a sebességet kizárólag floatnak tudja átadni. Ez a custom float output pedig a 3 kapcsolót állítja a százalékos érték alapján.

Ez Home Assistantban tök szépen megjelenik így:

Windinator Home Assistantban
Windinator Home Assistantban

Mi a probléma ezzel?

Felmerülhet benned a kérdés, mégis mi lehet itt a gond, hát szépen össze van lőve, meg van írva a kód, jól meg is jelenik HA-ban, kurva jó, nem?

A relék kapcsolásakor jelentkező tüske a probléma. Ezek ugyanis meghülyítik az ESP-t, újraindul miattuk. Legjobb, amikor visszaáll az előzőleg beállított módra ahogy visszatölti a reboot miatt a státuszt, ezzel pedig újra kinyírva magát.

Szóval gyakorlatilag használhatatlan a cucc. Ha max fokozaton indítom el, akkor általában működik, de ha innen kikapcsolom megint megmakkan. A villanymotor a probléma forrása, mert elég sok relét használok és más dolgokkal nincs ilyen gebasz.

Rendeltem egy rakás motorokhoz való zavarszűrős akármit, ami gyakorlatilag pár kondi meg egy ellenállás, csak helyettem már rátették egy PCB-re a kínaiak.

Ha megérkezik updatelek, mert jó lenne ez a herehűtő az asztal alá.

Update – javítás

Low Level 5V 1 2 4 8 Channel Solid State Relay Module SSR G3MB-202P 240V 2A Output With Resistive Fuse For Arduino
4 csatornás SSR modul

A „motorokhoz való zavarszűrős akármi” még mindig érkezett meg (3 hónapja rendeltem), viszont vettem egy 4 csatornás SSR modult. Az SSR (Solid State Relay) egy reléket helyettesítő alkatrész. Ahogy a neve is jelzi, nincs benne mozgó alkatrész. Az SSR tehát nem fog tüskéket visszafele árasztani magából az áramkörbe, mert nincsenek benne összeérő fém érintkezők, amik ezt okozzák.

Az SSR modulok drop-in cserélhetőek a sima relé modulokkal, szóval nem volt vele sok dolgom. Ahogy kicseréltem, hibátlanul kezdett működni a ventillátor és így nincs relékattogás sem, ha állítgatom.

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük