Rolladen Zeitverzögerung - Problem mit der Formel

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
KlausGünther
Beiträge: 143
Registriert: 16. Jul 2018 08:57
Answers: 0
Wohnort: Werl
Kontaktdaten:

Rolladen Zeitverzögerung - Problem mit der Formel

Beitrag von KlausGünther »

Guten Abend Zusammen,

um es vorweg zu nehmen: ICH KOCHE

Eigentlich (Und eigentlich und Scheiße sind immer ganz nah beieinander), wollte ich "nur mal eben kurz" eine Formel einbauen
damit die Rolländen Zeitverzögert nach dem Sonnenuntergange runtergehen, das ganze im Winter später, im Sommer früher.
Mit ein bisschen rumrechnerei bin ich dazu gekommen, es ist eigentlicg ganz einfach: Tageslicht Dauer holen, Sinus draufpacken....
passt. Bissel rumgerechnet, geht. Zur Sommersonnenwende sinds dann 10 min Verzögerung, zur Sommersonnenwende 90min.
Aber Scheiße, ich bin zu BLÖD!!!

Code: Alles auswählen

rule "Zeitverzögerung  Rolläden"
    when
    Item LocalSun_Daylight_Duration received update
    then{
    var var1 = (((LocalSun_Daylight_Duration.state as DecimalType).floatValue)/600)
    var var2 = Math::sin(var1)    
    var var3 = Math::round(10/(var2^6))
    Rolladen_Timer.sendCommand(var3)
    }
end
Unter anderem folgende Fehlermeldung:
Could not cast 790 min to org.eclipse.smarthome.core.library.types.DecimalType


Vielleicht noch als Hinweis, das Item: LocalSun_Daylight_Duration kommt aus dem Astro Bindung in Minuten.
Und ich hätte den Wert für den Timer gerne als einfache Zahl ohne Nachkommastellen.

Wer kann mir helfen :-D (Mit google bin ich in den letzten anderthalb Stunden nicht weiter gekommen.

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

Re: Rolladen Zeitverzögerung - Problem mit der Formel

Beitrag von udo1toni »

Nimm einfach as Number, statt as DecimalType.

Das Runden sollte mit (wert).intValue gehen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

KlausGünther
Beiträge: 143
Registriert: 16. Jul 2018 08:57
Answers: 0
Wohnort: Werl
Kontaktdaten:

Re: Rolladen Zeitverzögerung - Problem mit der Formel

Beitrag von KlausGünther »

Wenn man es richtig macht. Gehts.

DANKE udo1toni!!!!!!!!!!!!!!!!!

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

Re: Rolladen Zeitverzögerung - Problem mit der Formel

Beitrag von peter-pan »

Hab mal in euren Post "reingespickelt" und finde es interressant was diese Rule macht!... und hab sie mal "nachgebaut"

Code: Alles auswählen

rule "Zeitverzögerung  Rolläden"
    when
    Item SonnenDatenDaylightDuration received update
	or Item Dummy4 changed to ON
    then{
    var var1 = (((SonnenDatenDaylightDuration.state as Number).floatValue)/600)
    var var2 = Math::sin(var1)    
    var var3 = Math::round(10/Math.pow(var2,6))
    var var4 = Math.pow(var2,6)
    var var5 = 10/Math.pow(var2,6)
    var var6 = Math::round(Math.pow(var2,6))
	//    Rolladen_Timer.sendCommand(var3)
    logInfo("mathe1","Tageslichtdauer ist {} Triggering Item ist {}",SonnenDatenDaylightDuration.state, triggeringItem.name )
    logInfo("mathe1","var1 ist: {}, var2 ist: {}, var3 ist: {}, var4 ist: {}, var5 ist: {}, var6 ist: {}", var1,var2,var3,var4,var5,var6)
       }
end
Leider hab ich's nicht kapiert :oops: . Nach "LocalSun_Daylight_Duration" hat's leider aufgehört. Ich wäre neugierig, was es mit der Division, dem Sinus und dem Potenzieren auf sich hat, bzw. wie diese Werte zustande kommen. (Bin keine Matheleuchte).
Gruss,
Peter
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

KlausGünther
Beiträge: 143
Registriert: 16. Jul 2018 08:57
Answers: 0
Wohnort: Werl
Kontaktdaten:

Re: Rolladen Zeitverzögerung - Problem mit der Formel

Beitrag von KlausGünther »

Also der Gedanke dahinter ist, dass die Rolläden zeitverzögert zum Sonnenuntergang runter gehen.
Dabei sollen sie im Sommer (Sommer-Sonnenwende) weniger Zeitverzögert runter gehen als im Winter
(Winter-Sonnenwende).
Jetzt könnte man relativ einfach eine Formel bauen, bei der dann je nach Monat der Zeitverzögerungswert
geändert wird. Beispielsweise: Wenn Juni, dann 10 Minuten, wenn Januar, dann 90 Minuten.
Dann hat man aber bei den Monatswechseln von jetzt auf gleich aber den Effekt, dass auf einmal die Rolläden
zum Vortag schlagartig anders runter gehen. Fand ich doof.

Jetzt kommen wir zur Mathematik. Wenn man sich auf eine Sinuskurve setzen würde und runter rutscht, wäre das ähnlich
wie bei einer Achterbahn wenn es nach dem ersten Hügel wieder runter geht. Erst gehts langsam, dann schnell, dann wieder
langsam.... Und den effekt nutze ich für die Zeitkorrektur.
https://de.wikipedia.org/wiki/Sinus_und_Kosinus

Und bei mir verhällt sich das so. (Mitlerweile habe ich die Formel angepasst). Ich möchte, dass zur Sommersonnenwende (kürzeste Nacht), die Rolladen 20min nach dem Sonnenuntergang runter gehen.
Zur Wintersonnenwende (längste Nacht) sollen es 90-120min sein. Die Variable dabei ist immer die
Länge des Tages oder der Nacht, ich habe mich für den Tag entschieden.
Und dann sind die 600 bzw. die "hoch 6" nur Korrekturen um die Funktion so zu beeinflussen, dass
am längsten die Tag die 20min das auch ca. bleiben, und bei kürzestem Tag da ungefähr 2 Stunden rauskommen.

Somit kommt da bei mir raus (20min, Hoch4 anstatt hoch6)
Sommersonnenwende, verzögerung 20,449 Minuten
Wintersonnenwende, verzögerung 80,66 Minuten

Bei Hoch 6 wären es 20,5 Minuten und 161 Minuten. Mann muss / kann also etwas spielen und gucken was für einen passt.

Ich hoffe das ich den Bogen zwischen einfach und "auch wirklich ganz richtig" gefunden habe.

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

Re: Rolladen Zeitverzögerung - Problem mit der Formel

Beitrag von peter-pan »

Hallo Klaus-Günther,
vielen Dank für die Ausführungen. Das ist wirklich toll. Das werde ich gleich mal in deiner Testformel umsetzen.

Sehe ich das richtig, dass du diesen, errechneten, Wert als Item abspeicherst und dann in einer anderen Regel (Rolladensteuerung) verwendest ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

KlausGünther
Beiträge: 143
Registriert: 16. Jul 2018 08:57
Answers: 0
Wohnort: Werl
Kontaktdaten:

Re: Rolladen Zeitverzögerung - Problem mit der Formel

Beitrag von KlausGünther »

Ob Du wirklich richtig siehst, siehst Du wenn das Licht an geht :-D

Spaß beiseite:

Das wäre der erste Teil, also in der Rules Datei für die Rolläden einmal am Tag die Verzögerung errechnen:

Code: Alles auswählen

rule "Zeitverzögerung  Rolläden"
    when
    Item LocalSun_Daylight_Duration received update
    then
    {
    var var1 = (((ITEM-DAUER-TAGESLICHT.state as Number).floatValue)/600)
    var var2 = (Math::sin(var1))    
    var var3 = ((20/(var2*var2*var2*var2*var2)).intValue)
    ITEM-ROLLADEN-TIMER.sendCommand(var3)
    }
end
Und das der Zweite, wo dann die Rolladen runter gehen wenn irgendwas passiert, bei mir wäre es dann so,
dass je nach dem ob der Rolladenmodus ON oder OFF ist, zwei verschiedene Szenarien ablaufen.

Code: Alles auswählen

rule "Rolladen Runter Sonnenuntergang"
when
   Channel 'astro:sun:local:daylight#event' triggered END
   then
    val Integer TIMER_VERZOEGERUNG = (ITEM-ROLLADEN-TIMER.state as DecimalType).intValue  
    if (ROLLADENMODUS.state==OFF){
    createTimer(now.plusMinutes(TIMER_VERZOEGERUNG))[
    Shutter_1.sendCommand(DOWN)
    ....
    ...
    ..
    .
    
Vermutlich wird das ein oder andere noch eleganter gehen, aber ich bin froh das alles so läuft wie es das tut und bin auch von berufswegen eher nicht der Programmierer.
Als Hinweis sei noch erlaubt, die Rolladen gehen hier im Haus, reih um unter, mehr oder weniger in so einer La Ola Welle :D

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

Re: Rolladen Zeitverzögerung - Problem mit der Formel

Beitrag von udo1toni »

KlausGünther hat geschrieben: 7. Sep 2019 22:51 Als Hinweis sei noch erlaubt, die Rolladen gehen hier im Haus, reih um unter, mehr oder weniger in so einer La Ola Welle :D
Spielkind! ;)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

KlausGünther
Beiträge: 143
Registriert: 16. Jul 2018 08:57
Answers: 0
Wohnort: Werl
Kontaktdaten:

Re: Rolladen Zeitverzögerung - Problem mit der Formel

Beitrag von KlausGünther »

:D Erwischt

Benutzeravatar
sihui
Beiträge: 1827
Registriert: 11. Apr 2018 19:03
Answers: 21

Re: Rolladen Zeitverzögerung - Problem mit der Formel

Beitrag von sihui »

KlausGünther hat geschrieben: 7. Sep 2019 22:51 Als Hinweis sei noch erlaubt, die Rolladen gehen hier im Haus, reih um unter, mehr oder weniger in so einer La Ola Welle :D
Bei mir auch :D
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.

Antworten