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

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    [Vorlage] Anwesenheitssimulation - Script

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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
              • S
                starfish last edited by

                hab erst v. 0.44 - die scheint bez. Einschaltdelay richtig zu laufen, ausser vielleicht die Ausschaltzeit ist 1-2 Min zu früh - genaueres kann ich erst heute Nachmittag sagen bzw. die v. 0.45 laden.

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

                  warte noch auf eine neue Version. 0.46 lade ich ich in den nächsten 1 - 2 Stunden hoch
                  5278_neues_textdokument.txt

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

                    Hi,

                    so, habe jetzt die Version 0.50 geladen.

                    Diese Version sollte bezueglich ein-ausschaltverzoegerung in sync laufen mit den realen Schaltungen.

                    Es kann mal eine Sekunde Differenz geben -

                    Ausserdem funktioniert jetzt der Check ob ein Geraet exisitiert. Das hat bisher zu einer uncaught exception gefuehrt, was

                    dann wiederum den javascript adapter veranlasst hat neu zu starten. Passiert jetzt nicht mehr z.B. wenn eine ID falsch eingegeben wurde.

                    Dafuer kommt jetzt ein interner Log-Eintrag hoch. Das Programm läuft weiter

                    Daher auch der Versionssprung.

                    vG Looxer

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

                      jetzt habe ich 2 Zyklen durch, die Zufalls- Ein- und Auszeiten scheinen jetzt zu stimmen. Super - Danke. Jetzt müsste Flot nur auch noch STATE Signale darstellen können. :x

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

                        Hi,

                        nun ist Version 0.60 verfuegbar.

                        • fix Astrozeit

                        • Neue Funktion Astro1zeit bis - damit kann bis zur Morgendaemmerung geschaltet werden - analog der Astrozeit von

                        • Das Ausschalten aller teilnehmenden Geraete bei Deaktivierung der AWS ist jetzt optional und laesst sich in den Einstellungen ein-ausschalten

                        • Stabilitaetsverbesserungen

                        Damit sind zunaechst alle geplanten Funktionen implementiert (und etwas mehr).

                        Waere schoen, wenn noch etwas getestet wuerde. Diese Woche kann ich noch schnell reagieren auf Anfragen:)

                        vG Looxer

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

                          Hi,

                          Version 0.61

                          • Bei der zufaelligen Bestimmung der Geraete wurde immer von cer Gruppe 1 Definition GrpZufAnz ausgegangen. Ist jetzt gefixt

                          • Bei der Ausschaltung aller Teilnehmer wird jetzt zwischen zwei Ausschaltvorgängen 300 Millisekunden Zeit gelassen (Vermeidung von Funkchaos)

                          • Codeoptimierungen

                          vG Looxer

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

                            vonAstro und bisAstro funktioniert hier jetzt. Nun gehts ans Optimieren. Ich denke, dass das Skript flexibel genug ist, um die meisten Wünsche zu befriedigen. Vielen Dank an looxer01.

                            Gruss

                            starfish

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

                              Hi,

                              Version 0.65 ist jetzt online.

                              • Die Reaktion auf bereits eingeschaltete Geraete ist jetzt durch eine Variable einstellbar gemacht - entweder keine Aktion oder uebesteuerung -

                              Allerdings ist diese Variable noch nicht in den Einstellungen zu finden, sondern im Bereich darunter. u.U kann diese Einstellung auch ungewünschte

                              Nebeneffekte haben - ist also zu testen

                              • weitere Codeoptimierungen

                              • Das AWS-Aktiv Flag ist jetzt ebenfalls variabel gemacht. Damit kann leichter eine andere Variable verwendet werden, z.B eine Variable aus der CCU

                              Insgesamt ist das Script jetzt stabil. Weitere Fehler habe ich nicht gefunden.

                              vG Looxer

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

                                Sooo - ein Punkt weniger auf der Todo - Liste. Es ging um den Ersatz des CUxD Zufalls-timers bzw. meiner darauf basierenden Anwesenheits-Simulation im CCU-Nachfolger (iobroker und homegear mit CC1101 Chip von Pollin).

                                Mein Ansatz war eine rein Astro-zeit gesteuerte Zufallsschaltung von Leuchten die ganze Nacht über. Die looxer-AWS schien mir aufgrund der vielfältigen Konfigurationsmöglichkeiten dafür gut geeignet. Bis jetzt habe ich auf dem Testrechner nur 1 Aktor zur Verfügung, aber das Resultat lässt sich sehen.
                                291_aws1d.png
                                meine aktuellen Einstellungen

                                var vonAstro1 = true ; // die zeit1von wird ersetzt durch die Astrozeit - setting ist optional true = Verwendung der Astrozeit - IDGruppe1

                                var bisAstro1 = true ; // die zeit1von wird ersetzt durch die Astrozeit - setting ist optional true = Verwendung der Astrozeit - IDGruppe1

                                var ein1von = 10; // Minuten IDGruppe1 von

                                var ein1bis = 45; // Minuten IDGruppe1 bis

                                var StartDelay1 = 45; // Maximale Startverzoegerung Gruppe1

                                var cron1 = 59; // checks alle x Minuten für IDGruppe1

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

                                Je nach Einstellung kann es zu Überschneidungen kommen, d.h. Leuchten können noch "on" sein, wenn die nächste Einschaltzeit kommt. Das scheint hier aber nicht zu stören.

                                Sicher lässt sich bei den Einstellungen noch einiges optimieren. Das fällt dann eher in die Kategorie "Abschreckungstaktik". z.B. feste Schaltzeiten abends und Zufallszeiten in der 2. Nachthälfte, längere "aus"-Zeiten usw. aber das ist ja alles möglich mit diesem Skript.

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

                                  Mit der Javascript version 1.1.2 wurde das Loeschen von Ein/Auschaltverzoegerungen fuer SetStateDelayed gefixt.

                                  Zusätzlich wurde die Möglichkeit geschaffen, die schedules mit clearStateDelayed zu loeschen.

                                  Beides ist jetzt eingebaut und sollte funktionieren.

                                  Version 0.70 ist hochgeladen

                                  vG Looxer

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

                                    Hi,

                                    ich habe festgestellt, dass in bestimmten Situationen die Astrofunktion nicht richtig funktionierte.

                                    Das ist jetzt korrigiert. Das Script ist im ersten Post korrigiert.

                                    vG Looxer

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      mathoo last edited by

                                      Hallo,

                                      ich habe das Script schon seit einiger Zeit am laufen.

                                      Leider bekomme ich es nicht wieder zum rennen.

                                      Es wird noch nicht einmal eine Logdatei erzeugt.

                                      Geändert hat sich nur die CCU, ich bin auf eine CCU2 umgestiegen.

                                      Kann mir jemand einen Tipp geben, wie ich das tolle Script wieder aktivieren kann.

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

                                        Hallo Mathoo,

                                        bist du denn sicher, dass das script überhaupt anläuft ?

                                        Könntest du ja mal testen. Einfach folgende Zeile (z.B. direkt hinter den Einstellungen) einfügen:

                                        log("Script läuft an,"info");

                                        Die Lauffähigkeit des Scripts ist unabhängig von der CCU.

                                        Wenn keine Logausgabe erfolgt, dann hast du ggf mit dem scriptadapter ein Problem.

                                        vG Looxer

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          michihorn last edited by

                                          Hallo,

                                          vielleicht habe ich ja was überlesen.

                                          Die Szenarien laufen auch wenn ein Familienmitglied im Haus ist, oder?

                                          Wie wäre es wenn zu AW Kontrolle die Handys angepingt werden und das ganze erst läuft wenn wirklich keiner im Haus ist.

                                          Gruß Micha

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

                                            @michihorn:

                                            Hallo,

                                            vielleicht habe ich ja was überlesen.

                                            Die Szenarien laufen auch wenn ein Familienmitglied im Haus ist, oder?

                                            Wie wäre es wenn zu AW Kontrolle die Handys angepingt werden und das ganze erst läuft wenn wirklich keiner im Haus ist.

                                            Gruß Micha `
                                            Hi micha

                                            Ich habe eine anwesenheitsfunktion bei mir aktiv und mit der aws verknüpft. Das geht einfach durch setzen des aws-aktiv flags.

                                            Bin zur Zeit unterwegs und kann gerne mehr Details am Freitag geben.

                                            VG looxer

                                            Gesendet von meinem SM-G935F mit Tapatalk

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            695
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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