Konfiguracja MQTT w...
 
Powiadomienia
Wyczyść wszystko

Konfiguracja MQTT w Tasmota dla multipress pod Domoticz

4 Wpisów
2 Użytkownicy
0 Likes
1,398 Wyświetleń
(@bartolomeo)
Wpisów: 210
Pomocny Donator 2K22
Autor tematu
 

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

19:27:04 MQT: stat/tasmota/RESULT = {"Button1":{"Action":"SINGLE"}}
19:27:08 MQT: stat/tasmota/RESULT = {"Button1":{"Action":"DOUBLE"}}
19:27:12 MQT: stat/tasmota/RESULT = {"Button1":{"Action":"TRIPLE"}}
19:27:15 MQT: stat/tasmota/RESULT = {"Button1":{"Action":"QUAD"}}
19:27:22 MQT: stat/tasmota/RESULT = {"Button1":{"Action":"PENTA"}}
19:27:29 MQT: stat/tasmota/RESULT = {"Button1":{"Action":"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.

 

 
Dodane : 18/12/2020 8:47 pm
 xury
(@xury)
Wpisów: 3
Świeżak
 

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
 
Dodane : 22/12/2020 10:02 pm
(@bartolomeo)
Wpisów: 210
Pomocny Donator 2K22
Autor tematu
 

@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.

 
Dodane : 23/12/2020 10:55 pm
(@bartolomeo)
Wpisów: 210
Pomocny Donator 2K22
Autor tematu
 

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.

 
Dodane : 15/01/2021 12:45 am
Udostępnij: