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.

14 komentarzy do “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
    • Witam,
      Dopiero przymierzam się do przesiadki na HA z Domoticz’a ale wydaje mi się, że w maszynie wirtualnej Proxmox odpowiedzialnej za HA nie udostępniłeś dostępu do tego urządzenia USB.
      Swoją drogą, ciekawe jak będzie wyglądać spinanie rolet ze standardu RF’a (w domoticzu wysatrczało zasterować pilotem, zapisać sygnał (który był uznawany jako SWITCH) i wszystko hulało.
      Pozdrawiam Sławek

      Odpowiedz
      • Właśnie warto wcześniej przetestować. U mnie część kodów zadziałała od razu, część do tej pory nie jest rozpoznawana. Całe szczęście, że działa mi ekran od projektora, więc jest duża szansa, że rolety również zostaną rozpoznane.

        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