Seite 2 von 2

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

Verfasst: 30. Sep 2025 22:00
von peter-pan
Nochmal die Frage: Wie sieht der Datensatz in der Web-UI(Konsole) aus ?

Bei mir sieht er so aus:

Code: Alles auswählen

21:23:43.466 MQT: tele/smartmeter/SENSOR = {"Time":"2025-09-30T21:23:43","Strom":{"Meter_Number":"0a01495452000350652c","Total_in":9304.0000,"Power_curr":0,"Total_out":0.0000},"ESP32":{"Temperature":37.3},"TempUnit":"C"}
Web-UI:
hichi.jpg
So, oder so ähnlich sollte das bei dir doch auch aussehen. Wenn ja, dann sollte es auch mit den o.g. Thing- und Item-Parametern klappen.

Noch eine Frage: Hast du versucht die Firmware upzudaten ?

Und noch eine Frage: Wie sieht dein Script aus ?

Und noch eine Frage: Was ist denn der tatsächliche Zählerstand ? Das müsste dann ja 8 kWh sein.

Was die Anzeige in Watt betrifft, so bin ich mir nicht sicher, ob das der Verbrauch ist oder ob das etwa die momentane Last aller Verbraucher darstellt. Ich habe diesen Parameter zwar in meinem Script, aber da wird nie etwas angezeigt. Wahrscheinlich habe ich den Parameter mal testweise eingebaut und wieder vergessen ihn raus zu nehmen.

Vielleicht kann Udo hierzu etwas sagen.

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

Verfasst: 1. Okt 2025 08:25
von rbeudel
peter-pan hat geschrieben: 30. Sep 2025 22:00 Nochmal die Frage: Wie sieht der Datensatz in der Web-UI(Konsole) aus ?

Code: Alles auswählen

07:17:06.049 MQT: tele/tasmota_25E93C/SENSOR = {"Time":"2025-10-01T07:17:06","E320":{"E_in":12.000}
Bild
peter-pan hat geschrieben: 30. Sep 2025 22:00Noch eine Frage: Hast du versucht die Firmware upzudaten ?
Nein
peter-pan hat geschrieben: 30. Sep 2025 22:00Und noch eine Frage: Wie sieht dein Script aus ?

Code: Alles auswählen

>D
>B
=>sensor53 r
>M 1
+1,3,s,20,9600,E320,1
1,77070100010800ff@1000,Verbrauch,kWh,E_in,19
1,77070100100700ff@1,Current power,W,Power_in,3
1,=h--
1,77070100600100ff@#,Server-ID,,Meter_Number,0
#
peter-pan hat geschrieben: 30. Sep 2025 22:00Und noch eine Frage: Was ist denn der tatsächliche Zählerstand ? Das müsste dann ja 8 kWh sein.
richtig

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

Verfasst: 2. Okt 2025 23:48
von peter-pan
Das sieht ja alles so aus, als hättest du auch den gleichen Smartmeter, wie ich. Das Script ist im Prinzip fast das selbe. Dein Stromzähler ist ja dann auch wahrscheinlich ein Itron von der ENBW.
Ich habe bei meinem lokalen Ableger (ODR) aber bisher keinen Pin angefordert. Mein Smartmeter bringt also nur den jeweiligen Zählerstand nach OH.

Die Werte, die ich haben will, werden per Rule ermittelt. Das Thing und die Items dazu habe ich ja schon weiter oben beschrieben:

Code: Alles auswählen

// import org.openhab.core.model.script.ScriptServiceUtil

rule "persistence Stromzähler"
//  https://community.openhab.org/t/persistence-deltabetween-error/137287

when
    Item Dummy_pers_9 changed from OFF to ON or
    Time cron "0 0 0/1 1/1 * ? *" 

then
//  var GenericItem itemTemp  = ScriptServiceUtil.getItemRegistry.getItem(gESP32C3_01.name) as GenericItem    // Initialize Generic Item 
//  var strLocation = getLocation(itemTemp).label                                                             // Location Label ermitteln

//    logInfo("Hichi","--------------Item {} - P-Address {}  Item Ort {} persistence starts---------------------------------------------", esp32c3_01.label,esp32c3_01_IPAddress.state, strLocation) 

   val VerbrauchTag              = esp32c3_01_total_in.deltaSince(ZonedDateTime.now().with(LocalTime.MIDNIGHT)) as Number                        // Heute aus Gesamtverbrauch
   var VerbrauchVortag           = esp32c3_01_total_in.deltaBetween(ZonedDateTime.now.minusDays(1).with(LocalTime.MIDNIGHT), now.minusDays(0).with(LocalTime.MIDNIGHT).minusSeconds(1)) as Number   // gestern aus Gesamtverbrauch
   var VerbrauchMonat            = esp32c3_01_total_in.deltaSince(now.withDayOfMonth(1).with(LocalTime.MIDNIGHT))                                // Monat
// var VerbrauchJahr             = esp32c3_01_total_in.deltaSince(ZonedDateTime.now.withMonth(3).withDayOfMonth(1).with(LocalTime.MIDNIGHT))     // Jahr  - Vorraussetzung, dass auch Daten vorhanden sind ;-)
   var Number VerbrauchJahr      = (esp32c3_01_total_in.state as QuantityType<Energy> - esp32c3_01_carryforwardini.state as QuantityType<Energy>)     // Jahr  - hilfsweise  ;-)
   var Number VerbrauchVorJahr   = (esp32c3_01_carryforwardini.state as QuantityType<Energy> - esp32c3_01_cfPY.state as QuantityType<Energy>)         // Vorjahr - rechnerisch
   var VerbrauchVorMonat         = esp32c3_01_total_in.deltaBetween(ZonedDateTime.now.minusMonths(1).withDayOfMonth(1).with(LocalTime.MIDNIGHT), ZonedDateTime.now.withDayOfMonth(1).with(LocalTime.MIDNIGHT).minusSeconds(1))  // Vormonat

       esp32c3_01_cfPY.postUpdate(5053.0)             // Vortragswert per 15.5.24
       esp32c3_01_carryforwardini.postUpdate(8138.0)  // Vortragswert per 15.5.25


       esp32c3_01_yd.postUpdate(VerbrauchVortag)   // Gestern
       esp32c3_01_MTD.postUpdate(VerbrauchMonat)   // Monat
       esp32c3_01_pM.postUpdate(VerbrauchVorMonat) // VormonatMonat

       esp32c3_01_YTD.postUpdate(VerbrauchJahr)    // Jahr
       esp32c3_01_PY.postUpdate(VerbrauchVorJahr)  // Vorjahr
       esp32c3_01_curr.postUpdate(VerbrauchTag)    // Heute


end
Da ich den Smartmeter erst seit ein paar Monaten einsetze, habe ich ein paar "Hilfswerte" mit eingebunden. Die Regel ist vielleicht nicht "HighEnd", aber für mich reicht es momentan. (Anmerkung: Das Abrechnungsjahr beginnt jeweils am 15.5. des Kalenderjahres). Für Optimierungen oder Verbesserungen bin ich immer dankbar.

Die Darstellung in OH habe ich mit einem kleinen Widget realisiert:
hichi.jpg
Der Yaml-Code dafür:

Code: Alles auswählen

uid: hichi_energy
tags:
  - Energyw Sensor Control
  - peter-pan
props:
  parameters:
    - default: "300"
      description: Breite des Widgets in px (default:300)
      label: Widget Breite
      name: size
      required: false
    - description: Hintergrund des Widgets (e.g. linear-gradient(122deg,
        rgba(34,193,195,1) 0%, rgba(253,187,45,1) 100%) )
      label: Hintergrund/Background
      name: background1
      required: false
  parameterGroups: []
timestamp: Jun 10, 2025, 11:16:44 PM
component: f7-card
config:
  border: no
  style:
    --cardCorners: 20px
    --cardHigh: auto
    --cardWidth: =props.size + "px"
    --f7-card-box-shadow: none
    background: '=(props.background1) ? props.background1 : "linear-gradient(122deg,
      rgba(255,255,224,1) 0%, rgba(95,158,160,1) 100%)"'
    border-radius: '=(props.corners) ? props.corners : "var(--cardCorners)"'
    height: auto
    margin: 5px
    noShadow: true
    padding: 10px
    width: '=(props.size) ? "var(--cardWidth)" : "300px"'
  title: ='Stromzähler 1 ITR00 5560 0428 ' + items.esp32c3_01_IPAddress.state
slots:
  default:
    - component: f7-card
      config:
        border: no
        style:
          background: linear-gradient(to bottom left,#DC143C 0%,#00FFFF 40%
          border-radius: '=(props.corners) ? props.corners : "var(--cardCorners)"'
          height: var(--cardHigh)
        title: ="Verbrauch JahresPeriode 15.5. SV:" +
          items.esp32c3_01_carryforwardini.state
      slots:
        default:
          - component: oh-list
            config:
              mediaList: true
            slots:
              default:
                - component: oh-label-item
                  config:
                    icon: oh:power
                    iconUseState: false
                    item: esp32c3_01_YTD
                    style:
                      --f7-list-item-border-color: transparent
                      height: 35px
                    title: lfd. Jahr (YtD)
                - component: oh-label-item
                  config:
                    icon: oh:power
                    iconUseState: false
                    item: esp32c3_01_MTD
                    style:
                      --f7-list-item-border-color: transparent
                      height: 35px
                    title: lfd. Monat (MtD)
                - component: oh-label-item
                  config:
                    icon: oh:power
                    iconUseState: false
                    item: esp32c3_01_yd
                    style:
                      --f7-list-item-border-color: transparent
                      height: 35px
                    title: Vortag
                - component: oh-label-item
                  config:
                    icon: oh:power
                    iconUseState: false
                    item: esp32c3_01_curr
                    style:
                      --f7-list-item-border-color: transparent
                      height: 35px
                    title: Heute
                - component: oh-label-item
                  config:
                    icon: oh:power
                    iconUseState: false
                    item: esp32c3_01_pM
                    style:
                      --f7-list-item-border-color: transparent
                      height: 35px
                    title: Vormonat
                - component: oh-label-item
                  config:
                    icon: oh:power
                    iconUseState: false
                    item: esp32c3_01_total_in
                    style:
                      --f7-list-item-border-color: transparent
                    title: Zählerstand Aktuell
    - component: f7-card
      config:
        border: no
        style:
          background: linear-gradient(to top left,green 0%,lightblue 60%)
          border-radius: '=(props.corners) ? props.corners : "var(--cardCorners)"'
          height: var(--cardHigh)
        title: Verbrauch Vorjahr
      slots:
        default:
          - component: oh-list
            config:
              mediaList: true
            slots:
              default:
                - component: oh-label-item
                  config:
                    icon: oh:energy1
                    iconUseState: false
                    item: esp32c3_01_PY
                    style:
                      --f7-list-item-border-color: transparent
                      height: 35px
                    title: Vorjahr Gesamt
                - component: oh-label-item
                  config:
                    icon: oh:energy1
                    iconUseState: false
                    item: esp32c3_01_cfPY
                    style:
                      --f7-list-item-border-color: transparent
                    title: Zählerstand
Details für das Itron-Script hast du sicherlich auch schon auf der Tasmota-Seite gefunden. Falls nicht, hier der Link

Zur schnellen Übersicht habe ich auch noch ein kleines Standard-Widget:
hichi_oh-cell.jpg
Der Yaml-Code hierzu:

Code: Alles auswählen

component: oh-label-cell
config:
  action: analyzer
  actionAnalyzerChartType: isoWeek
  actionAnalyzerItems:
    - esp32c3_01_total_in
  footer: "='IP: ' + items.esp32c3_01_IPAddress.state + \" ---------- Zeit: \" +
    dayjs(items.esp32c3_01_Date.state).format('HH:mm')"
  header: Stromzähler
  icon: oh:hichi
  item: esp32c3_01_total_in
  label: '="Zählerstand: " + items.esp32c3_01_total_in.state'
  stateStyle:
    color: blue
    fontSize: 21px
  style:
    background: linear-gradient(to top right,#DC143C 0%,#00FFFF 60%)
  subtitle: '="Verbrauch: " +items.esp32c3_01_YTD.state+ " = " +
    (Number.parseFloat(items.esp32c3_01_YTD.state) * 0.35).toFixed(2) + " EUR"'
  trendItem: esp32c3_01_total_in

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

Verfasst: 3. Okt 2025 09:58
von rbeudel
peter-pan hat geschrieben: 2. Okt 2025 23:48 Das sieht ja alles so aus, als hättest du auch den gleichen Smartmeter, wie ich.
Moin,
leider nicht. Ist der E320 EHZ Zähler von Landis und Gyr. Ich habe inzwischen den PIN von Westnetz aber noch nicht alles freigeschaltet. Bei jedem Versuch mit der blinkerei habe ich mir was vorher schon lief wieder kaputt gemacht. Dein Widget sieht sehr gut aus :!: :!:

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

Verfasst: 3. Okt 2025 20:48
von peter-pan
Schade, aber die Scripts sind ja doch relativ ähnlich. Ich werde bei meinem Stromanbieter auch mal nachfragen, ob es so einen Pin gibt, mit dem man zusätzliche Infos freischalten kann.

Vielleicht interessant wären noch zwei "SetOptions" für den Tasmota-ESP32, falls du sie noch nicht kennst.

Setoption53 zeigt dir die Netwerkadresse in der WebUI an

Code: Alles auswählen

SetOption53 	Display hostname and IP address in GUI
                0 = disable (default)
                1 = enable
und SetOption146 zeigt die Chip-Temperatur in der Web-UI an

Code: Alles auswählen

SetOption146 	1 = enable display of ESP32 internal temperature

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

Verfasst: 3. Okt 2025 22:00
von udo1toni
rbeudel hat geschrieben: 3. Okt 2025 09:58 Bei jedem Versuch mit der blinkerei habe ich mir was vorher schon lief wieder kaputt gemacht.
Wie meinst Du das?

Am Zähler kannst Du lediglich die PIN eingeben. Such Dir eine Taschenlampe mit "echter" Blinkfunktion, über einen Schalter macht das Blinken keinen Spaß :)
Dann lässt Du (Display des Zählers ist im Grundzustand) einmal kurz die Taschenlampe aufblinken (den Lichtstrahl lässt Du dabei logischerweise auf die frontseitige optische Schnittstelle leuchten)
In der Folge springt die obere Anzeige auf 88888, diese Zeile springt nach zwei Sekunden um eine Zeile nach unten, weitere 2 Sekunden später springt die Zeile "aus dem Bild" und in der unteren Zeile stehen nun lauter Striche, bis auf die zweite Stelle, dort steht eine 0, was gleichzeitig die erste Stelle Deiner Pin ist. Stimmt dieses nicht, blinkst Du nun so oft kurz, bis die erste Ziffer korrekt ist.
Wenn Du drei Sekunden lang nicht blinkst, wird die Ziffer übernommen und die nächste Ziffer wird aktiv.
Nach der 4. Stelle der PIN kommt die Frage, ob die PIN korrekt ist, welche Du mit einem langen (> 5 Sekunden) Aufleuchten der Taschenlampe bestätigst (vermute ich mal...)

Danach fasst Du den Zähler nicht mehr an, als letzte Aktion bringst Du den optischen Lesekopf an.
Ab diesem Zeitpunkt sollten alle Daten in hoher Genauigkeit übertragen (und auch im Display des Zählers angezeigt) werden. Die Anzeige am Zähler wechselt zyklisch zwischen den verschiedenen Modi, Du musst hier also nichts mehr bedienen (außer Du möchtest den Zähler zurücksetzen, wobei sich das natürlich nur auf den "inoffiziellen" Zähler bezieht, aber selbst da sehe ich den Sinn nicht, wenn Du doch den Zählerstand ohnehin digital erfasst und somit in openHAB beliebig Teilzähler realisieren kannst, falls Du das benötigen solltest.

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

Verfasst: 4. Okt 2025 13:17
von rbeudel
udo1toni hat geschrieben: 3. Okt 2025 22:00
Wie meinst Du das?
Hallo,
es liegt wohl doch nicht an mir. Das einzige was ich abschalten konnte war die PIN Abfrage. Danach wird in der zweiten Reihe der aktuelle Verbrauch angezeigt. Es wird jedoch nur der Zählerstand in vollen KWh über die optische Schnittstelle übertragen. Weiter im Menü gibt es eine Position um den erweiterten Datensatz freizuschalten. Dieser bleibt jedoch auf OFF. Ich habe natürlich schon stundenlang gegoogled, und ein Leidensgenosse hat von seinem Zählermonteur erklärt bekommen, das beim Anschluß eines Smartmetergateways, keine erweiterten Daten mehr über die optische Schnittstelle gehen. Das ist wohl bei mir der Fall. Jetzt muss ich wöhl noch ein eigenes Smartmeter einbauen, ein Elgris habe ich noch rumliegen, um meine Wärmepumpe zu dokumentieren. Was es mit der HAN Schnittstelle auf sich hat muss ich noch ausprobieren und dann gibt es auch noch einen Zugang zum Messstellenbetreiber. Das wird aber eine direkte Messung nicht ersetzen.

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

Verfasst: 4. Okt 2025 22:32
von udo1toni
Ah, das heißt, Du hast ein Smartmetergateway...

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

Verfasst: 5. Okt 2025 13:55
von rbeudel
udo1toni hat geschrieben: 4. Okt 2025 22:32 Ah, das heißt, Du hast ein Smartmetergateway...
Ja mit dem neuen Zähler kam gleich das Smartmetergateway von PPC. Die "Vorzüge" davon habe ich noch nicht ausprobiert, oder werden erst in einigen Tagen vom Messtellenbetreiber freigegeben.