beliebige MQTT Befehle / Topics aus Fhem absetzen

Begonnen von slor, 27 April 2017, 23:27:09

Vorheriges Thema - Nächstes Thema

slor

Hallo zusammen,

ist es möglich aus Fhem irgendwie direkt Befehle an den MQTT broker zu übergeben?

z.b. cmnd/sonoffs/restart 1

Damit könnte ich bei bedarf alle Sonoffs neu starten. Der Befehl geht auf einen Group topic. Das ist jetzt nur mal ein Beispiel.
Was müsste ich tun, damit so etwas z.b. via Notify oder task ausführbar ist?
Fhem auf Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

P.A.Trick

Ja geht mit der MQTT Bridge! Hier mal ein Beispiel wie ich meine Stromdaten an den Broker gebe!
defmod mqtt_Strom MQTT_BRIDGE Strom
attr mqtt_Strom IODev myBroker
attr mqtt_Strom publishReading_current /Strom/current
attr mqtt_Strom stateFormat transmission-state

setstate mqtt_Strom outgoing publish sent
setstate mqtt_Strom 2017-04-27 23:54:08 transmission-state outgoing publish sent

Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

slor

super! Danke!

Könnte ich umgekehrt auch ein "Log Device" bauen, bei dem ich nach Bedarf verschiedene Topics mit loggen kann?
Fhem auf Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

P.A.Trick

Zitat von: slor am 28 April 2017, 21:00:06
super! Danke!

Könnte ich umgekehrt auch ein "Log Device" bauen, bei dem ich nach Bedarf verschiedene Topics mit loggen kann?

Klar geht das! Genauso allerdings mit dem Subscribe Reading!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Dlay

Das Thema interessiert mich auch, allerdings verstehe ich bei den obigen Antworten nur Bahnhof.

Ich bin allerdings auch blutiger Anfänger.

Kann man oben in der Eingabezeile bei fhem nicht ein beliebiges publish zum test absetzen ?

z.b.

set <mqttdevice> publish <topic>/<commando> 1


slor

Das wäre cool! Ich nehme dazu immer einen Mqtt Client auf meinem Rechner oder Handy.
Fhem auf Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

P.A.Trick

Zitat von: Dlay am 10 Juni 2017, 01:05:46
Das Thema interessiert mich auch, allerdings verstehe ich bei den obigen Antworten nur Bahnhof.

Ich bin allerdings auch blutiger Anfänger.

Kann man oben in der Eingabezeile bei fhem nicht ein beliebiges publish zum test absetzen ?

z.b.

set <mqttdevice> publish <topic>/<commando> 1

Das ist leider so nicht möglich. Allerdings kommt mir dabei die Idee, das mit einem cmdAlias und einem Systemaufruf zu realisieren.
Ich schaue mal, ob ich so etwas hinbekomme.
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

P.A.Trick

#7
defmod c_mqttmsg cmdalias mqttmsg .* AS {qx(/usr/bin/mosquitto_pub -h 192.168.1.101 -t \'$EVTPART0\' -m \'$EVTPART1\')}

setstate c_mqttmsg defined



Hier mal ein Alias dafür! Die IP Adresse müsst Ihr anpassen und dann wie folgt aufrufen:

mqttmsg <TOPIC> <MESSAGE>

Viel Spaß damit!

*EDIT*
Ich habe den alias noch ins Wiki übernommen!
https://wiki.fhem.de/wiki/Cmdalias#mqttmsg

Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

slor

Daumen hoch! Die IP ist der MQTT Broker? Richtig?
Fhem auf Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

P.A.Trick

Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Dlay

Super, danke !

Das werde ich auch testen..

Ich würde das nutzen um ein Firmware-Update aller Devices anzustarten.

Dlay


Dlay

#12
Naja, also nicht so ganz.. vielleicht liegt mein neues Problem aber auch woanders.

Ich versuche ein JSON String mitzusenden, der scheint aber nicht anzukommen.

Hintergrund:

Ich habe eine IR LED an GPIO14 eines Sonoff Basic gehängt. Das wird von Tasmota ja direkt so unterstützt.
Wenn ich zum Test meinen Befehl in der Tasmota Console eingebe funktioniert der IR Code wunderbar.

Wenn ich das über mqttmsg in der fhem Eingabezeile mache mit:

mqttmsg /zuhause/schalter/mqtt_sonoff_2/cmnd/IRSend {"protocol": "NEC","bits": 32, "data": 1082071271}

dann gibt mir die Tasmota Console folgendes aus (Console im Debug-Mode):

23:44:16 RSLT: Receive topic /zuhause/schalter/mqtt_sonoff_2/cmnd/IRSend, data size 12, data {"protocol":
23:44:16 RSLT: DataCb Group 0, Index 1, Type IRSEND, Data {"protocol": ({"PROTOCOL":)
23:44:16 MQTT: /zuhause/schalter/mqtt_sonoff_2/RESULT = {"IRSend":"Invalid JSON"}

Das gleiche Kommando direkt in der Console ergibt:

23:45:33 RSLT: Receive topic /IRSend, data size 50, data {"protocol": "NEC","bits": 32, "data": 1082071271}
23:45:33 RSLT: DataCb Group 0, Index 1, Type IRSEND, Data {"protocol": "NEC","bits": 32, "data": 1082071271} ({"PROTOCOL": "NEC","BITS": 32, "DATA": 1082071271})
23:45:34 MQTT: /zuhause/schalter/mqtt_sonoff_2/RESULT = {"IRSend":"Done"}

Könnte es sein das mqttmsg die Klammern "verschluckt" ?

Auf dem Pi mit:
mosquitto_pub -h 192.168.1.1 -t /zuhause/schalter/mqtt_sonoff_2/cmnd/IRSend -m '{"protocol": "NEC","bits": 32, "data": 1082071271}'

Funktioniert es auch.

Ich bin etwas ratlos..

hexenmeister

Die Idee hatte ich auch schon. Ich werde das vlt. auch noch implementieren und einen entsprechenden Patch einreichen.
Hier etwas mehr zu den geplanten Features:
https://forum.fhem.de/index.php/topic,32528.msg651660.html#msg651660
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Dlay

In einem anderen Thread bekam ich eine folgende Antwort die auch funktioniert hat:

https://forum.fhem.de/index.php/topic,73453.msg651009.html#msg651009

Das mqttmsg muss wohl noch angepasst werden, dahingehend das mehrere Evparts vorkommen können. So meine Vermutung.