[Gelöst] Ganz einfache Umrechnung

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Conti
Beiträge: 4
Registriert: 16. Mär 2019 21:55

[Gelöst] Ganz einfache Umrechnung

Beitrag von Conti »

Guten Tag

ich bin noch relative neu in openHab 2 unterwegs, habe aber ein paar Dinge wie Anwesenheitserkennung, Solarlog auslesen oder Wetter einbinden geschafft. Was ich bisher überhaupt nicht "raffe" ist, wie ich mit den Rules umgehen kann.

Konkret möchte ich die Werte welche ich aus meinem SolarLog in Wh erhalte, einfach in kWh umrechnen.
Eines meiner PaperUi Items aus dem SolarLog heisst "solarlog_meter_1e8ce667_yieldday".

Ich gehe davon aus, dass ich dies in einer Rules Datei machen muss.
Wie der code dazu aussehen könnte weiss ich nicht obwohl ich mir einige Muster zusammen gesucht habe.

Kann mir bitte jemand vielleicht so ein Beispiel zeigen sodass ich dies auch noch schaffe :idea:

Für Eure Hilfe wäre ich sehr dankbar.
Conti
Zuletzt geändert von Conti am 19. Mär 2019 22:31, insgesamt 1-mal geändert.

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

Re: Ganz einfache Umrechnung

Beitrag von udo1toni »

Das kann man so pauschal nicht sagen. Zuerst einmal müsste die komplette Definition des Items her, nicht nur der Name (der komplett egal ist, das Item könnte auch Hurslibarsli heißen...)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Conti
Beiträge: 4
Registriert: 16. Mär 2019 21:55

Re: Ganz einfache Umrechnung

Beitrag von Conti »

Hallo udo1toni

besten Dank für Deinen Hinweis.
Da sieht man halt das ich noch Anfänger bin :oops:

Da ich Binding, Thing und Item über PaperUi angelegt habe, tu ich mich schwer alle Infos zusammen zu tragen.
Wenn ich etwas gelernt habe, dann ist es, das es besser ist alles über PaperUi zumachen oder alles über eigene Dateien.
Ich habe nun leider eine gemischte Installation.

Wie kann ich Dir denn Information raussuchen?
Wenn ich das "Thing" SolarLog anschaue, sehe ich den Channel Yield Day den ich in meinem Fall ja angebunden habe.
Das gelinkte Item heisst dann in meinem Fall Yield Day(solarlog_meter_1e8ce667_yieldday) bei dem ich dann im Editiermodus lediglich sehe das es sich um einen Typ Number handelt. Nach meinem Verständnis, werden offenbar Elemente welche man über PaperUi angelegt hat, in irgendeiner DB gespeichert. Da weiss ich leider nicht wie man da ran kommt.
Bei der Beschreibung des Solar-Log Binding sehe ich ja wie die Definitionen ungefähr aussehen könnten, wenn man sie von Hand anlegt. Aber das nützt Dir ja wohl auch nichts.

Viele Grüsse
Conti

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

Re: Ganz einfache Umrechnung

Beitrag von udo1toni »

Klammern in Itemnamen sind nicht erlaubt, ebenso wie Leerzeichen, ich kann also nicht so ganz glauben, dass der Itemname so stimmt.
:)
Wichtig ist neben dem Itemtyp Number auch, ob dieses Item eine Dimension besitzt, ob also die Einheit Wh schon im Item mit gespeichert wird, oder ob die Einheit ausschließlich im Label verwendet wird. Die Dimension kann nur verwendet werden, wenn das Binding dies unterstützt (ich nutze SolarLog nicht). Leider geht diese Information nicht eindeutig aus der Doku hervor, die angegebene manuelle Konfiguration nutzt kein UoM (Units of Measurement), es kommt also nur eine nackte Zahl in openHAB an, ohne Einheit. Aber wenn Du mit Paper UI evtl Autodiscovery nutzen kannst, sieht die Sache vielleicht ganz anders aus.

Handelt es sich um eine einfache Zahl, wäre es das Einfachste, ein Proxy Item zu verwenden, z.B. passend zu einem Item Yield_Day ein weiteres Item Yield_Day_kWh (nur mit angepasstem Label und ohne Link zu einem Channel).
dazu passend gäbe es dann die Rule

Code: Alles auswählen

rule "Wh in kWh"
when 
    Item Yield_Day received update
then
    if(Yield_Day.state instanceof Number)
       Yield_Day_kWh.postUpdate((Yield_Day.state as Number)/1000)
end
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Conti
Beiträge: 4
Registriert: 16. Mär 2019 21:55

Re: Ganz einfache Umrechnung

Beitrag von Conti »

Hallo udo1toni

erst mal ganz herzlichen Dank für Deine Bereitschaft mir weiter zu helfen.
Eigentlich war ich schon ganz nah dran. Mit Deinen tipps klappt's nun schon fast.
Was habe ich gemacht:
In meiner .items Datei manuell ein "virtuelles" item angelegt

Code: Alles auswählen

Number solarlog_meter_pv_yieldday_kwh "Heute in [kWh]"
In der sitemap gebe ich das item so aus

Code: Alles auswählen

Text item=solarlog_meter_pv_yieldday_kwh icon=solarplant
Meine .rules sieht dann folgendermassen aus

Code: Alles auswählen

rule WhtokWh
when 
    Item solarlog_meter_1e8ce667_yieldday received update
then
    if(solarlog_meter_1e8ce667_yieldday.state instanceof Number)
       solarlog_meter_pv_yieldday_kwh.postUpdate((solarlog_meter_1e8ce667_yieldday.state as Number)/1000)
end
Im Log sieht danach eigentlich alles perfekt aus

Code: Alles auswählen

solarlog_meter_1e8ce667_yieldday changed from 12155 to 12156
solarlog_meter_pv_yieldday_kwh changed from 12.15500000 to 12.15600000
Einzig bei der Ausgabe will es dann nicht so recht.
Da sehe ich das Icon, das Label "Heute in" und die Einheit "kWh". Leider fehlt der Wert.

Komme nicht dahinter. Siehst du ev. was noch fehlt?

Viele Grüsse
Conti

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

Re: Ganz einfache Umrechnung

Beitrag von peter-pan »

Hallo Conti,
dein Item sollte so aussehen:

Code: Alles auswählen

Number solarlog_meter_pv_yieldday_kwh "Heute in [%.1f kWh]"
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

Conti
Beiträge: 4
Registriert: 16. Mär 2019 21:55

[Gelöst] Re: Ganz einfache Umrechnung

Beitrag von Conti »

Super Peter-Pan!
Hab es einfach nicht mehr gesehen :oops:
Du hast mir sehr geholfen. Kaum macht man es richtig, funktioniert es auch.

Vielen Dank.
Conti

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

Re: [Gelöst] Ganz einfache Umrechnung

Beitrag von peter-pan »

Das war ja nur der einfache Teil. Ich hab da auch ab und an meine Probleme. :roll:

Das Wichtigste, die Rule, hat Udo ja gemacht.

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

JuergenA
Beiträge: 39
Registriert: 22. Jul 2020 19:15

Re: [Gelöst] Ganz einfache Umrechnung

Beitrag von JuergenA »

Ich hätte mal eine Frage zu einer Variablen von mir,

in der Rule berechne ich mit If-Anweisungen einmal die kWh und einmal die MWh. Je nachdem wie groß die Variable ist gebe ich die über ein und derselben Variablen aus. Jetzt ist aber das Problem ich müsste der Variablen auch noch das [%.2f kWh] bzw. [%.2f MWh] mitgeben, damit Sie in der Sidemap richtig angezeigt wird. Was gibt es im Openhab für Lösungen?

eine Anwendung in Rule:

Code: Alles auswählen

if((SolarLog500Yieldday.state >= 1000) && (SolarLog500Yieldday.state < 1000000))
            { 
                SolarLog500Yieldday_umgerechnet.postUpdate((SolarLog500Yieldday.state as Number)/1000) 
            }
if((SolarLog500Yieldday.state >= 1000000))
            { 
                SolarLog500Yieldday_umgerechnet.postUpdate((SolarLog500Yieldday.state as Number)/1000000) 
            }

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

Re: [Gelöst] Ganz einfache Umrechnung

Beitrag von peter-pan »

Ich hoffe, ich hab's richtig verstanden:
.....
.sitemap:

Code: Alles auswählen

Text item=SolarLog500Yieldday_umgerechnet label="Leistung in Megawatt  [%.2f MWh]"  visibility=[SolarLog500Yieldday  >=1000000 ]
Text item=SolarLog500Yieldday_umgerechnet label="Leistung in Kilowatt  [%.2f kWh]"  visibility=[SolarLog500Yieldday  <1000000 ]
ungetestet und ohne Gewähr ;) :lol:
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

Antworten