Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] Beste Vorgehensweise???

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Beste Vorgehensweise???

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      skorpil last edited by skorpil

      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.

      Homoran Asgothian Codierknecht amg_666 liv-in-sky 5 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @skorpil last edited by

        @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

        1 Reply Last reply Reply Quote 1
        • Asgothian
          Asgothian Developer @skorpil last edited by

          @skorpil

          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.

          1 Reply Last reply Reply Quote 1
          • Codierknecht
            Codierknecht Developer Most Active @skorpil last edited by

            @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 😉

            1 Reply Last reply Reply Quote 1
            • S
              skorpil last edited by

              @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

              OliverIO Codierknecht 2 Replies Last reply Reply Quote 0
              • OliverIO
                OliverIO @skorpil last edited by

                @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)

                1 Reply Last reply Reply Quote 1
                • amg_666
                  amg_666 @skorpil last edited by

                  @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

                  S Codierknecht 2 Replies Last reply Reply Quote 1
                  • S
                    skorpil @amg_666 last edited by

                    @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!

                    1 Reply Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky @skorpil last edited by liv-in-sky

                      @skorpil

                      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

                      1 Reply Last reply Reply Quote 1
                      • Codierknecht
                        Codierknecht Developer Most Active @skorpil last edited by

                        @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.

                        fbdda294-ab0f-483a-a181-be66d67a0184-image.png bbc8663b-07b5-46c4-a215-e852c603ed6e-image.png

                        1 Reply Last reply Reply Quote 0
                        • Ro75
                          Ro75 last edited by

                          Ich mache es genau so wie es @amg_666 beschrieben hat. Für mich die einfachste und effektivste Lösung.

                          Ro75.

                          1 Reply Last reply Reply Quote 1
                          • Codierknecht
                            Codierknecht Developer Most Active @amg_666 last edited by

                            @amg_666
                            Wenn ich unter der Woche Urlaub/Gleitzeittag habe, möchte ich nicht durch die fahrenden Rollläden geweckt werden 😉

                            Homoran amg_666 2 Replies Last reply Reply Quote 1
                            • Homoran
                              Homoran Global Moderator Administrators @Codierknecht last edited by Homoran

                              @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 werden 😉

                              dann geh ich zum Wandtablet tippe auf
                              Screenshot_20240712-083629_Firefox.jpg

                              und bin in Urlaub

                              Screenshot_20240712-083652_Firefox.jpg

                              @skorpil
                              da hängt ein Datenpunkt "Urlaub" dran, der in Skripten und shuttercontrol abgefragt wird.

                              Codierknecht 1 Reply Last reply Reply Quote 1
                              • Codierknecht
                                Codierknecht Developer Most Active @Homoran last edited by

                                @homoran
                                Sehr schön.
                                Mit dem Kalender kann man das auch vorplanen 😉

                                1 Reply Last reply Reply Quote 1
                                • amg_666
                                  amg_666 @Codierknecht last edited by

                                  @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

                                  1 Reply Last reply Reply Quote 1
                                  • First post
                                    Last post

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  422
                                  Online

                                  31.9k
                                  Users

                                  80.2k
                                  Topics

                                  1.3m
                                  Posts

                                  8
                                  15
                                  491
                                  Loading More Posts
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                  The ioBroker Community 2014-2023
                                  logo