Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  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.1k

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

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

[Vorlage] Anwesenheitssimulation - Script

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
271 Beiträge 40 Kommentatoren 64.7k Aufrufe 36 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • L Offline
    L Offline
    looxer01
    schrieb am zuletzt editiert von
    #102

    Hi,

    @smartboart:

    und der commen type ist boolean..müsste also passen….ich kapier nicht warum es nicht geht..

    hier ein screenshot vom sonoff.. `

    klappt eigentlich das manuelle schalten über den datenpunkt ?

    normalerweise gibt es unter common auch einen min und max Wert. (siehe auch meinen vorherigen screen print"

    Der wäre bei boolean "true" fuer MAX und "false" fuer MIN.

    Versuche es mal mit 0 (false) und 1 (true).

    Einstellen kannst du das im Script hier:

    var EinschaltFlag = true; // Einschaltbefehl der Teilnehmer fuer Boolean Geräte

    var AusschaltFlag = false; // Ausschaltbefehl der Teilnehmer fuer Boolean Geräte

    wobei für true eben 1 und false 0 eingestellt werden sollte.

    vG Looxer

    1 Antwort Letzte Antwort
    0
    • smartboartS Offline
      smartboartS Offline
      smartboart
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • L Offline
        L Offline
        looxer01
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • smartboartS Offline
          smartboartS Offline
          smartboart
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • L Offline
            L Offline
            LJSven
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • L Offline
              L Offline
              looxer01
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • L Offline
                L Offline
                LJSven
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • smartboartS Offline
                  smartboartS Offline
                  smartboart
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • smartboartS Offline
                    smartboartS Offline
                    smartboart
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    0
                    • smartboartS Offline
                      smartboartS Offline
                      smartboart
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      0
                      • A Offline
                        A Offline
                        ak1
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • L Offline
                          L Offline
                          looxer01
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          0
                          • A Offline
                            A Offline
                            ak1
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            0
                            • L Offline
                              L Offline
                              looxer01
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              0
                              • M Offline
                                M Offline
                                Mihaeru
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                0
                                • L Offline
                                  L Offline
                                  looxer01
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  0
                                  • A Offline
                                    A Offline
                                    ak1
                                    schrieb am zuletzt editiert von
                                    #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 Antwort Letzte Antwort
                                    0
                                    • L Offline
                                      L Offline
                                      looxer01
                                      schrieb am zuletzt editiert von
                                      #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 Antwort Letzte Antwort
                                      0
                                      • A Offline
                                        A Offline
                                        ak1
                                        schrieb am zuletzt editiert von
                                        #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 Antwort Letzte Antwort
                                        0
                                        • L Offline
                                          L Offline
                                          looxer01
                                          schrieb am zuletzt editiert von
                                          #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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          373

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe