Neuer Zähler aber ich bekomme die Daten nicht in OH

Die alternative Firmware für ESP8266 based devices

Moderatoren: seppy, udo1toni

Antworten
rbeudel
Beiträge: 271
Registriert: 6. Jun 2019 11:25
Answers: 1

Neuer Zähler aber ich bekomme die Daten nicht in OH

Beitrag von rbeudel »

Hallo,
ich habe einen neuen Zähler bekommen. Über das Tasmota Menü bekomme ich schon mal den Verbrauch angezeigt, nur nach OH bekomme ich nichts.
Der MQTT String ist:

Code: Alles auswählen

{
  "Time": "2025-09-29T16:34:18",
  "E320": {
    "E_in": 1,
    "E_out": 0,
    "Power": 0,
    "Meter_Number": "0a014c475a00044100f4"
  }
}
Der MQTT State Topic ist tele/tasmota_25E93C/SENSOR und unter Incomming ... habe ich REGEX:(.*_kwh.*)∩JSONPATH:$.E320.E_in
Aber ich bekomme immer nur 0 angezeigt. Ich sehe hier aber keinen Fehler. Habe ich ein Komma vergessen :?:
Viele Grüße,
Ralf


Debmatic und Openhab in Proxmox VM debian x86_64

Harka
Beiträge: 536
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Neuer Zähler aber ich bekomme die Daten nicht in OH

Beitrag von Harka »

Moin,
aus der Fragestellung geht nicht hervor wofür REGEX:(.*_kwh.*) gut ist. Bekommst Du mit JSONPATH:$.E320.E_in einen Wert?

rbeudel
Beiträge: 271
Registriert: 6. Jun 2019 11:25
Answers: 1

Re: Neuer Zähler aber ich bekomme die Daten nicht in OH

Beitrag von rbeudel »

Bei einem anderen Zähler funktioniert das so. Im gleichen subtopic oder wie das heisst werden mehrere Werte nach einander übertragen. Bezugstrom und Bezogene Energie. Es müsste zur Zeit eine 1 für 1 KWh erscheinen, aber es gibt in OH eine null.
Viele Grüße,
Ralf


Debmatic und Openhab in Proxmox VM debian x86_64

Harka
Beiträge: 536
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Neuer Zähler aber ich bekomme die Daten nicht in OH

Beitrag von Harka »

ja aber bei diesem Zähler und diesem Json-Wert kommt doch kein ->kwh<- vor. Daher führt der Filter zu keinem Treffer. Ggf. musst Du statt dessen nach einem Wert suchen der nur hier vor kommt.

rbeudel
Beiträge: 271
Registriert: 6. Jun 2019 11:25
Answers: 1

Re: Neuer Zähler aber ich bekomme die Daten nicht in OH

Beitrag von rbeudel »

Stimmt, das habe ich ganz ausser acht gelassen. Wahrscheinlich muss ich schon in Tasmota was ändern um eine Unterscheidung hinzubekommen. Alles noch mal auf Anfang. Das ist aber etwas für morgen, vielen Dank erst einmal.
Viele Grüße,
Ralf


Debmatic und Openhab in Proxmox VM debian x86_64

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

Re: Neuer Zähler aber ich bekomme die Daten nicht in OH

Beitrag von peter-pan »

Ich weiss nicht was das für ein Zähler ist, den du hast und ich gehe mal davon aus, dass es sich um eine Custom-Version vom Tasmota handelt.
Was für ein Chip? ESP32 oder ESP8266

Bei mir sieht der JSON-String in der Web-UI so aus:

Code: Alles auswählen

20:23:43.469 MQT: tele/smartmeter/SENSOR = {"Time":"2025-09-29T20:23:43","Strom":{"Meter_Number":"0a01495452000350652c","Total_in":9296.0000,"Power_curr":0,"Total_out":0.0000},"ESP32":{"Temperature":37.3},"TempUnit":"C"}
bzw. als JSON aufbereitet:

Code: Alles auswählen

{
    "Time": "2025-09-29T20:23:43",
    "Strom": {
        "Meter_Number": "0a01495452000350652c",
        "Total_in": 9296,
        "Power_curr": 0,
        "Total_out": 0
    },
    "ESP32": {
        "Temperature": 37.3
    },
    "TempUnit": "C"
Das dazugehörige Thing sieht so aus:

Code: Alles auswählen

    Thing mqtt:topic:danny:smame01 "Hichi Smartmeter 01"  (mqtt:broker:danny )     @ "MQTT2" [
         availabilityTopic="tele/smartmeter/LWT",
         payloadNotAvailable="Offline",
         payloadAvailable= "Online"
         ]
    {
    Channels:
        Type number : rssi        "WiFi Signal Strength"     [ stateTopic="tele/smartmeter/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
        Type string : version     "Firmware Version"         [ stateTopic="stat/smartmeter/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Version"]
        Type switch:  reachable   "Reachable"                [ stateTopic="tele/smartmeter/LWT", on="Online", off="Offline" ]
        Type string : hardware    "Chip Set            "     [ stateTopic="stat/smartmeter/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Hardware"]
        Type string : ipaddress   "IP Address          "     [ stateTopic="stat/smartmeter/STATUS5", transformationPattern="JSONPATH:$.StatusNET.IPAddress"]
        Type string : ssid        "WiFi"                     [ stateTopic="tele/smartmeter/STATE",   transformationPattern="JSONPATH:$.Wifi.SSId"]
        Type string : grouptop    "Group Topic"              [ stateTopic="stat/smartmeter/STATUS1", transformationPattern="JSONPATH:$.StatusPRM.GroupTopic"]
        Type string : serviceid   "Zähler Nr"                [ stateTopic="tele/smartmeter/SENSOR",  transformationPattern="JSONPATH:$.Strom.Meter_Number"]
        Type number : total_in    "Gesamtverbrauch"          [ stateTopic="tele/smartmeter/SENSOR",  transformationPattern="JSONPATH:$.Strom.Total_in", unit="kWh"]
        Type number : power_curr  "Leistung"                 [ stateTopic="tele/smartmeter/SENSOR",  transformationPattern="JSONPATH:$.Strom.Power_curr", unit="W"]
        Type number : total_out   "Erzeugung"                [ stateTopic="tele/smartmeter/SENSOR",  transformationPattern="JSONPATH:$.Strom.Total_out", unit="kWh"]
        Type datetime : time      "Zeit"                     [ stateTopic="tele/smartmeter/STATE",   transformationPattern="JSONPATH:$.Time"]
 

    }
und die Items-Beschreibung:

Code: Alles auswählen

//192.168.178.104                      ESP32C3
Group                  gESP32C3_01                 "Hichi ESP32C3-01 Hichi Smartmeter"                      <hichi>                 (gUG_Treppe)                         ["ElectricMeter"]
Switch                  esp32c3_01_Unreach         "Hichi ESP32C3-01 LWT-Erreichbarkeit [%s]"               <hichi>                 (gESP32C3_01,gLWT)                   ["Point"]                                   { channel="mqtt:topic:danny:smame01:reachable" }          
String                  esp32c3_01_Version         "Hichi ESP32C3-01 Version [%s]"                          <hichi>                 (gESP32C3_01,gVer)                   ["Point"]                                   { channel="mqtt:topic:danny:smame01:version" }            
String                  esp32c3_01_Hardware        "Hichi ESP32C3-01 Hardware [%s]"                         <hichi>                 (gESP32C3_01,gHard)                  ["Point"]                                   { channel="mqtt:topic:danny:smame01:hardware" }            
String                  esp32c3_01_IPAddress       "Hichi ESP32C3-01 IP-Address [%s]"                       <hichi>                 (gESP32C3_01,gIpAd)                  ["Point_Control"]                           { channel="mqtt:topic:danny:smame01:ipaddress" }            
String                  esp32c3_01_SSID            "Hichi ESP32C3-01 Wlan-Netz[%s]"                         <hichi>                 (gESP32C3_01,gSSId)                  ["Status"]                                  { channel="mqtt:topic:danny:smame01:ssid" }         
Number                  esp32c3_01_RSSI            "Hichi ESP32C3-01 RSSI [%.1f]"                           <hichi>                 (gESP32C3_01,gRSSI)                  ["Status"]                                  { channel="mqtt:topic:danny:smame01:rssi" }         
String                  esp32c3_01_GroupTopic      "Hichi ESP32C3-01 Group Topic [%s]"                      <hichi>                 (gESP32C3_01,gGrTop)                 ["Point"]                                   { channel="mqtt:topic:danny:smame01:grouptop" }            
String                  esp32c3_01_serviceid       "Hichi ESP32C3-01 Zähler Nr [%s]"                        <hichi>                 (gESP32C3_01)                        ["Point"]                                   { channel="mqtt:topic:danny:smame01:serviceid" }            
DateTime                esp32c3_01_Date            "Hichi ESP32C3-01 Refresh [%1$tH:%1$tM]"                 <hichi>                 (gESP32C3_01)                        ["Status","Timestamp"]                      { channel="mqtt:topic:danny:smame01:time" }         
Number:Energy           esp32c3_01_total_in        "Hichi ESP32C3-01 Verbrauch total [%.0f %unit%]"         <hichi>                 (gESP32C3_01)                        ["Status"]                                  { channel="mqtt:topic:danny:smame01:total_in" }         
Number:Power            esp32c3_01_power_curr      "Hichi ESP32C3-01 Leistung [%.0f %unit%]"                <hichi>                 (gESP32C3_01)                        ["Status"]                                  { channel="mqtt:topic:danny:smame01:power_curr" }         
Number:Energy           esp32c3_01_total_out       "Hichi ESP32C3-01 Erzeugung [%.0f %unit%]"               <hichi>                 (gESP32C3_01)                        ["Status"]                                  { channel="mqtt:topic:danny:smame01:total_out" }       
Number:Energy           esp32c3_01_carryforwardini "Hichi ESP32C3-01 Saldovortrag 15.5.25 [%.0f %unit%]"    <hichi>                 (gESP32C3_01)                        ["Status"]                                       
Number:Energy           esp32c3_01_MTD             "Hichi Verbrauch lfd.Monat[%.0f kWh]"                    <hichi>                 (gESP32C3_01)                        ["Power"]                                    //Rule - Opening Balance
Number:Energy           esp32c3_01_YTD             "Hichi Verbrauch lfd.Jahr[%.0f kWh]"                     <hichi>                 (gESP32C3_01)                        ["Power"]                                    //Rule - Month To Day
Number:Energy           esp32c3_01_curr            "Hichi Heute   [%.0f kWh]"                               <hichi>                 (gESP32C3_01)                        ["Power"]                                    //Rule - Year To Date
Number:Energy           esp32c3_01_PY              "Hichi Verbrauch Vorjahr[%.0f kWh]"                      <hichi>                 (gESP32C3_01)                        ["Power"]                                    //Rule - current Day
Number:Energy           esp32c3_01_cfPY            "Hichi SV per 15.5.24   [%.0f kWh]"                      <hichi>                 (gESP32C3_01)                        ["Power"]                                    //Rule - Prior Year
Number:Energy           esp32c3_01_yd              "Hichi SM Vortag   [%.0f kWh]"                           <hichi>                 (gESP32C3_01)                        ["Power"]                                    //Rule - yesterday
Number:Energy           esp32c3_01_pM              "Hichi Verbrauch Vormonat   [%.0f kWh]"                  <hichi>                 (gESP32C3_01)                        ["Power"]                                    //Rule - previous Month
Den REGEX verstehe ich nicht ganz? Suchst du da nach "kwh"?

Für mich ist das ein ganz normaler JSON-String. Als YAML-Code sieht der Channel so aus:

Code: Alles auswählen

  - id: total_in
    channelTypeUID: mqtt:number
    label: Gesamtverbrauch
    configuration:
      retained: false
      postCommand: false
      unit: kWh
      formatBeforePublish: "%s"
      step: 1
      stateTopic: tele/smartmeter/SENSOR
      transformationPattern:
        - JSONPATH:$.Strom.Total_in
Also mein "Strom.Total_in" sollte dein "E320.E_in" sein.

Ist dein Channel-Type im Thing und dein Item-Type auch numerisch ?
Pi5/8GB(PiOS Lite 64-bit(trixie)/SSD 120GB - OH5.0.1 openhabian

rbeudel
Beiträge: 271
Registriert: 6. Jun 2019 11:25
Answers: 1

Re: Neuer Zähler aber ich bekomme die Daten nicht in OH

Beitrag von rbeudel »

Den REGEX verstehe ich nicht ganz? Suchst du da nach "kwh"?
Vollkommen richtig. Ich war wieder zu ungeduldig und habe nicht gewartet bis alle Daten übertragen wurden. RegEx ist nicht nötig. Zudem muss ich den Zähler noch freischalten, der liefert nur die KWh ohne Nachkommastellen und die Leistung überhaupt nicht. Die KWh habe ich nach Deinem Konzept schon mal in OH. Jetzt muss noch die Taschenlampe tätig werden um weitere Daten zu bekommen. Vielen Dank für die Tips.
Bei meinem anderen Zähler ging es nicht ohne regEx.
Viele Grüße,
Ralf


Debmatic und Openhab in Proxmox VM debian x86_64

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

Re: Neuer Zähler aber ich bekomme die Daten nicht in OH

Beitrag von peter-pan »

Also ich musste meinen Smartmeter nicht beim E-Werk freischalten, das ging auch so.

Wie sieht denn dein MQTT-String aus der Web-UI aus ? Sind da auch keine Nachkomma-Stellen drin ?

Wenn ich das Smartmeter-Script für den E320 anschaue, dann müssten da eigentlich 3 Nachkomma-Stellen angezeigt werden !

E320 Script:

Code: Alles auswählen

>D
>B
=>sensor53 r
>M 1
+1,3,s,20,9600,E320
1,77070100020800ff@1000,Total Delivered,kWh,Total_out,3
1,77070100010800ff@1000,Total Consumed,kWh,Total_in,3
1,77070100100700ff@1,Current power,W,Power_in,3
1,77070100600100ff@#,Server-ID,,Meter_Number,0    
#
Bei mir sind es sogar 4 Nachkommastellen, standardmäßig bzw. 0 Nachkommastellen.
Pi5/8GB(PiOS Lite 64-bit(trixie)/SSD 120GB - OH5.0.1 openhabian

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

Re: Neuer Zähler aber ich bekomme die Daten nicht in OH

Beitrag von udo1toni »

Es kommt auf den Zählertyp an, ob die optische Schnittstelle Daten liefert, und wenn ja, in welcher Form.
Mein erster Zähler lieferte nur wenige Datensätze pro Minute, der aktuelle Zähler kann viele Daten liefern, aber erst nach Freischaltung werden diese in voller Auflösung und Menge ausgegeben (ca. ein kompletter Datensatz pro Sekunde). Datenschutz ist wichtig...

Die Eingabe der PIN erfolgt entweder über einen Taster am Zähler oder auch gerne per Blinksignal, wobei man pro Ziffer entsprechend oft das Licht blinken lässt.
Ob der Zähler die Daten reduziert ausgibt hängt vom Modell ab, die PIN ist individuell (pro Gerät, pro Kunde) und das EVU (bzw. der Messstellenbetreiber) muss diese auf Verlangen unentgeltlich mitteilen. Die PIN muss nur einmal erfolgreich eingegeben werden (die Freischaltung überlebt auch einen Stromausfall).
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.9, LXC)

Antworten