Seite 1 von 2
[gelöst] Rule mit Sonnenaufgang verbinden
Verfasst: 16. Feb 2020 20:41
von clajo
Hallo alleseits,
Jörg der Grünschnabel hat mal wieder eine Frage die hochgeschätzten Profis
Ich habe mir eine Rule zur Steuerung eines Lichtweckers gebastelt:
Code: Alles auswählen
rule "Lichtwecker Ein"
when
Time cron "0 10 5 ? * MON-FRI *" //Wochentag 5:10 EIN
then
OG_Schlafen_Lichtwecker_State.sendCommand(ON)
end
rule "Lichtwecker Aus"
when
Time cron "0 40 5 ? * MON-FRI *" //Wochentag 5:40 AUS
then
OG_Schlafen_Lichtwecker_State.sendCommand(OFF)
end
Der eigentliche Lichtwecker besteht aus einem Arduino mit LEDs.
So weit so gut - nur wie kann ich da jetzt den Sonnenaufgang mit einbauen?
Ich möchte gerne das der Lichtwecker nicht nach dem Sonnenaufgang angeht (wäre ja zwecklos

)
Die Astro-Bindungs habe ich installiert
Vielen Dank im voraus
Jörg
Re: Rule mit Sonnenaufgang verbinden
Verfasst: 16. Feb 2020 22:13
von eiGelbGeek
Astro Binding gehe ich mal von aus hast den Sonnenaufgang schon konfiguriert?
z.b. wie aus der Dokumentation:
Code: Alles auswählen
DateTime Sunrise_Time "Sunrise [%1$tH:%1$tM]" { channel="astro:sun:home:rise#start" }
Dann müsste es so funktionieren, habe es allerdings nicht getestet
Code: Alles auswählen
rule "Lichtwecker"
when
Time cron "0 10 5 ? * MON-FRI *" or //Wochentag 5:10 EIN
Time cron "0 40 5 ? * MON-FRI *" //Wochentag 5:40 AUS
then
if (now.isBefore(Sunrise_Time) && OG_Schlafen_Lichtwecker_State.state == OFF) {
OG_Schlafen_Lichtwecker_State.sendCommand(ON)
} else {
if (OG_Schlafen_Lichtwecker_State.state == ON) OG_Schlafen_Lichtwecker_State.sendCommand(OFF)
}
end
Bin mir nur nicht sicher wie das mit der Sunrise_Time ist, habe noch nie mit dem Astro Binding gearbeitet. Teste einfach mal ob openhab Fehler wirft, wenn du die Rule so einfügst

Re: Rule mit Sonnenaufgang verbinden
Verfasst: 17. Feb 2020 01:50
von udo1toni
Besser wäre es, ein weiteres Item anzulegen, welches Tag und Nacht anzeigt, also z.B.
und dazu zwei kleine Rules:
Code: Alles auswählen
rule "Tag"
when
Channel "astro:sun:home:rise#event" triggered START
then
IsDay.postUpdate(ON)
end
rule "Nacht"
when
Channel "astro:sun:home:set#event" triggered START
then
IsDay.postUpdate(OFF)
end
Natürlich kann man auch die Zeitpunkte verschieben oder statt Sonnenaufgang/Untergang die bürgerliche Dämmerung nehmen, dann halt mit anderen Triggern.
Nun hat man einen Switch, den man in einer Rule bequem abfragen kann:
Code: Alles auswählen
rule "Lichtwecker Ein"
when
Time cron "0 10 5 ? * MON-FRI" // Wochentag 5:10 EIN
then
if(IsDay.state != ON && OG_Schlafen_Lichtwecker_State.state != ON)
OG_Schlafen_Lichtwecker_State.sendCommand(ON)
end
rule "Lichtwecker Aus"
when
Time cron "0 40 5 ? * MON-FRI" or // Wochentag 5:40 AUS
Item IsDay changed to ON
then
if(OG_Schlafen_Lichtwecker_State.state != OFF)
OG_Schlafen_Lichtwecker_State.sendCommand(OFF)
end
Re: Rule mit Sonnenaufgang verbinden
Verfasst: 18. Feb 2020 19:27
von clajo
Hallo udo1toni,
ich habe jetzt ein neues Item (IsDay.items) angelegt, eine neue Rule namens Tag_Nacht.rules erstellt und deine Codes eingefügt. Meine Lichtwecker.rules habe ich auch angepasst.
Leider bekomme ich in der Tag_Nacht rule eine Fehlermeldung:
Code: Alles auswählen
The method or field IsDay is undefined(org.eclipse.xtext.diagnostics.Diagnostic.Linking)
Vorschauproblem Keine Schnellkorrekturen verfügbar
Wo liegt denn hier mein Fehler?
Jörg
Re: Rule mit Sonnenaufgang verbinden
Verfasst: 18. Feb 2020 19:36
von Darkwin101
Hast du eine Datei IsDay.items angelegt oder in déiner Items Datei einen Switch Isday.
Wenn du eine Datei angelegt hast musst du dort in der Datei noch diese Zeile einfügen
Re: Rule mit Sonnenaufgang verbinden
Verfasst: 18. Feb 2020 20:08
von clajo
Ich habe eine neue Datei namens IsDay.items angelegt und den Code eingefügt.
Ich hatte es auch probiert den Switch in der Schlafen.items einzufügen. Da kam derselbe Fehler
Jörg
Re: Rule mit Sonnenaufgang verbinden
Verfasst: 18. Feb 2020 20:23
von Darkwin101
Hats du den Schalter mal in eine sitemap gebaut und mal geschaltet wenn ein neuer Schalter angelegt wird ist er nicht ON oder OFF sondern UNDEF bis er geschaltet wurde also undefiniert dann kann eventuell die Rule den State nicht abfragen da er den Zustand nicht kennt. Was wiederum zur Fehlermeldung passen würde
Re: Rule mit Sonnenaufgang verbinden
Verfasst: 18. Feb 2020 22:42
von clajo
Das habe ich probiert - keine Wirkung.
Im Log steht folgendes:
Code: Alles auswählen
2020-02-18 22:39:40.379 [INFO ] [rest.core.internal.item.ItemResource] - Received HTTP POST request at 'items/IsDay' for the unknown item 'IsDay'.
Re: Rule mit Sonnenaufgang verbinden
Verfasst: 18. Feb 2020 23:04
von eiGelbGeek
Hast du auch eine .items und eine .rules anleget oder alles in der .items?!?!
Ich schätze mal letzteres

wenn nicht, liegen die Dateien auch im richtigen Ordner?
Re: Rule mit Sonnenaufgang verbinden
Verfasst: 19. Feb 2020 11:49
von seppy
Hi,
die Fehlermeldung besagt, Du hast kein Item mit dem Namen IsDay. Das Anlegen einer Datei erzeugt kein Item. Sondern die Itemdefinition in der Datei ...
Grüße,
Seppy