Konfiguracja MQTT

Nie ma w encjach office_relay
Dodałem bezpośrednio sensor do pliku configuration.yaml
Sensor pojawił się w encjach, jednak samo raportowanie nadal nie działa.
Po dodaniu na pulpicie encji z office_relay jej stan się zmienia po fizycznej zmianie w urządzeniu.
Sensor poprawnie odczytuje zmiany.

To teraz dodaj skasowaną linijkę:
value_template: “{{ is_state(‘sensor.office_relay’, ‘ON’) }}”

1 polubienie

!!! Działa !!!
@Stravi Brawo TY :slight_smile:
Dziękuję bardzo za poświęcony czas i wytrwałość.

1 polubienie

Hej,
borykam sie z tym samym problemem. Dostalem link do tej konwersacji i probuje skopiowac wasze rozwiazanie. Niestety nie dziala - mam HA w wersji 2020.12.06 Moze podpwiecie jak zmodyfikowac pliki switch i sensor.
Dostaje taki blad:
Invalid config for [switch.template]: invalid slug Office (try office) for dictionary value @ data[‘switches’]. Got OrderedDict([(‘Office’, OrderedDict([(‘turn_on’, OrderedDict([(‘service’, ‘mqtt.publish’), (‘data’, OrderedDict([(‘topic’, ‘/dingtian/relay14/in/control’), (‘payload’, “{‘type’:‘ON/OFF’,‘idx’:‘1’,‘status’:‘OFF’,‘time’:‘0’,‘pass’:‘0’}”)]))])), (‘turn_off’, OrderedDict([(‘service’, ‘mqtt.publish’), (‘data’, OrderedDict([(‘topic’, ‘/dingtian/relay14/in/control’), (‘payload’, “{‘type’:‘ON/OFF’,‘idx’:‘1’,‘status’:‘ON’,‘time’:‘0’,‘pass’:‘0’}”)]))]))]))]). (See ?, line ?).

Wrzuć jako załącznik plik sensors.yaml - może oczywiście być okrojony do interesującej nas części.

  • platform: mqtt
    name: office_relay
    state_topic: “/dingtian/relay1413/out/relay1”
    value_template: “{{ value_json.status }}”

Skopiowalem go z watku. Zmienilem tylko typ relay.

  • platform: template
    switches:
    Office:
    #value_template: “{{ is_state(‘sensor.office_relay’, ‘ON’) }}”
    turn_on:
    service: mqtt.publish
    data:
    topic: “/dingtian/relay1413/in/control”
    payload: “{‘type’:‘ON/OFF’,‘idx’:‘1’,‘status’:‘OFF’,‘time’:‘0’,‘pass’:‘0’}”
    turn_off:
    service: mqtt.publish
    data:
    topic: “/dingtian/relay1413/in/control”
    payload: “{‘type’:‘ON/OFF’,‘idx’:‘1’,‘status’:‘ON’,‘time’:‘0’,‘pass’:‘0’}”

Proponuję posłuchać sugestii z błędu, pewnie nie można używać dużych liter.

Czytanie ze zrozumieniem sie klania:)

. Teraz konfiguracja jest ok ale nic sie dzieje.
Sprawdzilem MQTT i jest wyswietlany topic.

W mosqutto brokerze widze ze adres pod ktorym jest relay jest takze przypisany i polaczony. Co jeszcze moge sprawdzic?

Encje się dodały w HA?

Gdy sprawdzam logbook w tej encji nie ma zadnych komunikatow wiec HA go nie widzi

Nie obraź się jeśli coś jest dla ciebie oczywiste ale to napisałem.

  1. Robisz wpisy w configuration.yaml lub sensors.yaml oraz switches yaml
  2. Restart HA lub przeladowanie komponentów MQTT.
  3. Powinny powstać 2 encje, 1 sensor i 1 switch, niezależnie od tego czy podałeś dobre topic’i czy nie.
    Pokaz może co masz po kliknięciu w encję powstałego switcha.
1 polubienie

Wiadomość od @RobertQue (limit 3 postów na temat):

Po kilkudziesieciu @ pomocy od Stravi udalo sie to postawic. Dziala tak ze jak odpalam HA switch nie dziala, wchodze do panelu admina na switchu zmieniam stan i teraz HA widzi i obsluguje. @Xylo udalo Ci sie to jakos obejsc albo jaks sobie z tym problememe poradziles?

@Xylo udało Ci się jakoś uzyskać stany switchy po restarcie bramki?

Tak zalaczam switch z panelu administratora i Ha to widzi

Jak na razie nie przeszkadza mi brak aktualnego stanu po restarcie Jolki. Z tego co zauważyłem po restarcie bramki mamy losowy stan przełączników dingtian. Można by wykonać automatyzację/skrypt który po utracie sygnału z Jolki i jej ponownym logowaniu wykona pojedynczą zmianę stanu przełącznika lub odczyt stanów o ile to możliwe. Zmiana stanów na pewno aktualizuje wyświetlane informacje.

Hm… to mocno ogranicza użytkowanie tego przekaźnika, już prawie byłem skłonny go polecić, ale nie wyobrażam sobie sterowania np. światłem tym i po restarcie robić mruganie…
Dzięki za info.

Po przeprowadzonych testach:

STAN AKTUALNY ZAŁĄCZONE 2 PRZEKAŹNIKI

Po restarcie Jolki, wszystkie switche widoczne jako OFF w dashboard.
Fizycznie załączone 2 jak w stanie wyjściowym. Załączenie na ON przycisku powoduje jego włączenie (przy dwóch załączonych zmienia porostu info widoku na on, fizyczne są już załączone)

Restart Dingtian

Po ponownym podaniu napięcia na urządzenia. Stany urządzeń wracają z przed awarii.
W czasie wyłączenia Dingtian nie jesteśmy w stanie zmienić stanu w Jolce, ponieważ nie mamy aktualnej odpowiedzi.

Witam

Skonfigurowałem i uruchomiłem ten switch z HA, wszystko działa dobrze, za wyjątkiem opcji MQTT availability. Nic nie znalazłem w dokumentacji. Efekt tego jest taki, że jeśli swicth jest offline(odłączony od LAN lub odłączono zasilanie) to HA pokazuje go jako dostępny, a w rzeczywistości nie działa. HA pamięta ostatni stan przekaźnika. Próba przełączenia encji powoduje powrót do zapamiętanego stanu.
Czy może ktoś rozwiązał ten problem?

Pozdrawiam
Dariusz

Witam

Pisałem do Chinczyków i odpowiedzieli, że nie ma zaimplementowanej takiej funkcji MQTT, dokładnie chodzi o LWT. Dobra wiadomość jest taka, że podobno będzie nowy firmware z LWT, więc na razie to prawie działa :wink: Testowałem podłączenie przez HTTP, działa, ale nie jest to tak “eleganckie” jak MQTT. Użyłem platformy command line, więc nie używałem MQTT. Poniżej przykładowy kod dla switcha nr 4 może komuś się przyda:

switch:     
    - platform: command_line 
      switches:
          lan_4:
              command_on: 'curl "http://adress_IP/relay_cgi.cgi?type=0&relay=3&on=1&time=0&pwd=0&"
              command_off: 'curl "http://adress_IP/relay_cgi.cgi?type=0&relay=3&on=0&time=0&pwd=0&"'
              command_state: 'curl "http://adress_IP/relay_cgi_load.cgi
              value_template: '{{value.split("&")[6] == "1" }}'
              friendly_name: 'lan_4'