Durchschnittstemperatur anzeigen
-
- Beiträge: 158
- Registriert: 1. Mär 2019 09:13
- Wohnort: Untergruppenbach BaWü
Re: Durchschnittstemperatur anzeigen
eine Frage wäre allerdings noch, wie bekomme ich das nun in ein Item? Falls es mal vorkommt dass Telegram nicht funktioniert damit ichs im Habpanel sehe oder in der UI? Grafana Gauge ist zwar schön braucht aber immer recht lange zum laden an meinem Wandpanel!
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Durchschnittstemperatur anzeigen
Na, genau wie oben beschrieben... Du legst Dir ein zusätzliches Number Item an, in dem Du diesen Durchschnittswert als Zahl speicherst, oder Du legst Dir ein String Item an, in dem Du den Wert (eventuell zusammen mit weiteren Werten) als Text speicherst, ganz nach Belieben.
z.B. so:
Nun musst Du nur noch das Item irgendwo anzeigen, es wird einfach mit aktualisiert.
z.B. so:
Code: Alles auswählen
String WP_24 "Summe 24h (13:30)" // Schreibweise für *.items Dateien, kann man aber genauso über die UI anlegen
Code: Alles auswählen
rule "Waermepumpe um 13:30 Telegram"
when
Item Verbrauch_gesamt changed
then
val telegramAction = getActions("telegram","telegram:telegramBot:72fede4e77")
val Temp = Wetterstation_Aussen_Temperatur.averageSince(now.minusDays(1)).toString
val Verbrauch = Verbrauch_gesamt.state.toString
val Itemtext = Verbrauch + "kWh (" + Temp + " °C)"
val Text = Hallo, dies ist der tägliche Report der Wärmepumpe von 13:30 Uhr. Verbrauch: " + Verbrauch + " kWh. Durchschnittstemperatur: " + Temp + " °C. Schönen Tag noch."
WP_24.postUpdate(Itemtext)
telegramAction.sendTelegram(Text)
end
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 158
- Registriert: 1. Mär 2019 09:13
- Wohnort: Untergruppenbach BaWü
Re: Durchschnittstemperatur anzeigen
Irgendwie fehlt mir gerade die Idee wie ich vom Temperatur Item zum Tagesaktuellen Average komme. Vielleicht liegts daran dass ich gestern gearbeitet habe und jetzt auch schon wieder fast auf dem Weg zur Arbeit bin.
Mir fehlt die Brücke wie das Item in der UI erstellt werden soll. Habe gestern mal ein Aussentemperatur_Durchschniit Item erstellt aber komme nun nicht drauf wo, wie ich da jetzt den Wert erhalte
Mir fehlt die Brücke wie das Item in der UI erstellt werden soll. Habe gestern mal ein Aussentemperatur_Durchschniit Item erstellt aber komme nun nicht drauf wo, wie ich da jetzt den Wert erhalte
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Durchschnittstemperatur anzeigen
Immer noch über die Rule.
Aus einer Rule heraus setzt Du den Status eines Items mit der Methode .postUpdate()
wenn Du ein einzelnen Number Item für die Durchschnittstemperatur möchtest, musst Du eben den Zahlenwert schicken:

wenn Du ein einzelnen Number Item für die Durchschnittstemperatur möchtest, musst Du eben den Zahlenwert schicken:
Code: Alles auswählen
rule "Waermepumpe um 13:30 Telegram"
when
Item Verbrauch_gesamt changed
then
val telegramAction = getActions("telegram","telegram:telegramBot:72fede4e77")
val Temp = Wetterstation_Aussen_Temperatur.averageSince(now.minusDays(1))
val Verbrauch = Verbrauch_gesamt.state.toString
val Text = Hallo, dies ist der tägliche Report der Wärmepumpe von 13:30 Uhr. Verbrauch: " + Verbrauch + " kWh. Durchschnittstemperatur: " + Temp.toString + " °C. Schönen Tag noch."
Aussentemperatur_Durchschniit.postUpdate(Temp)
telegramAction.sendTelegram(Text)
end
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 158
- Registriert: 1. Mär 2019 09:13
- Wohnort: Untergruppenbach BaWü
Re: Durchschnittstemperatur anzeigen
Irgendwas passt ihm da nicht wenn ich den Code über VS Code eingebe erscheint in den Rules in der UI nix, Gebe ich in der UI alles ein kommen Fehlermeldungenudo1toni hat geschrieben: ↑20. Mär 2022 11:22 Immer noch über die Rule.Aus einer Rule heraus setzt Du den Status eines Items mit der Methode .postUpdate()
wenn Du ein einzelnen Number Item für die Durchschnittstemperatur möchtest, musst Du eben den Zahlenwert schicken:Code: Alles auswählen
rule "Waermepumpe um 13:30 Telegram" when Item Verbrauch_gesamt changed then val telegramAction = getActions("telegram","telegram:telegramBot:72fede4e77") val Temp = Wetterstation_Aussen_Temperatur.averageSince(now.minusDays(1)) val Verbrauch = Verbrauch_gesamt.state.toString val Text = Hallo, dies ist der tägliche Report der Wärmepumpe von 13:30 Uhr. Verbrauch: " + Verbrauch + " kWh. Durchschnittstemperatur: " + Temp.toString + " °C. Schönen Tag noch." Aussentemperatur_Durchschniit.postUpdate(Temp) telegramAction.sendTelegram(Text) end
-
- Beiträge: 1173
- Registriert: 4. Nov 2019 22:08
Re: Durchschnittstemperatur anzeigen
Hmm, es hatte doch schon funktioniert und nun sind nur noch wenige Zeilen Code hinzugekommen.Lactobacillus hat geschrieben: ↑20. Mär 2022 21:12 Irgendwas passt ihm da nicht wenn ich den Code über VS Code eingebe erscheint in den Rules in der UI nix, Gebe ich in der UI alles ein kommen Fehlermeldungen
Du speicherst die Rule, welche Du über VSC erstellt hast aber dann auch im entsprechenden Rules Verzeichnis? Und die Datei endet auf rules als z.B. meineRule.rules ?
Diese sollte - nach dem speichern und einlesen durch openHAB - dann in der MainUI auch unter Rules auftauchen. Dort hat diese dann ein Schloß-Symbol, da diese über eine Datei erstellt wurde und über die MainUI nicht veränderbar ist. Du kannst auch vorher in der MainUI unter Rules die Anzahl sehen (ganz oben) und wenn Du eine neue über eine Datei erstellt hast, sollte die Anzahl entsprechend der Rules in der Datei ansteigen. Jede Rule zählt, nicht Datei und eine Datei kann x Rules enthalten

Viele Grüße
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Durchschnittstemperatur anzeigen
Der angegebene Code ist so nur in einer *.rules Datei verwendbar. Wobei das so nur die halbe Wahrheit ist...
Also, der Code ist auch über die UI verwendbar, aber...
Rules bestehen immer aus zwei Bereichen, das sind der when-Teil und der then-Teil.
Im when-Teil werden alle Trigger gelistet, welche die Rule starten sollen.
Im then-Teil steht der auszuführende Code.
Wenn Du also die Rule über die UI eingeben möchtest, so musst Du die Trigger über die UI im When-Teil konfigurieren und den eigentlichen Code aus dem then-Teil mit "execute a given script" abspeichern. dabei musst Du darauf achten, dass der Code als DSL-Code behandelt wird, nicht als JavaScript, ECMA oder gar Blockly...
Es gibt DSL-Code, den man so nicht in der UI ausführen kann, weil z.B. imports fehlen oder man globale Variablen benötigt, diese aber über die UI nicht erstellen kann. Selbst Items sind nicht uneingeschränkt als Ersatz für globale Variablen nutzbar, z.B. Timer kann man so nicht anlegen.
Die vorliegende Rule sollte aber problemlos auch über die UI erstellt werden können.
Also, der Code ist auch über die UI verwendbar, aber...
Rules bestehen immer aus zwei Bereichen, das sind der when-Teil und der then-Teil.
Im when-Teil werden alle Trigger gelistet, welche die Rule starten sollen.
Im then-Teil steht der auszuführende Code.
Wenn Du also die Rule über die UI eingeben möchtest, so musst Du die Trigger über die UI im When-Teil konfigurieren und den eigentlichen Code aus dem then-Teil mit "execute a given script" abspeichern. dabei musst Du darauf achten, dass der Code als DSL-Code behandelt wird, nicht als JavaScript, ECMA oder gar Blockly...
Es gibt DSL-Code, den man so nicht in der UI ausführen kann, weil z.B. imports fehlen oder man globale Variablen benötigt, diese aber über die UI nicht erstellen kann. Selbst Items sind nicht uneingeschränkt als Ersatz für globale Variablen nutzbar, z.B. Timer kann man so nicht anlegen.
Die vorliegende Rule sollte aber problemlos auch über die UI erstellt werden können.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 158
- Registriert: 1. Mär 2019 09:13
- Wohnort: Untergruppenbach BaWü
Re: Durchschnittstemperatur anzeigen
Habe jetzt nochmal eine Rule in VS Code erstellt ganz normal als ...rules.
zuerst gab es 7 Konflikte habe dann vor dem Hallo in Zeile 8 Ausrufezeichen gesetzt. Dadurch gingen die Fehler auf 1 zurück dieser ist nun in dem Postupdate, Der Fehlerbericht ist:
zuerst gab es 7 Konflikte habe dann vor dem Hallo in Zeile 8 Ausrufezeichen gesetzt. Dadurch gingen die Fehler auf 1 zurück dieser ist nun in dem Postupdate, Der Fehlerbericht ist:
Code: Alles auswählen
Ambiguous feature call.
The extension methods
postUpdate(Item, State) in BusEvent and
postUpdate(Item, Number) in BusEvent
both match.
-
- Beiträge: 1173
- Registriert: 4. Nov 2019 22:08
Re: Durchschnittstemperatur anzeigen
MoinLactobacillus hat geschrieben: ↑21. Mär 2022 09:44 Habe jetzt nochmal eine Rule in VS Code erstellt ganz normal als ...rules.
zuerst gab es 7 Konflikte habe dann vor dem Hallo in Zeile 8 Ausrufezeichen gesetzt. Dadurch gingen die Fehler auf 1 zurück dieser ist nun in dem Postupdate, Der Fehlerbericht ist:
Code: Alles auswählen
Ambiguous feature call. The extension methods postUpdate(Item, State) in BusEvent and postUpdate(Item, Number) in BusEvent both match.
in der Rule war noch ein Typo, aber ich hoffe Du hast vor das Hallo kein ! sondern " gesetzt?
Zudem sieht ein Item auch Typo-belastet aus => Aussentemperatur_Durchschniit => Aussentemperatur_Durchschnitt
Ich habe dies mal "bereinigt" und hoffentlich nichts übersehen.
Code: Alles auswählen
rule "Waermepumpe um 13:30 Telegram"
when
Item Verbrauch_gesamt changed
then
val telegramAction = getActions("telegram","telegram:telegramBot:72fede4e77")
val Temp = Wetterstation_Aussen_Temperatur.averageSince(now.minusDays(1))
val Verbrauch = Verbrauch_gesamt.state.toString
val Text = "Hallo, dies ist der tägliche Report der Wärmepumpe von 13:30 Uhr. Verbrauch: " + Verbrauch + " kWh. Durchschnittstemperatur: " + Temp.toString + " °C. Schönen Tag noch."
Aussentemperatur_Durchschnitt.postUpdate(Temp)
telegramAction.sendTelegram(Text)
end
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3
-
- Beiträge: 158
- Registriert: 1. Mär 2019 09:13
- Wohnort: Untergruppenbach BaWü
Re: Durchschnittstemperatur anzeigen
Ok, mache ich später ja meinte Anführungszeichen. Habe das Item allerdings nicht über VS Code erstellt sonder über die UI!