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.

12 komentarzy do wpisu „Home Assistant oraz RFLink”

  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 🙂

    Odpowiedz
  2. 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.

    Odpowiedz
    • Witam,
      Mam pytanie, bo widzę że wyświetlasz waty. Czy masz trzy fazy i to jest suma? Mam taki problem że: mam trzy encje dla każdej fazy osobna i nie mogę zsumować tego w żeby wyświetlić na karcie sumę.
      Jakaś rada?

      Odpowiedz
      • Tak, u mnie niestety była jedna centralka i wartość była już od razu sumowana. W HA bez problemu powinieneś to zrobić dzięki Template.

        Odpowiedz
  3. Witaj,
    staram się połączyć RFLinka do mojego HA na proxmox.
    W sumie zaczynam swoją przygodą z HA wiec pewnie coś gdzieś robię źle… jesteś w stanie nie naprowadzić na rozwiązanie?

    Już po dodaniu pierwszej linii do configuration.yaml dostaję błąd połączenia z RFLinkiem.

    Log:
    Error connecting to Rflink, reconnecting in 10
    Traceback (most recent call last):
    File „/usr/local/lib/python3.8/site-packages/serial/serialposix.py”, line 322, in open
    self.fd = os.open(self.portstr, os.O_RDWR | os.O_NOCTTY | os.O_NONBLOCK)
    FileNotFoundError: [Errno 2] No such file or directory: '/dev/serial/by-id/usb-Arduino__www.arduino.cc__0042_8573332373935131A142-if00′

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File „/usr/src/homeassistant/homeassistant/components/rflink/__init__.py”, line 234, in connect
    transport, protocol = await connection
    File „/usr/local/lib/python3.8/site-packages/serial_asyncio/__init__.py”, line 445, in create_serial_connection
    serial_instance = serial.serial_for_url(*args, **kwargs)
    File „/usr/local/lib/python3.8/site-packages/serial/__init__.py”, line 90, in serial_for_url
    instance.open()
    File „/usr/local/lib/python3.8/site-packages/serial/serialposix.py”, line 325, in open
    raise SerialException(msg.errno, „could not open port {}: {}”.format(self._port, msg))
    serial.serialutil.SerialException: [Errno 2] could not open port /dev/serial/by-id/usb-Arduino__www.arduino.cc__0042_8573332373935131A142-if00: [Errno 2] No such file or directory: '/dev/serial/by-id/usb-Arduino__www.arduino.cc__0042_8573332373935131A142-if00′

    Odpowiedz
  4. Witam, czy masz jakiś sposób na resetowanie czujek dymu po ich załączeniu? W domoticzu bylo to możliwe, a jak wygląda sprawa w homeassistant?

    Odpowiedz
  5. wszystko mi się podoba też niedawno przeszedłem na HA z Domoticza głównie z powodu niestabilności.
    Programistą nie jestem dobrym i trochę mi to zajęło pojąć niektóre zasady działania HA.
    Odnośnie owl_cm180 jedno mi brakuje jak podzielić wyliczenia na miesięczne i dobowe tak jak to było w Domoticzu tutaj też pokazujesz tylko chwilowe i zbiorcze zużycie.

    Odpowiedz
    • Ja również jestem z HA niesamowicie zadowolony i nie mam ochoty wracać do Domoticz.

      Co do Owl – pamiętam, że robiłem to przez Utility meter, coś w ten deseń:
      utility_meter:
      energy:
      source: sensor.energy_in_kwh
      cycle: monthly

      Odpowiedz
  6. owl opanowałeś w pełni czy nie ? chodzi o raport miesięczny tygodniowy dzienny? bo to co powyżej podane to podaje z czytnika to co posiada w pamięci.
    pod tym względem domoticz lepiej miał to ugryzione

    Odpowiedz

Dodaj komentarz