Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Vorlage] Anwesenheitssimulation - Script

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    [Vorlage] Anwesenheitssimulation - Script

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

      Für mich ist eher die Frage, ob die Skripte für alle irgendwann gesammelt zur Verfügung stehen.

      Bin aber auch immer noch am überlegen, Jira zu aktivieren.

      Gesendet von meinem iPhone mit Tapatalk

      1 Reply Last reply Reply Quote 0
      • L
        looxer01 last edited by

        Homoran hat mal einen Download-Bereich für Scripte gepflegt.

        http://www.iobroker.net/docu/?page_id=57&lang=de

        allerdings halte ich es nicht für zielführend Scripte dort anzubieten wo sie nicht gepflegt werden, zumindest nicht,

        wenn sie recht häufig geändert werden. Da wären dann links besser. Aber kann man dort auch hinterlegen.

        Ich weiss nur nicht wer den Bereich jetzt pflegt.

        vG Looxer

        1 Reply Last reply Reply Quote 0
        • L
          looxer01 last edited by

          ich habe jetzt Version 0.31 eingepflegt.

          Es gab noch Fehler bei den Gruppen drei und vier.

          Ich habe auch den Bereich Einstellungen bearbeitet

          • GruppeXX heisst jetzt IDGruppeXX

          • hinzugefügt habe ich die maximle Startverzoegerung in Minuten je Gruppe ( ist aber noch ohne Funktion)

          vG Looxer

          1 Reply Last reply Reply Quote 0
          • L
            looxer01 last edited by

            ich habe gerade festgestellt, dass die timeout Funktion mit EVAL ein Problem hat.

            JS kann dann nicht parsen. uuuuh 😮

            d.h., das das Programm auf einen Fehler läuft beim Versuch den Verbraucher auszuschalten.

            Ich versuche es gleich mal mit delay wie von Pix vorgeschlagen.- vielleicht habe ich Glück damit.

            Ansonsten muss ich den EVALS wieder entfernen.

            Neue Version wahrscheinlich heute Abend, spätestens morgen.

            vG Looxer

            1 Reply Last reply Reply Quote 0
            • L
              looxer01 last edited by

              so jetzt habe ich auf setstatedelayed umgestellt aber es geht trotzdem nicht.

              ich habe jetzt ein paar tests gemacht und einen unschönen Verdacht.

              folgenden Fehler bekomme ich im LOG:

              raspberrypi	2015-12-30 21:24:00	error	host.raspberrypi instance system.adapter.javascript.0 terminated with code 6 (uncaught exception)
              javascript.0	2015-12-30 21:24:00	error	SyntaxError: Unexpected token u at Object.parse (native) at sandbox.getObject (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1381:33) at AWSSchaltung (script.js.Anwesenheitssimula
              javascript.0	2015-12-30 21:24:00	error	uncaught exception: Unexpected token u
              
              

              zum Ausprobieren habe ich mal die Variablen und das Coding für Gruppen 2-4 entfernt und dann funktioniert es, auch mit EVAL.

              Gibt es eine Begrenzung für Javascript bezüglich Groesse des Scripts bzw Variablen etc ?

              Für mich sieht es so aus. Dann stellt sich aber die nächste Frage: ist das nur bei mir so oder hängt das mit der Konfiguration zusammen ?

              Ich könnte die Anzahl der Gruppen reduzieren aber ist dann das Problem für alle anderen auch gelöst ?

              EDIT: nach Neustart von ioBroker scheint es zu gehen - muss ich beobachten

              Version 0.32 ist jetzt hochgeladen.

              vG L…

              1 Reply Last reply Reply Quote 0
              • L
                looxer01 last edited by

                Liebe Leutz,

                Version 0.33 ist hochgeladen.

                Die Hauptfunktionen sollten jetzt relativ stabil sein.

                Ich habe mal Beispiele im ersten post eingestellt, um zu zeigen wie man mit den Einstellungen spielen kann

                Die Logs sind noch nicht so klasse. Da muss ich nochmal ran.

                Funktional will ich es erstmal belassen und sehen, dass ggf Fehler beseitigt werden.

                vG und guten Rutsch.

                Looxer

                1 Reply Last reply Reply Quote 0
                • L
                  looxer01 last edited by

                  Gutes Neues….

                  es gibt jetzt die Version 0.40.

                  Ich habe das Log deutlich aufgeräumt. Sehr schön zu sehen ist im Log jetzt welche berechneten Ein-und Ausschaltzeiten zu Grunde gelegt werden.

                  Das externe Log laesst sich auf dem PC mit Excel oeffnen. Eine Sortierung nach Gruppen zeigt sehr deutlich die Ein und Ausschaltzeiten je Gruppe, so dass alles nachvollziebar ist.

                  Sieht auch alles gut aus und scheint zu funktionieren.

                  Falls es jemand bereits mal laufen lassen hat, bitte das externe LOG einmal loeschen. Es wird dann ein Header mit eingefügt.

                  Das macht das Lesen in Excel leichter.

                  Jetzt hoffe ich, dass es jemand mal testet und feedback gibt.

                  vG

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

                    Wo finde ich denn das Skript?

                    1 Reply Last reply Reply Quote 0
                    • L
                      looxer01 last edited by

                      im ersten post. ist ein spoiler tag - einfach öffnen.

                      vG Looxer

                      1 Reply Last reply Reply Quote 0
                      • S
                        starfish last edited by

                        hier gabs etwas roten Text im Log - hab das orig.script nur an meine Gegebenheiten angepasst (nur 1 Aktor aufm Testrechner)

                        ! javascript.0 2016-01-02 02:15:37 info javascript.0 script.js.aws: registered 2 subscriptions and 7 schedules
                        ! javascript.0 2016-01-02 02:15:37 info javascript.0 Start javascript script.js.aws
                        ! javascript.0 2016-01-02 02:15:37 info javascript.0 received all objects
                        ! javascript.0 2016-01-02 02:15:37 info javascript.0 received all states
                        ! javascript.0 2016-01-02 02:15:36 info javascript.0 requesting all objects
                        ! javascript.0 2016-01-02 02:15:36 info javascript.0 requesting all states
                        ! javascript.0 2016-01-02 02:15:36 info javascript.0 starting. Version 1.1.1 in /opt/iobroker/node_modules/iobroker.javascript
                        ! bananapi2 2016-01-02 02:15:30 info host.bananapi2 instance system.adapter.javascript.0 started with pid 2374
                        ! bananapi2 2016-01-02 02:15:00 info host.bananapi2 Restart adapter system.adapter.javascript.0 because enabled
                        ! bananapi2 2016-01-02 02:15:00 error host.bananapi2 instance system.adapter.javascript.0 terminated with code 6 (uncaught exception)
                        ! javascript.0 2016-01-02 02:15:00 error ReferenceError: addTime is not defined at isTimeInRange (script.js.aws:487:17) at Object. (script.js.aws:149:8) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/javasc
                        ! javascript.0 2016-01-02 02:15:00 error uncaught exception: addTime is not defined

                        etwas später:

                        ! host-bananapi2 2016-01-02 02:25:01 error instance system.adapter.javascript.0 terminated with code 6 (uncaught exception)
                        ! ReferenceError: 2016-01-02 02:25:01 error at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
                        ! ReferenceError: 2016-01-02 02:25:01 error at null._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:410:11)
                        ! ReferenceError: 2016-01-02 02:25:01 error at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:139:10)
                        ! ReferenceError: 2016-01-02 02:25:01 error at Job.job (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1197:34)
                        ! ReferenceError: 2016-01-02 02:25:01 error at Object. (script.js.aws:214:8)
                        ! ReferenceError: 2016-01-02 02:25:01 error at isTimeInRange (script.js.aws:487:17)
                        ! ReferenceError: 2016-01-02 02:25:01 error addTime is not defined
                        ! uncaught 2016-01-02 02:25:01 error exception: addTime is not defined

                        1 Reply Last reply Reply Quote 0
                        • blauholsten
                          blauholsten Developer last edited by

                          @starfish:

                          hier gabs etwas roten Text im Log

                          ! javascript.0 2016-01-02 02:15:37 info javascript.0 script.js.aws: registered 2 subscriptions and 7 schedules
                          ! javascript.0 2016-01-02 02:15:37 info javascript.0 Start javascript script.js.aws
                          ! javascript.0 2016-01-02 02:15:37 info javascript.0 received all objects
                          ! javascript.0 2016-01-02 02:15:37 info javascript.0 received all states
                          ! javascript.0 2016-01-02 02:15:36 info javascript.0 requesting all objects
                          ! javascript.0 2016-01-02 02:15:36 info javascript.0 requesting all states
                          ! javascript.0 2016-01-02 02:15:36 info javascript.0 starting. Version 1.1.1 in /opt/iobroker/node_modules/iobroker.javascript
                          ! bananapi2 2016-01-02 02:15:30 info host.bananapi2 instance system.adapter.javascript.0 started with pid 2374
                          ! bananapi2 2016-01-02 02:15:00 info host.bananapi2 Restart adapter system.adapter.javascript.0 because enabled
                          ! bananapi2 2016-01-02 02:15:00 error host.bananapi2 instance system.adapter.javascript.0 terminated with code 6 (uncaught exception)
                          ! javascript.0 2016-01-02 02:15:00 error ReferenceError: addTime is not defined at isTimeInRange (script.js.aws:487:17) at Object. (script.js.aws:149:8) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/javasc
                          ! javascript.0 2016-01-02 02:15:00 error uncaught exception: addTime is not defined `
                          So wie es aussieht hast du das globale script timeinrange nicht.

                          Das musst du vorher anlegen, sonst geht es nicht.

                          1 Reply Last reply Reply Quote 0
                          • L
                            looxer01 last edited by

                            Hi,

                            ich habe die Funktionen von Baetz jetzt dem Main-Program hinzugefuegt.

                            Damit ist kein globales Script mehr notwendig.

                            Ich werde spaeter noch den Link zu Baetz Beitrag hinzufuegen.

                            Version ist jetzt 0.41

                            habs aber noch nicht getestet :oops:

                            vG Looxer

                            1 Reply Last reply Reply Quote 0
                            • S
                              starfish last edited by

                              danke, errors gibts keine mehr und im aws-log tut sich was. zu "baetz" schweigt sich das Forum und auch Google aus (zu TimeInRange ebenfalls).

                              1 Reply Last reply Reply Quote 0
                              • L
                                looxer01 last edited by

                                Forumsmitglied Beatz

                                http://forum.iobroker.com/viewtopic.php … a40#p11167

                                vG

                                1 Reply Last reply Reply Quote 0
                                • L
                                  looxer01 last edited by

                                  Hi,

                                  Beim Testen sind mir zwei unschöne Fehler aufgefallen

                                  1. Das letzte eingetragene Geraet wurde nie per Zufall gewaehlt.

                                  2. Ein Log Fehler "keine Aktion…." auch wenn geschaltet wurde

                                  Version 0.42 hochgeladen

                                  vG Looxer

                                  1 Reply Last reply Reply Quote 0
                                  • L
                                    looxer01 last edited by

                                    Hi,

                                    ich habe Version 0.43 hochgeladen mit ein paar Aenderungen am Code.

                                    • Bereinigungen und Dokumentation

                                    • Ausschalten der Geraete bei Deaktivierung der AWS

                                    Folgendes ist noch zu tun

                                    • Ausschalten der Geraete bei Deaktivierung der AWS optional machen oder einen intelligenteren Ansatz finden

                                    • Wenn ein nicht existentes Geraet in den Einstellungen angegeben wird, dann startet der javascript adapter mal eben neu.

                                    Das werde ich abstellen mit dem Ziel, dass nur ein Logeintrag erzeugt wird

                                    Fuer die Zukunft.

                                    Falls das Konzept ok ist wuerde ich die Einstellungen ggf als Profile erweitern. So koennte man z.B. fuer jeden Wochentag ein anderes Profil einstellen koennen ggf auch nach Jahreszeit unterscheiden.

                                    vG Looxer

                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      pix last edited by

                                      Hey,

                                      super Arbeit! Leider habe ich den WAF der AWS nicht berücksichtigt. Unser Licht soll aus bleiben, wenn keiner da. Ich arbeitet dran 8-) :lol:

                                      Dennoch interessiert mich dein Projekt.

                                      Bei Durchsehen des Codes bin ich noch über diese Stelle gestolpert:

                                      ! ` > // Einstellung teilnehmende Homematic Geräte je IDGruppe maximal 5 - Eingabe der Homematic ID

                                      var IDGruppe11 = "hm-rpc.0.JEQ0xxxxxx.1.LEVEL"; // Licht Wohnzimmer Esstisch Deckenlampe

                                      var IDGruppe12 = "hm-rpc.0.JEQ0xxxxxx.1.STATE"; // Licht Terrassentuere

                                      var IDGruppe13 = "hm-rpc.0.JEQ0xxxxxx.1.STATE"; // Licht Wohnzimmer Esstisch Stehlampe

                                      var IDGruppe14 = " ";

                                      var IDGruppe15 = " ";

                                      var Grp1ZufAnz = 3; // Anzahl der Geräte zur zufälligen Bestimmung des Geraetes

                                      var IDGruppe21 = "hm-rpc.0.JEQ0xxxxxx.1.STATE"; // Licht Schwimmbad Nebenlicht;

                                      var IDGruppe22 = "hm-rpc.0.JEQ0xxxxxx.1.STATE"; // Licht Kinderbad;

                                      var IDGruppe23 = " ";

                                      var IDGruppe24 = " ";

                                      var IDGruppe25 = " ";

                                      var Grp2ZufAnz = 2; // Anzahl der Geräte zur zufälligen Bestimmung des Geraetes

                                      var IDGruppe31 = "hm-rpc.0.JEQ0xxxxxx.1.STATE"; // Licht Flur oben Wand;

                                      var IDGruppe32 = "hm-rpc.0.JEQ0xxxxxx.1.STATE"; // Licht Flur oben unten;

                                      var IDGruppe33 = " ";

                                      var IDGruppe34 = " ";

                                      var IDGruppe35 = " ";

                                      var Grp3ZufAnz = 2; // Anzahl der Geräte zur zufälligen Bestimmung des Geraetes

                                      var IDGruppe41 = " ";

                                      var IDGruppe42 = " ";

                                      var IDGruppe43 = " ";

                                      var IDGruppe44 = " ";

                                      var IDGruppe45 = " ";

                                      var Grp4ZufAnz = 5; // Anzahl der Geräte zur zufälligen Bestimmung des Geraetes

                                      var IDGruppe51 = " ";

                                      var IDGruppe52 = " ";

                                      var IDGruppe53 = " ";

                                      var IDGruppe54 = " ";

                                      var IDGruppe55 = " ";

                                      var Grp5ZufAnz = 5; // Anzahl der Geräte zur zufälligen Bestimmung des Geraetes `
                                      Ist es richtig, dass ich als Anwender, die Zahl der Geräte ind er Gruppe zählen muss und zB in Grp2ZufAnz = 2 eintragen muss? Kann man da nicht mir einem Array arbeiten? Einfach die Geräte dort kommasepariert eintragen und vom Skript durchzählen lassen. So könnte auch die zufällige Auswahl des zu schaltenden Gerätes erleichtert werden. Du kannst pro Gruppe ein Array anlegen oder ein auch mehrdimensionales Array aus mehreren Gruppen, in denen wieder jeweils mehrere Geräte liegen.

                                      Gruß

                                      Pix

                                      1 Reply Last reply Reply Quote 0
                                      • L
                                        looxer01 last edited by

                                        Danke Pix fuer dein Feedback- - das freut mich wirklich….
                                        @pix:

                                        dLeider habe ich den WAF der AWS nicht berücksichtigt. Pix `

                                        na ja, wenn es dann mal zum worst case kommt waere das sicher anders.

                                        Ich kann ja mal eine Einbruchssimulation schreiben :lol:

                                        @pix:

                                        Ist es richtig, dass ich als Anwender, die Zahl der Geräte ind er Gruppe zählen muss und zB in Grp2ZufAnz = 2 eintragen muss? `
                                        nein, so ist es nicht gemeint aber vielleicht der Normalfall. Man kann durchaus GrpZufAnz hoeher setzen als die Anzahl der Gruppenmitglieder.

                                        Dann wird es weniger Einschaltaktionen geben was so gewuenscht sein kann. Das Zufallsprinzip entscheidet. Je höher die Zahl desto weniger wird geschaltet.

                                        Auf Arrays habe ich bewusst verzichtet, da der Code dann nicht leichter lesbar wird und auch sonst keine Vorteile bringen wuerde. Auch die Einstellungen wuerden dann noch etwas komplizierter werden.

                                        vG Looxer

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          starfish last edited by

                                          hallo Ralf, Du erinnerst dich sicher an meine Frage mit der Synchronizität. Ich hab jetzt rausgefunden, weshalb (zumindest bei mir) dieser Eindruck entsteht:

                                          ! iobroker log
                                          ! hm-rpc-0 2016-01-04 05:19:01 info setValue ["IEQ0074994:1","STATE",false] BOOL
                                          ! hm-rpc-0 2016-01-04 05:05:59 info setValue ["IEQ0074994:1","STATE",true] BOOL
                                          ! hm-rpc-0 2016-01-04 05:00:00 info setValue ["IEQ0074994:1","STATE",true] BOOL
                                          ! javascript-0 2016-01-04 05:00:00 info script.js.aws: EVENT IDGruppe11; hm-rpc.0.IEQ0074994.1.STATE; undefined; 359; 1141; 05:05:59; 05:25:00;
                                          ! AWSLog:
                                          ! 04.01.2016 ;05:00:00 ;IDGruppe11;hm-rpc.0.IEQ0074994.1.STATE;undefined;359;1141;05:05:59;05:25:00;
                                          es werden reproduzierbar 2 Einschaltbefehle abgesetzt: einer sofort, der 2. mit der Zufallsverzögerung. Bei der Ausschaltzeit wird die Zufallsverzögerung nicht hinzugezählt.

                                          1 Reply Last reply Reply Quote 0
                                          • L
                                            looxer01 last edited by

                                            @starfish:

                                            es werden reproduzierbar 2 Einschaltbefehle abgesetzt: einer sofort, der 2. mit der Zufallsverzögerung. Bei der Ausschaltzeit wird die Zufallsverzögerung nicht hinzugezählt. `

                                            ich habe den Fehler gefunden und jetzt auch die Einschaltverzoegerung zur geplanten Ausschaltzeit hinzugefuert.

                                            Vielen Dank fuer das Feedback, echt super.

                                            Version 0.44

                                            Koenntest du beides mit deinen Einstellungen nochmals testen und mir Bescheid geben ?

                                            EDIT 09:33: es gibt noch ein Problem bei der Addition der Einschaltverzoegerung zur geplanten Ausschaltzeit.

                                            Ich lade gleich nochmal eine neue Version hoch

                                            EDIT 09:41: getestet und jetzt funktioniert es - Version 0.45

                                            vG Looxer

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            740
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            40
                                            271
                                            50910
                                            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