Hichi IR Wifi mqtt Werte auslesen

Die alternative Firmware für ESP8266 based devices

Moderatoren: seppy, udo1toni

Antworten
Rob69
Beiträge: 73
Registriert: 26. Feb 2021 07:38
Answers: 0

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von Rob69 »

Hallo an alle,
Ich bin am durch die Haut fahren weil ich meinen Hichi Lesekopf mit dem ich den Stromzähler per MQTT auslesen möchte nicht zum laufen bringe!
Ich benützte OH 4.3.2 und habe mir vor kurzen einen Hichi Wlan Lesekopf zugelegt.
Dieser funktioniert auf der Weboberfläche super, ich bekomme auch meine Daten
auf den MQTT Explorer angezeigt.
Mein MQTT Broker ist online, mein Stromzähler(MQTT Generic Thing) ist auch online und meine Channels werden auch online angezeigt,
aber die Channels zeigen mir den Wert NULL an!
Mein Zähler ist ein Easymeter und sendet alle 5 Minuten
Vielleicht kann mir ja jemand helfen!

Hier meine Einstellungen/ Codes

Topic

Code: Alles auswählen

%Tasmota%/%Stromzähler%
Hier mein Code im MQTT Explorer

Code: Alles auswählen

{
  "Time": "2025-02-18T19:12:44",
  "SML": {
    "Verbrauch_T1": 0.3786569,
    "Verbrauch_T2": 2293.2437021,
    "Verbrauch_Summe": 2293.622359,
    "Einspeisung_Summe": 4281.0758613,
    "Watt_L1": 141.67,
    "Watt_L2": 55.64,
    "Watt_L3": -199.81,
    "Watt_Summe": -2.48,
    "Volt_L1": 235,
    "Volt_L2": 235.8,
    "Volt_L3": 233.9
  }
}
Nun meine Things

Code: Alles auswählen

Bridge  mqtt:broker:414da33971 [ host="192.---.---.--",secure=false, username="--------", password="------------ ]


     // hitchi Lesekopf @ Easymeter  Zähler 

Thing mqtt:topic:Tasmota "Stromzähler" (mqtt:broker:414da33971) {
   // Channels:
   Type string: Easymeter_Leistung "Leistung" [ stateTopic="Tasmota/Stromzähler/SENSOR", transformationPattern="JSONPATH:$.WWatt_Summe"]
   Type string: Easymeter_Bezug "Gesamtbezug" [ stateTopic="Tasmota/Stromzähler/SENSOR",transformationPattern="JSONPATH:$.Verbrauch_Summe"]
   //Type number: Easymeter_Einspeisung "Gesamteinspeisung" [ stateTopic="openhab/Zähler/Hichi_Lesekopf/SENSOR",transformationPattern="JSONPATH:$.Einspeisung_Summe" ]
   Type string: Easymeter_Einspeisung "Gesamteinspeisung" [ stateTopic="Tasmota/Stromzähler/SENSOR",transformationPattern="JSONPATH:$.Einspeisung_Summe" ]
  
}
jetzt noch meine Items

Code: Alles auswählen

/// Stromzähler
 Number Easymeter_power "Netz Leistung [%.1f W]"           {channel="mqtt:topic:Easymeter:Easymeter_Leistung"}
 Number Easymeter_Bezug    "Bezug [%.3f kWh]"              {channel="mqtt:topic:Easymeter:Easymeter_Bezug"}  
 Number Easymeter_Einspeisung   " Einspeisung [%.3f kWh]"  {channel="mqtt:topic:Easymeter:Easymeter_Einspeisung"}
Wie gesagt Openhab zeigt alles als Online an!!!!

Gruß Rob

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

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von PeterA »

Servus,

Habe hier auch einen Hichi Lesekopf aber weil ich einen anderen Zähler habe etwas andere Topics.
Aber hier sind alle Topics als

Code: Alles auswählen

number
definiert.
Und bei

Code: Alles auswählen

WWatt_Summe
ist vermutlich ein "W" zu viel.
Ebenso sind die ganzen Topics noch "hinter" dem Hauptopic "SML" als Subtopics vorhanden.
Das müsste eher so lauten:

Code: Alles auswählen

"JSONPATH:$.SML.Watt_Summe"




Gruß Peter
- OpenHab 2.4
#PWRUP

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

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von udo1toni »

Rob69 hat geschrieben: 18. Feb 2025 19:22 Topic

Code: Alles auswählen

%Tasmota%/%Stromzähler%
Hoffentlich nicht. :)
Die %-Zeichen solltest Du nicht im Topic verwenden, denn Tasmota nutzt die Prozentzeichen, um Umgebungsvariablen zu kennzeichnen (z.B. das FullTopic lautet gewöhnlich %prefix%/%topic%/ und dabei wird %topic% automatisch durch den Inhalt des Topic-Feldes ersetzt. %prefix% wiederum kann die Werte cmnd, stat oder tele annehmen (wenn die Firmware original Tasmota ist), wobei der cmnd-Zweig für Befehle verwendet wird, der stat-Zweig liefert direkte Rückmeldungen, bezogen auf den letzten Befehl und tele liefert zyklisch Sensorwerte, hier z.B. die Zählerstände. Wie oft so eine zyklische Meldung abgesetzt wird, kann man über ein Command konfigurieren, 5 Minuten ist lediglich der Default Wert (gerade beim Stromzähler kann eine bessere zeitliche Auflösung ja interessant sein, mein Zähler liefert z.B. im Sekundentakt seine Daten, da wäre es doof, wenn nur jeder 360te Wert übertragen wird...)

Dass Dein JSONPATH falsch ist, hat @PeterA ja schon geschrieben.
So sollte Dein Thing eigentlich aussehen:

Code: Alles auswählen

Bridge  mqtt:broker:mosquitto "Mosquitto Broker" [
    host="192.168.178.---",
    secure=false,
    username="--------",
    password="--------"
 ] {
    Thing topic hichi "Easymeter" {
    Channels:
       Type number : power  "Leistung"          [ stateTopic="Tasmota/Stromzähler/SENSOR", transformationPattern="JSONPATH:$.SML.Watt_Summe",        unit="W" ]
       Type number : sumIn  "Summe Bezug"       [ stateTopic="Tasmota/Stromzähler/SENSOR", transformationPattern="JSONPATH:$.SML.Verbrauch_Summe",   unit="kWh" ]
       Type number : sumOut "Summe Einspeisung" [ stateTopic="Tasmota/Stromzähler/SENSOR", transformationPattern="JSONPATH:$.SML.Einspeisung_Summe", unit="kWh" ]
    }
}
Und so die zugehörigen Items:

Code: Alles auswählen

Number:Power  EasymeterWatt      "aktuelle Leistung" { channel="mqtt:topic:mosquitto:hichi:power",  unit="W",  stateDescription=""[pattern="%.3f kW"]}
Number:Energy EasymeterEnergyIn  "Summe Bezug"       { channel="mqtt:topic:mosquitto:hichi:sumIn",  unit="Wh", stateDescription=""[pattern="%.1f kWh"]}
Number:Energy EasymeterEnergyOut "Summe Einspeisung" { channel="mqtt:topic:mosquitto:hichi:sumOut", unit="Wh", stateDescription=""[pattern="%.1f kWh"]}
Ganz grundsätzlich: Private IP-Adressen kannst Du in meterhohen Lettern außen auf Dein Haus drauf schreiben, spielt keine Rolle, denn diese werden im Internet nicht geroutet. Wenn aber jemand schon in Deinem LAN ist (nur dort kann er etwas mit der IP-Adresse anfangen), reicht ein nmap-Befehl, um alle Geräte innerhalb des Subnetzes zu finden, die IP-Adresse ist dabei dann nur noch eine kleine Detailinformation.
Die öffentliche IP-Adresse solltest Du hingegen tunlichst unter Verschluss halten, es ist also gerade umgekehrt zum verwendeten Namen (weil der sich halt nicht auf die Sicherheit bezieht, sondern darauf, wie die IP verwendet wird).

Ich habe oben das Generic Thing als "Child" der Bridge definiert. Wenn man per Text konfiguriert, ist es naheliegend, das so zu tun, denn es erspart Tipparbeit und vermeidet fehlerhafte Channel UIDs (mqtt:topic:Tasmota wird zwar nicht angemeckert, es fehlt aber der Bezug auf die Bridge, und das kann an verschiedenen Stellen zu Problemen führen).
Es handelt sich bei allen gelieferten Werten um reine Zahlen, entsprechend sollte man auch number Channel verwenden, und am besten nutzt man Units of Measurement, das erleichtert ebenfalls das Leben. Die Unit im Channel muss der vom Gerät gelieferten Einheit entsprechen, die unit im Item definiert, in welcher Größe das Item den Wert hält (bei den Summen z.B. nicht kWh, sondern Wh, das ist aber nicht zwingend, es muss nur eine Einheit für Energie sein, es ginge z.B. auch Joule oder gar Kalorie). Die unit beim Item "darf" nur einmal gesetzt werden, in dem Sinne, dass man beim Ändern der unit Probleme mit historischen Daten bekommt, denn die unit wird nicht mit persistiert. Entsprechend werden dann historische Werte evtl. in der falschen Einheit ausgegeben. Die unit bestimmt auch, in welcher Einheit Charts gezeichnet werden, also Obacht.
Das Sstate Description Pattern gibt an, wie der Wert in der UI dargestellt wird. Dieses Feld darf beliebig oft angepasst werden, wichtig ist nur, dass die angegebene Einheit zum gewählten QuantityType gehört, also z.B. kW (Kilowatt) für Power und MJ (Megajoule) für Energy.

Wenn Du die Items per UI anlegst, kannst Du die Felder unit und ...pattern über die Metadaten setzen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Rob69
Beiträge: 73
Registriert: 26. Feb 2021 07:38
Answers: 0

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von Rob69 »

Hallo,

erstmal danke für eure Hilfe!
Aber bei mir steht immer noch eine NULL beim Item.
Ich habe jetzt den Mosquitto neu installiert , dann das MQTT Binding sowie JsonPath deinstalliert sowie neu installiert
Zum Schluss Openhab neu gestartet , aber alles wie vorher!
Alles wird als online angezeigt aber keine Daten!
Auch nicht im Logviewer.
Wie schon geschrieben im MQTT Explorer sowie auf der Weboberfläche wird alles angezeigt!


Gruß Rob

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

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von udo1toni »

Es ist nicht zielführend, Dinge neu zu installieren, die funktionieren :)

Wie konfigurierst Du, per Textdateien oder per UI?
Zeig bitte mal die aktuelle exakte Konfiguration, sowohl des Things als auch der Items.
Im Fall von Textkonfiguration einfach hier als Code einfügen.
Falls UI: Bitte die Codeansicht hier als Code einfügen.
Für die Items funktioniert das leider nicht vollständig, weil Teile der Konfiguration an unterschiedlichen Stellen gespeichert wird (im Unterschied zur Konfiguration per Textdatei)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Rob69
Beiträge: 73
Registriert: 26. Feb 2021 07:38
Answers: 0

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von Rob69 »

Also,
ich mache alles im Textform über Visual Studio Code und das seit Openhab Version 2
Also meine Things sind

Code: Alles auswählen

 Bridge  mqtt:broker:mosquitto "Mosquitto Broker" [
    host="192.168.178.42",
    secure=false,
    username="--------",
    password="--------"
 ] {
    Thing topic Hichi "Easymeter" {
    Channels:
       Type number : power  "Leistung"          [ stateTopic="Tasmota/Stromzähler/SENSOR", transformationPattern="JSONPATH:$.SML.Watt_Summe",        unit="W" ]
       Type number : sumIn  "Summe Bezug"       [ stateTopic="Tasmota/Stromzähler/SENSOR", transformationPattern="JSONPATH:$.SML.Verbrauch_Summe",   unit="kWh" ]
       Type number : sumOut "Summe Einspeisung" [ stateTopic="Tasmota/Stromzähler/SENSOR", transformationPattern="JSONPATH:$.SML.Einspeisung_Summe", unit="kWh" ]
    }
}
meine items sind

Code: Alles auswählen

/// Stromzähler
Number:Power  EasymeterWatt      "aktuelle Leistung" { channel="mqtt:topic:mosquitto:hichi:power",  unit="W",  stateDescription=""[pattern="%.3f kW"]}
Number:Energy EasymeterEnergyIn  "Summe Bezug"       { channel="mqtt:topic:mosquitto:hichi:sumIn",  unit="Wh", stateDescription=""[pattern="%.1f kWh"]}
Number:Energy EasymeterEnergyOut "Summe Einspeisung" { channel="mqtt:topic:mosquitto:hichi:sumOut", unit="Wh", stateDescription=""[pattern="%.1f kWh"]}
welche ich aber von Udo1Toni so übernommen habe.

Hier nochmal das Topic wie es im MQTT Explorer angezeigt wird.

Code: Alles auswählen

%Tasmota%/%Stromzähler%/SENSOR
sowie die Daten vom MQTT Explorer

Code: Alles auswählen

{
  "Time": "2025-02-20T21:05:58",
  "Time": "2025-02-20T21:10:58",
  "SML": {
    "Verbrauch_T1": 0.3786569,
    "Verbrauch_T2": 2297.3547468,
    "Verbrauch_Summe": 2297.7334037,
    "Verbrauch_T2": 2297.3711272,
    "Verbrauch_Summe": 2297.7497841,
    "Einspeisung_Summe": 4295.5679595,
    "Watt_L1": 68.95,
    "Watt_L2": 42.38,
    "Watt_L3": 87.29,
    "Watt_Summe": 198.62,
    "Volt_L1": 231.1,
    "Volt_L2": 236.5,
    "Volt_L3": 234.6
    "Watt_L1": 68.42,
    "Watt_L2": 41.84,
    "Watt_L3": 81.38,
    "Watt_Summe": 191.65,
    "Volt_L1": 231.7,
    "Volt_L2": 238.5,
    "Volt_L3": 235.2
  }
}
das einzige was mir dazu noch einfällt ist, muß ich vieleicht noch einen Code in Transform eintragen,

wie z.B.

Code: Alles auswählen

divide10.js
// Wrap everything in a function (no global variable pollution)
// variable "input" contains data passed by openHAB
(function(inputData) {
     //on read: the polled number as string
     // on write: openHAB command as string
    var DIVIDE_BY = 10;
    return parseFloat(inputData) / DIVIDE_BY;
})(input)

gruß Rob

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

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von PeterA »

Im Thing Topic wird Hichi gross geschrieben.
Im Channel aber klein...
- OpenHab 2.4
#PWRUP

Rob69
Beiträge: 73
Registriert: 26. Feb 2021 07:38
Answers: 0

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von Rob69 »

Erstmal dank.

Habe das jetzt geändert.
Der MQTT Explorer hat schon mehrmals aktualisiert, aber keine Änderung ihn openhab!

Gruß Rob

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

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von udo1toni »

Wo kommen da bitte die Prozentzeichen im Topic her? Hast Du die im Tasmota Frontend mit eingegeben? Dann mach die da bitte weg!
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

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

Re: Hichi IR Wifi mqtt Werte auslesen

Beitrag von PeterA »

Also bei meinem hichi Lesekopf ist das so bei den Mqtt Einstellungen:
Screenshot 2025-02-22 122814.png
Das war schon alles so und ich habe nichts daran verändert.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- OpenHab 2.4
#PWRUP

Antworten