Hallo, ich bitte um Hilfe, obwohl mancher sagen wird "Lesen", oder "Google".
Ich habe schon viel gelesen, https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele (https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele) aber nicht viel verstanden. Ich denk weil mir einige Grundkenntnisse fehlen....hoffe zumindest das es das ist...
Ich habe einige Sonoff Schalter umgeflascht auf Tasmota.
Ich habe jetzt MQTT2 entdeckt, was einfacher scheint als MQTT mit Broker...
Ich habe den MQTT2 Server gestarter, und mein FHEM hat direkt ein Tasmota device entdeckt. Im Tasmota habe ich folgendes Konfiguriert. Allerdings verstehe ich offenbar einige Grundeinstellung nicht. Ich habe folgender Beitrag gelesen, der mir sehr geholfen hat, fueht mich aber noch nicht zum Erfolg (Steuern/notify/twightlight/etc. von meinen Tasmota devices.
Frage ist, gibt es irgendwo eine noch einfachere Erklaerung wie ich die Tasmota devices in meinem FHEM konfiguriere, so das ich mit diesen devices die sonstigen FHEM Funktionen einsetzen kann (an/aus/notify/etc. etc.).
Danke und sorry für meine Amateurhafte Fragen....
Host ()
192.168.178.55
Port (1883)
1883
client (DVES_9B01BD)
DVES_%06X
Benutzer (DVES_USER)
DVES_USER
Passwort
•••••••••
topic = %topic% (sonoff)
sonoffkitchen
full topic (%prefix%/%topic%/)
%prefix%/%topic%/
Hi,
bisher habe ich noch kein Tasmota-Device, aber evtl. bekommen wir das zusammen hin ;) .
Hast du jetzt ein Tasmota-Device automatisch angelegt bekommen oder ein MQTT2_DEVICE?
Wenn ersteres: k.A., warum...
Wenn letzteres: Bitte ein list davon.
Dann wäre noch hilfreich zu wissen, auf welchen Topics so ein Tasmota-Gerät welche Befehle erwartet, also was mit mosquitto_pub auf der Konsole zu sehen wäre (oder einem anderen Programm, mit dem man den Verkehr auf dem Server mitlesen kann)
Des Pudels Kern ist das setList-Attribut (und ein paar andere, die damit zusammenspielen). Danach bestimmt sich, welche Befehle das MQTT2-Device überhaupt versteht ("on", "off", mache irgendwas für eine Timerdauer, sende einen IR-Code usw.).
Deswegen fände ich es gut, wenn wir gemeinsam den Wiki-Artikel entsprechend ergänzen könnten, gerne auch in eine Form, die für Leute verständlicher ist, die noch nie mit MQTT zu tun hatten.
Gruß, Beta-User
Hi und danke schonmal!
Also, ich habe den server Kreirt:
define m2server MQTT2_SERVER 1883 global
Danach habe ich den autocreate Attr bei dem m2server auf 1 gesetzt.
Darauf sind 3 neue devices erschienen in FHEM, also automatisch, und zwar in der MQTT2_SERVER Spalte
m2server_192.168.178.151_1271 Connected
m2server_192.168.178.152_16869 Connected
m2server_192.168.178.153_32658 Connected
Ich habe drei Tasmota devices am Strom.
In der MQTT2_DEVICE Spalte stehen folgendes devices:
MQTT2_DEVICE
MQTT2_DVES_115786 ???
MQTT2_DVES_9B01BD ???
MQTT2_DVES_A2EB78 ???
Bei dem Server selbst steht:
m2server Initialized
Ein List von einem device:
Internals:
BUF
FD 13
NAME m2server_192.168.178.153_32658
NR 68
PEER 192.168.178.153
PORT 32658
SNAME m2server
SSL
STATE Connected
TEMPORARY 1
TYPE MQTT2_SERVER
WBCallback
cflags 238
cid DVES_9B01BD
keepalive 15
lastMsgTime 1538831332.17172
lwt tele/sonoffkitchen/LWT:offline
protoNum 4
protoTxt MQTT
usr DVES_USER
READINGS:
2018-10-06 15:02:07 state Connected
subscriptions:
cmnd/DVES_9B01BD/# 1538830927.3071
cmnd/sonoffkitchen/# 1538830927.30515
cmnd/sonoffs/# 1538830927.30636
Attributes:
room hidden
Zitat von: Beta-User am 06 Oktober 2018, 14:48:19
Dann wäre noch hilfreich zu wissen, auf welchen Topics so ein Tasmota-Gerät welche Befehle erwartet, also was mit mosquitto_pub auf der Konsole zu sehen wäre (oder einem anderen Programm, mit dem man den Verkehr auf dem Server mitlesen kann)
Da verliertst Du mich schon...deswegen denke ich das ich einige Kern Punkte noch nicht verstanden habe.
Uebrigens, ich habe keinen Broker oder sonst was installiert. Soweit ich das verstanden habe, funktioniert diese MQTT2 Module allein mit dem MQTT2 den man startet in FHEM.
danke nochmals!
Bitte ein list von (z.B.) MQTT2_DVES_115786
Das sollte einer der Tastmota-ESPs sein (der Server interessiert erst mal nicht, solange er auf autocreate steht.
Dass kein Broker außer MQTT2_SERVER installiert ist, ist schon klar und i.O.. Aber auch an dem kann mosquitto_sub lauschen ;) . (Und vermutlich auch senden, aber das habe ich noch nie gemacht.)
Hi Sorry, hier das List von einem device, das mit der IP 192.168.178.53
Internals:
CID DVES_9B01BD
DEF DVES_9B01BD
DEVICETOPIC MQTT2_DVES_9B01BD
IODev m2server
LASTInputDev m2server
MSGCNT 4
NAME MQTT2_DVES_9B01BD
NR 25
STATE ???
TYPE MQTT2_DEVICE
m2server_MSGCNT 4
m2server_TIME 2018-10-06 15:43:56
READINGS:
2018-10-06 15:24:07 LWT online
2018-10-06 15:43:56 POWER off
2018-10-06 15:43:56 Time 2018-10-06T14:43:56
2018-10-06 15:43:56 Uptime 1T07:16:36
2018-10-06 15:43:56 Vcc 3.115
2018-10-06 15:43:56 Wifi_AP 1
2018-10-06 15:43:56 Wifi_APMac E0:28:6D:75:EF:0F
2018-10-06 15:43:56 Wifi_RSSI 70
2018-10-06 15:43:56 Wifi_SSId TBH7590
Attributes:
IODev m2server
readingList DVES_9B01BD:tele/sonoffkitchen/STATE:.* { json2nameValue($EVENT) }
DVES_9B01BD:tele/sonoffkitchen/LWT:.* LWT
DVES_9B01BD:cmnd/sonoffkitchen/POWER:.* POWER
room MQTT2_DEVICE
OK, jetzt brauchen wir also das MQTT-Topic, auf dem Tasmota Befehle erwartet. Nach dem hier (https://forum.fhem.de/DVES_9B01BD:tele/sonoffkitchen/) müßte es auf "cmnd" gehen; danach könnte das so aussehen:
DVES_9B01BD:tele/sonoffkitchen/cmnd
Versuche es mal mit folgendem:
attr DVES_9B01BD setList .* {"DVES_9B01BD:tele/sonoffkitchen/cmnd $EVENT}"}
attr DVES_9B01BD webCmd on:off
Das hier könnte dir weiter helfen: https://forum.fhem.de/index.php/topic,90220.0.html
Zitat von: Beta-User am 06 Oktober 2018, 16:51:42
Versuche es mal mit folgendem:
attr DVES_9B01BD setList .* {"DVES_9B01BD:tele/sonoffkitchen/cmnd $EVENT}"}
attr DVES_9B01BD webCmd on:off
Habe folgendes eingegeben und wurde auch akzeptiert:
attr MQTT2_DVES_9B01BD setList .* {"MQTT2_DVES_9B01BD:tele/sonoffkitchen/cmnd $EVENT}"}
attr MQTT2_DVES_9B01BD webCmd on:off
Danach sehe ich in der Spalte MQTT_DEVICE:
MQTT2_DEVICE
MQTT2_DVES_115786 ???
MQTT2_DVES_9B01BD ??? on off
MQTT2_DVES_A2EB78 ???
Wenn ich allerdings auf on oder off druecke kommt ein Fenster mit folgendes:
Unknown argument on, choose one of .*
Ein list zeigt folgendes:
Internals:
CID DVES_9B01BD
DEF DVES_9B01BD
DEVICETOPIC MQTT2_DVES_9B01BD
IODev m2server
LASTInputDev m2server
MSGCNT 6
NAME MQTT2_DVES_9B01BD
NR 25
STATE ???
TYPE MQTT2_DEVICE
m2server_MSGCNT 6
m2server_TIME 2018-10-06 19:02:00
READINGS:
2018-10-06 18:49:01 LWT online
2018-10-06 18:59:53 POWER off
2018-10-06 19:02:00 Time 2018-10-06T18:02:00
2018-10-06 19:02:00 Uptime 1T10:34:40
2018-10-06 18:59:53 Vcc 3.116
2018-10-06 18:59:53 Wifi_AP 1
2018-10-06 18:59:53 Wifi_APMac E0:28:6D:75:EF:0F
2018-10-06 18:59:53 Wifi_RSSI 70
2018-10-06 18:59:53 Wifi_SSId TBH7590
Attributes:
IODev m2server
readingList DVES_9B01BD:tele/sonoffkitchen/STATE:.* { json2nameValue($EVENT) }
DVES_9B01BD:tele/sonoffkitchen/LWT:.* LWT
DVES_9B01BD:cmnd/sonoffkitchen/POWER:.* POWER
DVES_9B01BD:tele/sonoffkitchen/UPTIME:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
setList .* {"MQTT2_DVES_9B01BD:tele/sonoffkitchen/cmnd $EVENT}"}
webCmd on:off
Danke fuer die Hilfe nochmals!
Zitat von: Mitch am 06 Oktober 2018, 17:13:32
Das hier könnte dir weiter helfen: https://forum.fhem.de/index.php/topic,90220.0.html (https://forum.fhem.de/index.php/topic,90220.0.html)
Bist du diesem Link mal gefolgt?
Der Versuch, alle "set"-Befehle über ".*" abzufangen war wohl keine so gute Idee. So sollte es lt. dem Thread dann gehen:
attr DVES_9B01BD setList on cmnd/sonoff/POWER on\
off cmnd/sonoff/POWER off\
reboot cmnd/sonoff/Restart 1
Um die Elemente dann direkt anzusteuern noch:
attr DVES_9B01BD webCmd on:off:reboot
Zitat von: Beta-User am 07 Oktober 2018, 08:10:53
Bist du diesem Link mal gefolgt?
Ja, habe ich auch schon vorher probiert zu folgen, darueber habe ich gelernt den MQTT2 server/devices einzurichten.
Also dann, anstatt das:
attr MQTT2_DVES_9B01BD setList .* {"MQTT2_DVES_9B01BD:tele/sonoffkitchen/cmnd $EVENT}"}
Sollte ich folgendes eingeben:
attr MQTT2_DVES_9B01BD setList on cmnd/sonoff/POWER on\off cmnd/sonoff/POWER off\reboot cmnd/sonoff/Restart 1
Und danach:
Zitat von: Beta-User am 07 Oktober 2018, 08:10:53
attr MQTT2_DVES_9B01BD webCmd on:off:reboot
Frage ist, wie entferne ich die Sachen die ich vorher eingegeben habe? Sollte ich diese zuerst im raw view löschen?
danke.
Genau.
Entweder du klickst auf das jeweilige Attribut und änderst den Inhalt entsprechend (auf "attr" klicken nicht vergessen) oder über RAW, wobei ich letzteres für mehrere Änderungen bevorzuge. Es reicht auch, nur die geänderten Werte zu übernehmen, also den Code wie unten gepostet als einzige in die RAW-Zeilen einzugeben und "execute"...
Ok, genau so gemacht, keine Fehler.
Jetzt habe ich folgendes in der MQTT2_DEVICE box:
MQTT2_DEVICE
MQTT2_DVES_9B01BD on off reboot
sonoffs20_1 ???
sonoffs20_2 ???
Die anderen zwei Tasmota devices hatte ich umbenannt.
Allerdings wenn ich auf On druecke geht das licht nicht an, und in dem Event Monitor kommt
2018-10-07 08:33:45 MQTT2_DEVICE MQTT2_DVES_9B01BD on
Wenn ich danch auf Off druecke kommt ein kleines fenster mit:
Unknown argument off, choose one of on
Im Log file sind keine Eintraege...
Ein List vom device:
Internals:
CID DVES_9B01BD
DEF DVES_9B01BD
DEVICETOPIC MQTT2_DVES_9B01BD
IODev m2server
LASTInputDev m2server
MSGCNT 195
NAME MQTT2_DVES_9B01BD
NR 25
STATE on
TYPE MQTT2_DEVICE
m2server_MSGCNT 195
m2server_TIME 2018-10-07 08:37:26
READINGS:
2018-10-07 08:16:31 LWT online
2018-10-07 08:37:26 POWER off
2018-10-07 08:37:26 Time 2018-10-07T07:37:26
2018-10-07 08:37:26 Uptime 2T00:10:06
2018-10-07 08:37:26 Vcc 3.116
2018-10-07 08:37:26 Wifi_AP 1
2018-10-07 08:37:26 Wifi_APMac E0:28:6D:75:EF:0F
2018-10-07 08:37:26 Wifi_RSSI 68
2018-10-07 08:37:26 Wifi_SSId TBH7590
2018-10-07 08:36:43 state on
Attributes:
IODev m2server
readingList DVES_9B01BD:tele/sonoffkitchen/STATE:.* { json2nameValue($EVENT) }
DVES_9B01BD:tele/sonoffkitchen/LWT:.* LWT
DVES_9B01BD:cmnd/sonoffkitchen/POWER:.* POWER
DVES_9B01BD:tele/sonoffkitchen/UPTIME:.* { json2nameValue($EVENT) }
DVES_9B01BD:stat/sonoffkitchen/RESULT:.* { json2nameValue($EVENT) }
DVES_9B01BD:stat/sonoffkitchen/POWER:.* POWER
room MQTT2_DEVICE
setList on cmnd/sonoff/POWER on\off cmnd/sonoff/POWER off\reboot cmnd/sonoff/Restart 1
webCmd on:off:reboot
Die setList sollte mehrzeilig sein; ob das so ist, kann ich hier nicht so recht erkennen, scheint aber nicht so...
Hi, also im RAW steht folgendes, also die setList ist nicht mehrzeiligh.
defmod MQTT2_DVES_9B01BD MQTT2_DEVICE DVES_9B01BD
attr MQTT2_DVES_9B01BD IODev m2server
attr MQTT2_DVES_9B01BD readingList DVES_9B01BD:tele/sonoffkitchen/STATE:.* { json2nameValue($EVENT) }\
DVES_9B01BD:tele/sonoffkitchen/LWT:.* LWT\
DVES_9B01BD:cmnd/sonoffkitchen/POWER:.* POWER\
DVES_9B01BD:tele/sonoffkitchen/UPTIME:.* { json2nameValue($EVENT) }\
DVES_9B01BD:stat/sonoffkitchen/RESULT:.* { json2nameValue($EVENT) }\
DVES_9B01BD:stat/sonoffkitchen/POWER:.* POWER
attr MQTT2_DVES_9B01BD room MQTT2_DEVICE
attr MQTT2_DVES_9B01BD setList on cmnd/sonoff/POWER on\off cmnd/sonoff/POWER off\reboot cmnd/sonoff/Restart 1
attr MQTT2_DVES_9B01BD webCmd on:off:reboot
Zitat von: Beta-User am 07 Oktober 2018, 08:43:24
Die setList sollte mehrzeilig sein;
...dann bitte entsprechend ändern ;) .
Ok, gemacht, sieht jetzt so aus im RAW:
attr MQTT2_DVES_9B01BD setList on cmnd/sonoff/POWER on\
off cmnd/sonoff/POWER off\
reboot cmnd/sonoff/Restart 1
Bei On druecken geht Licht nicht an, und im Monitor kommt folgendes:
2018-10-07 09:01:31 MQTT2_DEVICE MQTT2_DVES_9B01BD on
Bei Off kommt kein Fehler mehr.
List sieht so aus:
Internals:
CID DVES_9B01BD
DEF DVES_9B01BD
DEVICETOPIC MQTT2_DVES_9B01BD
IODev m2server
LASTInputDev m2server
MSGCNT 205
NAME MQTT2_DVES_9B01BD
NR 25
STATE on
TYPE MQTT2_DEVICE
m2server_MSGCNT 205
m2server_TIME 2018-10-07 09:02:26
READINGS:
2018-10-07 08:16:31 LWT online
2018-10-07 09:02:26 POWER off
2018-10-07 09:02:26 Time 2018-10-07T08:02:27
2018-10-07 09:02:26 Uptime 2T00:35:07
2018-10-07 09:02:26 Vcc 3.117
2018-10-07 09:02:26 Wifi_AP 1
2018-10-07 09:02:26 Wifi_APMac E0:28:6D:75:EF:0F
2018-10-07 09:02:26 Wifi_RSSI 70
2018-10-07 09:02:26 Wifi_SSId TBH7590
2018-10-07 09:04:31 state on
Attributes:
IODev m2server
readingList DVES_9B01BD:tele/sonoffkitchen/STATE:.* { json2nameValue($EVENT) }
DVES_9B01BD:tele/sonoffkitchen/LWT:.* LWT
DVES_9B01BD:cmnd/sonoffkitchen/POWER:.* POWER
DVES_9B01BD:tele/sonoffkitchen/UPTIME:.* { json2nameValue($EVENT) }
DVES_9B01BD:stat/sonoffkitchen/RESULT:.* { json2nameValue($EVENT) }
DVES_9B01BD:stat/sonoffkitchen/POWER:.* POWER
room MQTT2_DEVICE
setList on cmnd/sonoff/POWER on
off cmnd/sonoff/POWER off
reboot cmnd/sonoff/Restart 1
webCmd on:off:reboot
versuch's mal mit
sonoffkitchen statt sonoff (in den setList-Angaben). Da passen die Dinge wohl noch nicht so richtig zusammen.
Ha! Funktioniert!
Danke!
Jetzt noch die Fragen:
fuer was genau ist reboot?
Und, kann ich einfach das device (sonoffs20_1) ganz normal in meinen notify/set on/etc einbinden?
nochmals, danke!
reboot gibts bei Tasmota nicht zumindest ist es nicht dokumentiert (https://github.com/arendst/Sonoff-Tasmota/wiki/Commands).
ZitatUnd, kann ich einfach das device (sonoffs20_1) ganz normal in meinen notify/set on/etc einbinden?
Klar, in jedem Hilfsmodul.
das Reboot habe ich nur aus dem anderen Thread übernommen; ob das für was gut ist oder überhaupt funktioniert: keine Ahnung...
Kannst du den Thread noch als "gelöst" kennzeichnen?
Einwände, wenn ich das so ins Wiki übernehme? Hast du mir dazu noch eine Modellbezeichnung, für das das hier gilt und eine Tasmota-Version?
Gruß, Beta-User
Hi, und nochmals danke.
Ich markiere das gleich als geloest.
Die Tasmota version(en) sind 6.1.1 und 6.2.1. Ich habe das an beiden jetzt probiert und funktioniert. Oders meinst Du FHEM Software Version? Das waere Latest Revision: 17469
Kein Problem das so zu übernehmen, gut wenn mehrere davon profitieren!
Die Sonoff Schalter wo ich das jetzt so konfiguriert habe sind der Sonoff Touch und die einfachen S20
Nochmals vielen Dank!
Danke für die Infos, die Tasmota-Versionen und die Typ-Angabe war wichtig, für den Fall, dass sich da zukünftig mal was ändern sollte oder jemand ein 4-fach-Sonoff nutzt.
Dein Muster-Device steht jetzt im Wiki, darfst gerne (im Wiki-Bereich) Anmerkungen machen, wenn was besser erklärt werden sollte...
Thanks!
Sent from my SM-N960F using Tapatalk
Sorry, war wohl nicht ganz bei der Sache, natürlich kann man das Kommando mit setlist nennen wie man will.
Restart 1 ist dokumentiert und startet den ESP einfach neu.