Lösung (03.07.2020):
Vorbemerkung: Ich schreibe den Code deshalb hierhin, weil blakadder ihn in seiner Template-Datenbank irgendwie nicht haben möchte. Ich finde es schade, wenn ich mein Ergebnis nicht teilen kann.
Es ging um den ProfiCook PC-WKS 1167G 1.5L Wasserkocher. Zuerst habe ich nach folgender Einleitung Tasmota eingerichtet.
Danach war es, wie gesagt, mein Ziel, dass über ioBroker Sprachbefehle an Alexa gesendet werden, wenn z.B. ein Kochvorgang abgeschlossen ist. Hierzu habe ich nun eine zweite Regel definiert, welche einen Wert in ioBroker unter dem Namen "Kettle_Status" anlegt. Mögliche Variablen sind "REMOVED", "HEATING", "STANDBY" und "MAINTAINING". Dieser ändert sich, wenn (1) der Behälter entfernt wird, (2) ein Kochvorgang gestartet wird, (3) ein Kochvorgang abgeschlossen ist, (4) die Temperatur auf einem Wert gehalten wird.
Es folgt der komplette Aufbau zur Einrichtung des Wasserkochers. Zuerst sollte jedoch das Template gesetzt werden:
Alle nun folgenden Schritte sind nacheinander über die Konsole durchzuführen. Dabei wird auch das WebUI und die Zeitzone angepasst. "SetOption66 1" ist unabdinglich, sonst wird "Kettle_Status" nicht an ioBroker gesendet.
SetOption53 1
WebColor {"WebColor":["#eaeaea","#252525","#282531","#eaeaea","#282531","#d7ccff","#1d1b26","#ff5661","#008000","#faffff","#694fa8","#4d3e7f","#b73d5d","#822c43","#1f917c","#156353","#faffff","#716b7f","#eaeaea"]}
SetOption66 1
sleep 250
Timezone +2
PowerOnState 0
Rule1 ON Power1#State=1 DO TuyaSend4 101,4 ENDON ON Power1#State=0 DO TuyaSend4 101,6 ENDON
Rule2 ON TuyaReceived#DpType4Id106=1 DO Publish stat/tasmota_94C8A4/RESULT {"Kettle_Status":"REMOVED"} ENDON ON TuyaReceived#DpType4Id101<=4 DO Publish stat/tasmota_94C8A4/RESULT {"Kettle_Status":"HEATING"} ENDON ON TuyaReceived#DpType4Id106=5 DO Publish stat/tasmota_94C8A4/RESULT {"Kettle_Status":"MAINTAINING"} ENDON ON TuyaReceived#DpType4Id101=6 DO Publish stat/tasmota_94C8A4/RESULT {"Kettle_Status":"STANDBY"} ENDON
Backlog WebButton1 Wasserkocher (an/aus)
Backlog Rule1 1; Rule2 1
Wichtig: Bei "Publish stat/tasmota_94C8A4/RESULT" muss "tasmota_94C8A4" mit eurem %topic% ersetzt werden, zu finden unter den MQTT-Einstellungen. Außerdem können insgesamt nicht mehr als 4-5 TuyaReceived-Befehle konfiguriert werden, ansonsten stürtzt das Gerät ab und die Regeln werden beim Neustart deaktiviert.
Die Möglichen weiteren Befehle wären jedoch:
ON TuyaReceived#DpType4Id106=1 DO Publish stat/tasmota_94C8A4/RESULT {"Kettle_Status":"REMOVED"} ENDON
ON TuyaReceived#DpType4Id106=2 DO Publish stat/tasmota_94C8A4/RESULT {"Kettle_Status":"STANDBY"} ENDON
ON TuyaReceived#DpType4Id106=3 DO Publish stat/tasmota_94C8A4/RESULT {"Kettle_Status":"HEATING"} ENDON
ON TuyaReceived#DpType4Id106=4 DO Publish stat/tasmota_94C8A4/RESULT {"Kettle_Status":"COOLING} ENDON
ON TuyaReceived#DpType4Id106=5 DO Publish stat/tasmota_94C8A4/RESULT {"Kettle_Status":"MAINTAINING"} ENDON
ON TuyaReceived#DpType4Id101=0 DO Publish stat/tasmota_94C8A4/RESULT {"Kettle_Mode":"45"} ENDON
ON TuyaReceived#DpType4Id101=1 DO Publish stat/tasmota_94C8A4/RESULT {"Kettle_Mode":"60"} ENDON
ON TuyaReceived#DpType4Id101=2 DO Publish stat/tasmota_94C8A4/RESULT {"Kettle_Mode":"85"} ENDON
ON TuyaReceived#DpType4Id101=3 DO Publish stat/tasmota_94C8A4/RESULT {"Kettle_Mode":"100"} ENDON
ON TuyaReceived#DpType4Id101=4 DO Publish stat/tasmota_94C8A4/RESULT {"Kettle_Mode":"HEATUP"} ENDON
ON TuyaReceived#DpType4Id101=5 DO Publish stat/tasmota_94C8A4/RESULT {"Kettle_Mode":"KEEPWARM"} ENDON
ON TuyaReceived#DpType4Id101=6 DO Publish stat/tasmota_94C8A4/RESULT {"Kettle_Mode":"STANDBY"} ENDON
ON TuyaReceived#DpType5Id104=0x00 DO Publish stat/tasmota_94C8A4/RESULT {"Error_notification":"NO"} ENDON
ON TuyaReceived#DpType5Id104=0x01 DO Publish stat/tasmota_94C8A4/RESULT {"Error_notification":"EMPTY"} ENDON
ON TuyaReceived#DpType5Id104=0x04 DO Publish stat/tasmota_94C8A4/RESULT {"Error_notification":"OVERHEATED"} ENDON
ON TuyaReceived#DpType2Id105 DO Publish stat/tasmota_94C8A4/RESULT {"Temperature":"%value%"} ENDON
ON TuyaReceived#DpType2Id107 DO Publish stat/tasmota_94C8A4/RESULT {"Remaining_Time":"%value%"} ENDON
Alles anzeigen
In ioBroker benutze ich den sonoff-Adapter, um die Werte zu empfangen: https://github.com/ioBroker/ioBroker.sonoff
Ich hoffe, ich konnte damit jemandem helfen. Es hat einige Stunden gedauert, das herauszufinden. Vielleicht war ich aber auch einfach nur zu blöd...
Spoiler anzeigen
_____________________________________________________
Edit (02.07.2020): So, das war eine Geburt, ich habe es hinbekommen. Ihr könnt euch also das Überlegen sparen. Ich schreibe morgen die Lösung hier hinein, damit andere vielleicht bei ähnlichen Problemen daran anknüpfen können.
____________________________________________________
Guten Abend,
ich habe ein Problem, welches ich einfach nicht gelöst bekomme. Ich habe einen Wasserkocher gekauft, dann Tasmota geflasht und nach folgender Einleitung in Tasmota Relays in WebUI angelegt.
Der obige Code erzeugt also nun einen Button, welcher das Gerät auf 45°C einstellt. Ebenso habe ich Buttons für 60, 85°C usw. erstellt:
Rule1 ON Power1#State=1 DO TuyaSend4 101,0 ENDON ON Power1#State=0 DO TuyaSend4 101,6 ENDON ON Power2#State=1 DO TuyaSend4 101,1 ENDON ON Power2#State=0 DO TuyaSend4 101,6 ENDON ON Power3#State=1 DO TuyaSend4 101,2 ENDON ON Power3#State=0 DO TuyaSend4 101,6 ENDON ON Power4#State=1 DO TuyaSend4 101,3 ENDON ON Power4#State=0 DO TuyaSend4 101,6 ENDON ON Power5#State=1 DO TuyaSend4 101,5 ENDON ON Power5#State=0 DO TuyaSend4 101,6 ENDON ON Power6#State=1 DO TuyaSend4 101,4 ENDON ON Power6#State=0 DO TuyaSend4 101,6 ENDON
In ioBroker (sonoff Modul) wurden die entsprechenden Power1 bis Power6 auch automatisch angelegt. Das Gerät kann also von dort aus gesteuert werden. Das Problem ist jedoch, dass nun keine Veränderungen in ioBroker angezeigt werden, wenn ich das Gerät direkt an den eigenen Tasten bediene. Man kann folglich nur Befehle zum Gerät senden, Statusänderungen vom Gerät kommen aber nicht bei ioBroker an. Das ist ja irgendwie auch klar, habe ich ja Power1-Power6 mit den Werten 101,0 bis 101,5 verknüpft. In ioBroker bekomme ich wenn überhaupt nur true oder false angezeigt.
Meine Frage also: Was muss ich machen, damit ich von fnId 101 einfach dpId als Wert (in diesem Fall zwischen 0 und 5) in ioBroker angezeigt bekomme. Ich möchte nämlich eine Sprachausgabe bei Alexa einstellen, wenn das Wasser fertig ist, also der Wert wieder auf 101,6 zurückwechselt.
Ich hoffe, ich habe mich nicht zu umständlich ausgedrückt.
Vielen Dank schon einmal für die Hilfe. Liebe Grüße, Novalis