Seite 1 von 1

Sonoff über Sonnenwinkel steuern

Verfasst: 23. Dez 2018 16:01
von Joe
hat jemand einen Idee, wir die Rule aussehen muss, um eine Aktion über die °-Angabe des Sonnenwinkels zu steuern.

Code: Alles auswählen

rule "test"
 when 
 Item Sun_Elevation changed 
 then
 licht.sendCommand(ON)
 end
 
Somit bekomme ich es nur hin das sich das Licht anschaltet, wenn der Wert sich ändert.
Müsste ich nicht aber den channel="astro:sun:local:position#elevation" entsprechend ansprechen?
Beispiel:
Wenn der Winkel von 2,4° erreicht ist, soll das Licht das Kommando (ON) erhalten.

Re: Sonoff über Sonnenwinkel steuern

Verfasst: 23. Dez 2018 16:28
von Caddy
das sollte mit
if (triggeringItem.state == "2.4") logInfo("Rule.Testrule","Test {} ",triggeringItem.state)

gehen wenn ich nicht falsch liege ....

caddy

Re: Sonoff über Sonnenwinkel steuern

Verfasst: 23. Dez 2018 23:56
von udo1toni
Nein, da liegst Du knapp daneben :)

Eine Möglichkeit:

Code: Alles auswählen

rule "test"
when 
    Item Sun_Elevation changed 
then
    if(!(Sun_Elevation.state instanceof Number)) return;
    var Switch mySwitch = OFF
    if((Sun_Elevation.state as Number) < 2) mySwitch = ON
    if(licht.state != mySwitch) licht.sendCommand(mySwitch)
end
Falls das Item Sun_Elevation keinen gültigen (numerischen) Wert hat, wird die Rule abgebrochen.
Eine Variable wird als Switch mit OFF initialisiert.
Der Status wird als Zahlenwert verglichen, ist er kleiner 2, wird die Variable auf ON gesetzt.
Abschließend wird geprüft, ob das Soll vom Ist abweicht und gegebenenfalls der passende Befehl gesendet.

Die Rule triggert bei jeder Änderung (abhängig von der Konfiguration der astro:sun Bridge), was nicht so schön ist.

Eine bessere Variante ist, die Rule auf ein astro Event triggern zu lassen, z.B. civilDusk#event oder civilDawn#event. Damit wird die Rule nur einmal täglich getriggert. Allerdings braucht man dann zwei Rules, eine zum Ein- und eine zum Ausschalten (der Aufwand, innerhalb der Rule herauszufinden, welcher Trigger die Rule gestartet hat, steht in keinem Verhältnis). Sieht dann so aus:

Code: Alles auswählen

rule "sonnenaufgang"
when 
    Channel 'astro:sun:home:civilDawn#event' triggered START
then
    licht.sendCommand(OFF)
end

rule "sonnenuntergang"
when 
    Channel 'astro:sun:home:civilDusk#event' triggered START
then
    licht.sendCommand(OFF)
end

Re: Sonoff über Sonnenwinkel steuern

Verfasst: 24. Dez 2018 08:08
von Joe
Danke Euch beiden, ich werde das ganze gleich mal testen