Seite 1 von 2

Rules negative Zahlen berechnen

Verfasst: 24. Jun 2023 14:37
von Wolle39
Hallo zusammen.

Ich komm nicht mehr weiter und weiß nicht wo der Fehler liegen kann.

Ich habe digitale Stromzähler von Powerfox, einmal für die PV und einmal für den Hausanschluß.
Die ermittelten Werte von den Stromzähler sind Negative Zahlen.
Folgende Channels gibt es vom Thing
Item = Poweropti_Stromzaehler_Aktueller_Wert_Leistungswert_PV
Item = Poweropti_Stromzaehler_Leistungswert_Haus

Ich habe ein Item = Gesamtleistung_Strom erstellt um den aktuellen Stromverbrauch zu errechnen.

Dafür gibt es eine Rule.
Alle Items sind Number

Code: Alles auswählen

rule "Aktueller_Stromverbrauch_Haus"

when
     Item Poweropti_Stromzaehler_Leistungswert_Haus changed or Poweropti_Stromzaehler_Aktueller_Wert_Leistungswert_PV changed
then 
      Gesamtleistung_Strom.postUpdate((Poweropti_Stromzaehler_Aktueller_Wert_Leistungswert_PV.state as Number).floatValue - (Poweropti_Stromzaehler_Leistungswert_Haus.state as Number).floatValue)
end
Leider wird der Wert nicht berrechnet zudem sehe ich die Rule Aktueller_Stromverbrauch_Haus auch nicht im openHAB.
Anscheinend habe ich einen Fehler drinnen.
Nur wo?

Im Bild sind die Werte zu sehen.

Die 31 Watt stehen nur als Beispiel drinnen.

Könnte ich eigentlich die negative Zahl in eine positive umwandeln?

Re: Rules negative Zahlen berechnen

Verfasst: 24. Jun 2023 18:03
von peter-pan
Zunächst mal sehe ich auf die Schnelle keinen offensichtlichen Fehler.

Das Umwandeln in ein positive Zahl kann in zwei Arten erfolgen. Erstens du kannst deinen Wert in einen absoluten Wert per Funktion umwandeln (Math::abs). Ein Beispiel dazu findest du hier. (Ich hoffe das funktioniert auch noch inOH3/OH4 - Hab's nicht getestet ;) )

Eine weitere Möglichkeit ist die Umwandlung durch Multiplikation des Wertes mit "-1". Dabei werden dann allerdings positive Werte in negative Werte umgewandelt.

Wie hast du denn die Rule angelegt ?

Du kannst ja mal einfach zu Testzwecken noch einen Log-Befehl in die Rule einbauen. Z.B.:

Code: Alles auswählen

logInfo("Stromverbrauch","Es hat sich ein Wert verändert")
Deine anderen Rules funktionieren ?!

Eigentlich sollte deine Regel in der Main-UI unter Einstellungen/Rules im "Alphabet" unter "A" sichtbar sein. Und natürlich auch in deinem openHAB-Verzeichnis ( in der Regel $OPENHAB_CONF) im Ordner "rules".

Re: Rules negative Zahlen berechnen

Verfasst: 24. Jun 2023 18:58
von oh73
fehlt da in deiner Rule bei when hinter or nicht ein "Item" ?

Code: Alles auswählen

rule "Aktueller_Stromverbrauch_Haus"

when
     Item Poweropti_Stromzaehler_Leistungswert_Haus changed or 
	 Item Poweropti_Stromzaehler_Aktueller_Wert_Leistungswert_PV changed
then 
      Gesamtleistung_Strom.postUpdate((Poweropti_Stromzaehler_Aktueller_Wert_Leistungswert_PV.state as Number).floatValue - (Poweropti_Stromzaehler_Leistungswert_Haus.state as Number).floatValue)
end
ich arbeite ja viel mit dem habpanel, da zeige ich die negativen Werte ganz einfach mit

{{-itemValue('momentan_Verbrauch')}} an.
ein Minus Zeichen vor itemValue und der Wert wird als positiver Wert angezeigt!

Re: Rules negative Zahlen berechnen

Verfasst: 24. Jun 2023 21:18
von Wolle39
Danke für die Antwort.

Die Math::abs funktion würde mir eigentlich sehr gut gefallen.
Funktioniert das nur auch so - siehe unten. Ich meine state as Number ...
rule "Aktueller_Stromverbrauch_Haus"

when
Item Poweropti_Stromzaehler_Leistungswert_Haus changed or Item Poweropti_Stromzaehler_Aktueller_Wert_Leistungswert_PV changed
then
(Math::abs(Gesamtleistung_Strom).postUpdate((Math::abs(Poweropti_Stromzaehler_Aktueller_Wert_Leistungswert_PV.state as Number).floatValue) - (Poweropti_Stromzaehler_Leistungswert_Haus.state as Number).floatValue)
end

Re: Rules negative Zahlen berechnen

Verfasst: 24. Jun 2023 21:20
von Wolle39
Kann ich eigentlich direkt in einem Channel solche eine Funktion setzen.

Der Wert wird bei mir immer ein negativer sein. Das könnte als fest hinterlegt werden.

Re: Rules negative Zahlen berechnen

Verfasst: 24. Jun 2023 21:56
von udo1toni
Ich möchte empfehlen, den Code ordentlich zu schreiben

Code: Alles auswählen

rule "aktueller Stromverbrauch Haus"                                                                 // Als Name sind alle Zeichen erlaubt - sogar Umlaute!
when
    Item Poweropti_Stromzaehler_Leistungswert_Haus changed or 
    Item Poweropti_Stromzaehler_Aktueller_Wert_Leistungswert_PV changed
then
    var nPV = 0.0                                                                                    // 0.0 erzwingt eine Number Variable (statt Integer)
    if(Poweropti_Stromzaehler_Aktueller_Wert_Leistungswert_PV.state instanceof Number)               // falls eine gültige Zahl vorliegt
        nPV = - (Poweropti_Stromzaehler_Aktueller_Wert_Leistungswert_PV.state as Number).floatValue  // schreibe sie (mit umgekehrtem Vorzeichen) in die Variable
    var nHaus = 0.0                                                                                  // same procedure... 
    if(Poweropti_Stromzaehler_Leistungswert_Haus.state instanceof Number)
        nHaus = - (Poweropti_Stromzaehler_Leistungswert_Haus.state as Number).floatValue

    Gesamtleistung_Strom.postUpdate(nPV - nHaus)                                                     // bestimme Differenz
end
Allerdings frage ich mich, ob der errechnete Wert tatsächlich dem entspricht, was Du erwartest. Was genau messen die beiden Zähler denn?
Ich habe bei mir drei Zähler, zum einen der EVU Zähler (Zweirichtungszähler wg. Einspeisung, Werte werden zyklisch über die optische Schnittstelle ausgegeben, getrennt pro Richtung), dann noch einen für eine zweite Wohneinheit und den für den Gesamtverbrauch, der schon gebraucht wird, um die Abriegelung bei 70% zu steuern. Text-Schema also etwa so:

Code: Alles auswählen

EVU - EVU-Zähler - PV - Hauptzähler - Unterzähler
Der Wechselrichter der PV Anlage hat auch einen internen Zähler, den ich ebenfalls auslese.
Meinen eigenen Verbrauch erhalte ich also, indem die vom Hauptzähler den Unterzähler abziehe. Den PV-Anteil kann ich indirekt aus EVU-Zähler und Hauptzähler bestimmen, muss aber beide Zählerrichtungen berücksichtigen. - oder ich nutze den PV-Zähler.

Re: Rules negative Zahlen berechnen

Verfasst: 24. Jun 2023 23:05
von Wolle39
Hallo udo1toni.

Wie immer der Hammer.
Deine Rule klappt auf Anhieb.

Ich habe zwei Stromzähler von Powerfox verbaut.Einer für den Hausanschluß und der andere für die PV Anlage.
Der Hausanschluß geht quasi in einen negativen Wert sobald die PV mehr erzeugt als verbraucht wird.

Leider kann ich den Wechselrichter nicht anzapfen. Einfach zu alt und bin hier im Forum auch nicht fündig geworden bzw. konnte mir auch keiner weiterhelfen.

Ich kann morgen mal einen Wert reinstellen, dann sieht man um was es mir mit dem Werten geht.

Bin hier am gerade am Anfang.
Ich schreibe das jetzt mal hier rein, vielleicht braucht das irgend jemand auch noch.

Die Powerfox Zähler senden die Daten in eine Cloud die ich auch über die APP dann abrufen kann.
Über eine API Schnittstellen kann man die Daten auch abgreifen.
https://www.powerfox.energy/wp-content/ ... en-API.pdf

Über eine HTML Binding mit der Basis-URL https://backend.powerfox.energy/api/2.0 Inhaltstyp JSON rufe ich die Daten dann ab.
Die Channels bekommen dann im Status-URL Erweiterung den restlichen Syntax mit: /my/IDPowerFox/current?unit=wh
In dem Fall ist das die aktuelle Messung von der PV Anlage (intervall 3 Sekunden)

Jetzt wird es noch spannend mit abrufen der Ertragsdaten der PV pro Monat oder Tag werden.
Weil ich aus dem Ergebnis nicht wirklich schlau werde.
Der HTML Aufruf https://backend.powerfox.energy/api/2.0 ... report?day bringt dieses Ergebnis.

Code: Alles auswählen

{
  "Consumption": {
    "StartTime": 1687554000,
    "StartTimeCurrency": 1687554000,
    "Sum": 3.093,
    "Max": 0.426,
    "MaxCurrency": 0.1840661111111111,
    "MeterReadings": [],
    "ReportValues": [
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687636800,
        "Complete": true,
        "Delta": 0.385,
        "DeltaHT": 0,
        "DeltaNT": 0.385,
        "DeltaCurrency": 0.16375833333333335,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687633200,
        "Complete": true,
        "Delta": 0.384,
        "DeltaHT": 0,
        "DeltaNT": 0.384,
        "DeltaCurrency": 0.16758111111111113,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687629600,
        "Complete": true,
        "Delta": 0.119,
        "DeltaHT": 0,
        "DeltaNT": 0.119,
        "DeltaCurrency": 0.06356861111111112,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687626000,
        "Complete": true,
        "Delta": 0,
        "DeltaHT": 0,
        "DeltaNT": 0,
        "DeltaCurrency": 0.01686111111111111,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687622400,
        "Complete": true,
        "Delta": 0,
        "DeltaHT": 0,
        "DeltaNT": 0,
        "DeltaCurrency": 0.01686111111111111,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687618800,
        "Complete": true,
        "Delta": 0,
        "DeltaHT": 18.789,
        "DeltaNT": 0,
        "DeltaCurrency": 0.01686111111111111,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687615200,
        "Complete": true,
        "Delta": 0,
        "DeltaHT": 0,
        "DeltaNT": 0,
        "DeltaCurrency": 0.01686111111111111,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687611600,
        "Complete": true,
        "Delta": 0,
        "DeltaHT": 0,
        "DeltaNT": 0,
        "DeltaCurrency": 0.01686111111111111,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687608000,
        "Complete": true,
        "Delta": 0,
        "DeltaHT": 0,
        "DeltaNT": 0,
        "DeltaCurrency": 0.01686111111111111,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687604400,
        "Complete": true,
        "Delta": 0,
        "DeltaHT": 0,
        "DeltaNT": 0,
        "DeltaCurrency": 0.01686111111111111,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687600800,
        "Complete": true,
        "Delta": 0,
        "DeltaHT": 0,
        "DeltaNT": 0,
        "DeltaCurrency": 0.01686111111111111,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687597200,
        "Complete": true,
        "Delta": 0,
        "DeltaHT": 0,
        "DeltaNT": 0,
        "DeltaCurrency": 0.01686111111111111,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687593600,
        "Complete": true,
        "Delta": 0,
        "DeltaHT": 0,
        "DeltaNT": 0,
        "DeltaCurrency": 0.01686111111111111,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687590000,
        "Complete": true,
        "Delta": 0,
        "DeltaHT": 0,
        "DeltaNT": 0,
        "DeltaCurrency": 0.01686111111111111,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687586400,
        "Complete": true,
        "Delta": 0.069,
        "DeltaHT": 0,
        "DeltaNT": 0.069,
        "DeltaCurrency": 0.043943611111111117,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687582800,
        "Complete": true,
        "Delta": 0.10200000000000001,
        "DeltaHT": 0,
        "DeltaNT": 0.10200000000000001,
        "DeltaCurrency": 0.05689611111111111,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687579200,
        "Complete": true,
        "Delta": 0.426,
        "DeltaHT": 0,
        "DeltaNT": 0.426,
        "DeltaCurrency": 0.1840661111111111,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687575600,
        "Complete": true,
        "Delta": 0.342,
        "DeltaHT": 18.06,
        "DeltaNT": 0.3435,
        "DeltaCurrency": 0.15109611111111113,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687572000,
        "Complete": true,
        "Delta": 0.205,
        "DeltaHT": 0,
        "DeltaNT": 0.20350000000000002,
        "DeltaCurrency": 0.09732361111111113,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687568400,
        "Complete": true,
        "Delta": 0.196,
        "DeltaHT": 0,
        "DeltaNT": 0.196,
        "DeltaCurrency": 0.09379111111111112,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687564800,
        "Complete": true,
        "Delta": 0.209,
        "DeltaHT": 0,
        "DeltaNT": 0.209,
        "DeltaCurrency": 0.0988936111111111,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687561200,
        "Complete": false,
        "Delta": 0.21866666666666666,
        "DeltaHT": 0,
        "DeltaNT": 0.21866666666666666,
        "DeltaCurrency": 0.10268777777777777,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687557600,
        "Complete": false,
        "Delta": 0.21866666666666666,
        "DeltaHT": 0,
        "DeltaNT": 0.21866666666666666,
        "DeltaCurrency": 0.10268777777777777,
        "ValuesType": 1
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687554000,
        "Complete": false,
        "Delta": 0.21866666666666666,
        "DeltaHT": 0,
        "DeltaNT": 0.21866666666666666,
        "DeltaCurrency": 0.10268777777777777,
        "ValuesType": 1
      }
    ],
    "SumCurrency": 1.6144538888888889
  },
  "FeedIn": {
    "StartTime": 1687554000,
    "StartTimeCurrency": 9223372036854775807,
    "Sum": 75.895,
    "Max": 10.043000000000001,
    "MaxCurrency": 0,
    "MeterReadings": [],
    "ReportValues": [
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687636800,
        "Complete": true,
        "Delta": 0,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687633200,
        "Complete": true,
        "Delta": 0,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687629600,
        "Complete": true,
        "Delta": 0.045,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687626000,
        "Complete": true,
        "Delta": 0.22299999999999998,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687622400,
        "Complete": true,
        "Delta": 1.162,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687618800,
        "Complete": true,
        "Delta": 3.51,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687615200,
        "Complete": true,
        "Delta": 5.904,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687611600,
        "Complete": true,
        "Delta": 7.846,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687608000,
        "Complete": true,
        "Delta": 8.635,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687604400,
        "Complete": true,
        "Delta": 10.043000000000001,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687600800,
        "Complete": true,
        "Delta": 9.756,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687597200,
        "Complete": true,
        "Delta": 9.992,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687593600,
        "Complete": true,
        "Delta": 9.39,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687590000,
        "Complete": true,
        "Delta": 6.951,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687586400,
        "Complete": true,
        "Delta": 1.181,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687582800,
        "Complete": true,
        "Delta": 0.07200000000000001,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687579200,
        "Complete": true,
        "Delta": 0,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687575600,
        "Complete": true,
        "Delta": 0,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687572000,
        "Complete": true,
        "Delta": 0,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687568400,
        "Complete": true,
        "Delta": 0,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687564800,
        "Complete": true,
        "Delta": 0.237,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687561200,
        "Complete": false,
        "Delta": 0.316,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687557600,
        "Complete": false,
        "Delta": 0.316,
        "DeltaCurrency": 0,
        "ValuesType": 2
      },
      {
        "DeviceId": "IDPowerfox",
        "Timestamp": 1687554000,
        "Complete": false,
        "Delta": 0.316,
        "DeltaCurrency": 0,
        "ValuesType": 2
      }
    ],
    "SumCurrency": 0
  }
}
Laut APP hatte ich heute einen Strombezug aus dem öffentlichen Netz von 2,87kWh
Diese Summe sollte ja dann auch irgendwo zu finden sein - natürlich in Watt.

Re: Rules negative Zahlen berechnen

Verfasst: 25. Jun 2023 08:31
von udo1toni
Ich hab mal Dein Posting bearbeitet (zum einen die Daten als Code markiert, zum anderen die Daten lesefreundlich formatiert), da kannst Du die Datenstruktur etwa besser erkennen.
Es handelt sich um ein JSON Objekt. Die Daten sind hierarchisch angeordnet.
Es gibt einen Teil Consumption (Summe 3.093, vermutlich kWh) und einen Teil FeedIn (Summe 75.895) Und in jedem der beiden Bereiche gibt es einen Unterbereich ReportValues, der jeweils wiederum 24 Unterbereiche hat. In jedem der Unterbereiche gibt es eine Timestamp im Unixformat (Anzahl Sekunden seit dem 01.01.1970, 00:00:00 Uhr), genauso gibt es eine (zwei) Timestamp(s) für Consumption und FeedIn, wobei die Timestamp für den Abrechnungsbeginn des FeedIn etwas seltsam erscheint. Die Timestamp wäre vermutlich der sprichwörtliche Sankt-Nimmerleins-Tag kurz nachdem das Universum sich wieder in einen Urknall verwandelt hat (der Wert 9.223.372.036.854.775.807 = 2^63 - 1)
Außerdem hast Du zwei Tarife beim Bezug, die aber nicht gesondert aufaddiert werden.
stattdessen hast Du in jedem der Stundenwerte das gemessene Delta und die Zuordnung zu HT oder NT. Die Datensätze liegen in absteigender Reihenfolge vor, 0 ist also der jüngste Datensatz, 23 der älteste.
Wo ich mir die Daten so anschaue, muss das mit HT und NT noch was anderes sein...
Hier mal exemplarisch die 24 Stundenwerte von Consumption, aufbereitet (was Excel so alles hergibt...)

Code: Alles auswählen

                           Summen:  3,093        36,849    3,093         1,614453889  
 DeviceId     Timestamp    Complete   Delta      DeltaHT   DeltaNT       DeltaCurrency  ValuesType
IDPowerfox  23.6.23 21:00    false  0,218666667  0         0,218666667   0,102687778      1
IDPowerfox  23.6.23 22:00    false  0,218666667  0         0,218666667   0,102687778      1
IDPowerfox  23.6.23 23:00    false  0,218666667  0         0,218666667   0,102687778      1
IDPowerfox  24.6.23  0:00    true   0,209        0         0,209         0,098893611      1
IDPowerfox  24.6.23  1:00    true   0,196        0         0,196         0,093791111      1
IDPowerfox  24.6.23  2:00    true   0,205        0         0,2035        0,097323611      1
IDPowerfox  24.6.23  3:00    true   0,342        18,06     0,3435        0,151096111      1
IDPowerfox  24.6.23  4:00    true   0,426        0         0,426         0,184066111      1
IDPowerfox  24.6.23  5:00    true   0,102        0         0,102         0,056896111      1
IDPowerfox  24.6.23  6:00    true   0,069        0         0,069         0,043943611      1
IDPowerfox  24.6.23  7:00    true   0            0         0             0,016861111      1
IDPowerfox  24.6.23  8:00    true   0            0         0             0,016861111      1
IDPowerfox  24.6.23  9:00    true   0            0         0             0,016861111      1
IDPowerfox  24.6.23 10:00    true   0            0         0             0,016861111      1
IDPowerfox  24.6.23 11:00    true   0            0         0             0,016861111      1
IDPowerfox  24.6.23 12:00    true   0            0         0             0,016861111      1
IDPowerfox  24.6.23 13:00    true   0            0         0             0,016861111      1
IDPowerfox  24.6.23 14:00    true   0            0         0             0,016861111      1
IDPowerfox  24.6.23 15:00    true   0            18,789    0             0,016861111      1
IDPowerfox  24.6.23 16:00    true   0            0         0             0,016861111      1
IDPowerfox  24.6.23 17:00    true   0            0         0             0,016861111      1
IDPowerfox  24.6.23 18:00    true   0,119        0         0,119         0,063568611      1
IDPowerfox  24.6.23 19:00    true   0,384        0         0,384         0,167581111      1
IDPowerfox  24.6.23 20:00    true   0,385        0         0,385        0,163758333      1
Was noch auffällt, ist das betrachtete Zeitfenster, nämlich 21 Uhr bis 20 Uhr (jeweils Beginn des Zeitabschnitts, Länge jeweils eine Stunde, also insgesamt 24 Stunden von 21:00:00 des Vortags bis 21:00:00 des aktuellen Tags. Die Verschiebung um drei Stunden gegenüber der Tagesgrenze könnte die Differenz zur abgelesenen Tagessumme erklären - 2,87 kWh vs. 3,093 kWh.

Re: Rules negative Zahlen berechnen

Verfasst: 25. Jun 2023 11:51
von Wolle39
Danke dir für die schlüssige Erklärung.

Wenn ich die "Sum" dann abgreifen möchte, sollte im Status-Transformation JSONPATH:$.Sum stehen.

Code: Alles auswählen

{
  "Consumption": {
    "StartTime": 1687554000,
    "StartTimeCurrency": 1687554000,
    "Sum": 3.093,
    "Max": 0.426,
    "MaxCurrency": 0.1840661111111111,
    "MeterReadings": [],
    "ReportValues": [
      {
Verstehe ich das so richtig?
Obwohl, es werden ja zweimal "Sum" aufgeführt.
Wie komme ich jetzt an das Tagesergebnis?

Re: Rules negative Zahlen berechnen

Verfasst: 25. Jun 2023 14:35
von udo1toni
Nein. Sum ist ja ein Teil des übergeordneten "Ordners" Consumption. Korrekt ist also

Code: Alles auswählen

JSONPATH:$.Consumption.Sum
Allgemein wird für die Arbeit mit openHAB gerne VS Code empfohlen (aus Gründen).
VS Code hat (zehn-) tausende Plugins, unter anderem speziell für openHAB aber auch für JSON, insbesondere hier interessant ist JSON Path Status Bar, wenn Du eine Textdatei mit einem, gültigen JSON Objekt öffnest und einen beliebigen Wert selektierst, zeigt Dir das Plugin automatisch den/einen passenden JSONPATH Ausdruck an.