Hallo zusammen,
Waldemar hat recht. Eigentlich kann man jede Leave-Bedingung auch als Enter-Bedingung ausdrücken. Allerdings müsste man sie dann bei ALLEN anderen Zuständen definieren. Man sollte sich daher immer fragen, ob man eine Leave Bedingung wirklich braucht. Im Regelfall wird die Antwort sicherlich eher "nein" lauten, denn man will ja üblicherweise nur solange in einem Zustand bleiben, wie keine anderer Zustand "besser" ist. Ich selbst nutze Leave-Bedingungen ausschließlich für den "Raffstores nachführen"-Zustand, um zu verhindern dass beim Durchzug von Wolken die Raffstores dauernd hoch und runter fahren (Hysterese für die Helligkeit und zusätzlich eine Delay-Bedingung). Ansonsten nutze ich keine Leave-Bedingungen
Grüße
offline
Ankündigung
Einklappen
Keine Ankündigung bisher.
Automatische Beschattung
Einklappen
X
-
Hi,
hier ist etwas logisches denken angesagt. Ich bin mir nicht sicher, ob es eine Allgemenlösung ist, aber ich versuche mal, den Gendankengang, der mir immer geholfen hat, zu beschreiben.
Ein leave ist meiner Meinung nach nichts anderes als- Ich bin im Zustand x
- Eine (oder mehrere) Bedingung(en) beschreibt/beschreiben, wann ich den Zustand verlassen darf
- Der Zustand wird "festgefroren", also kein Anderer Zustand wird geprüft
- Man prüft mit as_laststate auf den Zustand x
- Man negiert die Bedingung(en) für leave, damit sie zu enter-Bedingungen werden
Das ist konzeptionell Dein Problem, denn Close wird nicht verlassen, bis IstNacht = 0 wird. Wenn man aber darausCode:[[Open]] as_set_Pos: <<schlitzposition>> [[[enter]]] as_value_FensterOffen = 1 [[Close]] as_set_Pos: <<geschlossen>> [[[enter]]] as_value_IstNacht = 1 [[[leave]]] as_value_IstNacht = 0
macht, wird der Zustand doch verlassen, wenn das Fenster geschlossen wird.Code:[[Open]] as_set_Pos: <<schlitzposition>> [[[enter]]] as_value_FensterOffen = 1 [[Close]] as_set_Pos: <<geschlossen>> [[[enter_Start]]] as_value_IstNacht = 1 [[[enter_Stay]]] as_lastpos = Close as_value_IstNacht = 1
Anmerkungen: Das oben ist syntaktisch nicht korrekt, soll nur das Konzept aufzeigen. Ferner ist mir klar, dass man hier ganz auf enter_Stay verzichten könnte, soll wie gesagt nur zeigen, dass man eine leave-Bedingung auch als enter mit aktuellem State und einer Negierung der leave-Bedingung erreichen kann. Wie das auf Deine leave-Bedingungen anzupassen ist, musst Du selber wissen.
Ich arbeite inzwischen fast ausschließlich ohne leave-Bedingungen, da bei mir der wichtigste (und damit erste) State der Feueralarm ist, und dieser sollte immer betreten werden können und nicht durch ein leave verhindert werden. Der Feueralarm selbst hat aber ein leave, da dieser Zustand durch nichts anderes als durch eine Manuelle Aktion an der Haustür verlassen werden darf.
Und bevor hier Bedenken angemeldet werden: Natürlich wird der Feueralarm bei mir native in KNX abgehandelt (wie jede sicherheitskritische Funktion), dass die Logik ZUSÄTZLICHT darauf reagiert, ist eine Komfortfunktion.
Gruß, Waldemar
Einen Kommentar schreiben:
-
Hey Waldemar,
jupp - das war das Problem. Manchmal steht man doch echt auf dem Schlauch...
Danke!! :-)
Jetzt funktioniert alles, bis auf das mit den Fensterkontakten: Problem ist, dass er zb. fenster_nacht_close nicht leaven kann, weil die leave-Bedingungen Vorgaben wie welcher Werktag, mindeste Uhrzeit etc hat.
Das heisst, wenn er im fenster_nacht_close ist, und ich das Fenster öffne, dann kann er nicht in fenster_nacht_open, weil er in der alten Schleife noch eingesperrt ist.
Da ist mir bislang noch keine vernünftige Lösung eingefallen. Schön wäre es, wenn es noch eine Art unterbedingung geben würde. - oder ich übersehe gerade etwas.
Liebe Grüße
Miguel
Einen Kommentar schreiben:
-
Hi,
jetzt hab ich es gesehen: device.shutter muss noch die beiden Parameter min und max gesetzt bekommen, und zwar mit 0 und 100.
Gruß, Waldemar
Einen Kommentar schreiben:
-
Hi Waldemar,
doch, das hab ich. Anbei die Confs:
Rollodefs:
item.confCode:[arbeitdefs] type = bool cycle = 600 name = Arbeitszimmer Rollo as_plugin = active as_lock_item = arbeitszimmer.rollo.auto_lock as_suspend_item = arbeitszimmer.rollo.auto_suspend as_suspend_time = 7200 as_suspend_watch = erdgeschoss.arbeitszimmer.rollo.move | erdgeschoss.arbeitszimmer.rollo.stop as_laststate_item_id = arbeitszimmer.rollo.auto_laststate_id as_laststate_item_name = arbeitszimmer.rollo.auto_laststate_name as_item_height = arbeitszimmer.rollo.height as_item_lamella = arbeitszimmer.rollo.lamella # as_item_presence = arbeitszimmerdefs.presence as_item_brightness = aussenbereich.daemmerung as_item_ost = zentralsteuerungen.sonneost as_item_sued = zentralsteuerungen.sonnesued as_item_west = zentralsteuerungen.sonnewest [[night]] as_use = autoblind.default.night # [[[enter_presence]]] # as_max_brightness = 750 # as_min_time = 16:30 # as_max_time = 16:35 # as_negate_time = True # as_value_presence = True # [[[[enter]]]] # as_value_presence = False [[dawn]] as_use = autoblind.default.dawn [[dusk]] as_use = autoblind.default.dusk # [[suntracking]] # as_use = autoblind.default.suntracking [[day]] as_use = autoblind.default.day
rolloautomatik.confCode:[[[rollo]]] [[[[move]]]] type = bool visu = yes enforce_updates = yes visu_acl = rw knx_dpt = 1 knx_send = 3/6/0 <------><------>knx_cache = 3/6/0 [[[[stop]]]] type = bool visu = yes enforce_updates = yes visu_acl = rw knx_dpt = 1 knx_send = 3/6/1 <------><------>knx_cache = 3/6/1 [[[[position]]]] type = num visu = yes visu_acl = rw knx_dpt = 5.001 knx_send = 3/6/6 knx_cache = 3/6/6
Der Grund, weshalb ich 2 confs für die Rollos habe: die items.conf ist meine eigentliche conf. - die anderen beiden sind für das Plugin. Ich habe es vorerst getrennt um einfacher Fehler zu finden und zu beheben. Wenn alles nachher so läuft, wie es soll, dann würde ich die rolloautomatik.conf und die items.conf zusammenführen.Code:[arbeitszimmer] [[rollo]] name = Arbeitszimmer [[[auto_lock]]] type = bool knx_dpt = 1 knx_send = 7/0/0 knx_status = 7/0/0 knx_listen = 7/0/0 | 3/6/0 | 3/6/1 visu_acl = rw cache = on [[[auto_suspend]]] type = bool knx_dpt = 1 # knx_send = 7/0/0 visu_acl = r [[[auto_laststate_id]]] type = str visu_acl = r cache = on [[[auto_laststate_name]]] type = str visu_acl = r cache = on [[[updown]]] type = bool knx_dpt = 1 knx_send = 3/6/0 visu_acl = rw enforce_updates = on [[[stepstop]]] type = bool knx_dpt = 1 knx_send = 3/6/1 visu_acl = rw enforce_updates = on [[[height]]] type = num knx_dpt = 5.001 knx_send = 3/6/6 knx_init = 3/6/6 visu_acl = rw cache = on [[[lamella]]] type = num knx_dpt = 5.001 knx_send = 0/0/0 knx_init = 0/0/0 visu_acl = rw cache = on
Einen Kommentar schreiben:
-
Ich rate mal: Bei position einen knx_dpt = 5 statt knx_dpt = 5.001? Gruß Waldemar
Einen Kommentar schreiben:
-
Hi Waldemar und offline,
vielen vielen Dank für eure Hilfe. Soweit hab ich es jetzt laufen. Noch etwas voller Bugs, aber das ist meine eigene Schuld - werde ich die nächsten Tage ausbessern.
Es ist auch schön zu sehen, dass die Entwicklung immer weiter geht - so nimmt man sich auch gern Zeit für die "Bastelei" :-)
Jetzt habe ich noch eine Verständnisfrage und das nächste komische Erlebnis:
Wenn das Plugin zb um 22 Uhr entscheidet, auf "Nachts, Werktags und Fenster offen" zu fahren, dann ist das ja ganz prima. Wenn ich jetzt aber zb. das Fenster zu mache, dann verweilt er in dem Status, da er den ja nicht leaven darf, da es noch immer dunkel ist etc.
Verständnisfrage: Das ist vermutlich nur eine Frage der Umsetzung, welche Bedingungen ich ihm gebe, damit der diesen Status leaven darf und in den Status "close" fährt und umgekehrt?
Ich habe im jetzt 50 % meiner Rollos mit dem Plugin ausgestattet - jetzt ist folgendes passiert:
Wenn das Rollo zu 100 % geschlossen ist, dann zeigt er in der Visu nur die Hälfte an. Also 50 % sind jetzt 100 und so. Ich bin mir gerade nicht sicher - meiner Meinung nach, kann es am Plugin nicht liegen, denn das hat damit ja eigentlich nichts zu tun. Fakt ist aber: Es funktionierte vorher einwandfrei.
Anbei ein Screen:
Rollo.jpg
Das Rollo ist zu dem Zeitpunkt komplett geschlossen.
Der Code dazu:
Hatte das Problem noch wer anderes?Code:<div class="block"> <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true"> <div data-role="collapsible" data-collapsed="false"> <h3>Rolladen Arbeitszimmer</h3> {{ device.shutter ('shutter1', 'Fenster', 'erdgeschoss.arbeitszimmer.rollo.move', '', 'erdgeschoss.arbeitszimmer.rollo.position') }} {{ basic.checkbox('checkbox1', 'arbeitszimmer.rollo.auto_lock', 'Automatik deaktiviert') }} </div> </div> </div>
Liebe Grüße
Miguel
Einen Kommentar schreiben:
-
Hallo zusammen,
ich habe eben einige Änderungen auf GitHub gepusht:- der Zweig "feature-condition-eval" (Wert für Bedingung über eval ermitteln) ist in den develop-Zweig aufgenommen worden.
- Die komplette Doku ist zweisprachig (deutsch/englisch) im Wiki auf GitHub verfügbar. Die README-Datei enthält daher nur noch Links auf die Doku.
Im nächsten Schritt werde ich das Coding, dass die Kompatibilität zu den früheren Attributen ohne das Prefix "as_" herstellt, entfernen. Wer also seine Konfiguration noch nicht umgestellt hat sollte dies demnächst tun.
Grüße
offline
Einen Kommentar schreiben:
-
Hi,Zitat von BlackCrow Beitrag anzeigenWie gesagt: Bei betätigung per Visu gehts - sobald ich den Taster betätige (der ja quasi nix anderes macht) gehts nicht.
doch - ist was anderes, weil Du es anders definiert hast! Sowohl Dein move wie auch Dein stop machen nur ein knx_send! Der Taster macht natürlich auch ein knx_send, von dem bekommen aber Deine stop und move nichts mit. Du musst noch ein knx_cache auf die jeweilige GA hinzufügen.
Und Dein knx_init bei position solltest Du auch durch ein knx_cache ersetzen, außer Du hast es wirklich mit Absicht nur über knx_init abgebildet.
Du musst Dir nochmal genau durchlesen, wie die Items in sh.py funktionieren, hier speziell das knx-plugin. Da ist es genau so wichtig zu sagen, was empfangen, was gesendet, wann geantwortet wird wie bei jedem (Hardware-) KNX-Gerät.
Gruß, Waldemar
Einen Kommentar schreiben:
-
Hey offline und Onkelandy,
danke für eure prompte Unterstützung. Jetzt hab ich es langsam auch verstanden - wohl typische Anfängerfehler. :-)
Ich habe die Bedingungen jetzt entsprechend geändert - werde berichten, wenn heute Abend das Rollo fährt, ob es auf den Fensterkontakt reagiert.
Jetzt habe ich mir gestern glatt den Kopp gestossen (kein Witz), als ich Abends noch kurz auf der Terrasse war. Kann zwar nichts kaputt gehen, aber zumindest wollte ich zum kleinen Lacher beitragen.
Folgendes ist passiert:
Ich hatte gestern zumindest im EG die Rollos entsprechend mit dem Plugin ausgestattet. Ich habe immer geschaut, ob das auto_suspend funktioniert, indem ich die Logs per tail beobachtet habe, wenn ich per Visu ein Rollo bewegt habe.
Hat perfekt geklappt.
Jetzt habe ich gestern zur Terrasse das Rollo hoch gemacht und bin raus. Als ich gerade wieder rein wollte (mit dem Handy in der Hand beschäftigt) fuhr das Rollo runter. BOING hat es gemacht und ich stand vor einer veschlossenen Terrassentür (zum Glück ja das Handy in der Hand :-)) ).
Ich habe dann einmal getestet - siehe da: Auf den Lichtschalter reagiert das auto_suspend nicht.
Folgende Configs (verkürzte Version):
Defs:
Code:[kuechedefs] type = bool cycle = 600 name = Terrassentuer Kueche as_plugin = active as_lock_item = rolloterrasse.rollo.auto_lock as_suspend_item = rolloterrasse.rollo.auto_suspend as_suspend_time = 3600 as_suspend_watch = erdgeschoss.kueche.rolloterrasse.move | erdgeschoss.kueche.rolloterrasse.stop as_laststate_item_id = rolloterrasse.rollo.auto_laststate_id as_laststate_item_name = rolloterrasse.rollo.auto_laststate_name as_item_height = rolloterrasse.rollo.height as_item_lamella = rolloterrasse.rollo.lamella as_item_brightness = aussenbereich.daemmerung as_item_ost = zentralsteuerungen.sonneost as_item_sued = zentralsteuerungen.sonnesued as_item_west = zentralsteuerungen.sonnewest as_item_kuechenkontakt = erdgeschoss.kueche.terrassentuer [[night]] name = Nacht Terrasse Kueche as_set_height = value:100 [[[enter]]] # as_max_brightness = 80 as_min_time = 22:00 as_max_time = 23:59 as_negate_time = false <------><------>as_kuechenkontakt = false [[[leave]]] as_min_brightness = 100 as_min_time = 08:00 as_max_time = 11:00 as_negate_time = false
Items
Wie gesagt: Bei betätigung per Visu gehts - sobald ich den Taster betätige (der ja quasi nix anderes macht) gehts nicht.Code:[[kueche]] [[[licht]]] name = Light Decke type = bool visu_acl = rw knx_dpt = 1 knx_init = 1/2/16 knx_send = 1/0/10 <-->[[[[statusdecke]]]] name = Status Licht type = bool visu_acl = rw knx_dpt = 1 knx_init = 1/2/16 <------> <-->[[[[statusarbeitsplatte]]]] name = Status Licht type = bool visu_acl = rw knx_dpt = 1 knx_listen = 1/2/4 [[[temperatur]]] type = num visu = yes history = true #<<- wenn ihr den Wert in Plots verwenden wollt knx_dpt = 9 knx_init = 2/0/0 [[[rolloterrasse]]] [[[[move]]]] type = bool visu = yes enforce_updates = yes visu_acl = rw knx_dpt = 1 knx_send = 3/7/0 [[[[stop]]]] type = bool visu = yes enforce_updates = yes visu_acl = rw knx_dpt = 1 knx_send = 3/7/1 [[[[position]]]] type = num visu = yes visu_acl = rw knx_dpt = 5 # knx_listen = 3/7/4 knx_send = 3/7/4 knx_init = 3/7/4
Denkfehler?
Danke für eure Mühe, ich weiß, ich nerve :-D
Liebe Grüße
Miguel
Einen Kommentar schreiben:
-
Da sind immer noch ein paar "as_min_day" und "as_max_day" in der Konfiguratiuon. Die musst du alle gegen "as_min_weekday" und "as_max_weekday" tauschenZitat von BlackCrow Beitrag anzeigenHey, danke für die Hilfestellung. Das war jetzt doch nicht mehr so schwer, wie erwartet.
Ich habe die Funktion jetzt mal verbaut - allerdings macht der Log mir ein paar Sorgen:
Du hast im Objekt-ItemZitat von BlackCrow Beitrag anzeigenDas mit den Fensterkontakten funktioniert auch nicht
Wo liegt der Fehler?definiert. Bei den Bedingungen hast duCode:as_item_schlkontakt = obergeschoss.schlafzimmer.fenster
Das ist so nicht korrekt. Du musstCode:as_schlkontakt = true
verwenden.Code:as[B]_value[/B]_schlkontakt = true
Grüße
offline
P.S.: Ich bin dabei die Doku zum Plugin auf deutsch im Wiki auf GitHub einzustellen: https://github.com/i-am-offline/smar...autoblind/wiki
Einen Kommentar schreiben:
-
In der Tat ... da hätte ich vielleicht mal meine eigene Doku lesen sollenZitat von Onkelandy Beitrag anzeigenLaut Readme müsste es wohl weekday und nicht day heißen..? Also as_min_weekday
Grüße
offline
Einen Kommentar schreiben:
-
Laut Readme müsste es wohl weekday und nicht day heißen..? Also as_min_weekday
Einen Kommentar schreiben:
-
Hey, danke für die Hilfestellung. Das war jetzt doch nicht mehr so schwer, wie erwartet.
Ich habe die Funktion jetzt mal verbaut - allerdings macht der Log mir ein paar Sorgen:
Das ist die zugehörige Conf:Code:2015-09-13 21:21:14.297420 State schlafzimmerdefs.night_close_werktag:^M 2015-09-13 21:21:14.297457<----> Name: Nacht Werktag Fenster zu^M 2015-09-13 21:21:14.297492<----> Condition sets to enter state:^M 2015-09-13 21:21:14.297527<----><------> Condition Set 'enter':^M 2015-09-13 21:21:14.297562<----><------><------> Condition 'time':^M 2015-09-13 21:21:14.297607<----><------><------><------> eval: plugins.rolloautomatik.AutoBlindCurrent.get_time^M 2015-09-13 21:21:14.297647<----><------><------><------> min: 22:00:00^M 2015-09-13 21:21:14.297682<----><------><------><------> negate: False^M 2015-09-13 21:21:14.297718<----> Condition sets to leave state:^M 2015-09-13 21:21:14.297754<----><------> Condition Set 'leave':^M 2015-09-13 21:21:14.297790<----><------><------> Condition 'brightness':^M 2015-09-13 21:21:14.297827<----><------><------><------> item: aussenbereich.daemmerung^M 2015-09-13 21:21:14.297863<----><------><------><------> min: 100^M 2015-09-13 21:21:14.297898<----><------><------><------> negate: False^M 2015-09-13 21:21:14.297933<----><------><------> Condition 'time':^M 2015-09-13 21:21:14.297970<----><------><------><------> eval: plugins.rolloautomatik.AutoBlindCurrent.get_time^M 2015-09-13 21:21:14.298009<----><------><------><------> min: 07:00:00^M 2015-09-13 21:21:14.298043<----><------><------><------> negate: False^M 2015-09-13 21:21:14.298079<----><------><------> Condition 'day':^M 2015-09-13 21:21:14.298114<----><------><------><------> error: Condition day: Neither 'item' nor 'eval' given!^M 2015-09-13 21:21:14.298149<----><------><------><------> min: 0^M 2015-09-13 21:21:14.298184<----><------><------><------> max: 4^M 2015-09-13 21:21:14.298218<----><------><------><------> negate: False^M 2015-09-13 21:21:14.298254<----> Actions to perform if state becomes active:^M 2015-09-13 21:21:14.298290<----><------> Action 'height':^M 2015-09-13 21:21:14.298327<----><------><------> item: schlafzimmer.rollo.height^M 2015-09-13 21:21:14.298362<----><------><------> value: 100^M 2015-09-13 21:21:14.298399 State schlafzimmerdefs.night_open_werktag:^M 2015-09-13 21:21:14.298435<----> Name: Nacht Werktag Fenster auf^M 2015-09-13 21:21:14.298469<----> Condition sets to enter state:^M 2015-09-13 21:21:14.298504<----><------> Condition Set 'enter':^M 2015-09-13 21:21:14.298540<----><------><------> Condition 'time':^M 2015-09-13 21:21:14.298582<----><------><------><------> eval: plugins.rolloautomatik.AutoBlindCurrent.get_time^M 2015-09-13 21:21:14.298630<----><------><------><------> min: 22:00:00^M 2015-09-13 21:21:14.298665<----><------><------><------> negate: False^M 2015-09-13 21:21:14.298702<----> Condition sets to leave state:^M 2015-09-13 21:21:14.298738<----><------> Condition Set 'leave':^M 2015-09-13 21:21:14.298774<----><------><------> Condition 'brightness':^M 2015-09-13 21:21:14.298810<----><------><------><------> item: aussenbereich.daemmerung^M 2015-09-13 21:21:14.298845<----><------><------><------> min: 100^M 2015-09-13 21:21:14.298880<----><------><------><------> negate: False^M 2015-09-13 21:21:14.298915<----><------><------> Condition 'time':^M 2015-09-13 21:21:14.298952<----><------><------><------> eval: plugins.rolloautomatik.AutoBlindCurrent.get_time^M 2015-09-13 21:21:14.298990<----><------><------><------> min: 07:00:00^M 2015-09-13 21:21:14.299024<----><------><------><------> negate: False^M 2015-09-13 21:21:14.299059<----><------><------> Condition 'day':^M 2015-09-13 21:21:14.299094<----><------><------><------> error: Condition day: Neither 'item' nor 'eval' given!^M
Ich hab es jetzt mit as_max_day und mit as_max_weekday versucht.Code:[schlafzimmerdefs] type = bool cycle = 600 name = Schlafzimmer Rollo as_plugin = active as_lock_item = schlafzimmer.rollo.auto_lock as_suspend_item = schlafzimmer.rollo.auto_suspend as_suspend_time = 14400 as_suspend_watch = obergeschoss.schlafzimmer.rollo.move |obergeschoss.schlafzimmer.rollo.stop as_laststate_item_id = schlafzimmer.rollo.auto_laststate_id as_laststate_item_name = schlafzimmer.rollo.auto_laststate_name as_item_height = schlafzimmer.rollo.height as_item_lamella = schlafzimmer.rollo.lamella as_item_brightness = aussenbereich.daemmerung as_item_ost = zentralsteuerungen.sonneost as_item_sued = zentralsteuerungen.sonnesued as_item_west = zentralsteuerungen.sonnewest as_item_schlaftemp = obergeschoss.schlafzimmer.temperatur as_item_schlkontakt = obergeschoss.schlafzimmer.fenster .... [[night_close_wochenende]] name = Nacht Wochenende Fenster zu as_set_height = value:100 [[[enter]]] # as_max_brightness = 80 as_min_time = 22:00 as_max_time = 23:59 as_negate_time = false as_schlkontakt = false [[[leave]]] # as_min_brightness = 100 as_min_time = 10:00 as_min_weekday = 5 as_max_weekday = 6 as_negate_time = false [[night_open_wochenende]] name = Nacht Wochenende Fenster auf as_set_height = value:88 [[[enter]]] # as_max_brightness = 80 as_min_time = 22:00 as_negate_time = false as_schlkontakt = false [[[leave]]] # as_min_brightness = 100 as_min_time = 09:30 as_min_weekday = 5 as_max_weekday = 6 as_negate_time = false [[night_close_werktag]] name = Nacht Werktag Fenster zu as_set_height = value:100 [[[enter]]] as_min_time = 22:00 # as_max_time = 23:59 as_negate_time = false as_schlkontakt = true [[[leave]]] as_min_brightness = 100 as_min_day = 0 as_max_day = 4 as_min_time = 7:00 [[night_open_werktag]] name = Nacht Werktag Fenster auf as_set_height = value:88 [[[enter]]] # as_max_brightness = 80 as_min_time = 22:00 as_negate_time = false as_schlkontakt = true [[[leave]]] as_min_brightness = 100 as_min_day = 0 as_max_day = 4 as_min_time = 7:00
Das mit den Fensterkontakten funktioniert auch nicht
Wo liegt der Fehler?
Ich glaub, da wachsen schon wieder Bäume
Zuletzt geändert von BlackCrow; 13.09.2015, 21:45.
Einen Kommentar schreiben:
-
Genau. der day-Wert geht von 0 (Montag) bis 6 (Sonntag)Zitat von BlackCrow Beitrag anzeigenFolgender Ablauf ist gewünscht:
- Wenn "normal Modus" und Werktags fahre das Rollo bei Dunkelheit, frühstens aber um 22 Uhr runter. Fahre es wieder hoch um 7.00 Uhr unabhängig von Helligkeit
- Wenn "normal Modus" und Wochenende (beginnend ab Freitag Vormittag meinetwegen", dann fahre das Rollo bei Dunkelheit, aber frühestens um 22 Uhr runter. Fahre es wieder hoch, unabhängig von Helligkeit frühestens um 10 Uhr
- Wenn Urlaubsmodus - dann verhalte Dich so wie am Wochenende
Ich bin mir sicher, dass es funktioniert. Allerdings frage ich mich, in welcher Reihenfolge und wie tief ich die Bedingungen machen muss, damit er da nicht durcheinander kommt. Es gibt ja auch diese feine Funktion "Day", welche sicherlich den Tag in der Woche festlegt. Dabei ist "0" Montag und "6" Sonntag oder wie ist das gemeint?
Zunächst musst du ein Item haben, über das das Plugin den Urlaubsmodus erkennen kann. Man kann das recht komplex haben (ich habe einen "Haus-Status", der zusammen mit der Tageszeit und ggf. Abwesenheit diverse Dinge automatisch trigert) oder auch einfach als bool-Variable. Nehmen wir für's erste mal ein Item mit Typ "bool".
Grundsätzlich brauchst du 2 Status:
- Rollo unten ("Nacht")
- Rollo oben ("Tag")
Der Status "Nacht" hat in allen Fällen die gleichen Einstiegsbedingungen:
Für den Status Tag gibt es verschiedene Einstiegsbedingungen:Code:as_min_time = 22:00 as_max_brightness = (wasauchimmer)
1. Kein Urlaub, Werktag, ab 07:00 Uhr
2. Kein Urlaub, Wochenende, ab 10 UhrCode:as_value_urlaub = False as_min_day = 0 as_max_day = 4 as_min_time = 7:00
3. Urlaub, Tag egal, ab 10 UhrCode:as_value_urlaub = False as_min_day = 5 as_max_day = 6 as_min_time = 10:00
Natürlich muss du den Rest (Struktur, Items, etc) noch außenrum bauen.Code:as_value_urlaub = True as_min_time = 10:00
Die Reihenfolge dieser drei Bedingungen im Status "Tag" ist egal.
Die Reihenfolge der beiden Status ist in diesem Fall ebenfalls ziemlich egal. Wenn keine der Bedingungen erfüllt ist und damit kein neuer Status ermittlet werden kann, bleibt das Plugin einfach im letzten Status stehen.
Grüße
offline
Einen Kommentar schreiben:

Einen Kommentar schreiben: