Smartmeter Binding

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

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

Re: Smartmeter Binding

Beitrag von peter-pan »

Hat dein "SmartMeterHaus_kWh" den richtigen Wert ermittelt ?
Bitte füge auch einmal die Zeile

Code: Alles auswählen

logInfo("Teile durch 1000 "," Rule triggert {}", SmartMeterHaus_Gesamtstrom.state )
in deine Rule nach dem "then". Dann siehst du gleich im Logger, ob die Rule auch triggert.

Noch eine Bitte: Benutze die Code-Fences zur Darstellung deiner Rules, Items, etc.

Hast du auch schon "KWh" geändert ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Lactobacillus
Beiträge: 158
Registriert: 1. Mär 2019 09:13
Answers: 0
Wohnort: Untergruppenbach BaWü

Re: Smartmeter Binding

Beitrag von Lactobacillus »

Frage: Was meinst du mit Code Fences und wo muss ich kvh ändern?

So sieht das im VS aus: rule "Teile durch 1000"

when
Item SmartMeterHaus_Gesamtstrom received update
then logInfo("Teile durch 1000 "," Rule triggert {}", SmartMeterHaus_Gesamtstrom.state )
SmartMeterHaus_Gesamtstrom_kwh.
postUpdate(SmartMeterHaus_Gesamtstrom.state as DecimalType / 1000)
end

Im Logviewer kann ich leider nix sehen :-(

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

Re: Smartmeter Binding

Beitrag von udo1toni »

Mit Code Fences meint er die Tags, um Code als Code zu markieren. Im englischen Forum heißen die Code Fences ;)

Hier markierst Du Code mit dem Schlüsselwort code, eingeschlossen in eckigen Klammern, vor und nach dem Code. Das hintere Tag wird noch mit einem Slash vor dem Schlüsselwort ergänzt (das nennt sich BBCode)
Wenn Du auf den vollständigen Editor umschaltest, bekommst Du am oberen Rand des Editors auch passende Schaltflächen ;)
Code wird sehr viel besser lesbar, wenn er entsprechend formatiert ist.

Zu Deiner Rule: Abgesehen von der ungünstigen Darstellung und ungewöhnlichen Darstellung fehlen zwei Klammern:

Code: Alles auswählen

rule "Teile durch 1000"
when
    Item SmartMeterHaus_Gesamtstrom received update
then
    logInfo("Teile durch 1000 "," Rule triggert {}", SmartMeterHaus_Gesamtstrom.state )
    SmartMeterHaus_Gesamtstrom_kwh.postUpdate((SmartMeterHaus_Gesamtstrom.state as DecimalType) / 1000)
end
Noch besser wäre, Number statt DecimalType zu verwenden. Falls es noch Typ-Probleme gibt, könnte die Wandlung nach Float helfen:

Code: Alles auswählen

((SmartMeterHaus_Gesamtstrom.state as Number).floatValue / 1000)
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: Smartmeter Binding

Beitrag von peter-pan »

Also so sieht deine Rule in einem Code-Fence aus:

Code: Alles auswählen

rule "Teile durch 1000"

when
Item SmartMeterHaus_Gesamtstrom received update
then logInfo("Teile durch 1000 "," Rule triggert {}", SmartMeterHaus_Gesamtstrom.state )
SmartMeterHaus_Gesamtstrom_kwh.postUpdate(SmartMeterHaus_Gesamtstrom.state as DecimalType / 1000)
end
Dazu klickst du einfach in der Funktionsleiste in deinem Fenster auf den Code-Button (rot eingekreist) nachdem du deinen Cursor an die gewünschte Position gesetzt hast. Es erscheinen dann die zwei Parameter "code" und "code" in eckigen Klammern und dazwischen kannst du deinen Code (Rules, Items, Logging, etc. einstellen). Damit kann man dann unter Umständen gleich deinen Code kopieren,ändern und im nächsten Post korrigiert zur Verfügung stellen. Wichtigster Grund ist aber natürlich die bessere Lesbarkeit.
code-fence.jpg
Du kannst dann diesen Code auch z.B. direkt kopieren und in deinen Editor einfügen.

Nun zurück zu deinem Problem. Ich glaube du benutzt das falsche Dateiformat für deine Regel. Ich habe gerade einem anderen Mitglied hier weiterhelfen können. Schau dir mal diesen post an.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

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

Re: Smartmeter Binding

Beitrag von peter-pan »

Aah! Udo hat dir schon geantwortet als ich noch geschrieben habe. Klasse (alte Männer brauchen halt etwas länger ;) ).
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Lactobacillus
Beiträge: 158
Registriert: 1. Mär 2019 09:13
Answers: 0
Wohnort: Untergruppenbach BaWü

Re: Smartmeter Binding

Beitrag von Lactobacillus »

Ihr gebt euch so Mühe und ich kapier gar nix. Komm einfach nicht weiter. Habe ein Item angelegt dass genau so heist wie das im Rule aber weger in der Anzeige noch sonst wo passiert was Im Habpanel wenn ich das Dummy Item wähle erscheint NULL

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

Re: Smartmeter Binding

Beitrag von peter-pan »

Nicht nachlassen.
Also wir rekapitulieren:
1. Du hast ein Item per PaperUI angelegt, das SmartMeterHaus_Gesamt heisst. Dieses Item ist vom Typ:Number mit Dimension:Energy
2. Dieses Item hast du mit einem Channel aus deinem Smartmeter-Thing verbunden.
3. Dieses Item wird auch in deiner PaperUI und in HABPanel angezeigt, aber mit Wh-Werten.
4. Du hast ein Item SmartMeterHaus_Gesamt_kWh angelgt, ebenfalls als Number/Energy
5. Du hast die Regel erstellt. Diese muss vom Dateityp "UTF8" . Das bedeutet, dass diese Datei mit Speichern unter so mit VSC abgespeichert werden muss:
tt.jpg
und zwar im richtigen Ordner.

:idea: Während ich dir das schreibe und auf deinen Screenshot vom VSC schaue, sehe ich dass du die Regel unter dem Namen "smartmeter.rule" abgespeichert hast. Das ist auf jeden Fall tödlich :P . Richtig muss es heissen smartmeter.rules. Was so ein kleines "s" alles ausmacht. Benenne die Regel um oder kopiere sie in eine neue Regel mit dem richtigen Suffix .rules. Beachte aber auch Punkt 5 beim abspeichern. Du kannst das im Drop-Down Menü auswählen.

Hier nochmal die Regel, wie von Udo vorgeschlagen:

Code: Alles auswählen

rule "Teile durch 1000"
when
    Item SmartMeterHaus_Gesamtstrom received update
then
    logInfo("Teile durch 1000 "," Rule triggert {}", SmartMeterHaus_Gesamtstrom.state )
    SmartMeterHaus_Gesamtstrom_kwh.postUpdate((SmartMeterHaus_Gesamtstrom.state as Number).floatValue / 1000)
end
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

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

Re: Smartmeter Binding

Beitrag von udo1toni »

Gesetzt den Fall, Du verwendest tatsächlich ein Number Item welches über UoM mit einer Dimension versehen ist, musst Du nur die korrekte Dimension angeben, um den Wert korrekt angezeigt zu bekommen - keine Division durch 1000, keine Rule. Wenn Du also kWh statte Wh haben willst, definierst Du das Label des Items so:

Code: Alles auswählen

Number:Energy SmartMeterHaus_Gesamtstrom "Gesamt [%.1f kWh]"
wenn es MWh sein sollen:

Code: Alles auswählen

Number:Energy SmartMeterHaus_Gesamtstrom "Gesamt [%.1f MWh]"
Der Witz ist, dass man das Label auch in der Sitemap oder in HABpanel setzen kann. Ein Item, verschiedene Anzeigen.

Wenn Du innerhalb einer Rule auf ein Number Item mit Dimension zugreifen willst, musst Du einiges beachten.

Code: Alles auswählen

var Number myNumber = (SmartMeterHaus_Gesamtstrom.state as QuantityType<Number>).floatValue
Das sollte zu einer dimensionslosen Zahl führen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Lactobacillus
Beiträge: 158
Registriert: 1. Mär 2019 09:13
Answers: 0
Wohnort: Untergruppenbach BaWü

Re: Smartmeter Binding

Beitrag von Lactobacillus »

Ok werde das heute Nachmittag mal alles abarbeiten.

Was ich inzwischen herausgefunden habe ist dass der IR Kopf bzw der Zähler eigentlich nur die Kwh ausgibt. Warum in OH aber dann WH ankommt war auch dem Verkäufer des USB Lesers neu. Aber da OH sehr international ist vielleicht wird in anderen Gebieten der Erde in WH gerechnet. Ich forsche heut nachmittag weiter .

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

Re: Smartmeter Binding

Beitrag von peter-pan »

Hallo @Lactobacillus, hallo @udo1toni,
wenn ich das richtig verstanden habe, hat Lactobacillus seine Items über PaperUI angelegt und ich meine irgendwo gelesen zu haben, dass hier kein Formatter/Suffix angegeben werden kann. Ich könnte mir aber vorstellen, dass das evtl. in HABPanel(kenn ich leider nicht) möglich ist, so wie in der Sitemap/BasicUI auch(die er wohl nicht benutzt?). Dann braucht man natürlich keine Rule, vorausgesetzt er nutzt UoM im Item.

Ich habe aber gelesen, dass das Smartmeter-Binding UoM unterstützt, allerdings weiss ich natürlich auch nicht wie das Item letztendlich in der PaperUI angelegt worden ist. Ich hatte ja schon weiter oben geschrieben(wie Udo auch), dass hier ein Screenshot von diesem Item hilfreich wäre.
Denkbar wäre auch, wenn der IR Kopf kWh ausgibt, dass er dann UoM garnicht braucht !!??

Was mich auch noch gewundert hat ist die Tatsache, dass in dem Screenshot aus HABPanel, der Wert mit der Endung "KWh" angezeigt wird.(Hab ich aber auch schon darauf hingewiesen).

Und wie gesagt, was die Rule als solches betrifft, ist natürlich die richtige Datei-Endung und der richtige Dateityp notwendig um eine Rule grundsätzlich zum Laufen zu bringen, was hier jetzt nicht gegeben ist.

Grüssle aus dem Schwabenland

Peter
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten