sd+mqtt

User avatar
klew
Posts: 10455
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

Hobo wrote: Sat Jan 04, 2025 7:24 pm W takim razie poproszę o pomoc w takiej kwestii:
mam serwer mqtt który jest translatorem dla zigbee i chciałbym osiągnąć efekt widoczności danych z tych urządzeń w supli a dla urządzeń on/off - możliwość sterowania stanem.
Wrzuć cały config oraz logi jakie masz. Zacznij od prostego przykładu, czyli np tylko jeden kanał typu Relay
Hobo
Posts: 75
Joined: Sun Sep 29, 2019 8:08 pm

Post

Hobo wrote: Sat Aug 10, 2024 1:05 pm .
.
.

ktoś może spojrzy o co chodzi... i podpowie
Prawda jest taka że wszystko jest w pierwszym wpisie tego wątku bo nie zmieniałem tego licząc na poprawki w nowych wersjach biblioteki lub wsparcie z forum.
-------------------------------------------------------------------------------
Jeśli nie uważałeś jak robiłeś to rób jak uważasz.
Jeśli uważałeś to bądź pewny tego co zrobiłeś.
User avatar
klew
Posts: 10455
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

Hobo wrote: Sun Jan 12, 2025 8:49 pm Prawda jest taka że wszystko jest w pierwszym wpisie tego wątku bo nie zmieniałem tego licząc na poprawki w nowych wersjach biblioteki lub wsparcie z forum.
Tak wygląda konfiguracja kanału z pierwszego posta:

Code: Select all

channels:
  - type: CustomRelay
    name: CR_MQTT
    state: state
    set_state: state		#ta linia
    turn_on_payload: "ON"
    turn_off_payload: "OFF"
    source:
      type: MQTT
      state_topic: "*/state"
    parser:
      type: Json
      refresh_time_ms: 1000
    output:
      type: MQTT
      control_topic: "*/set"
    payload:
      type: Simple
Masz ustawione źródło (source) i wyjście (output) na MQTT. Czytamy stan z topica */state a publikujemy do */set.
Odczyt masz ustawiony na parser Json, a parametr "state" ma szukać w jsonie klucza "state", więc oczekuje że w */state są publikowane wartości w stylu:

Code: Select all

{
"state": 1
}
Zapis masz ustawiony w formacie Simple (parametr payload). Simple po prostu pisze gołe dane do pliku i jego konfiguracja w sumie niewiele wnosi, ale parser Simple oczekuje "liczby": 0, 1 itd. A u Ciebie jest "set_state: state". Także zmień to na "set_state: 0".
Wartość w stylu "set_state: moja_wartosc" dotyczy sytuacji, gdy output jest w formacie json, czyli przy Payload typu Json, będą publikowane wartości w stylu:

Code: Select all

{"moja_wartosc": "ON"}
A przy Payload ustawione na Simple ( z set_state: 0), będize lecieć po prostu:

Code: Select all

ON

Return to “Pomoc”