RF Link raz jeszcze

Witam.

Potrzebuje pomocy w integracji bramki rflink do sterowania roletami.
Podłączyłem RF Linka, został wykryty , w logach pojawił się informacje o sygnale wysyłanym do rolety.
Jak stworzyć przyciski żeby HA wysyłał sygnał do otwarcia / zamknięcia

Pozdrawiam
Grzesiek

1 polubienie

Teraz musisz stworzyć encję typu cover zgodnie z dokumentacją Template cover - Home Assistant.

Dopiero zaczynam z HA i potrzebuje informacji krok po kroku jak to ogarnąć.
Według dokumentacji Template Cover powinno to wyglądać tak:

cover:
  - platform: template
    covers:
      roleta1:
        device_class: roleta
        friendly_name: "roleta1"
        value_template: "{{ states('sensor.roleta1')|float > 0 }}"
        open_cover:
          service: script.open_roleta

Co ze skryptem? Gdzie go napisać ? Jak?

Prawie, masz błąd w device_class, na początek usuń to.

Powinno być “blind” ?

co do skryptu:

script.open_roleta:
    sequence:
        service: rflink.send_command
        data:
            command: 'up’
            device_id: dooya_cd2a7400_80

I to wszystko w pliku configuration.yaml?

OFF TOPIC - wpis techniczny
@Grzesiek
przejrzyj posty, które Ci edytowałem by poprawić formatowanie kodu, zrób z tego użytek na przyszłość (zamiast markdown ``` przed i po bloku kodu można też stosować BBcode: [code] i zamykający [/code] ale markdown i te 3 odwrotne apostrofy działają też np. na guthubie).
Bez tego żaden YAML praktycznie na żadnym forum nie jest wyświetlany poprawnie.

- platform: template
  covers:
    blinds:
      device_class: blind
      friendly_name: "roletahs1"
      open_cover:
        service: script.roletahs1
      close_cover:
        service: script.roletahs1
      stop_cover:
        service: script.roletahs1

Teraz będzie ok?

Nie wiem bo to nie jest pełna definicja encji typu cover, po za tym masz jeden skrypt do podnoszenia, opuszczania i zatrzymywania rolety, trochę dziwne.

 platform: template
  covers:
    blinds:
      device_class: blind
      friendly_name: "roletahs1"
      value_template: "{{ states('sensor.roletahs1')|float > 0 }}"
      open_cover:
        service: script.open_roletahs1
      close_cover:
        service: script.close_roletahs1
      stop_cover:
        service: script.stop_roletahs1

I sam skrypt

script.open_roletahs1:
    sequence:
        service: rflink.send_command
        data:
            command: 'up’
            device_id: dooya_cd2a7400_80
script.close_roletahs1:
    sequence:
        service: rflink.send_command
        data:
            command: 'down’
            device_id: dooya_cd2a7400_80
script.stop_roletahs1:
    sequence:
        service: rflink.send_command
        data:
            command: 'stop’
            device_id: dooya_cd2a7400_80

I to wszystko w configuration.yaml?

Błąd składni, popatrz na przykład w dokumentacji:

# Example configuration.yaml entry
cover:
  - platform: template
    covers:
      garage_door:
        device_class: garage

Reszta wygląda na OK ale mała uwaga - nie używaj nazwy encji bardzo podobnej do zastrzeżonych nazw w HA, np. nazwałeś encję blinds, generujesz sobie tylko potencjalne, trudne do późniejszego zdiagnozowania problemy.

cover: 
    platform: template
     covers:
        roleta_hs1:
          device_class: blind

Czyli garage_door w przykładzie z dokumentacji i blinds w mojej wersji to jest nazwa encji i pod taką nazwą ją znjade narzedziach deweloperskich?

Dokładnie tak ale w ostatnim Twoim przykładzie jest to już encja o nazwie roleta_hs1.

Wpisałem tak:


# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
rflink:
  port: /dev/ttyUSB0

  reconnect_interval: 30
# this port is shown in the image above. your detail might be different
logger:
  default: error
# add the following to the existing logger section
  logs:
    rflink: debug
    homeassistant.components.rflink: debug
light:
  - platform: rflink
    automatic_add: true
sensor:
  - platform: rflink
    automatic_add: true
cover: 
    platform: template
    covers:
    roleta_hs1:
      device_class: blind
      friendly_name: "roletahs1"
      value_template: "{{ states('sensor.roletahs1')|float > 0 }}"
      open_cover:
        service: script.open_roletahs1
      close_cover:
        service: script.close_roletahs1
      stop_cover:
        service: script.stop_roletahs1d

Wywala taki błąd:

Napisze jeszcze raz to samo co wyżej: błąd składni - pomijasz znak -, robisz nieodpowiednie wcięcia więc to nie ma prawa działać.

Poprawiłem

cover: 
  - platform: template
    covers:
      roleta_hs1:
        device_class: blind
        friendly_name: "roleta_hs1"
        open_cover:
          service: script.open_roleta_hs1
        close_cover:
          service: script.close_roleta_hs1
        stop_cover:
          service: script.stop_roleta_hs1

Utworzyła się encja
obraz

Ale wywala jakiś błąd w skrypcie

Całość jest wpisana w configuration.yaml w takiej formie:

cover: 
  - platform: template
    covers:
      roleta_hs1:
        device_class: blind
        friendly_name: "roleta_hs1"
        open_cover:
          service: script.open_roleta_hs1
        close_cover:
          service: script.close_roleta_hs1
        stop_cover:
          service: script.stop_roleta_hs1
script.open_roleta_hs1:
    sequence:
        service: rflink.send_command
        data:
            command: "up"
            device_id: dooya_cd2a7400_80

script.close_roleta_hs1:
    sequence:
        service: rflink.send_command
        data:
            command: "down"
            device_id: dooya_cd2a7400_80

script.stop_roleta_hs1:
    sequence:
        service: rflink.send_command
        data:
            command: "stop"
            device_id: dooya_cd2a7400_80

Wszystko co dotyczy skryptów jest źle zdefiniowana. Proponuję przetłumaczyć sobie na polski stronę dokumentacji Scripts - Home Assistant, ten link podawałem już wcześniej.

script:       { *to jest informacja że wprowadzam skrypt?* }
     script.open_roleta_hs1:       { *to jest nazwa skryptu?* }
     sequence:    {*kolejność działań? i wyliczam co ma zrobić* }
        - service: rflink.send_command      { usługa rflink - że ma wysłać informacje " w górę" dla urządzenia dooya_cd2a7400_80?  }
          data:
            command: "up" 
            device_id: dooya_cd2a7400_80

[/quote]
Dobrze trybie czy nie bardzo?

Nie, bo struktura jest zła, wcięcia są złe dlatego proponuję skorzystać z graficznego dodawania skryptów, skorzystaj z linka poniżej (to jest kopia tego co jest w dokumentacji): Link to Scripts – My Home Assistant

Może tu potrzeba po prostu kluczowej informacji - w YAML ważna jest każda spacja - ma ich być dokładnie tyle ile ma być, a nie jedną mniej lub więcej, to samo z myślnikami (“minusami”), mają być w konkretnych miejscach (to wymaga zrozumienia struktury YAMLa). Ciągi spacji (lub spacji z myślnikiem na przedostatniej pozycji) z zasady mają parzystą długość.
Spacji nie można zamieniać na tabulatory!

open_roleta_hs1:
  alias: .open_roleta_hs1
  sequence:
  - service: rflink.send_command
    metadata: {}
    data:
      device_id: dooya_cd2a7400_20
      command: up
  mode: single
stop_roleta_hs1:
  alias: stop_roleta_hs1
  sequence:
  - service: rflink.send_command
    metadata: {}
    data:
      command: stop
      device_id: dooya_cd2a7400_20
  mode: single
close_roleta_hs1:
  alias: .close_roleta_hs1
  sequence:
  - service: rflink.send_command
    metadata: {}
    data:
      command: down
      device_id: dooya_cd2a7400_20
  mode: single

A teraz?