Hichi IR Wifi mqtt Werte auslesen

Die alternative Firmware für ESP8266 based devices

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von udo1toni »

Verstehe jetzt aber immer noch nicht, worauf Du hinaus willst. Die entsprechenden Topics kenne ich ja nicht, die musst Du schon selbst über MQTT Explorer o.Ä. ermitteln.
Auch das JSON ist ja abhängig davon, die der Hichi Lesekopf konfiguriert ist.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von PeterA »

Eija... quasi ne "Vorlage"
Die Topics hängen dann vom Zähler ab.

Gruß
Peter
- OpenHab 2.4
#PWRUP

oh73
Beiträge: 285
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von oh73 »

wenn es hilft,
von meinem LeseKopf,

Code: Alles auswählen

Thing mqtt:topic:Mqtt_FA0021 "FA0021" (mqtt:broker:MqttBroker) {
		Channels:
			//Type string : Total_Verbrauch "Total Verbrauch" 			[ stateTopic="stat/tasmota_FA0021/STATUS8", transformationPattern="JSONPATH:$.StatusSNS.MT681.Total_in"]
			//Type string : Total_Verbrauch "Total Verbrauch" 			[ stateTopic="tele/tasmota_FA0021/SENSOR" ]
			Type number : momentan_Verbrauch "momentan Verbrauch" 		[ stateTopic="tele/tasmota_FA0021/SENSOR", transformationPattern="JSONPATH:$.MT681.Power_cur"]
			//Type string : Total_Verkauf "Total Verkauf" 				[ stateTopic="stat/tasmota_FA0021/STATUS8", transformationPattern="JSONPATH:$.StatusSNS.MT681.Total_out"] 	
	}
hab da aber nur den momentan Verbrauch aktiviert!

der Rest wird bei mir mit einer Rule und sendHttpGetRequest(... abgerufen.
OH 4.0.3 auf HP 26o G1 Dm Mini Pc mit MX_Linux

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von PeterA »

hi ih73,

Perfekt Danke dafür! Schon wirds wieder etwas heller :)
Und wie sehen die Items dazu aus ?
JSONPath ist neu für mich.

Gruß
Peter
- OpenHab 2.4
#PWRUP

oh73
Beiträge: 285
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von oh73 »

die Items dazu,

Code: Alles auswählen

Number	momentan_Verbrauch	" Momentan Verbrauch Strom "					{ channel="mqtt:topic:Mqtt_FA0021:momentan_Verbrauch" }  
//String	Total_Verkauf	" Total Verkauf Strom "							{ channel="mqtt:topic:Mqtt_FA0021:Total_Verkauf" }
Edit:
der Sensor liefert ja ein Json String,

Code: Alles auswählen

{"sn":{"Time":"2023-04-20T13:00:41","MT681":{"Total_in":1012.790,"Power_cur":-1714,"Power_p1":0,"Power_p2":0,"Power_p3":0,"Total_out":668.932,"Meter_id":"090149534b00053ba01c"}},"ver":1}
und da muss ja mit JSONPATH der gewünschte Wert raus gefiltert werden!
Zuletzt geändert von oh73 am 20. Apr 2023 15:20, insgesamt 1-mal geändert.
OH 4.0.3 auf HP 26o G1 Dm Mini Pc mit MX_Linux

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von PeterA »

Vielen Merci!

Gruß
Peter
- OpenHab 2.4
#PWRUP

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

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von udo1toni »

Vielleicht noch zur Erläuterung: Das JSON Objekt kann man mit einem passenden Editor auch lesefreundlich formatieren lassen, so:

Code: Alles auswählen

{
    "sn": {
        "Time": "2023-04-20T13:00:41",
        "MT681": {
            "Total_in": 1012.79,
            "Power_cur": -1714,
            "Power_p1": 0,
            "Power_p2": 0,
            "Power_p3": 0,
            "Total_out": 668.932,
            "Meter_id": "090149534b00053ba01c"
        }
    },
    "ver": 1
}
Die Formatierung besteht hier lediglich aus Zeilenumbrüchen und Einrückungen über Leerzeichen, so wird die Struktur klar und eben besser lesbar.
Der JSONPATH hangelt sich dann von knoten zu Knoten. $ ist der Ursprung, . ist der Inhalt des Knotens, $.ver wäre dann z.B. 1
$.sn ist ein weiterer Knoten, $.sn. ist der Inhalt des Knotens, $.sn.Time wäre dann wiederum ein Wert, hier 2023-04-20T13:00:41, und $.sn.MT681.Total_in liefert den Wert 1012.79.

Natürlich kann man mit JSONPATH auch wesentlich komplexere Abfragen erstellen, das ist vor allem hilfreich., wenn man es mit Knoten zu tun bekommt, die keinen Namen tragen. Man könnte dann die Knoten abzählen, bis man beim gewünschten Knoten ankommt, das kann aber schief gehen, denn es gibt gewöhnlich keine Garantie über die Reihenfolge der Werte innerhalb eines JSON Objekts. In so einem Fall wird man also ein eindeutiges Identifizierungsmerkmal suchen, welches sich im Knoten selbst befindet. Man lässt JSONPATH dann den Knoten anhand des Wertes selbst heraussuchen und andere Werte zurückliefern, die im selben Knoten liegen.
Außerdem kann JSONPATH auch mehrere Werte zurückliefern, was allerdings in openHAB gewöhnlich nicht zum Einsatz kommt.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

biologist
Beiträge: 3
Registriert: 25. Mai 2023 23:02

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von biologist »

Ich hänge mich hier mal kurz rein. Habe hier auch einen Hichi IR laufen, die Werte kommen auch per MQTT in OH an und sie werden auch Items zugewiesen. Jetzt ist es allerdings so, dass es in OH3 ja die Möglichkeit gibt, dass man sich zu einem Item einen Graph anschauen kann. Für den Power-Wert klappt das auch, aber für die Energiemenge, die ich aufgenommen oder eingespeist habe, klappt das nicht. D.h. der Graph baut sich auf, aber man sieht darin keine Kurve.

Ich setze OH3.2 in einem Docker-Container ein und persistiere mit MariaDB. In der DB (nachfolgend mal einen Auszug) sieht es eigentlich ok aus:

| 2023-05-25 22:52:53.336 | 58.767 |
| 2023-05-25 22:53:13.306 | 58.768 |
| 2023-05-25 22:53:43.355 | 58.769 |
| 2023-05-25 22:54:13.289 | 58.77 |
| 2023-05-25 22:54:43.299 | 58.771 |
| 2023-05-25 22:55:13.280 | 58.772 |
| 2023-05-25 22:55:43.294 | 58.773 |
| 2023-05-25 22:56:13.293 | 58.774 |
| 2023-05-25 22:56:33.313 | 58.775 |
| 2023-05-25 22:57:03.278 | 58.776 |
| 2023-05-25 22:57:33.297 | 58.777 |
| 2023-05-25 22:57:53.296 | 58.778 |
| 2023-05-25 22:58:23.295 | 58.779 |
+-------------------------+--------+

Ich weiß jetzt nicht, ob sich OH irgendwie daran stört, dass da ein Trenner drin ist. Als Typ der beiden Items habe ich "Number:Energy" definiert. Nur "Number" hat nicht funktioniert.

Irgendwelche Tipps?

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

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von udo1toni »

Was meinst Du mit Trenner? Die Daten sind in Feldern gespeichert, alle persistierten Items werden als einzelnen Tabellen abgelegt, pro Wert gibt es eine Zeile in der Datenbank, bestehend aus einem Zeitstempel und dem eigentlichen Wert.
Wenn Du eine SQL-Tabelle über MySQL anschaust, wird die Tabelle genau so ausgegeben :)

Ganz grundsätzlich: Wenn Du einen Channel hast, der die Einheit mit übergibt, dann brauchst Du auch ein Item, welches mit der passenden Einheit umgehen kann. Die Persistence ist dabei immer ein heißes Eisen, denn die Einheit wird gewöhnlich nicht mit in der Datenbank landen.
Allerdings werden sich da einige Dinge mit openHAB4.0 ändern.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

biologist
Beiträge: 3
Registriert: 25. Mai 2023 23:02

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von biologist »

Mit Trenner meine ich, dass der Wert zB 45.436 ist und nicht 45436.
Dass die Daten in einzelnen Tabellen abgelegt werden ist mir bewusst - daher hatte ich den Auszug der Tabelle ja.

Also der Punkt ist, dass wenn ich auf ein Item gehe dann gibt es dort ja den Button "Analyze". Und bei einem numerischen Wert kann man sich dann den Chart anschauen. Und genau das klappt hier nicht, der Chart ist einfach leer, obwohl der Wert da sein müsste.

Aber da scheint es wohl, wie ich zwischenzeitlich gelesen habe, einen Bug zu geben. D.h. man muss irgendwie das Intervall der x-Achse statisch einstellen. Ich hatte das Thema erst hier aufgemacht (https://community.openhab.org/t/no-graph-shown/146859) und nachdem es erst nicht den Anschein hatte, dass da was kommt, auch noch hier.

Ich muss aber zugeben, dass ich nicht so ganz verstehe, was ich für die Option 1 alles machen muss.

Antworten