Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Vorlage] Anwesenheitssimulation - Script

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

[Vorlage] Anwesenheitssimulation - Script

Scheduled Pinned Locked Moved Skripten / Logik
271 Posts 40 Posters 65.5k Views 36 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • smartboartS Offline
    smartboartS Offline
    smartboart
    wrote on last edited by
    #103

    Hi, danke für die Tipps…

    Das manuelle Schalten der Sonoff Datenpunkte funktioniert über true und false. Diese sind auch mit buttons in der Vis verknüft...da funktionieren sie auch zuverlässig...

    Hab das mit der 1 und 0 für ein und aus wie vorgeschlagen getestet..Hat aber auch nicht funktioniert...habe sogar die min und max zeilen im Datenpunkt eingetragen mit true und false...aber auch keine Veränderung....

    kann das sein, dass die Zeitsteruerung global eingebunden werden muss?

    weil sie von der AWS mitbenutz wird? hab sie als common angelegt... liegts daran?

    hab mal

    // jshint maxerr:10000 eingetragen

    um die Fehlermeldung to many erros zu eliminieren? ist das einzige was mir auffällt...

    dann bin ich bis zu diesem Punkt vorgedrungen..

    Ist das Problematisch?

    6558_unbenannt.png

    1 Reply Last reply
    0
    • L Offline
      L Offline
      looxer01
      wrote on last edited by
      #104

      @smartboart:

      kann das sein, dass die Zeitsteruerung global eingebunden werden muss? `
      common ist richtig. Global würde nicht funktionieren.

      @smartboart:

      dann bin ich bis zu diesem Punkt vorgedrungen..

      Ist das Problematisch? `
      nein, das ist nicht das Problem. Die AWS ist auch in der aktuellen Version recht häufig in Betrieb.

      Mir fällt im Moment nichts mehr ein. Ich könnte dir allenfalls anbieten mich mal bei dir über Teamviewer aufzuschalten.

      In diesem Falle, melde dich bei mir ueber PN.

      vG Looxer

      1 Reply Last reply
      0
      • smartboartS Offline
        smartboartS Offline
        smartboart
        wrote on last edited by
        #105

        So jetzt läuft die AWS auch bei mir…Bei dieser Gelegenheut möchte ich mich noch gleich für die tolle Unterstützung von looxer01 bedanken...ohne seine Hilfe wäre ich nie auf die Lösung des Problems gekommen....Danke :!: :!: :!:

        Die Lösung war die Namensvergabe des Tasmota Sonof in den MQTT Einstellungen...Der Namen für die Aktoren darf keine Leerzeichen beinhalten...

        1 Reply Last reply
        0
        • L Offline
          L Offline
          LJSven
          wrote on last edited by
          #106

          Wenn ich die AWS auf false stelle, kommt folgende Fehlermeldung:

          javascript.0	2018-07-19 09:57:55.785	error	at Object. <anonymous>(script.js.common.Sonstige.Anwesenheitssimulation:317:36)
          javascript.0	2018-07-19 09:57:55.785	error	Error in callback: TypeError: Cannot read property 'common' of null
          javascript.0	2018-07-19 09:57:55.785	warn	at Object. <anonymous>(script.js.common.Sonstige.Anwesenheitssimulation:314:25)
          javascript.0	2018-07-19 09:57:55.784	warn	at GeraetExists (script.js.common.Sonstige.Anwesenheitssimulation:455:6)
          javascript.0	2018-07-19 09:57:55.784	warn	getState "" not found (3)
          javascript.0	2018-07-19 09:57:55.783	warn	Object "" does not exist</anonymous></anonymous>
          

          Was mache ich da falsch?

          Welche Zeiten werden bei den Astrozeiten (von/bis) angezogen?

          1 Reply Last reply
          0
          • L Offline
            L Offline
            looxer01
            wrote on last edited by
            #107

            Hi,

            kurze Antworten erstmal.

            Fehlermeldungen

            sieht so aus, dass du states eingetragen hast, die nicht existieren.

            Mach nochmal einen gruendlichen Check. Es dürfen auch keine Leerstellen in den States vorkommen.

            Astrozeiten

            Die Astrozeit ist die Sonnenuntergangszeit bzw Aufgangszeit Die variieren natürlich je nach Sonnenstand.

            vG Looxer

            1 Reply Last reply
            0
            • L Offline
              L Offline
              LJSven
              wrote on last edited by
              #108

              Das kann ich verneinen ->

              // Einstellung teilnehmende Homematic Geräte je IDGruppe maximal 5 - Eingabe der Homematic ID
              var     IDGruppe11 = "sonoff.0.Highboard-Long.POWER";  // Licht Wohnzimmer Esstisch Deckenlampe
              var     IDGruppe12 = "sonoff.0.Highboard-Small.POWER";  // Licht Terrassentuere
              var     IDGruppe13 = "fritzdect.0.DECT200_087610400044.state";  // Licht Wohnzimmer Esstisch Stehlampe
              var     IDGruppe14 = "";  // Licht Kinderbad
              var     IDGruppe15 = "";  // Licht Hobbyraum
              var     Grp1ZufAnz = 3;              // Anzahl der Geräte zur zufälligen Bestimmung des Geraetes 
              
              var     IDGruppe21 = "";  // Licht Wohnzimmer Esstisch Deckenlampe
              var     IDGruppe22 = "";  // Licht Terrassentuere
              var     IDGruppe23 = "";  // Licht Wohnzimmer Esstisch Stehlampe
              var     IDGruppe24 = "";
              var     IDGruppe25 = ""; 
              var     Grp2ZufAnz = 0;              // Anzahl der Geräte zur zufälligen Bestimmung des Geraetes 
              
              var     IDGruppe31 =  "";  // Licht Flur oben Wand;
              var     IDGruppe32 =  "";  // Licht Flur oben unten; 
              var     IDGruppe33 =  "";  // Licht Kinderbad
              var     IDGruppe34 = "";
              var     IDGruppe35 = ""; 
              var     Grp3ZufAnz = 0;              // Anzahl der Geräte zur zufälligen Bestimmung des Geraetes 
              
              var     IDGruppe41 = ""; // Licht aussen Steinterrasse
              var     IDGruppe42 = "";  // Licht aussen Kugeln 
              var     IDGruppe43 = ""; // Licht Schwimmbad Nebenlicht;
              var     IDGruppe44 = "";
              var     IDGruppe45 = ""; 
              var     Grp4ZufAnz = 0;              // Anzahl der Geräte zur zufälligen Bestimmung des Geraetes 
              
              var     IDGruppe51 = "";
              var     IDGruppe52 = ""; 
              var     IDGruppe53 = "";
              var     IDGruppe54 = "";
              var     IDGruppe55 = "";
              var     Grp5ZufAnz = 0;              // Anzahl der Geräte zur zufälligen Bestimmung des Geraetes 
              
              var logflag = true;     // wenn auf true dann wird das logging in Datei /opt/iobroker/iobroker-data/AWSLog.csv eingeschaltet bei false vice versa
              
              var ausflag = true;     // Wenn AWS deaktiviert wird, dann werden alle Teilnehmer ausgeschaltet
              
              // Ende Einstellungen .......................................................................................................
              
              
              1 Reply Last reply
              0
              • smartboartS Offline
                smartboartS Offline
                smartboart
                wrote on last edited by
                #109

                Hallo, ich hatte anfänglich auch Probleme mit den Sonoff, da die Namen leerzeichen enthalten haben. Versuche doch mal den Namen der Sonoffs zu ändern ohne das - Zeichen ..Ist erstmal Áufwand, da das in der web Oberfläche desTasmota vorgenommen wird und evtl. scripte angepasst werden müssen welche die Objekt ID nutzen…

                Ein Versuch ist es wert.

                Und läuft bei dir das Script für die Anwesenheitssteuerung?

                1 Reply Last reply
                0
                • smartboartS Offline
                  smartboartS Offline
                  smartboart
                  wrote on last edited by
                  #110

                  hab noch ein kleinen Buck entdeckt…

                  Anwesenheitserkennung läuft übers Handy. Wenn ich nun Licht im Wohnzimmer anhabe und der Status in der Anweseheitssteuerung aktualisiert wird also z.B von 2 Anwesenden auf nur noch einen, läuft das AWS Script los und schaltet mein Licht aus...Genauso wenn jemand dazu kommt also eine person schon da und noch eine kommt nach Hause...

                  Der Status in der Anwesenheitssteuerung wird aktualisiert die objekt id : jemand da ist true und aktualisiert wieder auf true, wird aber nicht false...

                  Dennoch rennt das Script los.. Hier der log dazu... 6558_unbenannt.png

                  1 Reply Last reply
                  0
                  • smartboartS Offline
                    smartboartS Offline
                    smartboart
                    wrote on last edited by
                    #111

                    So ok, der Fehler ist in dem Script Anwesenheitssteuerung welche mit dem Script Anwesenheitssimulation verküpft werden kann.

                    Die Verküpfung kann im Script Anwesenheitssteuerung konfiguriert werden.

                    Dies habe ich geändert und ein separates Script für die Aktivierung der AWSAktiv ID geschrieben..

                    Somit habe ich das für mich gelöst..

                    Gleichzeitig habe ich noch ein Automatik / on off State mit eingebaut..

                    funktioniert prima!

                    createState('javascript.0.Anwesenheitssteuerung.Automatik', {def: 'false', type: 'boolean', name: 'Rolladen Gesamt Automatik aktivieren'});
                    
                    const id1 = 'javascript.0.Anwesenheitssteuerung.Automatik';
                    const id2 = 'javascript.0.Anwesenheitssteuerung.Userlist.JemandDa';
                    const AWS = 'javascript.0.Anwesenheitssteuerung.AWSAktiv';
                    
                    function aktivieren() { 
                    
                    var jemandDa = getState('javascript.0.Anwesenheitssteuerung.Userlist.JemandDa').val;
                    var Anja = getState('tr-064.0.devices.Anja-Iphone').val;
                    var Michi = getState('tr-064.0.devices.Privattelefon-Michael').val;
                    var Moni = getState('tr-064.0.devices.Monika-Iphone').val;
                    var Automatik = getState('javascript.0.Anwesenheitssteuerung.Automatik').val;
                    var AWSAktiv = getState('javascript.0.Anwesenheitssteuerung.AWSAktiv').val;
                        if(AWSaktiv === false && Automatik === true && jemandDa ===  false && Anja === false & Michi === false && Moni === false) {
                        setStateDelayed(AWS, true, 180*1000);
                        log('AWS wird in 3 Minuten gestartet');
                        } else { 
                            if(AWSAktiv === true && Automatik === true) && (jemandDa === true || Anja === true || Michi === true || Moni === true) {
                            setState(AWS, false);
                            log('AWS wegen Anwesenheit deaktiviert');
                    			} else {
                    			  if(Automatik === false && AWSAktiv === true) {
                    				setState(AWS, false);
                    				log('AWS manuell deaktiviert');
                               }
                            }
                        }
                    
                    aktivieren(); // Skriptstart
                    
                    on(id1, function(dp) {
                       kontakt1 = dp.state.val;
                       aktivieren();
                    });      
                    on(id2, function(dp) {
                       kontakt2 = dp.state.val;
                       aktivieren();
                    });   
                    
                    
                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      ak1
                      wrote on last edited by
                      #112

                      Ich habe seit nunmehr einiger Zeit eine Anwesenheitssimulation auf meiner CCU/Rasperrymatic laufen. Allerdings versuche ich nach und nach meine Skripte in Richtung ioBroker zu bekommen. Daher kommt mir dieses Skript hier natürlich sehr gelegen.

                      Ich habe es eben aktiviert, erstmal nur ein Aktor.

                      Das Beispiel im ersten Post habe ich verstanden, glaube ich zumindest ;)

                      Ich würde mich über ein Beispiel für den morgendlichen Ablauf freuen. Idealerweise unter Berücksichtigung der Astrozeit. Hat das jemand?

                      Ich gehe davon aus, dass eine Unterscheidung zwischen Wochentagen und Wochenende nicht möglich ist, richtig?

                      Danke!

                      Stefan

                      1 Reply Last reply
                      0
                      • L Offline
                        L Offline
                        looxer01
                        wrote on last edited by
                        #113

                        @ak1:

                        Ich würde mich über ein Beispiel für den morgendlichen Ablauf freuen. Idealerweise unter Berücksichtigung der Astrozeit. Hat das jemand?

                        Ich gehe davon aus, dass eine Unterscheidung zwischen Wochentagen und Wochenende nicht möglich ist, richtig? `

                        Hi,

                        Ein Beispiel habe ich im Moment nicht zur Hand. Am WE wieder aber vielleicht kann jemand helfen, der das Script auch nutzt.

                        Zwischen Wochentagen und Wochenende könnte schon unterschieden werden.

                        Dafür das script 2 x Anlegen und den Datenpunkt für die Aktivierung jeweils anders benennen.

                        Dann kannst du die Scripte mit unterschiedlichen Planungen versehen und je nach Wochentag das eine oder eben andere Script aktivieren.

                        vG Looxer

                        1 Reply Last reply
                        0
                        • A Offline
                          A Offline
                          ak1
                          wrote on last edited by
                          #114

                          Danke! Wenn sonst niemand ein Morgen-Beispiel parat hat, warte ich gerne bis zum Wochenende. Gar kein Problem.

                          Und der Ansatz zur Unterscheidung zwischen Wochentagen und Wochenende ist einleuchtend.

                          VG

                          Stefan

                          1 Reply Last reply
                          0
                          • L Offline
                            L Offline
                            looxer01
                            wrote on last edited by
                            #115

                            @ak1:

                            Ich würde mich über ein Beispiel für den morgendlichen Ablauf freuen. Idealerweise unter Berücksichtigung der Astrozeit. Hat das jemand? `
                            Hi,

                            ich musss nochmal nachfragen was du genau erwartest.

                            • start der Steuerung nach Sonnenaufgang (muesste ich mir ansehen)

                            • nach Sonnenaufgang würde eine Lichtsteuerung ja weniger Sinn machen. Was willst du steuern ?

                            vG Looxer

                            1 Reply Last reply
                            0
                            • M Offline
                              M Offline
                              Mihaeru
                              wrote on last edited by
                              #116

                              Ich vermute mal, dass die Idee ist, Licht zu einer bestimmten Zeit einzuschalten und bei Sonnenaufgang wieder auszuschalten. Da diese Zeiten Wochentags (Arbeitstage) normalerweise anders sind, als am Wochenende, würde eine Unterscheidung hier schon sinnvoll sein.

                              Der erste Punkt ist ja erst mal kein Problem. Start um z.B: 06:00Uhr bis Sonnenaufgang, sollte doch so möglich sein:

                              zeit1von = "06:00:00";

                              vonAstro1 = false;

                              bisAstro1 = true;

                              Was passiert, wenn die Sonne bereits vor 6:00 Uhr aufgegangen ist, weiß ich jetzt allerdings auch nicht. Da müsste man eventuell noch einen check einbauen, falls das noch nicht berücksichtigt wird.

                              Die Wochentage lassen sich doch im cron-Pattern setzen.

                              cron1job = "*/"+cron1+" * * * 6,0";

                              Das müsste für Samstag und Sonntag stehen.

                              Ist jetzt so ins Blaue getippt und vielleicht nicht ganz richtig aber prinzipiell sollte es so machbar sein.

                              Ich finde die Idee, Arbeitstage und Wochenende zu unterscheiden jedenfalls gut. Benötigt halt ein paar mehr schedules.

                              1 Reply Last reply
                              0
                              • L Offline
                                L Offline
                                looxer01
                                wrote on last edited by
                                #117

                                @Mihaeru:

                                Ich vermute mal, dass die Idee ist, Licht zu einer bestimmten Zeit einzuschalten und bei Sonnenaufgang wieder auszuschalten. Da diese Zeiten Wochentags (Arbeitstage) normalerweise anders sind, als am Wochenende, würde eine Unterscheidung hier schon sinnvoll sein.

                                Der erste Punkt ist ja erst mal kein Problem. Start um z.B: 06:00Uhr bis Sonnenaufgang, sollte doch so möglich sein:

                                zeit1von = "06:00:00";

                                vonAstro1 = false;

                                bisAstro1 = true;

                                Was passiert, wenn die Sonne bereits vor 6:00 Uhr aufgegangen ist, weiß ich jetzt allerdings auch nicht. Da müsste man eventuell noch einen check einbauen, falls das noch nicht berücksichtigt wird.

                                Die Wochentage lassen sich doch im cron-Pattern setzen.

                                cron1job = "*/"+cron1+" * * * 6,0";

                                Das müsste für Samstag und Sonntag stehen. `

                                Hi,

                                das Programm kann bei Erreichen der Morgendaemmerung über die Astrozeit die Steuerung ausschalten.

                                Wenn das also der Wunsch ist, dann sollte das kein Problem sein. War mir nicht klar wegen der Formulierung "Morgen-Beispiel"

                                und ja, über den Schedule lassen sich auch die Wochentage steuern. Allerdings habe ich das in den Einstellungen so nicht vorgesehen.

                                Ohne Programmänderung also nicht.

                                vG Looxer

                                1 Reply Last reply
                                0
                                • A Offline
                                  A Offline
                                  ak1
                                  wrote on last edited by
                                  #118

                                  Mihaerus Interpretation ist korrekt. Mir geht es tatsächlich darum, einen typischen Ablauf am morgen zu simulieren. Z.B. Der Wecker geht gegen 6 Uhr und dann gehen sukzessive Lichter an (z.B. Bad, Flur, Küche, …). Bis das Haus irgendwann verlassen wird (zur Schule, Arbeit, etc.) oder aber es sowieso hell genug ist (Sonnenaufgang + x). In der Tat, im Sommer ist der Sonnenaufgang so früh, dass normalerweise gar keine Lichter geschaltet werden.

                                  VG

                                  Stefan

                                  1 Reply Last reply
                                  0
                                  • L Offline
                                    L Offline
                                    looxer01
                                    wrote on last edited by
                                    #119

                                    @ak1:

                                    Mihaerus Interpretation ist korrekt. Mir geht es tatsächlich darum, einen typischen Ablauf am morgen zu simulieren. Z.B. Der Wecker geht gegen 6 Uhr und dann gehen sukzessive Lichter an (z.B. Bad, Flur, Küche, …). Bis das Haus irgendwann verlassen wird (zur Schule, Arbeit, etc.) oder aber es sowieso hell genug ist (Sonnenaufgang + x). In der Tat, im Sommer ist der Sonnenaufgang so früh, dass normalerweise gar keine Lichter geschaltet werden.

                                    VG

                                    Stefan `
                                    Hi,

                                    na ja, das ist schon was ich mir zu Anfang gedacht habe. Damit simulierst du keine Anwesenheit sondern unterstützt deine Anwesenheit ;)

                                    Die Simulation wählt zufällig irgendwelche Datenpunkte aus. Das ist dann wohl nicht das was du willst.

                                    vG Looxer

                                    1 Reply Last reply
                                    0
                                    • A Offline
                                      A Offline
                                      ak1
                                      wrote on last edited by
                                      #120

                                      @looxer01:

                                      Hi,

                                      na ja, das ist schon was ich mir zu Anfang gedacht habe. Damit simulierst du keine Anwesenheit sondern unterstützt deine Anwesenheit ;)

                                      Die Simulation wählt zufällig irgendwelche Datenpunkte aus. Das ist dann wohl nicht das was du willst.

                                      vG Looxer `

                                      Hmm, eigentlich geht es mir sehr wohl um eine Simulation. Niemand ist zu Hause, z.B. wegen Urlaubsabwesenheit. Es soll aber bzgl. der geschalteten Lichter wie der typische Ablauf am Morgen aussehen. Natürlich mit einer gewissen Variabilität um realistischer zu sein.

                                      Gruß

                                      Stefan

                                      1 Reply Last reply
                                      0
                                      • L Offline
                                        L Offline
                                        looxer01
                                        wrote on last edited by
                                        #121

                                        aaah, ok danke,

                                        Sollte ohne Probleme gehen.

                                        Im Prinzip sollte es so aussehen.

                                        Du könntest dazu z.B. zwei unterschiedliche Gruppen verwenden und die Datenpunkte entsprechend eintragen.

                                        Bei Zeit könntest du als Start z.B. 04:30 Morgens eingeben und also Ende-Zeit die Astrozeit

                                        Wie gesagt kann ich am WE mal ein Beispiel zimmern.

                                        vG Looxer

                                        1 Reply Last reply
                                        0
                                        • A Offline
                                          A Offline
                                          ak1
                                          wrote on last edited by
                                          #122

                                          @looxer01:

                                          aaah, ok danke,

                                          Sollte ohne Probleme gehen.

                                          Im Prinzip sollte es so aussehen.

                                          Du könntest dazu z.B. zwei unterschiedliche Gruppen verwenden und die Datenpunkte entsprechend eintragen.

                                          Bei Zeit könntest du als Start z.B. 04:30 Morgens eingeben und also Ende-Zeit die Astrozeit

                                          Wie gesagt kann ich am WE mal ein Beispiel zimmern.

                                          vG Looxer `

                                          Danke! Ich freue mich auf das Beispiel.

                                          VG

                                          Stefan

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          408

                                          Online

                                          32.4k

                                          Users

                                          81.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe