Anzeige der Stromzählerwert um den Faktor 1.000 zu hoch

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Optimus#1978#
Beiträge: 28
Registriert: 6. Feb 2024 14:29
Answers: 0

Re: Anzeige der Stromzählerwert um den Faktor 1.000 zu hoch

Beitrag von Optimus#1978# »

Mir ist schon bewusst, dass ich nicht einfach irgendetwas etwas schreiben kann, sondern die Syntax-Regeln von OpenHAB beachten muss (ich habe mich – in anderem Zusammenhang - mit EXCEL VBA-Makros beschäftigt und kenne die Auswirkungen von fehlenden oder fehlerhaften Zeichen).

Ich will mich zunächst einmal darum kümmern, dass in Visual Studio Code keine Fehlermeldungen mehr auftreten.
Die Fehlermeldungen haben nichts mit den veränderten Items zu tun. Du hast das openHAB Plugin in Visual Studio Code falsch konfiguriert, das ist alles.
Da ich openHAB auf meinen cMatic-Automatisierungssystem (= Raspberry Pi 4) installiert habe, habe ich den openHAB-conf Ordner als Netzwerklaufwerk in meinem System angelegt. In Visual Studio Code kann ich über den Befehl "File / Open File" direkt auf den openHAB-conf Ordner zugreifen und dort die "home.items" öffnen. Die Einträge aus openHAB-conf werden dann in Visual Studio Code angezeigt.

Was muss ich sonst noch machen, damit Änderungen, die in Visual Studio Code erfasst werden, im openHAB-conf Ordner ankommen?

Optimus#1978#
Beiträge: 28
Registriert: 6. Feb 2024 14:29
Answers: 0

Re: Anzeige der Stromzählerwert um den Faktor 1.000 zu hoch

Beitrag von Optimus#1978# »

Ich habe eine Anleitung gefunden

https://digitalewelt.at/openhab-2-visua ... anleitung/

Das Problem mit der fehlerhaften Konfiguration ist behoben. Im OpenHAB webinterface werden die Werte der items wieder angezeigt.

Optimus#1978#
Beiträge: 28
Registriert: 6. Feb 2024 14:29
Answers: 0

Re: Anzeige der Stromzählerwert um den Faktor 1.000 zu hoch

Beitrag von Optimus#1978# »

Nachdem das Problem der fehlerhaften Konfiguration von Visual Studio Code behoben ist, kann ich mich wieder mit meiner eigentlichen Fragestellung beschäftigen.
Die Einträge der items für „Energiebezug“ und „Energieeinspeisung“ wurden nun wie folgt geändert:

Code: Alles auswählen

Number:Energy Energyin  "Energiebezug"       <energy> (Energy) ["Measurement","Energy"] { channel="smartmeter:meter:hausanschluss:1-0_1-8-0", unit="Wh", stateDescription=""[pattern="%.1f kWh"] }
Number:Energy Energyout "Energieeinspeisung" <energy> (Energy) ["Measurement","Energy"] { channel="smartmeter:meter:hausanschluss:1-0_2-8-0", unit="Wh", stateDescription=""[pattern="%.1f kWh"] }
In der Übersicht der Items werden nun der Energiebezug und Energieeinspeisung korrekt angezeigt, allerdings werden die Werte in „Wh“ angegeben. Ich würde die Anzeige gerne in „KWh“ ändern. Wo kann ich das einstellen?
Klickt man die Item-Werte für Energiebezug bzw. Energieeinspeisung an, wird auf der jeweiligen Folgemaske der Wert in der korrekten gewünschten Dimension „KWh“ mit einer Nachkommastelle angezeigt. Zwar wird für die Nachkommastelle eine „0“ ausgewiesen. Doch ich vermute, dass dies an meinem Zweirichtungsstromzähler liegt. Auch nach der Umstellung des Zählers auf „In On“ gibt es im Display des Zählers dort keine Nachkommastellen.
Beim Drücken auf „Analyze“ und der Auswahl eines Zeitraums ein oder zwei Monaten werden nun für Energiebezug und Energieeinspeisung Kurvendiagramme angezeigt. Hier erscheinen wieder die Werte in Wh. Auch hier würde ich gerne die Dimension auf KWh ändern. Wie mache ich das?

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

Re: Anzeige der Stromzählerwert um den Faktor 1.000 zu hoch

Beitrag von udo1toni »

Die Itemübersicht ist in dieser Hinsicht nicht konfigurierbar. Sie ist auch nicht dazu gedacht, dass man dort ständig Dinge nachschaut, sie ist Teil der Konfigurationsoberfläche.
Du könntest natürlich den Parameter unit direkt auf kWh setzen (nicht KWh), allerdings wirst Du damit ein breaking Change des Items verursachen, Du musst dann alle Persistence Daten dieses Items löschen, um hier keine fehlerhaften Daten zu erhalten.
Da die Itemübersicht nur für die Konfiguration gedacht ist, wäre mein Ratschlag, das sein zu lassen und damit zu leben, dass Du an dieser Stelle die Werte in Wh siehst. In der eigentlichen UI werden die Werte ja mit kWh angezeigt, und der eigentliche Wert ist ebenfalls korrekt, Du kannst also mit diesem Wert ohne weiteres rechnen oder Vergleiche anstellen, falls Du das tun möchtest.

EDIT: Ach so, vergessen... Die Einheit für die Charts kann man leider (noch?) nicht frei setzen, es wird hier immer die Einheit verwendet, welche als unit im Item festgelegt ist. Ich habe keine Ahnung, ob es schon Bestrebungen gibt, das konfigurierbar zu machen (der Wunsch ist naheliegend...)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet

Optimus#1978#
Beiträge: 28
Registriert: 6. Feb 2024 14:29
Answers: 0

Re: Anzeige der Stromzählerwert um den Faktor 1.000 zu hoch

Beitrag von Optimus#1978# »

Okay, verstanden. Dann werde ich mich mit der Item-Übersicht nicht weiter abmühen.

Derzeit werden bei mir im OpenHAB-Webinterface folgende Einträge angezeigt:

Code: Alles auswählen

Bezeichnung in Item-Übersicht		Itemübersicht		Itemübers.	Detail		Einheit
                                        Wert			Einheit		Wert		Einheit
                                        
1. Energiebezug kumuliert (kWh)		3065000			Wh		3065,0		kWh	
2. Energieeinspeisung kumliert (kWh)	3575000			Wh		3575,0		kWh	
3. Energiebezug/Monat (kWh)		57000					57000		kWh
4. Energiebezug/Tag (kWh)		5000			kWh		5000		kWh
5. Ernergiebezug/Woche (kWh)		2400					24000		kWh
6. Energieeinspeisung/Monat (kWh)	286000					286000		kWh
7. Energieeinspeisung/Tag (kWh)		9000			kWh		9000		kWh	
8. Energieeinspeisung/Woche (kWh)	70000					70000		kWh
Die ersten beiden Einträge sind okay. Hier stimmt die Größendimension. Bei den Einträge 3.) bis 8.) sind die Werte um den Faktor 1.000 zu hoch. Bei den Items 3.) , 5.), 6.) und 8.) fehlt in der Übersicht zudem die Einheitenangabe.

Ich habe versucht, in Visual Studio Code die fehlerhaften Einträge anzupassen. Nach dem Group-Element "Number" habe ich - wie bei den beiden korrekten Einträgen - einen Doppelpunkt sowie den Begriff "Energy" eingefügt. Das bringt aber nicht gewünschten Effekt. Im Gegenteil, die zuvor angezeigten Werte sind nicht mehr vorhanden. Es wird "NULL" angezeigt.

Nachfolgend meine bisherigen Einträge:

Code: Alles auswählen

Number:Energy Energyin      "Energiebezug kumuliert (kWh)"       <energy> (Energy) ["Measurement","Energy"] { channel="smartmeter:meter:hausanschluss:1-0_1-8-0", unit="Wh", stateDescription=""[pattern="%.1f kWh"] }
Number:Energy Energyout     "Energieeinspeisung kumuliert (kWh)" <energy> (Energy) ["Measurement","Energy"] { channel="smartmeter:meter:hausanschluss:1-0_2-8-0", unit="Wh", stateDescription=""[pattern="%.1f kWh"] }
Number 	EnergyinMonth	    "Energiebezug / Monat (kWh) [%.0f kWh]"	<gauge>		(EnergyMonth)
Number  Energyinday         "Energiebezug / Tag (kWh) [%.0f kWh]"	<gauge>		(EnergyDay)
Number  EnergyinWeek	    "Energiebezug / Woche (kWh) [%.0f kWh]" 	<gauge>		(EnergyWeek)
Number 	EnergyoutMonth      "Energieeinspeisung / Monat (kWh)[%.0f kWh]" <solarplant>	(EnergyMonth) 
Number  Energyoutday        "Energieeinspeisung / Tag (kWh)[%.0f kWh]"   <solarplant>	(EnergyDay)
Number  EnergyoutWeek       "Energieeinspeisung / Woche (kWh)[%.0f kWh]" <solarplant>	(EnergyWeek)[/code

Welche Änderungen muss ich vornehmen?

Optimus#1978#
Beiträge: 28
Registriert: 6. Feb 2024 14:29
Answers: 0

Re: Anzeige der Stromzählerwert um den Faktor 1.000 zu hoch

Beitrag von Optimus#1978# »

Okay, verstanden. Dann werde ich mich mit der Item-Übersicht nicht weiter abmühen.

Derzeit werden bei mir im OpenHAB-Webinterface folgende Einträge angezeigt:

Code: Alles auswählen

Bezeichnung in Item-Übersicht		Itemübersicht		Itemübers.	Detail		Einheit
                                        Wert			Einheit		Wert		Einheit
                                        
1. Energiebezug kumuliert (kWh)		3065000			Wh		3065,0		kWh	
2. Energieeinspeisung kumliert (kWh)	3575000			Wh		3575,0		kWh	
3. Energiebezug/Monat (kWh)		57000					57000		kWh
4. Energiebezug/Tag (kWh)		5000			kWh		5000		kWh
5. Ernergiebezug/Woche (kWh)		2400					24000		kWh
6. Energieeinspeisung/Monat (kWh)	286000					286000		kWh
7. Energieeinspeisung/Tag (kWh)		9000			kWh		9000		kWh	
8. Energieeinspeisung/Woche (kWh)	70000					70000		kWh
Die ersten beiden Einträge sind okay. Hier stimmt die Größendimension. Bei den Einträge 3.) bis 8.) sind die Werte um den Faktor 1.000 zu hoch. Bei den Items 3.) , 5.), 6.) und 8.) fehlt in der Übersicht zudem die Einheitenangabe.

Ich habe versucht, in Visual Studio Code die fehlerhaften Einträge anzupassen. Nach dem Group-Element "Number" habe ich - wie bei den beiden korrekten Einträgen - einen Doppelpunkt sowie den Begriff "Energy" eingefügt. Das bringt aber nicht gewünschten Effekt. Im Gegenteil, die zuvor angezeigten Werte sind nicht mehr vorhanden. Es wird "NULL" angezeigt.

Nachfolgend meine bisherigen Einträge:

Code: Alles auswählen

Number:Energy Energyin      "Energiebezug kumuliert (kWh)"       <energy> (Energy) ["Measurement","Energy"] { channel="smartmeter:meter:hausanschluss:1-0_1-8-0", unit="Wh", stateDescription=""[pattern="%.1f kWh"] }
Number:Energy Energyout     "Energieeinspeisung kumuliert (kWh)" <energy> (Energy) ["Measurement","Energy"] { channel="smartmeter:meter:hausanschluss:1-0_2-8-0", unit="Wh", stateDescription=""[pattern="%.1f kWh"] }
Number 	EnergyinMonth	    "Energiebezug / Monat (kWh) [%.0f kWh]"	<gauge>		(EnergyMonth)
Number  Energyinday         "Energiebezug / Tag (kWh) [%.0f kWh]"	<gauge>		(EnergyDay)
Number  EnergyinWeek	    "Energiebezug / Woche (kWh) [%.0f kWh]" 	<gauge>		(EnergyWeek)
Number 	EnergyoutMonth      "Energieeinspeisung / Monat (kWh)[%.0f kWh]" <solarplant>	(EnergyMonth) 
Number  Energyoutday        "Energieeinspeisung / Tag (kWh)[%.0f kWh]"   <solarplant>	(EnergyDay)
Number  EnergyoutWeek       "Energieeinspeisung / Woche (kWh)[%.0f kWh]" <solarplant>	(EnergyWeek)[/code

Welche Änderungen muss ich vornehmen?

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

Re: Anzeige der Stromzählerwert um den Faktor 1.000 zu hoch

Beitrag von udo1toni »

Die Items sind ja per Rule gefüllt, da musst Du dann schon in der Rule dafür sorgend, dass der Wert korrekt (mit Einheit) übergeben wird, damit die Angabe einer Einheit auch korrekt funktioniert.
Warum schreibst Du ins Label vorne die Einheit dazu? unnötige Redundanz...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet

Optimus#1978#
Beiträge: 28
Registriert: 6. Feb 2024 14:29
Answers: 0

Re: Anzeige der Stromzählerwert um den Faktor 1.000 zu hoch

Beitrag von Optimus#1978# »

Hallo,

der Ordner home.rules enthält bei mir nur zeitliche Informationen und Angaben darüber, wie häufig die Informationen abgerufen werden.
Ich habe keine weitere rule-Datei gefunden. Wo erfasse ich die Einheiten?

Code: Alles auswählen

then
    val ZonedDateTime zdt = ZonedDateTime.now() // jetzt
    val ZonedDateTime start_of_day = zdt.with(LocalTime.MIDNIGHT) // heute, Mitternacht
    val ZonedDateTime start_of_week = start_of_day.minusDays(start_of_day.getDayOfWeek.getValue - 1) // Montag
    //val ZonedDateTime start_of_month = start_of_day.withDayOfMonth(1) // Erster Tag des Monats (1)
    val ZonedDateTime start_of_year = start_of_day.withDayOfYear(1) // Erster Tag des Jahres

	//  Energie pro Tag (kWh)
	Energyinday.postUpdate(Energyin.deltaSince(now.withHour(0).withMinute(0).withSecond(0)) as Number)
	Energyoutday.postUpdate(Energyout.deltaSince(now.withHour(0).withMinute(0).withSecond(0)) as Number)
	EnergyDay1.postUpdate(Energy1.deltaSince(now.withHour(0).withMinute(0).withSecond(0)) as Number)
	EnergyDay2.postUpdate(Energy2.deltaSince(now.withHour(0).withMinute(0).withSecond(0)) as Number)
	EnergyDay3.postUpdate(Energy3.deltaSince(now.withHour(0).withMinute(0).withSecond(0)) as Number)

	//  Energie pro Woche (kWh)
	EnergyinWeek.postUpdate(Energyin.deltaSince(start_of_week) as Number)
	EnergyoutWeek.postUpdate(Energyout.deltaSince(start_of_week) as Number)
	EnergyWeek1.postUpdate(Energy1.deltaSince(start_of_week) as Number)
	EnergyWeek2.postUpdate(Energy2.deltaSince(start_of_week) as Number)
	EnergyWeek3.postUpdate(Energy3.deltaSince(start_of_week) as Number)[/code

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

Re: Anzeige der Stromzählerwert um den Faktor 1.000 zu hoch

Beitrag von udo1toni »

Das, was Du da zeigst, ist keine vollständige Rule.
Es geht um die Items

Code: Alles auswählen

EnergyinMonth
Energyinday
EnergyinWeek
EnergyoutMonth
Energyoutday
EnergyoutWeek
welche in dem von Dir gezeigten Coderumpf keine Rolle spielen. Woher bekommen die Items ihren Wert?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet

Optimus#1978#
Beiträge: 28
Registriert: 6. Feb 2024 14:29
Answers: 0

Re: Anzeige der Stromzählerwert um den Faktor 1.000 zu hoch

Beitrag von Optimus#1978# »

Mittlerweile werden bei mir die folgende Werte in der richtigen Dimension angezeigt:

1. Energiebezug kumuliert (kWh)
2. Energiebezug/Monat (kWh)
3. Energiebezug/Woche (kWh)
4. Energiebezug/Tag (kWh)
5. Energieeinspeisung kumuliert (kWh)
6. Energieeinspeisung/Monat (kWh)
7. Energieeinspeisung/Tag (kWh)
8. Energieeinspeisung/Woche (kWh)

Die Werte 1. und 2. werden über die optische Schnittstelle aus dem Smart Meter (digitalen Zweirichtungsstromzähler) ausgelesen.

Die übrigen Werte 3. bis 8. werden in den home.rules aus den vorliegenden kumulierten Energiebezugs- bzw. Einspeisewerten (bzw. den vorhandenen Tagesendwerten) abgeleitet bzw. berechnet.

Nachfolgend die Befehle für Energiebezug/Monat bzw. Energieeinspeisung/Monat:

Code: Alles auswählen

EnergyinMonth.postUpdate(0.001 * Energyin.deltaSince(start_of_month) as Number)
EnergyoutMonth.postUpdate(0.001 * Energyout.deltaSince(start_of_month) as Number)
Bei der Ermittlung der Werte Energiebezug/Jahr bzw. Energieeinspeisung /Jahr funktioniert die Berechnung dagegen nicht. Dort wird als Ergebnis „Null“ (nicht 0) ausgewiesen.

Ich vermute, dass dies daran liegt, dass meine Zeitreihe erst am 07.02.2024 beginnt (dem Tag, an dem der optische Lesekopf für den Stromzähler installiert wurde).

Die Berechnung müsste m.E. funktionierten, wenn in OpenHAB die Energiewerte für den Stichtag 01.01.2024 vorhanden wären. Kann ich die Number items Energiebezug und Energieeinspeisung für den 01.01.2024 dort nachträglich manuell erfassen? Wenn ja, wo?

Antworten