Hichi IR Wifi mqtt Werte auslesen

Die alternative Firmware für ESP8266 based devices

Moderatoren: seppy, udo1toni

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

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von udo1toni »

Ah. Du nutzt drei Leseköpfe mit jeweils eingebautem WLAN?

Das Problem ist, dass auf dem identischen Topic völlig unterschiedliche JSON Objekte ausgeliefert werden.
Da hilft eine Verkettung von JSONPATH mit REGEX:

Code: Alles auswählen

Thing topic 1EMH12345678 "Z1 Hauptzähler" @ "MQTT" {
	Channels:
		Type string : z1_Power_curr  "Z1 Power Current" [
			stateTopic="tele/tasmota_F9A39A/SENSOR"
			transformationPattern="REGEX:(.*_curr.*)∩JSONPATH:$[0].Power_curr"
		]
		Type number : z1_180  "Z1 Zählwerk 1.8.0 (in)" [
			stateTopic="tele/tasmota_F9A39A/SENSOR",
			transformationPattern="REGEX:(.*_in.*)∩JSONPATH:$[0].Total_in"
		]
		Type number : z1_280  "Z1 Zählwerk 2.8.0 (out)" [
			stateTopic="tele/tasmota_F9A39A/SENSOR",
			transformationPattern="REGEX:(.*_out.*)∩JSONPATH:$[0].Total_out"
		]
}
Das ∩ bekommst Du bequem über den Hilfstext zum transformationPattern, oder halt von hier... ;)
REGEX liefert eine leere Zeichenkette, wenn der String nicht matcht, woraufhin JSONPATH keinen Versuch unternimmt, den Channel upzudaten.
openHAB3.4.1 in einem Debian-Container (Proxmox, LXC)

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

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von int5749 »

udo1toni hat geschrieben: 15. Jan 2023 18:01 Ah. Du nutzt drei Leseköpfe mit jeweils eingebautem WLAN?
Ja, hatte ich auf dem Screenshot gezeigt und mal erwähnt, da alle unterschiedliche Topics senden, sollte dies ja kein Problem darstellen.

udo1toni hat geschrieben: 15. Jan 2023 18:01 Das Problem ist, dass auf dem identischen Topic völlig unterschiedliche JSON Objekte ausgeliefert werden.
Da hilft eine Verkettung von JSONPATH mit REGEX:

Code: Alles auswählen

Thing topic 1EMH12345678 "Z1 Hauptzähler" @ "MQTT" {
	Channels:
		Type string : z1_Power_curr  "Z1 Power Current" [
			stateTopic="tele/tasmota_F9A39A/SENSOR"
			transformationPattern="REGEX:(.*_curr.*)∩JSONPATH:$[0].Power_curr"
		]
		Type number : z1_180  "Z1 Zählwerk 1.8.0 (in)" [
			stateTopic="tele/tasmota_F9A39A/SENSOR",
			transformationPattern="REGEX:(.*_in.*)∩JSONPATH:$[0].Total_in"
		]
		Type number : z1_280  "Z1 Zählwerk 2.8.0 (out)" [
			stateTopic="tele/tasmota_F9A39A/SENSOR",
			transformationPattern="REGEX:(.*_out.*)∩JSONPATH:$[0].Total_out"
		]
}
DAS war es, wieder was gelernt mit dieser Verkettung => DANKE

Das folgende

Code: Alles auswählen

transformationPattern="REGEX:(.*_in.*)∩JSONPATH:$[0].Total_in"
funktioniert aber nicht, hier rmuss bei mir ein doppelter .

Code: Alles auswählen

transformationPattern="REGEX:(.*_in.*)∩JSONPATH:$..Total_in"
Nun zeigt das Log keine Fehler mehr :)
Die Zählerwerte lasse ich per tele-Intervall senden, nur der Momentanverbrauch in realtime. Ich denke dies sollte für eine Auswertung ausreichen.

Viele Grüße
openHAB 3.4.0 Release in einem Debian-Container (LXC) mit openHABian unter Proxmox 7.x

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

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von udo1toni »

Ach so... eigentlich sollten die Channel vom Typ number sein, nicht string. Beim Typ number kannst Du zusätzlich noch den Parameter unit setzen, also z.B. unit="kWh", dann kannst Du den Channel mit einem Number:Energy (oder im Fall von W Number:Power) verlinken und bekommst automatisch die korrekte Einheit mit. Nur in den Rules wird es dann minimal komplizierter :)
openHAB3.4.1 in einem Debian-Container (Proxmox, LXC)

oh73
Beiträge: 171
Registriert: 7. Mär 2021 14:49

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von oh73 »

habe seit ca. 4 Wochen auch einen digitalen Zähler ISKRA MT681,

dazu hab ich mir auch den Hichi IR Sensor gekauft.

einrichten kein großes Problem, nur bei den Werten abfragen hab ich auch das Problem das auf einem Topic mindestens 2 Arten von Json Daten ankommen.

einmal nur der momentan Verbrauch, hab ich im Script auf 16 gestellt, jede Sekunde ?

Code: Alles auswählen

{
    "Time": "2023-01-19T18:42:59",
    "MT681": {
        "Power_cur": 448
    }
}
und einmal alle Werte ca. alle 5 Minuten

Code: Alles auswählen

{
    "Time": "2023-01-19T18:42:59",
    "MT681": {
        "Total_in": 367.623,
        "Power_cur": 448,
        "Power_p1": 0,
        "Power_p2": 0,
        "Power_p3": 0,
        "Total_out": 42.328,
        "Meter_id": "090149534b00053ba01c"
    }
}
mit

Code: Alles auswählen

transformationPattern="REGEX:(.*_out*)∩JSONPATH:$.MT681.Total_out"]
und

Code: Alles auswählen

transformationPattern="REGEX:(.*_in*)∩JSONPATH:$.MT681.Total_in"]
funktionet bei mir nicht.
Fehlermeldung Regex findet ._in. und ._out. nicht!

kann ja auch nicht gefunden werden, da alle Sekunden ja der Json String nur mit Power_cur kommt!

hab dann raus gefunden das auf einem anderen Topic die Daten noch mal sind,
normales Topic

Code: Alles auswählen

stateTopic="tele/tasmota_FA0021/SENSOR
das zweite Topic

Code: Alles auswählen

stateTopic="stat/tasmota_FA0021/STATUS8
hier sind immer die kompletten Daten,
nur wieder ein Haken bei der Sache.
dieses Topic wird nicht von selbst aktualisiert, aktualliesiert nur wenn zB. die Web Seite
http://192.168.178.58/cm?cmnd=status+8
aufgerufen wird.

jetzt hab ich noch eine Rule gemacht, die mir alle 5 Minuten die Seite aufruft um die Daten zu aktualisieren.

den momentan Verbrauch ruf ich jetzt mit dem ersten Topic ab und Total_in , Totol_out mit dem zweiten Topic!

ob das alles so richtig ist ??
funktioniern tut es auf jeden Fall .
OH 3.3.0 auf HP 26o G1 Dm Mini Pc mit Debian 11

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

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von udo1toni »

Die verwendeten Expressions sollten eigentlich funktionieren.

Hast Du REGEX auch installiert?
openHAB3.4.1 in einem Debian-Container (Proxmox, LXC)

oh73
Beiträge: 171
Registriert: 7. Mär 2021 14:49

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von oh73 »

erwischt :oops:
ich schäme mich jetzt aber.

muss ich dann morgen mal testen
OH 3.3.0 auf HP 26o G1 Dm Mini Pc mit Debian 11

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

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von udo1toni »

Entschuldigung... es sind halt glücklicherweise meist die naheliegendsten Fehler...
openHAB3.4.1 in einem Debian-Container (Proxmox, LXC)

Antworten