NEWS
[gelöst] Beste Vorgehensweise???
-
Bei mir laufen inzwischen diverse JavaScripte, die aber, wenn ich im Urlaub oder "abwesend" bin, nicht notwendigerweise laufen müssen.
Ich habe mir überlegt, dass es prinzipiell mehrere Wege gibt, damit umzugehen:
- man erstellt eine Variable "Urlaub" und läßt in jedem Script prüfen, ob sie "true" ist.
- man erstellt ein "Urlaubsscript", das ebenfalls auf "Urlaub" reagiert, und schaltet für die Urlaubsdauer nicht benötigte Scripte mit "stopScript(scriptId)" und startScript(scriptId) ein und aus
Ich würde von den Fachleuten gerne wissen, welche Vorgehensweise sinnvoll ist und empfohlen wird. Oder gibt es weitere Möglichkeiten, sich dieses Themas zu nähern?
Dank Euch für Eure Hilfe schon mal vorab.
-
@skorpil
der erste Ansatz wäre der korrektere, weil..
der zweite Ansatz mehr Ressourcen verbraucht weil die Skripte neim Neustart neu kompiliert werden...
was bei 2x im Jahr aber zu verschmerzen wäre -
Der erste Ansatz ist ganz klar zu bevorzugen, wobei eine Variable nicht reichen wird - es muss schon ein Datenpunkt unter (ggf. unter 0_userdata.0) sein.
Ansonsten würde ich empfehlen die Skripte nach "Aufgaben" zu gruppieren, nicht nach "hat was mit Urlaub zu tun" - damit wird ein anhalten der für den Urlaub relevanten Skriptteile eher schwierig. Schliesslich kann ein Skript ja durchaus mehrere Funktionen abarbeiten, wovon einige bei Urlaub anders ablaufen als normal.
A.
-
@skorpil
Variante 1 ist die bessere.Ich werfe aber mal eine dritte ins Rennen:
Ich habe eine ical-Instanz, die einen ganz bestimmten Kalender abfragt.
Steht dort an einem Tag "Urlaub", reagieren die Scripte anders als üblich.
Hat den Vorteil, dass auch die Gattin den (geteilten) Kalender pflegen kann -
@codierknecht ist das wirklich eine dritte? Du arbeitest dann doch sicher auch mit einem Datenpunkt/ variable? Aber die Idee ist genial.
Schön wäre es, noch zu wissen, warum ihr alle die Variante eins präferiert? Das mit dem neue Laden habe ich ja gerafft, gibt es aber noch andere Argumente? Ich habe das Problem, immer verstehen zu wollen, warum etwas so oder so gelöst wird.
Danke an alle @Asgothian @Homoran @Codierknecht
-
@skorpil sagte in Beste Vorgehensweise???:
Die erste ist es die flexibelste. Wenn du jetzt noch mehr Bedingungen hast, wie Tag/Nacht, Wochentag/Wochenende, dann reicht das mit dem an und abschalten nicht mehr, bzw dann würde eine Logik diese Parameter auswählen und dann die Skripte an/abschalten.
Ein trigger verbraucht zwar etwas an Ressourcen, aber keine Performance (oder zumindest ein gaaanz klein wenig)
-
@skorpil Variable Urlaub ist safe und wird funktionieren. Ich hab das etwas anders gelöst. 4 Personen im Haushalt, jede(r) hat ein Smartphone. Jedes Smartphone hat eine feste IP. Ich hab ne Fritzbox, über die frage ich ab wer grade angemeldet ist (=wer ist grade zuhause). Man kann das auch über Ping auf die (feste) IP des jeweiligen Smartphones lösen, geht aber, glaube ich, nicht nit Apple/IOS. Bei mir funktioniert das sehr gut, ich steuere damit einzelne Heizungen (Heizung Kind1 je nachdem ob Kind1 da ist oder nicht usw) und wenn alle abwesend sind wird die Heizung komplett runtergefahren.
Als Anregung: Wenn alle "weg" sind, also niemand zuhause, dann werden diverse Lampen per Zufallsprinzip an/aus-geschaltet um Anwesenheit zu simulieren
-
@amg_666 wir kommen ein bisschen vorm Thema ab. Dennoch, Dankeschön! Mit den bisherigen CCU Programmen habe ich sowohl Urlaub als auch Anwesenheit. Das sind aber zwei verschiedene Zustände. Aber das soll nicht das Thema sein.
Es ging um die Frage, wie man das in JavaScript am besten programmiert!
-
evtl eine eigene javascript instanz - "eine urlaubs-instanz" die kannst du dann über script de-/aktivieren - du musst dann nicht jedes script anpassen, sondern nur in die instanz verschieben
-
@skorpil sagte in Beste Vorgehensweise???:
ist das wirklich eine dritte? Du arbeitest dann doch sicher auch mit einem Datenpunkt/ variable?
Prinzipiell schon. Aber gesteuert wird das über den Kalender. Da muss kein DP "von Hand" gesetzt werden.
-
Ich mache es genau so wie es @amg_666 beschrieben hat. Für mich die einfachste und effektivste Lösung.
Ro75.
-
@amg_666
Wenn ich unter der Woche Urlaub/Gleitzeittag habe, möchte ich nicht durch die fahrenden Rollläden geweckt werden -
@codierknecht sagte in Beste Vorgehensweise???:
@amg_666
Wenn ich unter der Woche Urlaub/Gleitzeittag habe, möchte ich nicht durch die fahrenden Rollläden geweckt werdendann geh ich zum Wandtablet tippe auf
und bin in Urlaub
@skorpil
da hängt ein Datenpunkt "Urlaub" dran, der in Skripten und shuttercontrol abgefragt wird. -
@homoran
Sehr schön.
Mit dem Kalender kann man das auch vorplanen -
@codierknecht Mein Post oben war auch etwas komprimiert Ich frage auch ab ob z.B. Schulferien sind, dann gehen Rolläde in den Kinderzimmern später hoch. Gleitzeit/Schicht etc kann man ja in einem (google) Kalender eintragen und den dann abfragen