FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: slor am 27 April 2017, 23:27:09

Titel: beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: slor 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?
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: P.A.Trick 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

Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag 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?
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: P.A.Trick am 28 April 2017, 21:14:03
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!
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag 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

Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: slor am 10 Juni 2017, 13:28:58
Das wäre cool! Ich nehme dazu immer einen Mqtt Client auf meinem Rechner oder Handy.
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: P.A.Trick am 10 Juni 2017, 13:34:34
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.
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: P.A.Trick 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

Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: slor am 10 Juni 2017, 18:46:46
Daumen hoch! Die IP ist der MQTT Broker? Richtig?
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: P.A.Trick am 10 Juni 2017, 18:50:28
Zitat von: slor am 10 Juni 2017, 18:46:46
Daumen hoch! Die IP ist der MQTT Broker? Richtig?

Japp!
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: Dlay 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.
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: Dlay am 18 Juni 2017, 22:25:39
Klappt astrein !

Vielen Dank !
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: Dlay 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..
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: hexenmeister 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
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: Dlay 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 (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.
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: hexenmeister am 27 Juni 2017, 23:50:53
Falls jemand testen mag...
https://forum.fhem.de/index.php/topic,32528.msg653347.html#msg653347
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: australien am 02 Februar 2019, 09:59:22
hallo

Das mit dem mqttmsg funktioniert super, nur bekomme ich beim Ausführen dieser folgende Fehlermeldung

Warning: Unable to locate configuration directory, default config not loaded.

mqtt funktioniert aber, auch die Befehle werden richtig ausgeführt.
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: hexenmeister am 02 Februar 2019, 10:25:17
Das MQTT Modul kann schon länger ohne zusatzscripte Nachrichten versenden. Wozu brauchst du die mqttmsg?
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: australien am 02 Februar 2019, 10:52:35
Ich will diese zwei Relais schalten,

mqttmsg cmnd/tvlift/power1 off; mqttmsg cmnd/tvlift/power2 on;

danke, hab es gefunden und geändert
set myBroker publish cmnd/tvlift/power1 off; set myBroker publish cmnd/tvlift/power2 on;
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: petjek am 28 Februar 2019, 22:16:33
Zitat von: hexenmeister am 02 Februar 2019, 10:25:17
Das MQTT Modul kann schon länger ohne zusatzscripte Nachrichten versenden. Wozu brauchst du die mqttmsg?
Das habe ich mir auch gedacht. Mir ist nur unklar, wie ich das nun hin bekomme.
Ich möchte gerne meiner Awtrix https://blueforcer.de/awtrix-2-0/ (https://blueforcer.de/awtrix-2-0/) zu bestimmten Zeitpunkten/bei bestimmten Ereignissen eine Nachricht publishen.
Mir erschließt sich nur so gar nicht, welches der MQTT-Devices ich dazu benötige.
Grundsätzlich könnteoder sollte das z.B. so aussehen
define AwtrixDimmen AT *{sunset(0,"18:00","22:00")} publish SmartHome/awtrix/basics {"brightness":20}
Sprich: bei Sonnenuntergang/frühestens/spätestens soll die Awtrix gedimmt werden. Mir ist klar, dass ich da wahrscheinlich Nonsens zusammengeschrieben habe, soll nur beispielhaft sein. Setze ich das Topic wie oben geschrieben über MQTT.fx ab funktioniert das schon mal 1a.

Andererseits würde ich z.B. gerne die Octoprint-App auf der Awtrix deaktivieren, wenn der 3D-Drucker nichts tut. Das würde ich ja grundsätzlich über einen DOIF machen wollen.
Mir erschließt sich nur nicht wie. Und ja, ich habe die Commandref gelesen. Nur eben nicht verstanden. ::)

Kann mich jemand aufschlauen?

LG p
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: hexenmeister am 28 Februar 2019, 23:08:09
Um mit Hilfe eines eingerichteten MQTT-Gerätes ein Topic anzusetzen muss einfach
set <name_der_MQTT_Geraeteinstanz> publish SmartHome/awtrix/basics {"brightness":20}
ausgeführt werden. Kann natürlich auch in AT-Befehl verwendet werden.

Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: petjek am 01 März 2019, 10:02:17
Zitat von: hexenmeister am 28 Februar 2019, 23:08:09
Um mit Hilfe eines eingerichteten MQTT-Gerätes ein Topic anzusetzen muss einfach
set <name_der_MQTT_Geraeteinstanz> publish SmartHome/awtrix/basics {"brightness":20}
ausgeführt werden. Kann natürlich auch in AT-Befehl verwendet werden.
Und genau daran scheitere ich gerade.
Z.B. sind bei der Awtrix die Commands für Ein-/Ausschalten {"power": true} bzw. {"power": false}. Funktioniert auch ohne das Leerzeichen hinter dem Doppelpunkt, habe ich gesehen.
Wenn ich nun das Attribut publishSet so anlege
attr BU_Awtrix publishSet switch:on,off SmartHome/awtrix/basics
muss ich, soweit ich verstanden habe, eine eventMap anlegen, da die Befehle zum Ein-/Ausschalten nicht on/off sind.
attr BU_Awtrix eventMap {"power":true}:on {"power":false}:off ist auf jeden Fall mal falsch.
In MQTT.fx sehe ich dann, dass "on" bzw. "off" gesendet werden.

Hat jemand Rat?
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: hexenmeister am 01 März 2019, 10:59:58
Die Frage war nach einem direkten Absetzen von MQTT-Topics. Das geht mit einem 'set' in dem Device 'MQTT', also an dem IO-Gerät. Da gibt es keine 'publishSet' oder 'eventMap'.
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: petjek am 01 März 2019, 11:09:04
Oh! So einfach? Klappt, danke.
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: hexenmeister am 01 März 2019, 13:41:59
Zitat von: petjek am 01 März 2019, 11:09:04
Oh! So einfach?
Manchmal ja ;D
Titel: Antw:beliebige MQTT Befehle / Topics aus Fhem absetzen
Beitrag von: huhu am 21 Juni 2020, 10:14:08
Hallo zusammen,

ich würde gerne ein Sonoff MQTT Device über FHEM mit dem Tasmota Konsolenbefehl:

Backlog power1 on; delay 5; power1 off steuern.

Wie genau kann ich das in FHEM umsetzen? Oder kann ich das MQTT Device mit einer URL und dem Konsolenbefehl aufrufen?

So wird leider nur der letzte Befehl (OFF) gesendet:
set Sonoff_Garage publish power1 on; set Sonoff_Garage publish delay 5; set Sonoff_Garage publish power1 off

Danke und Viele Grüße
huhu