wtorek, 5 maja 2020

Home Assistant oraz RFLink

Jako że podjąłem decyzję o przejściu na Home Assistant (a przynajmniej zintegrowaniu wszystkich elementów z Domoticz w HA) musiałem jakoś podejść do tematu RFLink, czyli w moim przypadku transmisji na paśmie 433MHz.. Na początku mojej 'Drogi Smart' był to całkiem popularny i, co ważne, tani standard.

Opisane (http://cezarowy.blogspot.com/2017/09/rflink.html) elementy to na przykład gniazdka i termometry. O ile z nich w większości zrezygnowałem (gniazdka mając transmisję jednokierunkową nigdy nie dawały pewności, że są wyłączone/włączone), to zostało mi kilka ważnych elementów:

- Owl Micro + do monitorowania zużycia energii -
http://cezarowy.blogspot.com/2017/09/owl-micro.html
- Czujniki otwarcia drzwi/okien - http://cezarowy.blogspot.com/2017/04/czujnik-otwarciazamkniecia-drzwi-w.html
- 'Nieśmiertelny' termometr na zewnątrz
- Sterownik ekranu projektora - http://cezarowy.blogspot.com/2017/12/pilot-do-ekranu-dziaajacy-na-433mhz.html
- Czujniki dymu

Jak widać - skórka była warta wyprawki.

Spędziłem już z Home Assistant trochę czasu i muszę powiedzieć, że po zapoznaniu się z nim MOIM ZDANIEM nie ma już odwrotu od przejścia na niego z Domoticz. Po prostu wychodzą na wierzch wszystkie wady Domoticz (brak modułowości, brak porządnej dokumentacji, problematyczne aktualizacje, czasem losowy start w przypadku posiadania skryptów i dodatków).

Jak w większości dodatków do Home Assistant - instalacja i konfiguracja jest banalna.

W configuration.yaml dodajemy linie:

rflink:
  port: /dev/serial/by-id/usb-Arduino__www.arduino.cc__0042_5563930393435111A172-if00

Dane dotyczące portu odczytałem wchodząc po prostu do folderu /dev/serial/by-id/, nadmieniam, że mam system postawiony na DietPi z HA w kontenerze Docker.


Sprawdzenie konfiguracji, restart, działa. Pierwsze wpisy pojawiły się w logu:


Pozostało dopisać elementy (dla czujników dymu jako switch) w:
- switches.yaml

  - platform: rflink
    automatic_add: false
    devices:
      fa20rf_fca258_01:
        name: Alarm Zosia
  - platform: rflink
    automatic_add: false
    devices:
      fa20rf_ff6994_01:
        name: Alarm Staszek

- sensors.yaml (dla czujników temperatury oraz OWL)

  - platform: rflink
    automatic_add: false
    devices:
      alectov4_5fc8_temp:
        sensor_type: temperature
  - platform: rflink
    automatic_add: false
    devices:
      owl_cm180_000d_watt:
        sensor_type: watt
        name: Owl Waty
  - platform: rflink
    automatic_add: false
    devices:
      owl_cm180_000d_kwatt:
        sensor_type: kilowatt
        name: Owl Kilowaty

Większy zgryz miałem ze sterownikiem do projektora. Bo pod jednym kodem były trzy komendy: UP, DOWN, STOP. Znajdź tu jakiś przycisk w HA, który to obsługuje...

Ale poszukałem w logach, pilot wysyłał je w następujący sposób:


No to fru do Developer tools -> Services:


Dalej już poszło jak z płatka, wystarczyło napisać skrypty:

screen_down:
  sequence:
    service: rflink.send_command
    data:
      command: 'down'
      device_id: dooya_12b75900_01  
screen_up:
  sequence:
    service: rflink.send_command
    data:
      command: 'up'
      device_id: dooya_12b75900_01  
screen_stop:
  sequence:
    service: rflink.send_command
    data:
      command: 'stop'
      device_id: dooya_12b75900_01        

oraz jeden automat, który wystartuje i zatrzyma po określonym czasie:

screen_down_and_stop:
  sequence:
    - service: rflink.send_command
      data:
        command: 'down'
        device_id: dooya_12b75900_01  
    - delay: '00:00:48'
    - service: rflink.send_command
      data:
        command: 'stop'
        device_id: dooya_12b75900_01

Później wystarczyło podpiąć pod przyciski w ui-lovelace.yaml:

  - type: button
    name: Screen Down
    tap_action:
      action: call-service
      service: script.turn_on
      service_data:
        entity_id: script.screen_down
  - type: button
    name: Screen Up
    tap_action:
      action: call-service
      service: script.turn_on
      service_data:
        entity_id: script.screen_up
  - type: button
    name: Screen Stop
    tap_action:
      action: call-service
      service: script.turn_on
      service_data:
        entity_id: script.screen_stop
  - type: button
    name: Screen Down and Stop
    tap_action:
      action: call-service
      service: script.turn_on
      service_data:
        entity_id: script.screen_down_and_stop


Ten system jest naprawdę niesamowity.

2 komentarze:

  1. Przepraszam trochę nie na temat ale może komuś się przyda używam RFLINK 433 i dzisiaj trochę z nudów miałem wolny taniutki chiński czujnik (kontrakton) otwarcia drzwi 433 Mhz i zamontowałem go w piwnicy. Niby nic ale mieszkam w bloku na czwartym piętrze czyli defacto 5 kondygnacji a z poziomu piwnicy 6 i :) mój RFLINK a właściwie domoticz odbiera sygnał :) i wysyła powiadomienia :) Polecam wszystkim pogardzany 433 Mhz standard. Ma to jednak zasięg na bateryjce :)

    OdpowiedzUsuń
    Odpowiedzi
    1. Dziękuję za wpis. Ja się nie pozbywam RFLinka, ponieważ ciągle mam kilka urządzeń z nim działających i mających się dobrze - czujniki dymu, temperatury, ekran do projektora.

      Usuń