Espeasy Variable per MQTT ändern

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

olem_de
Beiträge: 2
Registriert: 27. Okt 2018 20:59
Answers: 0

Espeasy Variable per MQTT ändern

Beitrag von olem_de »

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

olem_de
Beiträge: 2
Registriert: 27. Okt 2018 20:59
Answers: 0

Re: Espeasy Variable per MQTT ändern

Beitrag von olem_de »

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

oh_esp01
Beiträge: 3
Registriert: 7. Jan 2019 19:06
Answers: 0

Re: Espeasy Variable per MQTT ändern

Beitrag von oh_esp01 »

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

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Espeasy Variable per MQTT ändern

Beitrag von udo1toni »

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

oh_esp01
Beiträge: 3
Registriert: 7. Jan 2019 19:06
Answers: 0

Re: Espeasy Variable per MQTT ändern

Beitrag von oh_esp01 »

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

oh_esp01
Beiträge: 3
Registriert: 7. Jan 2019 19:06
Answers: 0

Re: Espeasy Variable per MQTT ändern

Beitrag von oh_esp01 »

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.

Benutzeravatar
HiG
Beiträge: 136
Registriert: 16. Jun 2021 13:39
Answers: 0

Re: Espeasy Variable per MQTT ändern

Beitrag von HiG »

Du koppelst das Topic mit einem Item und führst ein Item.sendCommand(Wert) aus.
Das hab ich versucht....klappt aber irgendwie nicht. Es kommt nix im Broker an.

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"]
}
Item1:

Code: Alles auswählen

Number  DG_HZ_TEMP_IST_VAL        "Ladung [%d%%]"            { channel="mqtt:topic:1cecc2fd:DG_HZ:MQ_DG_HZ_TEMP_IST" }
Item2:

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:
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/#
Im Log steht dann...

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?

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Espeasy Variable per MQTT ändern

Beitrag von int5749 »

HiG hat geschrieben: 20. Dez 2021 13:19
Du koppelst das Topic mit einem Item und führst ein Item.sendCommand(Wert) aus.
Das hab ich versucht....klappt aber irgendwie nicht. Es kommt nix im Broker an.

Folgende Dinge habe ich definiert

......
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"
]
Viele Grüße
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Benutzeravatar
HiG
Beiträge: 136
Registriert: 16. Jun 2021 13:39
Answers: 0

Re: Espeasy Variable per MQTT ändern

Beitrag von HiG »

Hallo int5749,

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" ]
}
Leider kommt immer noch nix im Broker an.

Zusätzlich taucht im Log nun dieses auf

Code: Alles auswählen

Provide a thing UID in this format: <bindingId>:<thingTypeId>:<thingId>

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Espeasy Variable per MQTT ändern

Beitrag von int5749 »

Bist Du denn sicher, dass dies korrekt konfiguriert ist??
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

Antworten