[Gelöst] Ganz einfache Umrechnung

Alle Infos und Tipps speziell zu openHAB 2

Moderatoren: seppy, udo1toni

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

[Gelöst] Ganz einfache Umrechnung

Beitrag von Conti » 16. Mär 2019 22:19

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: 1057
Registriert: 11. Apr 2018 18:05
Wohnort: Darmstadt

Re: Ganz einfache Umrechnung

Beitrag von udo1toni » 17. Mär 2019 18:11

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...)

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

Re: Ganz einfache Umrechnung

Beitrag von Conti » 18. Mär 2019 09:52

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: 1057
Registriert: 11. Apr 2018 18:05
Wohnort: Darmstadt

Re: Ganz einfache Umrechnung

Beitrag von udo1toni » 18. Mär 2019 11:59

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

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

Re: Ganz einfache Umrechnung

Beitrag von Conti » 18. Mär 2019 18:31

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: 145
Registriert: 28. Nov 2018 12:03

Re: Ganz einfache Umrechnung

Beitrag von peter-pan » 19. Mär 2019 00:05

Hallo Conti,
dein Item sollte so aussehen:

Code: Alles auswählen

Number solarlog_meter_pv_yieldday_kwh "Heute in [%.1f kWh]"

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

[Gelöst] Re: Ganz einfache Umrechnung

Beitrag von Conti » 19. Mär 2019 22:25

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: 145
Registriert: 28. Nov 2018 12:03

Re: [Gelöst] Ganz einfache Umrechnung

Beitrag von peter-pan » 20. Mär 2019 13:17

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

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast