SOLVED - Verbrauch von heute (seit Mitternacht) anzeigen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
zinnik
Beiträge: 190
Registriert: 7. Sep 2021 11:28
Answers: 0

Re: SOLVED - Verbrauch von heute (seit Mitternacht) anzeigen

Beitrag von zinnik »

Dann probier ich es mal so:

Code: Alles auswählen

rule "Solarpanel Ertrag Tag"
when
    Item Solarpanel_PowerConsumption received update         // momentane Leistung in Watt

then
// Verbrauch Tag
// SolarThermie_Waermemenge_KW.postUpdate((SolarThermie_Waermemenge_W.state as Number) / 1000)
//Solarpanel_Ertrag_Tag.postUpdate((Solarpanel_PowerConsumption.deltaSince(ZonedDateTime.now().with(LocalTime.MIDNIGHT)) as Number))
val Leistung = Solarpanel_PowerConsumption.avarageSince(ZonedDateTime.now().with(LocalTime.MIDNIGHT)) as Number
val Sekunden = (now.toInstant.toEpochMilli - now.with(LocalTime.MIDNIGHT)).toInstant.toEpochMilli)/1000
        logInfo("bedarfwm","Tagesverbrauch: {}",Leistung)
        Solarpanel_Ertrag_Tag.postUpdate(Leistung)

end
openhab 4.2.0 Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v10.2.2 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 12kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

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

Re: SOLVED - Verbrauch von heute (seit Mitternacht) anzeigen

Beitrag von udo1toni »

Na, multipliziert hast Du aber nicht...

Code: Alles auswählen

rule "Solarpanel Ertrag Tag"
when
    Item Solarpanel_PowerConsumption received update         // momentane Leistung in Watt

then
val Leistung = Solarpanel_PowerConsumption.averageSince(ZonedDateTime.now().with(LocalTime.MIDNIGHT)) as Number
val Sekunden = ((now.toInstant.toEpochMilli - now.with(LocalTime.MIDNIGHT)).toInstant.toEpochMilli)/1000).intValue
val Ertrag = Leistung * Sekunden
        logInfo("bedarfwm","Tagesertrag: {} Ws",Ertrag)
        logInfo("bedarfwm","Tagesertrag: {} kWh",Ertrag/3600000)
        Solarpanel_Ertrag_Tag.postUpdate(Ertrag)
end
EDIT: Typo im Code
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

zinnik
Beiträge: 190
Registriert: 7. Sep 2021 11:28
Answers: 0

Re: SOLVED - Verbrauch von heute (seit Mitternacht) anzeigen

Beitrag von zinnik »

upps ganz vergessen :roll:

Gibt es noch was anderes wie "avarageSince" den damit erhalt ich eine Fehlermeldung

Code: Alles auswählen

2022-10-27 00:06:41.243 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'solarpanel_ertrag_tag-1' failed: 'avarageSince' is not a member of 'org.openhab.core.library.items.NumberItem'; line 6, column 16, length 86 in solarpanel_ertrag_tag
muss ich noch die persistence angeben?


einen klein Schreibfehler hab ich gefunden, Muss "averageSince" heissen.

Aber trotzdem gibt es noch einen weiteren Logfehler

Code: Alles auswählen

2022-10-27 00:59:23.843 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'solarpanel_ertrag_tag-1' failed: An error occurred during the script execution: Could not invoke method: org.eclipse.xtext.xbase.lib.LongExtensions.operator_minus(long,byte) on instance: null in solarpanel_ertrag_tag
openhab 4.2.0 Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v10.2.2 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 12kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

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

Re: SOLVED - Verbrauch von heute (seit Mitternacht) anzeigen

Beitrag von udo1toni »

Ja, Tippfehler sind meine Lieblinge :)
Bezüglich des zweiten Fehlers habe ich gerade keine Idee, die Ausdrücke sehen für mich gut aus.

Eventuell geht ja die andere Methode auf Anhieb (ist auch kürzer...)

Code: Alles auswählen

val Sekunden = now.get(Chronofield.SECOND_OF_DAY)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

zinnik
Beiträge: 190
Registriert: 7. Sep 2021 11:28
Answers: 0

Re: SOLVED - Verbrauch von heute (seit Mitternacht) anzeigen

Beitrag von zinnik »

nein der geht auch nicht....

Code: Alles auswählen

2022-10-27 02:59:19.325 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'solarpanel_ertrag_tag-1' failed: The name 'Chronofield' cannot be resolved to an item or type; line 8, column 25, length 11 in solarpanel_ertrag_tag

aber wenn du kein Rat weisst danni ch erst recht nicht :lol:
openhab 4.2.0 Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v10.2.2 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 12kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

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

Re: SOLVED - Verbrauch von heute (seit Mitternacht) anzeigen

Beitrag von udo1toni »

Eventuell muss es ein instant sein... ich geb nicht auf...
Probiere bitte mal

Code: Alles auswählen

val Sekunden = now.toInstant.get(Chronofield.SECOND_OF_DAY)
Eventuell muss es auch LocalDateTime sein:

Code: Alles auswählen

val Sekunden = now.toLocalDateTime.get(Chronofield.SECOND_OF_DAY)
.get() gibt es an so vielen Stellen in JavaTime... das Datenmodel ansich ist sehr mächtig, aber es es ist mir auch immer noch nicht ganz klar, wann welche Formulierung gebraucht wird...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

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

Re: SOLVED - Verbrauch von heute (seit Mitternacht) anzeigen

Beitrag von peter-pan »

... 2 Pfennig2(Cents) von mir:

Code: Alles auswählen

   var Sekunde = LocalDateTime.now().toLocalTime().toSecondOfDay()
    logInfo("Sekunde", "Sekunde: {} ", Sekunde)
Könnte das weiter helfen ?


Edit:

Code: Alles auswählen

2022-10-27 12:00:28.883 [INFO ] [rg.openhab.core.model.script.Sekunde] - Sekunde: 43228
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

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

Re: SOLVED - Verbrauch von heute (seit Mitternacht) anzeigen

Beitrag von udo1toni »

Ja, auch das. :)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

zinnik
Beiträge: 190
Registriert: 7. Sep 2021 11:28
Answers: 0

Re: SOLVED - Verbrauch von heute (seit Mitternacht) anzeigen

Beitrag von zinnik »

:P Prima Männers das sieht doch garnicht mal schlecht aus :mrgreen:
Jetzt mal ein tag abwarten und dann vergleiche ich mal mit der App (mystrom)

PS.: Warum wird immer Sekunde:54 geschrieben? Das steht in jedem Logeintrag

Code: Alles auswählen

2022-10-27 15:01:18.584 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solarpanel_Ertrag_Tag' changed from 0.00110316 to 0.00110306
2022-10-27 15:01:28.568 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solarpanel_PowerConsumption' changed from 45.290000915527344 W to 44.11000061035156 W
2022-10-27 15:01:28.569 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solarpanel_Temperature' changed from 17.139999389648438 °C to 17.149999618530273 °C
2022-10-27 15:01:28.618 [INFO ] [openhab.core.model.script.Solarpanel] - Sekunde: 54 
2022-10-27 15:01:28.619 [INFO ] [openhab.core.model.script.Solarpanel] - Tagesertrag: 0.00110296 Ws
2022-10-27 15:01:28.620 [INFO ] [openhab.core.model.script.Solarpanel] - Tagesertrag: 0E-8 kWh
2022-10-27 15:01:28.621 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solarpanel_Ertrag_Tag' changed from 0.00110306 to 0.00110296
Und die Rule dazu

Code: Alles auswählen

rule "Solarpanel Ertrag Tag"
when
    Item Solarpanel_PowerConsumption received update         // momentane Leistung in Watt

then
val Leistung = Solarpanel_PowerConsumption.averageSince(ZonedDateTime.now().with(LocalTime.MIDNIGHT)) as Number
//val Sekunden = (((now.toInstant.toEpochMilli - now.with(LocalTime.MIDNIGHT)).toInstant.toEpochMilli)/1000).intValue
var Sekunde = (LocalDateTime.now().toLocalTime().toSecondOfDay()/1000)
    logInfo("Solarpanel", "Sekunde: {} ",Sekunde)
val Ertrag = ((Leistung * Sekunde)/3600000)
        logInfo("Solarpanel","Tagesertrag: {} Ws",Ertrag)
        logInfo("Solarpanel","Tagesertrag: {} kWh",Ertrag/3600000)
        Solarpanel_Ertrag_Tag.postUpdate(Ertrag)
end
openhab 4.2.0 Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v10.2.2 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 12kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

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

Re: SOLVED - Verbrauch von heute (seit Mitternacht) anzeigen

Beitrag von udo1toni »

zinnik hat geschrieben: 27. Okt 2022 15:06 PS.: Warum wird immer Sekunde:54 geschrieben? Das steht in jedem Logeintrag
Die Zeile kommt aus dem Code, das ist diese Zeile:

Code: Alles auswählen

logInfo("Solarpanel", "Sekunde: {} ",Sekunde)
Allerdings kann das nicht stimmen :) um 15:01:28 muss die Ausgabe 54088 lauten. Also die ersten beiden Stellen wären momentan 54, aber da müssten noch drei weitere Stellen mit ausgegeben werden.

EDIT: Du darfst da nicht durch 1000 teilen, die Division durch 1000 kommt von der vorherigen Berechnung, da handelte es sich aber um Millisekunden.

Auch der Ertrag kann so nicht stimmen, da wäre ja bisher insgesamt nur 60 Ws zusammengekommen, also 0,01657... Wh. Vielleicht wird die Leistung in kW angezeigt?, dann wären es immerhin 0,0166 kWh...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten