Konfiguracja MQTT w...
 
Powiadomienia
Wyczyść wszystko

Uwaga: Muszę przeprowadzić modernizację oprogramowania na serwerze, a w czarnym scenariuszu oznacza przeinstalowanie całego serwera na co muszę się przygotować.

Planuję to zrobić w ten weekend (25-26 Wrzesień). Prace będa wyglądały tak, że

- musze przygotować drugi zapasowy serwer i przenieść na niego strony: Smart'ny Dom, Forum, AFE

- przeprowadzić modernizację, która zajmie kilka godzin

- przenieść ponownie strony na modernizowany serwer

W tym czasie mogą występować braki w dostępie do strony lub mogą występować problemy z działaniem strony (wydajność, błędy) itp za co z góry przepraszam

Pozdrawiam, Admin

Konfiguracja MQTT w Tasmota dla multipress pod Domoticz

bartolomeo
(@bartolomeo)
Brygadzista

Cześć, w tasmocie można ustawić funkcję wielokrotnego przycisku. Zacząłem to sprawdzać i uzyskałem w konsoli powiedzmy takie możliwości:

1904 MQT: stat/tasmota/RESULT = {"Button1""SINGLE"}}
1908 MQT: stat/tasmota/RESULT = {"Button1""DOUBLE"}}
1912 MQT: stat/tasmota/RESULT = {"Button1""TRIPLE"}}
1915 MQT: stat/tasmota/RESULT = {"Button1""QUAD"}}
1922 MQT: stat/tasmota/RESULT = {"Button1""PENTA"}}
1929 MQT: stat/tasmota/RESULT = {"Button1""HOLD"}}

Załóżmy, że w Domoticzu mam selektor switch i chciałbym aby on odbierał te wartości (domyślam się, że może to działać analogicznie jak np. kostka od Xiaomi), ale jestem dosyć zagubiony w regułach konfiguracyjnych tasmoty.

Dodatkowo chciałbym, żeby opcja "single" działała tak jak zwykły przełącznik a nie przycisk, który jest "odseparowany" od przekaźnika (tak, żeby to działało bez ingerencji Domoticza o ile możliwe).

Uprzejmie proszę o podpowiedzi czy to jest możliwe i jeśli tak to jak to zrealizować? Jak powinny wyglądać reguły konfiguracyjne w tasmota?

Tasmotę zaktualizowałem do najnowszej wersję 9.2.0.

Tutaj trochę dokumentacji dotyczącej funkcji multi-press.

 

Cytuj
Autor tematu Dodane : 18/12/2020 7:47 pm
Tagi tematu
xury
 xury
(@xury)
Nowy

Najlepiej to zrobić za pomocą Node-red.

Ja wykorzystuję jedynie HOLD, a robię to tak:

W function node dopisuję payload do topic, który odbieram z MQTT:

msg.topic += "/" + msg.payload;
msg.payload = true;
return msg;

Potem w switch node mam kilka selektorów typu:

Tuby/cmnd/POWER2/HOLD

Tuby/cmnd/POWER1/HOLD

I tak dalej jeśli masz więcej topiców

Fragment mojego flow'a:

[
{
"id": "bc4ce797.3ff3b8",
"type": "mqtt in",
"z": "705522f6.225b3c",
"name": "Jadalnia",
"topic": "Jadalnia/cmnd/#",
"qos": "2",
"datatype": "auto",
"broker": "9748a36f.44bdd",
"x": 380,
"y": 1440,
"wires": [
[
"6d2c91ea.7dd4"
]
]
},
{
"id": "428b39ad.563668",
"type": "switch",
"z": "705522f6.225b3c",
"name": "Sonoffy",
"property": "topic",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "Kanapy/cmnd/POWER2/HOLD",
"vt": "str"
},
{
"t": "eq",
"v": "Kanapy/cmnd/POWER1/HOLD",
"vt": "str"
},
{
"t": "eq",
"v": "Tuby/cmnd/POWER2/HOLD",
"vt": "str"
},
{
"t": "eq",
"v": "Tuby/cmnd/POWER1/HOLD",
"vt": "str"
},
{
"t": "eq",
"v": "Jadalnia/cmnd/POWER2/HOLD",
"vt": "str"
},
{
"t": "eq",
"v": "Jadalnia/cmnd/POWER1/HOLD",
"vt": "str"
}
],
"checkall": "false",
"repair": false,
"outputs": 6,
"x": 700,
"y": 1500,
"wires": [
[
"b8da892.e975878"
],
[
"aa72cdbd.eca55"
],
[
"e3e49808.272e38",
"e4728542.64e6f8",
"67c50e5.c551af",
"54520d6d.650184"
],
[],
[],
[]
]
},
{
"id": "6d2c91ea.7dd4",
"type": "function",
"z": "705522f6.225b3c",
"name": "payload to topic",
"func": "msg.topic += \"/\" + msg.payload;\nmsg.payload = true;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 540,
"y": 1500,
"wires": [
[
"428b39ad.563668"
]
]
},
{
"id": "79251d4a.5a32a4",
"type": "mqtt in",
"z": "705522f6.225b3c",
"name": "Tuby",
"topic": "Tuby/cmnd/#",
"qos": "2",
"datatype": "auto",
"broker": "9748a36f.44bdd",
"x": 370,
"y": 1500,
"wires": [
[
"6d2c91ea.7dd4"
]
]
},
{
"id": "efaf3b30.752528",
"type": "mqtt in",
"z": "705522f6.225b3c",
"name": "Kanapy",
"topic": "Kanapy/cmnd/#",
"qos": "2",
"datatype": "auto",
"broker": "9748a36f.44bdd",
"x": 370,
"y": 1560,
"wires": [
[
"6d2c91ea.7dd4"
]
]
},
{
"id": "9748a36f.44bdd",
"type": "mqtt-broker",
"broker": "localhost",
"port": "1883",
"clientid": "",
"usetls": false,
"compatmode": true,
"keepalive": "60",
"cleansession": true,
"birthTopic": "",
"birthQos": "0",
"birthPayload": "",
"willTopic": "",
"willQos": "0",
"willPayload": ""
}
]
 sonofftx
OdpowiedzCytuj
Dodane : 22/12/2020 9:02 pm
bartolomeo
(@bartolomeo)
Brygadzista

@xury, dzięki za odpowiedź. Dobrze się upewnić, że można. Myślałem jedynie, że to kwestia jakiejś jednej reguły w firmware (tasmota) sterownika. O node-red wiem tylko że istnieje, ale nigdy nie używałem i się zastanawiam czy to nie będzie przerost formy nad treścią. Po świętach znajdę pewnie chwilę i spróbuję z tym dalej podziałać. Jak nie wykombinuje nic bezpośrednio w tasmocie to zapoznam się z Twoją propozycją rozwiązania.

OdpowiedzCytuj
Autor tematu Dodane : 23/12/2020 9:55 pm
bartolomeo
(@bartolomeo)
Brygadzista

Rozgryzłem bardzo zgrubnie temat (nie wiem czy dobrze, ale na pewno skutecznie) bezpośrednio w tasmocie regułą typu:

rule1 on button1#state=10 do power toggle endon on button1#state=11 do publish domoticz/in {"command": "switchlight", "idx": 180, "switchcmd": "Set Level", "level": 20} endon

Przy pojedynczym kliknięciu włącza przekaźnik (chociaż tu bym wolał żeby nie obsługiwała tego reguła, bo reakcja przycisku mi znacznie zwolniła), przy podwójnym kliknięciu ustawia selector w domoticzu na poziom 20 itd.... Jeszcze by mi się przydało nauczyć jak za pomocą tego samego podwójnego kliknięcia wyłączyć selektor znów do pozycji off... Na pewno będę rozgryzał dalej dokumentację, ale już nie dziś. Będę wdzięczny za ewentualne podpowiedzi.

OdpowiedzCytuj
Autor tematu Dodane : 14/01/2021 11:45 pm
Udostępnij: