Autor Thema: beliebige MQTT Befehle / Topics aus Fhem absetzen  (Gelesen 1421 mal)

Offline slor

  • Full Member
  • ***
  • Beiträge: 360
beliebige MQTT Befehle / Topics aus Fhem absetzen
« am: 27 April 2017, 23:27:09 »
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 Cubietruck mit Igor Image (weezy)
FS20, Homematic, MQTT, Telegram, Sonoff mit Tasmota Firmware, Bluetooth Anwesenheitserkennung mit Handys

Offline P.A.Trick

  • Hero Member
  • *****
  • Beiträge: 1630
  • Love it, change it or leave it
Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
« Antwort #1 am: 27 April 2017, 23:55:30 »
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

Offline slor

  • Full Member
  • ***
  • Beiträge: 360
Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
« Antwort #2 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?
FHEM auf Cubietruck mit Igor Image (weezy)
FS20, Homematic, MQTT, Telegram, Sonoff mit Tasmota Firmware, Bluetooth Anwesenheitserkennung mit Handys

Offline P.A.Trick

  • Hero Member
  • *****
  • Beiträge: 1630
  • Love it, change it or leave it
Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
« Antwort #3 am: 28 April 2017, 21:14:03 »
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

Offline Dlay

  • Jr. Member
  • **
  • Beiträge: 68
Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
« Antwort #4 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


Offline slor

  • Full Member
  • ***
  • Beiträge: 360
Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
« Antwort #5 am: 10 Juni 2017, 13:28:58 »
Das wäre cool! Ich nehme dazu immer einen Mqtt Client auf meinem Rechner oder Handy.
FHEM auf Cubietruck mit Igor Image (weezy)
FS20, Homematic, MQTT, Telegram, Sonoff mit Tasmota Firmware, Bluetooth Anwesenheitserkennung mit Handys

Offline P.A.Trick

  • Hero Member
  • *****
  • Beiträge: 1630
  • Love it, change it or leave it
Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
« Antwort #6 am: 10 Juni 2017, 13:34:34 »
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

Offline P.A.Trick

  • Hero Member
  • *****
  • Beiträge: 1630
  • Love it, change it or leave it
Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
« Antwort #7 am: 10 Juni 2017, 15:47:15 »
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

« Letzte Änderung: 10 Juni 2017, 15:53:57 von 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

Offline slor

  • Full Member
  • ***
  • Beiträge: 360
Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
« Antwort #8 am: 10 Juni 2017, 18:46:46 »
Daumen hoch! Die IP ist der MQTT Broker? Richtig?
FHEM auf Cubietruck mit Igor Image (weezy)
FS20, Homematic, MQTT, Telegram, Sonoff mit Tasmota Firmware, Bluetooth Anwesenheitserkennung mit Handys

Offline P.A.Trick

  • Hero Member
  • *****
  • Beiträge: 1630
  • Love it, change it or leave it
Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
« Antwort #9 am: 10 Juni 2017, 18:50:28 »
Daumen hoch! Die IP ist der MQTT Broker? Richtig?

Japp!
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

Offline Dlay

  • Jr. Member
  • **
  • Beiträge: 68
Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
« Antwort #10 am: 11 Juni 2017, 11:05:34 »
Super, danke !

Das werde ich auch testen..

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

Offline Dlay

  • Jr. Member
  • **
  • Beiträge: 68
Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
« Antwort #11 am: 18 Juni 2017, 22:25:39 »
Klappt astrein !

Vielen Dank !

Offline Dlay

  • Jr. Member
  • **
  • Beiträge: 68
Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
« Antwort #12 am: 20 Juni 2017, 23:34:50 »
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..
« Letzte Änderung: 21 Juni 2017, 13:36:15 von Dlay »

Offline hexenmeister

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3516
    • tech_LogBuch
Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
« Antwort #13 am: 24 Juni 2017, 15:12:24 »
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
Cubietruck, RPI3, HM, EnOcean, 1wire, Firmata, MySensors, ESP8266, ESPEasy, MQTT, NodeRED, Alexa, Telegram

Offline Dlay

  • Jr. Member
  • **
  • Beiträge: 68
Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
« Antwort #14 am: 25 Juni 2017, 17:53:09 »
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.

 

decade-submarginal