Seite 1 von 1

Regenmenge vom Tag

Verfasst: 18. Feb 2020 09:01
von goerdi
Hi !

Ich hab eine Homematic Wetterstation welche ja die Regenmenge erfasst..
Die CCU2 hat 2 Variablen (Regen gestern und heute)
jetzt wollte ich die Regenmenge täglich speichern (um 23:59) aber ich hab festgestellt das die CCU2 anscheinend die Regenmenger erst bei Sonnenaufgang resettet.
Jetzt ist natuerlich die Frage wie ich das mache um die Regenmenge richtig fuer den Tag einzutragen (ok mir waere das egal ob der Regen in der Nacht bei Vortag dabei wäre...
Gibts da ne Moeglichkeit ein Item auszulesen (das vom Sonnenaufgang) und dann sich den Wert vom Vortag zu holen und zu speichern ?

Gruss Gerd

Re: Regenmenge vom Tag

Verfasst: 18. Feb 2020 10:12
von Cyrelian
Hi,

ich hatte das für meine Gartenbewässerung so gebaut.

Code: Alles auswählen

rule "Update rain yesterday"
when
   		Time cron "0 59 23 * * ?" //23:59:00
then
	if (RainToday.state !== null)
	{
		RainYesterday.postUpdate(RainToday.state as Number)
        logInfo(filename,"Beregnung: Update RainYesterday " + RainToday.state + ">" + RainYesterday.state)
	}
end
Die ITEMS RainToday und RainYesterday sind in der InfluxDB persistiert.

Re: Regenmenge vom Tag

Verfasst: 18. Feb 2020 10:31
von goerdi
Ja gut... aber dann kriege ich die realmenge nicht weil ja erst bei Sonnenaufgang genullt wird.... und der aendert sich ja von Tag zu Tag...
Und dann speichere ich aber unter falschem Datum wenn ich heute den Regen von Gestern eintrage....
Sprich um 23:59 habe ich ja den Regen von gestern , aber das datum ist aj heute

Gruss Gerd

Re: Regenmenge vom Tag

Verfasst: 18. Feb 2020 10:36
von seppy
Hi,
dann so:

Code: Alles auswählen

rule "Update rain yesterday"
when
   	Channel 'astro:sun:home:rise#event' triggered START
then
	if (RainToday.state !== null)
	{
		RainYesterday.postUpdate(RainToday.state as Number)
        logInfo(filename,"Beregnung: Update RainYesterday " + RainToday.state + ">" + RainYesterday.state)
	}
end
Evtl. musst Du noch mit einem kleinen Offset arbeiten, damit Du sicher nicht nach dem zurücksetzen des Zählers persitierst.

Grüße,
Seppy

Re: Regenmenge vom Tag

Verfasst: 18. Feb 2020 12:55
von goerdi
Das mit dem Offset muss ich mal schauen, da die Sunrise bei der CCU und beim Astro Binding trotz gleicher Gradangaben um 3 Minuten differieren...
Evtl wäre es besser drauf zu warten bis rain today 0.0 oder kleiner des letzten Wertes ist... dann weiss ich dass er sicher umgeschaltet hat (ok ausser wenn die CCU neu gestartet wird)

Gruss Gerd

Re: Regenmenge vom Tag

Verfasst: 18. Feb 2020 13:55
von seppy
goerdi hat geschrieben: 18. Feb 2020 12:55 Das mit dem Offset muss ich mal schauen, da die Sunrise bei der CCU und beim Astro Binding trotz gleicher Gradangaben um 3 Minuten differieren...
Also die Menge die 3 -5 Minuten fällt kann man doch vernachlässigen?! Stell das offset auf -5 Minuten und ignorier die paar Milliliter. Oder lieferst Du die Daten an den DWD? :roll:

Re: Regenmenge vom Tag

Verfasst: 18. Feb 2020 13:58
von goerdi
:) neeee aber ich weiss was in 3-5 Minuten runterkommen kann ... aber dann zaehlt das Teil eh nix mehr...

Gruss Gerd

Re: Regenmenge vom Tag

Verfasst: 18. Feb 2020 22:50
von goerdi
Hi Nur mal noch ne Frage dazu... muss ich warten bis ich die CCU neu eingelesen habe oder kann ich auch den Channel direkt auslesen ?

Gruss Gerd

Re: Regenmenge vom Tag

Verfasst: 19. Feb 2020 11:51
von seppy
Hi,
ich verstehe Deine Frage nicht. Du kannst Channel NUR als Trigger einer Rule verwenden, aber nicht in der Rule selbst (zumindest meiner Kenntniss nach). Also musst Du zuerst ein Item mit dem entsprechenden Channel als "Quelle" anlegen.

Grüße,
Seppy

Re: Regenmenge vom Tag

Verfasst: 19. Feb 2020 22:58
von udo1toni
seppy hat geschrieben: 19. Feb 2020 11:51 Du kannst Channel NUR als Trigger einer Rule verwenden, aber nicht in der Rule selbst
Ich möchte diese Aussage noch etwas verschärfen :)

Man kann nur bestimmte Channel als Trigger verwenden, eben solche, die als Event zu verwenden sind. Beispielsweise das Astro Binding hat diverse solche Channel, diese sind alle als #event gekennzeichnet. Diese Channel kann man im Übrigen auch nicht mit einem Item verknüpfen.

Es gibt übrigens tatsächlich eine Möglichkeit, auf die Channel direkt zuzugreifen, aber die ist nicht trivial. Ich sehe auch keinen Grund dafür, warum man das tun sollte, so ist das Framework nicht gedacht. openHAB ist grundsätzlich stateless, trotzdem gibt es natürlich die Zustände, welche über den openHAB Bus gehalten werden, und zwar in den Items, dazu sind die Dinger da.