Espeasy Variable per MQTT ändern
-
- Beiträge: 2
- Registriert: 27. Okt 2018 20:59
Espeasy Variable per MQTT ändern
Hallo
Kann mir jemand sagen wo ich Infos finde,wie ich eine Variable (Dummy) im espeasy per mqtt vom openhab ändern kann. Bisher fand ich nur Anleitungen wie ich ein Relais schalten kann aber eben kein dummy der mit Tasksetvalue geändert werden müsste.
Vielen Dank
Ole
Kann mir jemand sagen wo ich Infos finde,wie ich eine Variable (Dummy) im espeasy per mqtt vom openhab ändern kann. Bisher fand ich nur Anleitungen wie ich ein Relais schalten kann aber eben kein dummy der mit Tasksetvalue geändert werden müsste.
Vielen Dank
Ole
-
- Beiträge: 2
- Registriert: 27. Okt 2018 20:59
Re: Espeasy Variable per MQTT ändern
Ok hab nun eine Lösung gefunden/ausprobiert:
ich verwende ein MQTT import device und publishe vom Openhab den Wert auf den ESP. Dort wird dann eine interne Regel (Rules) bei Änderung des MQTT-Wertes die Variable automatisch mit TaskSetValue überschreiben. Läuft
ich verwende ein MQTT import device und publishe vom Openhab den Wert auf den ESP. Dort wird dann eine interne Regel (Rules) bei Änderung des MQTT-Wertes die Variable automatisch mit TaskSetValue überschreiben. Läuft
-
- Beiträge: 3
- Registriert: 7. Jan 2019 19:06
Re: Espeasy Variable per MQTT ändern
Hallo olem_de,
ich stehe gerade vor derselben Frage - kannst du mir mal die Syntax vom publish-Kommando auf der OpenHAB-Seite zur Verfügung stellen?
VD
ich stehe gerade vor derselben Frage - kannst du mir mal die Syntax vom publish-Kommando auf der OpenHAB-Seite zur Verfügung stellen?
VD
- udo1toni
- Beiträge: 15265
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Espeasy Variable per MQTT ändern
Du koppelst das Topic mit einem Item und führst ein Item.sendCommand(Wert) aus. Wie MQTT grundsätzlich in openHAB konfiguriert wird, hängt von der verwendeten Version ab.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
-
- Beiträge: 3
- Registriert: 7. Jan 2019 19:06
Re: Espeasy Variable per MQTT ändern
Ok - einen Schritt zurück auf natives mosquitto_pub (mqtt und openhab2 läuft generell, ich hadere - vermutlich - mit der payload in Richtung espeasy):
@esp ist ein Device entstanden:
Device -> MQTT-in
Name -> MQTTin
Values -> Value1 (bis Value4 - ich möchte Value1 mit einem Wert versehen)
Linux-BASH auf dem Host, auf dem der Broker läuft (hier eine Spielart die nicht funktoniert):
mosquitto_pub -h 127.0.0.1 -u <mein erprobter User> -P <mein erprobtes Passwort> -t Haus/NodeMCU/NodeMCU04/MQTTin/cmd -m Value1,2.0
Zum Topic: Statusmeldungen eines anderen Devices von NodeMCU04 sehen so aus (mosquitto_sub ... -t "#" -v | grep NodeMCU04):
(z.B. f. ein Generic Systeminfo-Device)
Haus/NodeMCU/NodeMCU04/RSSI/Uptime 10
D.h., ich bin mir mit dem Topic recht sicher - vor allem weil: ein Device vom Type Output - Neopixel (candle) spreche ich z.B. so an:
-t Haus/NodeMCU/NodeMCU04/candle/cmd -m "CANDLE:1:0x66CC00:100"
funktioniert bestens, aber mit dem MQTTin-Device komme ich leider nicht weiter.
WENN das läuft bekomme ich das auch in Openhab hineingebaut.
HTH
@esp ist ein Device entstanden:
Device -> MQTT-in
Name -> MQTTin
Values -> Value1 (bis Value4 - ich möchte Value1 mit einem Wert versehen)
Linux-BASH auf dem Host, auf dem der Broker läuft (hier eine Spielart die nicht funktoniert):
mosquitto_pub -h 127.0.0.1 -u <mein erprobter User> -P <mein erprobtes Passwort> -t Haus/NodeMCU/NodeMCU04/MQTTin/cmd -m Value1,2.0
Zum Topic: Statusmeldungen eines anderen Devices von NodeMCU04 sehen so aus (mosquitto_sub ... -t "#" -v | grep NodeMCU04):
(z.B. f. ein Generic Systeminfo-Device)
Haus/NodeMCU/NodeMCU04/RSSI/Uptime 10
D.h., ich bin mir mit dem Topic recht sicher - vor allem weil: ein Device vom Type Output - Neopixel (candle) spreche ich z.B. so an:
-t Haus/NodeMCU/NodeMCU04/candle/cmd -m "CANDLE:1:0x66CC00:100"
funktioniert bestens, aber mit dem MQTTin-Device komme ich leider nicht weiter.
WENN das läuft bekomme ich das auch in Openhab hineingebaut.
HTH
-
- Beiträge: 3
- Registriert: 7. Jan 2019 19:06
Re: Espeasy Variable per MQTT ändern
So, jetzt habe ich mal die Tomaten von den Augen genommen und weggelegt und die Systematik hinter MQTT Import verstanden.
Funktioniert nun...
Vielen Dank für den Hinweis udo1toni.
Funktioniert nun...
Vielen Dank für den Hinweis udo1toni.
- HiG
- Beiträge: 136
- Registriert: 16. Jun 2021 13:39
Re: Espeasy Variable per MQTT ändern
Das hab ich versucht....klappt aber irgendwie nicht. Es kommt nix im Broker an.Du koppelst das Topic mit einem Item und führst ein Item.sendCommand(Wert) aus.
Folgende Dinge habe ich definiert
Thing
Code: Alles auswählen
Thing topic DG_HZ "Office Heizung"(mqtt:broker:1cecc2fd) @ "MQTT" {
Channels:
Type number : MQ_DG_HZ_BATTERIE "Heizung Bad Batterie" [ stateTopic="zb2mqtt/hz_dg/batterie"]
Type number : MQ_DG_HZ_TEMP_IST "Heizung Bad Ist-Temp" [ stateTopic="zb2mqtt/hz_dg/temp_ist"]
Type number : MQ_DG_HZ_TEMP_SOLL "Heizung Bad Soll-Temp" [ stateTopic="zb2mqtt/hz_dg/temp_soll"]
Type number : MQ_DG_HZ_VENTIL "Heizung Bad Ventil" [ stateTopic="zb2mqtt/hz_dg/ventil"]
Type string : MQ_DG_HZ_MODUS "Heizung Bad Modus" [ stateTopic="zb2mqtt/hz_dg/mode"]
Type string : MQ_DG_HZ_FEHLER "Heizung Bad Fehler" [ stateTopic="zb2mqtt/hz_dg/error"]
Type number : MQ_DG_HZ_BATTERIE_STATE "Heizung Bad Batteriestatus" [ stateTopic="zb2mqtt/hz_dg/batterie_status"]
Type number : MQ_DG_HZ_SIGNAL "Heizung Bad Signalstärke" [ stateTopic="zb2mqtt/hz_dg/signal"]
Type switch : MQ_DG_HZ_FENSTER "Heizung Bad Fenster" [ stateTopic="zb2mqtt/hz_dg/window"]
}
Code: Alles auswählen
Number DG_HZ_TEMP_IST_VAL "Ladung [%d%%]" { channel="mqtt:topic:1cecc2fd:DG_HZ:MQ_DG_HZ_TEMP_IST" }
Code: Alles auswählen
Number DG_HZ_Temp_Ist "Ist-Temperatur [%.2f °C]" <temperature> (G_DG_Hz, G_Hz_Temp) {channel="homematic:HG-HM-CC-RT-DN:ccu:KEE0111167:4#ACTUAL_TEMPERATURE"}
rule "Office Heizung Temp"
when
Item DG_HZ_Temp_Ist changed
then
DG_HZ_TEMP_IST_VAL.sendCommand(675)
logInfo("Heizung","Rule 2")
end
Der Broker läuft. Ich überwache den mittels
Code: Alles auswählen
mosquitto_sub -h 192.xxx.xxx.xx -t zb2mqtt/hz_dg/#
Code: Alles auswählen
2021-12-20 13:11:04.860 [ome.event.ItemCommandEvent] - Item 'DG_HZ_TEMP_IST_VAL' received command 675
2021-12-20 13:11:04.878 [nt.ItemStatePredictedEvent] - DG_HZ_TEMP_IST_VAL predicted to become NULL
aber es kommt nicht im Mosquitto an #soifz
Hat jemand ne Idee?
-
- Beiträge: 1173
- Registriert: 4. Nov 2019 22:08
Re: Espeasy Variable per MQTT ändern
Moin
bisher sehe ich in Deiner Konfig nur stateTopic definiert => Status => lesend
Du muss bei den Werten, welche Du ändern möchtest noch ein commandTopic definieren.
Hier ändert sich meist auch die angesprochene Adresse.
Beispiel aus meiner MQTT Konfig
Code: Alles auswählen
Type number : evcc_maxCurrent "max. Ladestrom" [
stateTopic="evcc/loadpoints/1/maxCurrent",
commandTopic="evcc/loadpoints/1/maxCurrent/set"
]
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3
- HiG
- Beiträge: 136
- Registriert: 16. Jun 2021 13:39
Re: Espeasy Variable per MQTT ändern
Hallo int5749,
danke. Das war schon mal ein wichtiger Hinweis. Hab es mal auf
Leider kommt immer noch nix im Broker an.
Zusätzlich taucht im Log nun dieses auf
danke. Das war schon mal ein wichtiger Hinweis. Hab es mal auf
Code: Alles auswählen
Thing topic DG_HZ "Office Heizung"(mqtt:broker:1cecc2fd) @ "MQTT" {
Channels:
Type number : MQ_DG_HZ_BATTERIE "Heizung Bad Batterie" [ stateTopic="zb2mqtt/hz_dg/batterie" ,commandTopic="zb2mqtt/hz_dg/batterie/set"]
Type number : MQ_DG_HZ_TEMP_IST "Heizung Bad Ist-Temp" [ stateTopic="zb2mqtt/hz_dg/temp_ist" ,commandTopic="zb2mqtt/hz_dg/temp_ist/set" ]
Type number : MQ_DG_HZ_TEMP_SOLL "Heizung Bad Soll-Temp" [ stateTopic="zb2mqtt/hz_dg/temp_soll" ,commandTopic="zb2mqtt/hz_dg/temp_soll/set" ]
Type number : MQ_DG_HZ_VENTIL "Heizung Bad Ventil" [ stateTopic="zb2mqtt/hz_dg/ventil" ,commandTopic="zb2mqtt/hz_dg/ventil/set" ]
Type string : MQ_DG_HZ_MODUS "Heizung Bad Modus" [ stateTopic="zb2mqtt/hz_dg/mode" ,commandTopic="zb2mqtt/hz_dg/mode/set" ]
Type string : MQ_DG_HZ_FEHLER "Heizung Bad Fehler" [ stateTopic="zb2mqtt/hz_dg/error" ,commandTopic="zb2mqtt/hz_dg/error/set" ]
Type number : MQ_DG_HZ_BATTERIE_STATE "Heizung Bad Batteriestatus" [ stateTopic="zb2mqtt/hz_dg/batterie_status" ,commandTopic="zb2mqtt/hz_dg/batterie_status/set" ]
Type number : MQ_DG_HZ_SIGNAL "Heizung Bad Signalstärke" [ stateTopic="zb2mqtt/hz_dg/signal" ,commandTopic="zb2mqtt/hz_dg/signal/set" ]
Type switch : MQ_DG_HZ_FENSTER "Heizung Bad Fenster" [ stateTopic="zb2mqtt/hz_dg/window" ,commandTopic="zb2mqtt/hz_dg/window/set" ]
}
Zusätzlich taucht im Log nun dieses auf
Code: Alles auswählen
Provide a thing UID in this format: <bindingId>:<thingTypeId>:<thingId>
-
- Beiträge: 1173
- Registriert: 4. Nov 2019 22:08
Re: Espeasy Variable per MQTT ändern
Bist Du denn sicher, dass dies korrekt konfiguriert ist??
Ist es bei Deinen Things ein "set" für den Command?
Ist es bei Deinen Things ein "set" für den Command?
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3