Hallo zusammen,
ich möchte mit meiner Sonoff RF Bridge mit Tasmota 6.4.1 mehrere Brennenstuhl RCS1000 Steckdosen schalten.
Steckdosen sind an die Bridge angelernt, Schalten mit der WebGUI funktioniert wie folgt:
Steckdose 1 an: RFKey1
Steckdose 1 aus: RFKey2
Steckdose 2 an: RFKey3
Steckdose 2 aus: RFKey4
Habe es mit dem Basic Template A_01a und manuellen Anpassungen bei setList auch geschafft, so dass ich in FHEM buttons zum Schalten für eine Steckdose habe und auch ein state reading bekomme.
Was mir noch nicht klar ist:
1. wie kann ich jeweils zwei RfKeys (on/off) zu einer Steckdose (also zu einem Device) zusammenfassen und dafür ein state reading und ein stateIcon bekommen
2. wie kann ich weitere Devices (die sich vom ersten unterscheiden lassen) realisieren
Das ist meine Definition:
defmod MQTT2_Bridge1 MQTT2_DEVICE Bridge1
attr MQTT2_Bridge1 IODev MQTT2_FHEM_Server
attr MQTT2_Bridge1 autocreate 0
attr MQTT2_Bridge1 model A_01a_tasmota_basic_state_power1
attr MQTT2_Bridge1 readingList tele/smarthome/sonoff1/LWT:.* LWT\
tele/smarthome/sonoff1/STATE:.* { json2nameValue($EVENT) }\
tele/smarthome/sonoff1/SENSOR:.* { json2nameValue($EVENT) }\
tele/smarthome/sonoff1/INFO.:.* { json2nameValue($EVENT) }\
stat/smarthome/sonoff1/RESULT:.* { json2nameValue($EVENT) }
attr MQTT2_Bridge1 room Sonoff
attr MQTT2_Bridge1 setList off:noArg smarthome/sonoff1/cmnd/RfKey4\
on:noArg smarthome/sonoff1/cmnd/RfKey3
attr MQTT2_Bridge1 setStateList off on
attr MQTT2_Bridge1 stateFormat POWER1
attr MQTT2_Bridge1 userReadings state:POWER1:.* { lc(ReadingsVal($name,"POWER1","")) }
Wenn ich den on button drücke, kommen folgende Befehle und die Steckdose schaltet auch:
setstate MQTT2_Bridge1 set_on
setstate MQTT2_Bridge1 2019-01-12 22:08:46 state set_on
Das Log der RF Bridge sieht so aus:
22:08:41 SRC: MQTT
22:08:41 RSL: Gruppe 0, Index 4, Befehl RFKEY, Daten
22:08:41 MQT: smarthome/sonoff1/RESULT = {"RfKey4":"Learned sent"}
22:08:41 SER: erhalten A0 55
22:08:45 SRC: MQTT
22:08:45 RSL: Gruppe 0, Index 3, Befehl RFKEY, Daten
22:08:45 MQT: smarthome/sonoff1/RESULT = {"RfKey3":"Learned sent"}
22:08:46 SER: erhalten A0 55
22:12:00 DNS: initialisiert
22:12:01 MQT: Verbindungsversuch...
22:12:01 MQT: verbunden
22:12:01 MQT: smarthome/sonoff1/LWT = Online (beibehalten)
22:12:01 MQT: smarthome/sonoff1/cmnd/POWER =
22:12:01 MQT: abonniere smarthome/sonoff1/cmnd/#
Würde mich freuen, wenn wir zusammen ggf. ein neues Template für die RF Bridge realisieren könnten, so dass auch andere davon profitieren.
Zu Info: mein RasPi läuft noch mit wheezy, mit mosquitto ist das nicht kompatibel, aber mit MQTT2 ging die Verbindung ruck zuck.
Danke im voraus!
Christian
Moin.
Würde zuerst mal autocreate in dem Fall wieder einschalten.
Zwei Wege:
Entweder das Teil als Bridge zu begreifen, und eine entsprechende bridgeRegexp zu setzen, dann jeweils den ersten Kanal schalten, und in dem erzeugten weiteren Device den 2. Kanal händisch dazufügen.
Oder das ganze nach dem Beispiel der mehrkanaligen zusammenpfriemeln. Dann wird es aber vermutlich schwieriger, den Status der einzelnen angesteuerten Geräte darzustellen.
Hi,
für den Fall, das dein Anliegen noch aktuell ist, ist mir zwar immer noch nicht ganz klar, was aus welchem Anlaß wohin geschickt wird, aber zwei eventuell passende Puzzlesteinchen kann ich evtl. - ohne Erfoglsgarantie - anbieten :) ...
a) Entweder wir machen eine Auswertung von {"RfKey4":"Learned sent"} usw., indem wir alle JSON-Messages mit "RfKey[\d]+" anders behandeln (siehe hier: https://forum.fhem.de/index.php/topic,98723.msg920946.html#msg920946), oder
b) was evtl. einfacher ist: wir versuchen eine Art "Nachbehandlung" mit $JSONMAP vorzunehmen, indem wir eine etwas "schräge" JSONMAP nutzen, da weiß ich aber nicht, ob das klappt.... Testen könntest du
attr MQTT2_Bridge1 jsonMap RfKey3:{"switch2"=>"on"} RfKey4:{"switch2"=>"off"}
attr MQTT2_Bridge1 readingList [...]
stat/smarthome/sonoff1/RESULT:.* { json2nameValue($EVENT, '', $JSONMAP) }
Vielen Dank für die Mühe, der erste Ansatz gefällt mir ganz gut (soweit ich ihn verstehe), ich würde keinen separaten Ansatz machen.
Meine ursprüngliche Motivation, die Bridge zu nutzen, war damit Intertechno-kompatible Steckdosen schalten zu können, weil die verbreitet und günstig sind und ein jeweils separates Flashen der einzelnen Steckdose entfällt.
Mittlerweile gibt es aber für gleiches Geld Tasmota-fähige Steckdosen, die man noch dazu OTA flashen kann.
Damit lohnt sich der Aufwand für die Bridge nicht mehr, zumal auch die Sicherheit deutlich niedriger ist (Intertechno-Protokoll über 868MHz im Vgl. zu MQTT).
Aus meiner Sicht können wir das Thema schließen.
Danke nochmal.
Christian
Gesendet von meinem SM-G950F mit Tapatalk