[Gelöst] Ganz einfache Umrechnung
-
- Beiträge: 4
- Registriert: 16. Mär 2019 21:55
[Gelöst] Ganz einfache Umrechnung
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
Für Eure Hilfe wäre ich sehr dankbar.
Conti
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
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.
- udo1toni
- Beiträge: 13989
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Ganz einfache Umrechnung
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
-
- Beiträge: 4
- Registriert: 16. Mär 2019 21:55
Re: Ganz einfache Umrechnung
Hallo udo1toni
besten Dank für Deinen Hinweis.
Da sieht man halt das ich noch Anfänger bin
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
besten Dank für Deinen Hinweis.
Da sieht man halt das ich noch Anfänger bin
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
- udo1toni
- Beiträge: 13989
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Ganz einfache Umrechnung
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
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
-
- Beiträge: 4
- Registriert: 16. Mär 2019 21:55
Re: Ganz einfache Umrechnung
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
In der sitemap gebe ich das item so aus
Meine .rules sieht dann folgendermassen aus
Im Log sieht danach eigentlich alles perfekt aus
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
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]"
Code: Alles auswählen
Text item=solarlog_meter_pv_yieldday_kwh icon=solarplant
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
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
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
- peter-pan
- Beiträge: 2573
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Ganz einfache Umrechnung
Hallo Conti,
dein Item sollte so aussehen:
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.2 openhabian
-
- Beiträge: 4
- Registriert: 16. Mär 2019 21:55
[Gelöst] Re: Ganz einfache Umrechnung
Super Peter-Pan!
Hab es einfach nicht mehr gesehen
Du hast mir sehr geholfen. Kaum macht man es richtig, funktioniert es auch.
Vielen Dank.
Conti
Hab es einfach nicht mehr gesehen
Du hast mir sehr geholfen. Kaum macht man es richtig, funktioniert es auch.
Vielen Dank.
Conti
- peter-pan
- Beiträge: 2573
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: [Gelöst] Ganz einfache Umrechnung
Das war ja nur der einfache Teil. Ich hab da auch ab und an meine Probleme.
Das Wichtigste, die Rule, hat Udo ja gemacht.
Gruss - Peter
Das Wichtigste, die Rule, hat Udo ja gemacht.
Gruss - Peter
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian
-
- Beiträge: 39
- Registriert: 22. Jul 2020 19:15
Re: [Gelöst] Ganz einfache Umrechnung
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:
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)
}
- peter-pan
- Beiträge: 2573
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: [Gelöst] Ganz einfache Umrechnung
Ich hoffe, ich hab's richtig verstanden:
.....
.sitemap:
ungetestet und ohne Gewähr
.....
.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 ]
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian