Smarthome

ESPHome okosítás – Aroma Diffuser

Imádom az ESPHome-ot. Rengeteg szenzort csináltam és okosítottam fel eredetileg nem okos cuccot. Ez most épp egy ultrahangos aroma diffuser.

Aroma Diffuser

Konkrétan a tegnapi projektem, egy egész napos szenvedés volt, de végül egész jó lett az eredmény.

Silvercrest Aroma Diffuser
Silvercrest Aroma Diffuser

A márka alapján kitalálhattad, hogy ez egy Lidl termék. Nem volt kifejezetten drága sem. Tulajdonképpen ez egy ultrahangos párásító, amibe vizet teszel meg pár csepp illóolajat.

Automatizálni mókolás nélkül nem tudod: egy gomb megnyomásával kapcsolod ki és be. Így ha mondjuk egy smart socketet tennél mögé, max kikapcsolni tudod, ha előtte kézzel bekapcsoltad. Időzíteni a kikapcsolást legalább így is lehet, állítható hány óra múlva kapcsoljon ki, ill. okos annyira, hogy szépen kikapcsol, ha kifogy belőle a lötyi.

Szerettem volna ki- és bekapcsolni Home Assistantból, illetve jó lett volna az RGB ledeket is felokosítani, hogy azt is onnan lehessen beállítani. Kvázi lámpaként világít a cucc egész teteje, egész jól.

Okosítás

Vettem egy rakás ESP01-S-t még korábban és állítható DC-DC konvertereket.

Smart Aroma Diffuser proof of concept
Smart Aroma Diffuser proof of concept

24V-os a cucc, amit a DC-DC konverterrel 3.3V-ra kellett csökkenteni.

Szerencsére egész sok hely van belül, így elfértem mindennel: a DC-DC konverter, az ESP01S és két optocsatoló kellett.

A működése tök egyszerű:

  • az egyik optocsatoló a bekapcsoló gombra van kötve, ezt röviden meghúzva fogjuk tudni ki- és bekapcsolni
  • a másik optocsatoló egy olyan pontra van kötve a panelen, amin akkor van csak áram, ha éppen be van kapcsolva. Ebből fogjuk tudni az aktuális állapotot.

ESPHome-ban ez amúgy így néz ki:

esphome:
  name: aroma-diffuser
  friendly_name: aroma_diffuser
  on_boot:
    priority: -100
    then:
      - switch.turn_off: aroma_diffuser_power

switch:
  # A power gomb rövid megnyomását intézi
  - platform: gpio
    name: "Power button momentary"
    icon: "mdi:electric-switch"
    pin:
      number: GPIO3
    id: power_short_press
    internal: true
    inverted: no
    on_turn_on:
    - delay: 150ms
    - switch.turn_off: power_short_press

  # Template switch, amivel ki/be lehet kapcsolni a gépet a státusz alapján
  - platform: template
    name: "Aroma Diffuser"
    id: aroma_diffuser_power
    icon: "mdi:scent"
    lambda: |-
      if (id(pc_power_status).state) {
        return true;
      } else {
        return false;
      }
    turn_on_action:
      - switch.turn_on: power_short_press
    turn_off_action:
      - switch.turn_on: power_short_press

# Template sensor, amit bekapcsoltra állítunk, ha van legalább 1 pulse/sec
binary_sensor:
  - platform: template
    name: "Status"
    id: pc_power_status

# Pulse Counterrel vizsgálom, hogy küldött-e jelet a panel, hogy be van kapcsolva
sensor:
  - platform: pulse_counter
    pin: GPIO0
    name: "Power on pulses"
    internal: true
    update_interval: 1s
    on_value:
      then:
        - binary_sensor.template.publish:
            id: pc_power_status
            state: !lambda 'return x > 1;'

Ez a bizonyos „akkor van csak rajta áram, ha be van kapcsolva” annyira nem volt egyszerű. Valami olyan pontot találtam, amin tök jól 1-3V közötti fesz ingadozik folyamatosan, ha megy a gép.

Ehhez emiatt egy pulse countert raktam be, ami azt számolja, hányszor lesz HIGH a jel azon a GPIO-n. Másodpercenként elég sokszor, így 1 másodpercre tehettem az update_intervalt, ami nagyon fasza, mert szinte azonnal tudjuk így, hogy milyen állapotban van a ketyere.

Erre egyszerűen tettem egy eseményt, ami lefut, ha változik az érték. Ez az érték ha pedig nagyobb, mint 1, akkor tudjuk, hogy be van kapcsolva a gép. Ezzel az információval pedig egy binary_sensort pont lehet kapcsolgatni, így mindig tudjuk az aktuális állapotot.

A switch, amivel pedig ki-be lehet kapcsolni a cuccot, ez alapján marad bekapcsolt vagy kikapcsolt állapotban.

Smart aroma diffuser Home Assistantban
Smart aroma diffuser Home Assistantban

Home Assistantban így néz ki.

Mostantól tök jól automatizálható:

  • bekapcsol, ha reggel felkelünk,
  • kikapcsol, ha elmegyünk itthonról,
  • ha a bekapcsolás után azonnal kikapcsol, az azt jelenti, hogy kifogyott belőle a víz, szóval tud értesítést küldeni, hogy újra kell tölteni
  • x időnként kikapcsol, hogy ne legyen „túl sok” az illat

One comment on “ESPHome okosítás – Aroma Diffuser

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