ESP Event über mqtt

Allgemeine Fragen rund um die "Smart Home" Hardware/Komponenten

Moderatoren: seppy, udo1toni

raf65
Beiträge: 37
Registriert: 11. Dez 2019 11:58

Re: ESP Event über mqtt

Beitrag von raf65 »

In der Sidemap, oder in anderen Darstellungsmögichkeiten wie HABPanel

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: ESP Event über mqtt

Beitrag von peter-pan »

...und was siehst du im Logger ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

raf65
Beiträge: 37
Registriert: 11. Dez 2019 11:58

Re: ESP Event über mqtt

Beitrag von raf65 »

ausserdem funktioniert bei mir diese Schreibweise nicht

Code: Alles auswählen

Bridge mqtt:broker:rafmqtt 		"MQTT Broker im Haus" @ "Haus"
[
	host="localhost", 
	secure=false, 
	clientID="openHAB2", 
	port=1883, 
	qos=2,
	keep_alive_time=30000,
	reconnect_time=60000,
	username="schnik", 
	password="schnak"
]
{
	Thing mqtt Topic TempEinstellen					"Temperaturen Einstellen" 		(mqtt:broker:rafmqtt)  @ "Versorgung" 
	{
		Channels:
			Type string : EGVorgabeTemperaturWohnzimmer		"Temperaturvorgabe Wohnzimmer" 					[stateTopic = "/ESP_EG/dummy/Durchschnitt",transformationPattern="JSONPATH:$.ESP_EG.dummy.Durchschnitt",  commandTopic="" ]
			Type string : EGVorgabeTemperaturFlur			"Temperaturvorgabe Flur" 						[stateTopic = "/ESP_EG/dummy/Flur", transformationPattern="JSONPATH:$.ESP_EG.dummy.Flur",  commandTopic="" ]
			Type string : EGVorgabeTemperaturVorlauf		"Temperaturvorgabe Pumpe EG" 					[stateTopic = "/ESP_EG/dummy/Pumpe", transformationPattern="JSONPATH:$.ESP_EG.dummy.Pumpe",   commandTopic="" ]
}
Bei dieser Schreibweise (Thing mqtt Topic TempEinstellen) gibt's nur Fehlermeldungen und der Bereich ist weg

Ich muss leider diese Schreibweise (Thing mqtt:topic:rafmqtt:TempEinstellen) nutzen

Code: Alles auswählen

Bridge mqtt:broker:rafmqtt 		"MQTT Broker im Haus" @ "Haus"
[
	host="localhost", 
	secure=false, 
	clientID="openHAB2", 
	port=1883, 
	qos=2,
	keep_alive_time=30000,
	reconnect_time=60000,
	username="schnik", 
	password="schnak"
]
{
	Thing mqtt:topic:rafmqtt:TempEinstellen						"Temperaturen Einstellen" 		(mqtt:broker:rafmqtt)  @ "Versorgung" 
	{
		Channels:
			Type string : EGVorgabeTemperaturWohnzimmer		"Temperaturvorgabe Wohnzimmer" 					[stateTopic = "/ESP_EG/dummy/Durchschnitt",transformationPattern="JSONPATH:$.ESP_EG.dummy.Durchschnitt",  commandTopic="" ]
			Type string : EGVorgabeTemperaturFlur			"Temperaturvorgabe Flur" 						[stateTopic = "/ESP_EG/dummy/Flur", transformationPattern="JSONPATH:$.ESP_EG.dummy.Flur",  commandTopic="" ]
			Type string : EGVorgabeTemperaturVorlauf		"Temperaturvorgabe Pumpe EG" 					[stateTopic = "/ESP_EG/dummy/Pumpe", transformationPattern="JSONPATH:$.ESP_EG.dummy.Pumpe",   commandTopic="" ]
}
Mittlerweile fällt mir nicht mehr viel ein.....

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: ESP Event über mqtt

Beitrag von peter-pan »

...also, die erste Schreibweise, wird, soweit ich weiss, benutzt, wenn die Bridge und die Things in verschiedenen .things-Files benutzt werden, da im Things-File mit angegeben wird, welche Bridge dazu benutzt werden soll. Deshalb passt ja die zweite Schreibweise bei dir.

Das benatwortet aber nicht meine Frage, nach den Ausgaben im Logger für die entsprechenden Items. Du hast doch auch schon
2019-12-15 11:29:23.185 [WARN ] [l.generic.ChannelStateTransformation] - Executing the JSONPATH-transformation failed: Invalid path '$.ESP_EG.dummy.Durchschnitt' in '21.50'
diese Info bekommen.

War da nicht vielleicht so eine Info vor oder in der Nähe der Warnung:

Code: Alles auswählen

2019-12-15 00:06:01.977 [vent.ItemStateChangedEvent] - EG_Vorgabe_Temperatur_Wohnzimmer changed from xx.y to 21.50
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

raf65
Beiträge: 37
Registriert: 11. Dez 2019 11:58

Re: ESP Event über mqtt

Beitrag von raf65 »

Ja solche Meldungen kommen aber von anderen Aktoren

2019-12-21 14:18:02.027 [vent.ItemStateChangedEvent] - OG_Temperatur_Ankleidezimmer changed from 17.50 to 17.31


habe die letzte 1 im LOG gesucht.
das ist ja komisch

raf65
Beiträge: 37
Registriert: 11. Dez 2019 11:58

Re: ESP Event über mqtt

Beitrag von raf65 »

Ha nee nicht wirklich
der Wert ändert sich nur wenn der geändert wird


Kommt in dieser Reihenfolge
2019-12-21 15:07:10.901 [vent.ItemStateChangedEvent] - EG_Vorgabe_Temperatur_Wohnzimmer changed from UNDEF to NaN
2019-12-21 15:07:10.918 [vent.ItemStateChangedEvent] - EG_Vorgabe_Temperatur_Wohnzimmer changed from NaN to UNDEF
2019-12-21 15:07:11.810 [INFO ] [.eclipse.smarthome.model.script.Test] - Temperaturvorgabe Wohnzimmer neue Eingabe: UNDEF
Der letzte Eintrag ist aus den rules, dadurch das der Eintrag keinen Wert hat wird der enthaltene wert auch weiter gegeben

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: ESP Event über mqtt

Beitrag von peter-pan »

...also irgend etwas scheint das Item ja zu verändern, aber es ist keine Zahl, die da ankommt (NaN = Not a Number). Jetzt schauen wir uns das Item und das THing noch mal genauer an. Wie sieht das SetUp jetzt aus, einschl. der Rule.

Kannst du auch etwas zu den Werten die der ESP ausgibt erläutern. Da muss doch auch so was wie MQTT laufen, oder ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

raf65
Beiträge: 37
Registriert: 11. Dez 2019 11:58

Re: ESP Event über mqtt

Beitrag von raf65 »

Also

Thing

Code: Alles auswählen

	Thing mqtt:topic:rafmqtt:TempEinstellen					"Temperaturen Einstellen" 		(mqtt:broker:rafmqtt)  @ "Versorgung" 
	{
		Channels:

			Type string : EGVorgabeTemperaturWohnzimmer		"Temperaturvorgabe Wohnzimmer" 					[stateTopic = "/ESP_EG/dummy/Durchschnitt",transformationPattern="JSONPATH:$.ESP_EG.dummy.Durchschnitt",  commandTopic="" ]
}

ITEM

Code: Alles auswählen

String EG_Vorgabe_Temperatur_Wohnzimmer			"Temperaturvorgabe Wohnzimmer [%s]"				<temperature>		(EG,Versorgung_EG,Temperatur)	["Switchable"]	{ channel="mqtt:topic:rafmqtt:TempEinstellen:EGVorgabeTemperaturWohnzimmer" }
rule

Code: Alles auswählen

rule "Temperaturvorgabe Wohnzimmer"
when
	Item EG_Vorgabe_Temperatur_Wohnzimmer received command
then
	sendHttpGetRequest("http://esp-eg/control?cmd=event,raumWohnzimmerTemp=" + receivedCommand.toString)
	logInfo("Test", "Temperaturvorgabe Wohnzimmer neue Eingabe: " + EG_Vorgabe_Temperatur_Wohnzimmer.state  )
end
Bei den rules glaube ich nicht das da etwas falsch ist, denn das Commando "receivedCommand.toString" gibt nur den Wert weiter der vorhanden ist. Und da wird mir nix angezeigt.

Am ESP habe ich mir mal den JSON Code ausgeben lassen

Code: Alles auswählen

			"TaskValues": [
				{
					"ValueNumber": 1,
					"Name": "Wohnraum",
					"NrDecimals": 2,
					"Value": 22.0
				},
				{
					"ValueNumber": 2,
					"Name": "Flur",
					"NrDecimals": 2,
					"Value": 18.0
				},
				{
					"ValueNumber": 3,
					"Name": "Pumpe",
					"NrDecimals": 2,
					"Value": 40.0
				},
				{
					"ValueNumber": 4,
					"Name": "Durchschnitt",
					"NrDecimals": 2,
					"Value": 22.25
				}
			],
			"DataAcquisition": [
				{
					"Controller": 1,
					"IDX": 0,
					"Enabled": "true"
				},
				{
					"Controller": 2,
					"IDX": 0,
					"Enabled": "false"
				},
				{
					"Controller": 3,
					"IDX": 0,
					"Enabled": "false"
				}
			],
			"TaskInterval": 60,
			"Type": "Generic - Dummy Device",
			"TaskName": "dummy",
			"TaskEnabled": "true",
			"TaskNumber": 12
		}

raf65
Beiträge: 37
Registriert: 11. Dez 2019 11:58

Re: ESP Event über mqtt

Beitrag von raf65 »

Wenn ich über mqtt.fx diesen Part /ESP_EG/dummy/Wohnraum Abfrage bekomme ich diesen Wert 22.00
Also liefert der ESP die benötigten Daten über den MQTT broker

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: ESP Event über mqtt

Beitrag von peter-pan »

... habe gerade beim genaueren Hinschauen gesehen, dass die in der zweiten Schreibweise auch noch mal den Broker angegeben hast(Ist glaub ich nicht richtig).

Also du nimmst als .things-File folgendes:

Code: Alles auswählen

Bridge mqtt:broker:rafmqtt 		"MQTT Broker im Haus" @ "Haus"
[
	host="localhost", 
	secure=false, 
	clientID="openHAB2", 
	port=1883, 
	qos=2,
	keep_alive_time=30000,
	reconnect_time=60000,
	username="schnik", 
	password="schnak"
]
{
	Thing topic TempEinstellen	"Temperaturen Einstellen" 	  @ "Versorgung" 
	{
		Channels:
			Type string : EGVorgabeTemperaturWohnzimmer	"Temperaturvorgabe Wohnzimmer" 	[stateTopic = "/ESP_EG/dummy/Durchschnitt"]
			Type string : EGVorgabeTemperaturFlur		"Temperaturvorgabe Flur" 	[stateTopic = "/ESP_EG/dummy/Flur" ]
			Type string : EGVorgabeTemperaturVorlauf	"Temperaturvorgabe Pumpe EG" 	[stateTopic = "/ESP_EG/dummy/Pumpe"]
}
Hier sind im Moment nur die StateTopics ohne JSON aktiv. Bitte auch so lassen (im Moment). Wie du siehst, sind auch die Doppelpunkte weg, das habe ich vorher nicht gesehen. (Anscheinend war meine erste Aussage über die Trennung von Bridge und Thing nicht ganz korrekt; die Doppelpunkte machens :oops: wohl)

das Item sieht so aus:

Code: Alles auswählen

String EG_Vorgabe_Temperatur_Wohnzimmer	"Temperaturvorgabe Wohnzimmer [%s]"	<temperature>	(EG,Versorgung_EG,Temperatur) { channel="mqtt:topic:rafmqtt:TempEinstellen:EGVorgabeTemperaturWohnzimmer" }
Den Metapattern hab ich hier auch rausgelassen. Bitte mal so nehmen.

Das sollte mal für den Anfang reichen.

Wenn du das gemacht hast, dann gib wieder Bescheid, wie das Ergebnis ausgefallen ist.

Edit: Bitte mal Item und Thing auf "string" lassen. Mit dem JSON-String von deinem ESP komm ich noch nicht ganz klar :?:
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

Antworten