Od niedawna zacząłem przygodę z HA, wcześniej bazowałem na gotowych platformach “chmurowych” pracujących na MQTT, ale nie o tym. Otóż wykonałem swój własny sterownik, który komunikuje się z lokalnym MQTT Brokerem postawionym na HA i próbuję go zintegrować z home assistant. W celu przetestowania komunikacji, nawiązałem połączenie w NodeRED na konkretnym temacie, który akurat służy na wystawianie sygnałów o stanie przełączników, czyli mamy coś takiego:
jest grupa przełączników (switch) a w niej kolejno sw1, sw2 itd., które przyjmują wartość on albo off w zależności od stanu. Teraz chciał bym tą informację odebrać i przedstawić za pomocą encji switch w HA
W tym celu skorzystałem z poradnika Home Assistant - MQTT - Sterujemy przełącznikiem - YouTube ale problem w tym, że nie korzystam ani z sonoff ani z innych gotowych rozwiązań i pytanie do Was, czy jest jakaś możliwość wklepania ręcznie encji i wskazania jej “ścieżki” tzn tematu oraz wartości payload, na które ma patrzeć w celu wizualizowania swojego stanu na dashboard ?
Edit:
Jeszcze jedna sprawa, 10 minuta filmu, Artur pokazuje jak dodać grupe przełączników w celu lepszego porządku w plikach, w moim przypadku, kiedy próbuję coś takiego zrobić, mam następujący błąd:
@RobinI30 - Dziękuję Ci bardzo za link, dodałem przykłady z dokumentacji i mój HA “widzi” encje włączników oraz lamp, działa to cudownie, aż sam jestem pod wrażeniem jak łatwo można zrobić integrację poprzez plik.
@artpc - szczerze mówić nie wiem, a czy jest tam coś istotnego co pomniałem ? Mógłbyś mi pokazać jak masz u siebie, albo jak powinno być ?
Nadal pozostaje kwestia podziału na pliki włączników, lamp itd. z czym nie umiem sobie poradzić, co tu jest nie tak ? o jaką platformę chodzi ?
Nie wytłumaczę Ci jak działa każdy rodzaj include dokładnie, ale użycie !include powoduje, że ten ciąg zamieniany jest literalnie co do znaczka na zawartość określoną po nim.
W twoim przypadku gdy to wszystko się połączy otrzymasz
switch:
mgtt:
switch:
- name ..........................
czyli dokładnie co innego niż oczekujesz. A oczekujesz
mgtt:
sensor:
- name ..........................
..........
## itd ,,koleine sensor
-name
........................
.......................
-name
switch:
- name
.....................
-name
Robisz więc jak napisałem wcześniej
Wtedy plik nazwa_pliku.yaml
zawiera wyszko bez ciągu “mqtt:”, który - jak include złoży to wszystko do kupy - może wystąpić tylko raz w całym config.
sensor:
- name ..........................
..........
## itd ,,koleine sensor
-name
........................
.......................
-name
switch:
- name
.....................
-name
Ostatni raz odpowiadam na obrazkowe załączniki - dadaj coś co daje się poprawić.
Drugie podejście, tym razem postaram się załączyć pliki, tak by można było je edytować.
Cel modyfikacji- podział pliku configuration.yaml osobno na switch, sensor, light w tym celu poczyniłem:
dla lepszego porządku utworzyłem katalog w folderze CONFIG o nazwie “mymqtt” a w nim kolejno pliki “switches.yaml”; “lights.yaml” oraz “sensors.yaml”
w pliku configuration.yaml pozostawiłem następujący wpis
# Loads default set of integrations. Do not remove.
default_config:
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
#dodaje mqtt i buduje struktore wlacznikow, sensorów oraz swiateł
mqtt:
switch:
!include mymqtt/switches.yaml
sensor:
!include mymqtt/sensors.yaml
light:
!include mymqtt/lights.yaml
następnie w pliku “switches.yaml” umieszczam włączniki:
@RobinI30 - próbowałem bez przedrostków “switch”; “sensor” itd ale popełniłem literówkę w nazwie jednego z plików i dlatego mi nie działało, myślałem, że problem jest w braku wspomnianych nazw więc dodałem je z powrotem. Tak czy inaczej najważniejsze, że działa. Może ktoś skorzysta w przyszłości.
@macek - fajna sprawa z tym package, ale include zrobione w strukturze jak powyżej są dla mnie bardziej czytelne i na ten moment zostanę przy nich.