Ich bin ja ziemlich umtriebig
-
- Beiträge: 60
- Registriert: 15. Okt 2019 19:50
Ich bin ja ziemlich umtriebig
Da ich voll auf den Geschmack gekommen bin zum Thema Automatisierung wollte ich ein Regelwerk bauen um zum Sonnenuntergang oder einer eingestellten Zeit in einer Gruppe zusammen gefassten Rolladen schließen
Jetzt bekomme ich nur die Minute und Stunde´von astro_Sonnenuntergang nicht extrahiert
Diese beiden Varianten habe ich schon probiert
var sollMinute = (astro_Sonnenuntergang.state as DateTimeType).getMinuteOfHour()
var sollMinute = astro_Sonnenuntergang.getMinuteOfHour()
now.getMinuteOfHour() funktioniert, also vermute ich das ich hier auf dem verkehrten Weg bin wie ich astro_Sonnenuntergang in ein Datum verwandle
Kann mir jemand hier auch helfen?
Gruß Uwe
Jetzt bekomme ich nur die Minute und Stunde´von astro_Sonnenuntergang nicht extrahiert
Diese beiden Varianten habe ich schon probiert
var sollMinute = (astro_Sonnenuntergang.state as DateTimeType).getMinuteOfHour()
var sollMinute = astro_Sonnenuntergang.getMinuteOfHour()
now.getMinuteOfHour() funktioniert, also vermute ich das ich hier auf dem verkehrten Weg bin wie ich astro_Sonnenuntergang in ein Datum verwandle
Kann mir jemand hier auch helfen?
Gruß Uwe
Hi,
schau Dir mal diesen Abschnitt der Astro Binding Doku an https://www.openhab.org/addons/bindings ... nel-config.
Ich lasse mal schnell den relevanten Teil übersetzen:
Grüße,
Seppy
Gehe zur vollständigen Antwortschau Dir mal diesen Abschnitt der Astro Binding Doku an https://www.openhab.org/addons/bindings ... nel-config.
Ich lasse mal schnell den relevanten Teil übersetzen:
Damit lässt sich Dein Problem ohne permanente Crons elegant lösen.Kanal-Konfiguration
Offsets: Für jede Ereignisgruppe können Sie optional einen Offset in Minuten konfigurieren. Der Offset muss in den Kanaleigenschaften für die entsprechende Sache konfiguriert werden.
Der minimal zulässige Offset ist -1440 und der maximal zulässige Offset ist 1440.
Früheste/späteste: Für jeden Trigger-Kanal und für jeden Start- und Enddatum-Zeitwert können Sie optional die früheste und späteste Zeit des Tages konfigurieren.
z.B. Sonnenuntergang frühestens=18:00, spätestens=20:00
Sonnenuntergang ist 17:40, aber der früheste ist auf 18:00 gesetzt, so dass der Ereignis/Datums-Zeitwert auf 18:00 verschoben wird.
ODER
Der Sonnenuntergang ist 22:10 Uhr, aber der späteste Zeitpunkt ist auf 20:00 Uhr festgelegt, so dass der Ereignis-/Datumswert um 20:00 Uhr verschoben wird.
Grüße,
Seppy
- seppy
- Beiträge: 738
- Registriert: 24. Sep 2015 20:25
- Wohnort: Bonn
Re: Ich bin ja ziemlich umtriebig
Hi,
warum so kompliziert? Schau mal in diesem Beitrag viewtopic.php?p=15796#p15796, da dreht es sich um das Sonnenaufgang/-untergangsthema mit Beispielcode.
Grüße,
Seppy
warum so kompliziert? Schau mal in diesem Beitrag viewtopic.php?p=15796#p15796, da dreht es sich um das Sonnenaufgang/-untergangsthema mit Beispielcode.
Grüße,
Seppy
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren
- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung
- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung
- PeterA
- Beiträge: 1106
- Registriert: 8. Feb 2019 12:12
Re: Ich bin ja ziemlich umtriebig
Das Astrobinding liefert schon "fertige" items welche bei sonnen auf/untergang triggern.
Damit kannst Du dann arbeiten.
Und im Binding kann man auch offsets einstellen.
Alles ohne Rule
Damit kannst Du dann arbeiten.
Und im Binding kann man auch offsets einstellen.
Alles ohne Rule
- OpenHab 2.4
#PWRUP
#PWRUP
-
- Beiträge: 60
- Registriert: 15. Okt 2019 19:50
Re: Ich bin ja ziemlich umtriebig
So, ich habe mir eure Ratschläge zu Herzen genommen und das ganze etwas umgebaut
Die Items
Sitemap Auszug
Die Rules
IsNight.rules
Sunsetautomatik.rules
Leider ist die Zeit zu spät geworden um zu testen ob die Rolladen runterfahren.
Aber die Logeinträge stimmen (Log war true) und IsNight wird auf OFF gestellt.
Damit will ich verhindern dass das sendcommand jede Minute feuert
Ich werde euch morgen auf dem laufenden halten
Danke erst einmal für euern Input
Gruß Uwe
Die Items
Code: Alles auswählen
// Konfiguration Sunset
Switch Sunsetautomatik "Sunset-Automatik an/aus"
Number Sunsetautomatik_zielwert "Schließen auf [%d Prozent]"
Number Sunsetautomatik_Hour "Spätestens um Stunde [%d Uhr]"
Number Sunsetautomatik_Minute "Spätestens um Minute [%d min]"
Code: Alles auswählen
Frame label="Sonnenuntergang" icon="attic" {
Text label="Konfiguration Sonnenuntergang" icon="rollershutter" {
Frame label="Aktivieren der Automatik Sonnenuntergang" {
Switch item=Sunsetautomatik
}
Frame label="Rollo spätestens runterfahren um ... "{
Setpoint item=Sunsetautomatik_Hour minValue=0 maxValue=23 step=1
Setpoint item=Sunsetautomatik_Minute minValue=0 maxValue=59 step=1
Setpoint item=astro_Sonnenuntergang
}
}
}
IsNight.rules
Code: Alles auswählen
rule "Tag"
when
Channel "astro:sun:home:rise#event" triggered START
then
IsNight.postUpdate(OFF)
end
rule "Nacht"
when
Channel "astro:sun:home:set#event" triggered START
then
IsNight.postUpdate(ON)
end
Code: Alles auswählen
import org.joda.time.*
var boolean log = false
rule "Sonnenuntergang Zeit"
when
Time cron "0 * 16-21 * * ?" // every minute
then
val String logPrefix = 'Sunsetautomatik - '
if (log) logInfo('rules', logPrefix + 'Ich arbeite: ' + now.getHourOfDay() + ':' + now.getMinuteOfHour())
if (Sunsetautomatik.state == ON) {
// logInfo('rules', logPrefix + 'Setze Variablen für Uhrzeit')
// var sollStunde = astro_Sonnenuntergang.getHourOfDay()
// var sollMinute = (astro_Sonnenuntergang.state as DateTimeType).getMinuteOfHour()
// var sollMinute = astro_Sonnenuntergang.getMinuteOfHour()
if (log) logInfo('rules', logPrefix + 'Prüfe die Uhrzeit für eine Aktion. Nachtstatus: ' + IsNight.state)
// Erst prüfen ob die eingestellte Zeit erreicht wurde
// Die manuelle Uhrzeit nur in der Sommerzeit ausführen
// if (astro_jahreszeit=='SOMMER'){
if (Sunsetautomatik_Minute == now.getMinuteOfHour() && Sunsetautomatik_Hour == now.getHourOfDay()) {
if (log) logInfo('rules', logPrefix + 'Fahre Rolladen nach Uhrzeit herunter')
if (log) logInfo('rules', logPrefix + 'Zeitvergleich: Vorgabe: ' + Sunsetautomatik_Hour + ':' + Sunsetautomatik_Minute + ' Aktuelle Zeit: ' + now.getHourOfDay() + ':' + now.getMinuteOfHour())
GF_Sunset_Rollo.sendCommand(100)
IsNight.postUpdate(OFF)
}
else (IsNight.state == ON) {
if (log) logInfo('rules', logPrefix + 'Fahre Rolladen zum Sonnenuntergang herunter')
if (log) logInfo('rules', logPrefix + 'Nachtstatus: ' + IsNight.state)
if (log) logInfo('rules', logPrefix + 'Rolladenposition: ' + F2_MasterBedroom_Shutter.state)
GF_Sunset_Rollo.sendCommand(100)
IsNight.postUpdate(OFF)
}
}
end
Aber die Logeinträge stimmen (Log war true) und IsNight wird auf OFF gestellt.
Damit will ich verhindern dass das sendcommand jede Minute feuert
Ich werde euch morgen auf dem laufenden halten
Danke erst einmal für euern Input
Gruß Uwe
- udo1toni
- Beiträge: 15248
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Ich bin ja ziemlich umtriebig
Das ist aber ganz schön von hinten durch die Brust ins Auge...
Warum führst Du eine Rule minütlich aus, die dann doch nur bei einer bestimmten Uhrzeit die Läden fahren soll? Du kannst im Astro Binding verschiedene Events nutzen, von Sonnenauf/untergang über bürgerliche und nautische bis zur astronomischen Dämmerung (entsprechend 0°, -6°, -12° und -18° Sonnenwinkel über Horizont). Für jeden dieser Trigger kannst Du Grenzwerte setzen, also frühestens um x:xx Uhr, spätestens um x:xx Uhr, außerdem kannst Du auch noch einen Offset definieren, also z.B. "12 Minuten vor Sonnenaufgang" oder "17 Minuten nach bürgerlicher Dämmerung".
Dann reicht eine Rule zum Schließen und eine Rule zum Öffnen der Läden.
Wahlweise kann man noch Einschränkungen einbauen, ich habe z.B. eine Wochenendeinschränkung, d.h. die Läden fahren am Wochenende (und an Feiertagen/ während der Ferien) nicht über die frühen Rules. Eine weitere Rule, die um 8:30 triggert fährt die Läden dann auf jeden Fall auf.
Abgesehen davon, auch wenn es verschiedene Codebeispiele mit dem Konstrukt
gibt, so möchte ich darauf hinweisen, dass das am System vorbei programmiert ist. Ich habe das erschöpfend in diesem Post dargelegt
viewtopic.php?f=8&t=2193&p=10456&hilit=log%3Aset#p10456
Cyrelian hat an anderer Stelle ausführlich gepostet, wie man es richtig macht
Warum führst Du eine Rule minütlich aus, die dann doch nur bei einer bestimmten Uhrzeit die Läden fahren soll? Du kannst im Astro Binding verschiedene Events nutzen, von Sonnenauf/untergang über bürgerliche und nautische bis zur astronomischen Dämmerung (entsprechend 0°, -6°, -12° und -18° Sonnenwinkel über Horizont). Für jeden dieser Trigger kannst Du Grenzwerte setzen, also frühestens um x:xx Uhr, spätestens um x:xx Uhr, außerdem kannst Du auch noch einen Offset definieren, also z.B. "12 Minuten vor Sonnenaufgang" oder "17 Minuten nach bürgerlicher Dämmerung".
Dann reicht eine Rule zum Schließen und eine Rule zum Öffnen der Läden.
Wahlweise kann man noch Einschränkungen einbauen, ich habe z.B. eine Wochenendeinschränkung, d.h. die Läden fahren am Wochenende (und an Feiertagen/ während der Ferien) nicht über die frühen Rules. Eine weitere Rule, die um 8:30 triggert fährt die Läden dann auf jeden Fall auf.
Abgesehen davon, auch wenn es verschiedene Codebeispiele mit dem Konstrukt
Code: Alles auswählen
if (log) logInfo(...)

Cyrelian hat an anderer Stelle ausführlich gepostet, wie man es richtig macht

openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 60
- Registriert: 15. Okt 2019 19:50
Re: Ich bin ja ziemlich umtriebig
Nun ja, mit den loginfo gebe ich Dir Recht. Allerdings hatte ich das aus einer anderen Regel abgeschaut. Nobody is perfect
Allerdings ist es bei dieser Regel nicht so das sie letztendlich nur zu einer bestimmten Uhrzeit ausgeführt wird.
Die Vorgabe ist:
Fahre die Rolladen herunter wenn Sonnenuntergang ist.
Ausnahme: Wenn die eingestellte Zeit vor Sonnenuntergang ist, dann nimm diese Zeit
Ich habe die Zeiteingabe mittlerweile auf 5 Minuntenschritte eingestellt und die Cronangaben dementsprechend angepasst.
Er läuft damit nur zwischen 16:00 und 21:00 alle 5 Minuten.
Die ganzen Logeinträge waren eher für mich gedacht um zu sehen was geht und nicht.
Dieses verschwindet eh wieder.
Ich werde mir den link separat später einmal genauer ansehen
Allerdings ist es bei dieser Regel nicht so das sie letztendlich nur zu einer bestimmten Uhrzeit ausgeführt wird.
Die Vorgabe ist:
Fahre die Rolladen herunter wenn Sonnenuntergang ist.
Ausnahme: Wenn die eingestellte Zeit vor Sonnenuntergang ist, dann nimm diese Zeit
Ich habe die Zeiteingabe mittlerweile auf 5 Minuntenschritte eingestellt und die Cronangaben dementsprechend angepasst.
Er läuft damit nur zwischen 16:00 und 21:00 alle 5 Minuten.
Die ganzen Logeinträge waren eher für mich gedacht um zu sehen was geht und nicht.
Dieses verschwindet eh wieder.
Ich werde mir den link separat später einmal genauer ansehen
- seppy
- Beiträge: 738
- Registriert: 24. Sep 2015 20:25
- Wohnort: Bonn
Re: Ich bin ja ziemlich umtriebig
Hi,
schau Dir mal diesen Abschnitt der Astro Binding Doku an https://www.openhab.org/addons/bindings ... nel-config.
Ich lasse mal schnell den relevanten Teil übersetzen:
Grüße,
Seppy
schau Dir mal diesen Abschnitt der Astro Binding Doku an https://www.openhab.org/addons/bindings ... nel-config.
Ich lasse mal schnell den relevanten Teil übersetzen:
Damit lässt sich Dein Problem ohne permanente Crons elegant lösen.Kanal-Konfiguration
Offsets: Für jede Ereignisgruppe können Sie optional einen Offset in Minuten konfigurieren. Der Offset muss in den Kanaleigenschaften für die entsprechende Sache konfiguriert werden.
Der minimal zulässige Offset ist -1440 und der maximal zulässige Offset ist 1440.
Früheste/späteste: Für jeden Trigger-Kanal und für jeden Start- und Enddatum-Zeitwert können Sie optional die früheste und späteste Zeit des Tages konfigurieren.
z.B. Sonnenuntergang frühestens=18:00, spätestens=20:00
Sonnenuntergang ist 17:40, aber der früheste ist auf 18:00 gesetzt, so dass der Ereignis/Datums-Zeitwert auf 18:00 verschoben wird.
ODER
Der Sonnenuntergang ist 22:10 Uhr, aber der späteste Zeitpunkt ist auf 20:00 Uhr festgelegt, so dass der Ereignis-/Datumswert um 20:00 Uhr verschoben wird.
Grüße,
Seppy
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren
- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung
- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung
- udo1toni
- Beiträge: 15248
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Ich bin ja ziemlich umtriebig
Was tatsächlich nicht geht, ist, die Zeiten über die normale UI einzustellen. Wenn man das partout haben möchte, muss man das Thing über Paper UI definieren und dort die Zeiten einstellen, oder alternativ mit hohem Aufwand ein Script erstellen, welches das per Paper UI angelegte Thing mittels REST API manipuliert.
Allerdings muss ich aus meiner Erfahrung heraus sagen, dass ich diese Zeiten bisher nicht anfassen musste (nachdem ich einmal die für uns richtigen Zeiten gefunden hatte). Es ist auch kein Parameter, den jeder Anwender (im Haus, also nicht der openHAB Admin, sondern der openHAB DAU) verstellen können sollte, dazu muss man schon verstanden haben, wie der Parameter wirkt.
Allerdings muss ich aus meiner Erfahrung heraus sagen, dass ich diese Zeiten bisher nicht anfassen musste (nachdem ich einmal die für uns richtigen Zeiten gefunden hatte). Es ist auch kein Parameter, den jeder Anwender (im Haus, also nicht der openHAB Admin, sondern der openHAB DAU) verstellen können sollte, dazu muss man schon verstanden haben, wie der Parameter wirkt.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 60
- Registriert: 15. Okt 2019 19:50
Re: Ich bin ja ziemlich umtriebig
Ich bin immer wieder fasziniert was es alles gibt in OpenHab.
Da ich noch Neuling bin versuche ich aus den Beispielen welche ich finde meine Ideen umzusetzen.
Dank Deines Beitrags, Seppy, habe ich die Regel umgebaut
Das Logging habe ich komplett rausgelassen. Das kann ich später immer noch wieder einbauen
Hier nun die Regel: Earlist habe ich auf 16:00 und latest auf 21:00 gesetzt
Nachtrag:
Leider kann ich bei dem Beitrag von Seppy kein "Gefällt mir" drücken
Da ich noch Neuling bin versuche ich aus den Beispielen welche ich finde meine Ideen umzusetzen.
Dank Deines Beitrags, Seppy, habe ich die Regel umgebaut
Das Logging habe ich komplett rausgelassen. Das kann ich später immer noch wieder einbauen
Hier nun die Regel: Earlist habe ich auf 16:00 und latest auf 21:00 gesetzt
Code: Alles auswählen
rule "sunsetautomatik"
when
Channel "astro:sun:local:set#end" triggered START
then
if (Sunsetautomatik.state == ON) {
GF_Sunset_Rollo.sendCommand(100)
}
end
Leider kann ich bei dem Beitrag von Seppy kein "Gefällt mir" drücken
-
- Beiträge: 60
- Registriert: 15. Okt 2019 19:50
Re: Ich bin ja ziemlich umtriebig
Ich muss noch einmal eure Hilfe in Anspruch nehmen. Evtl. verstehe ich da was nicht
Ich habe bei Sonnenaufgang ein earlist= 08:00 eingetragen.
In PaperUI zeigt er mir auch korrekt 08:00 an
Nur, der Trigger feuerte heute um 07:35
Hier die Regel, muss ich den Channel anders ansprechen?
Ich habe bei Sonnenaufgang ein earlist= 08:00 eingetragen.
In PaperUI zeigt er mir auch korrekt 08:00 an
Nur, der Trigger feuerte heute um 07:35
Hier die Regel, muss ich den Channel anders ansprechen?
Code: Alles auswählen
rule "sunriseautomatik"
when
Channel "astro:sun:local:rise#event" triggered START
then
if (Sunsetautomatik.state == ON) {
//Sonnenaufgang Automatik Schlafzimmer
GF_Sunset_Rollo.sendCommand(0)
Sunriseautomatik_last.postUpdate(now.toString())
//Sonnenaufgang Automatik Esszimmer
if (Sunriseautomatik_Dinningroom.state ==ON) {
GF_Dining_Shutter_Right.sendCommand(11)
GF_Dining_Shutter_Left.sendCommand(6)
}
}
end