Skip to content
  • Home
  • 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

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Anwesenheitscontrol basierend auf TR64 Adapter - Script

NEWS

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

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

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

Anwesenheitscontrol basierend auf TR64 Adapter - Script

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
116 Beiträge 34 Kommentatoren 26.6k Aufrufe 37 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.
  • N Offline
    N Offline
    NightWatcher
    schrieb am zuletzt editiert von
    #41

    Das zweite Script (von mir) erzeugt beides… Du kannst also auf das JSON und/oder HTML zugreifen. Sind zwei separate Datenpunkte.

    Wago 750-881 - mit über 200 Ein- und Ausgängen, DMX512 Art-Net für Beleuchtung, 1-Wire für Umweltsensoren Aussen und Innen, ioBroker als Visualisierung

    1 Antwort Letzte Antwort
    0
    • B Offline
      B Offline
      bishop
      schrieb am zuletzt editiert von
      #42

      hi,

      funktioniert soweit super das Script.

      Habe hier aber noch ein Fehler drin, kann mir einer sagen wo ich was abändern muss um den Fehler weg zu bekommen?
      4663_fehler_anwesenheitsscript.jpg

      Vielen dank schon mal

      1 Antwort Letzte Antwort
      0
      • ChaotC Offline
        ChaotC Offline
        Chaot
        schrieb am zuletzt editiert von
        #43

        @NightWatcher:

        Das zweite Script (von mir) erzeugt beides… Du kannst also auf das JSON und/oder HTML zugreifen. Sind zwei separate Datenpunkte. `

        Danke dafür. Das werde ich wohl dann verwenden.

        Aber ich verstehe immer noch nicht wie dieses beknackte JSON Widget funktioniert.

        Werde halt weiterhin alle JSON zerlegen.

        ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

        1 Antwort Letzte Antwort
        0
        • N Offline
          N Offline
          NightWatcher
          schrieb am zuletzt editiert von
          #44

          @bishop, das ist kein Fehler, sondern eine "Warnung". Die soll wohl dafür sogren, dass man keine Zeitkritischen Schleifen in eine Funktion packt. In dem Fall sollte man das vernachlässigen können. Wenn man ganz viel langeweile hat, kann man natürlich das komplette Script noch mal von 0 programmieren. Für mich war das so okay. Solange man keine hunderte WLAN Geräte abfragt, wird das auch kaum messbar sein.

          Wago 750-881 - mit über 200 Ein- und Ausgängen, DMX512 Art-Net für Beleuchtung, 1-Wire für Umweltsensoren Aussen und Innen, ioBroker als Visualisierung

          1 Antwort Letzte Antwort
          0
          • B Offline
            B Offline
            bishop
            schrieb am zuletzt editiert von
            #45

            funktioniert soweit bis auf einen kleine Fehler, dass liegt aber an dem Handys denke ich mal wenn sie in den Standby gehen.

            Obwohl ich und meine Frau zu Hause sind wird teilweise ein gehen und kommen geloggt.

            Liegt das an dem Wlan standby?

            Kann man da etwas machen?

            gruß

            Bishop

            1 Antwort Letzte Antwort
            0
            • OstfrieseUnterwegsO Offline
              OstfrieseUnterwegsO Offline
              OstfrieseUnterwegs
              schrieb am zuletzt editiert von
              #46

              Ich habe auch das Problem, dass sich eines unserer Handys immer mal abmeldet aber dann spätestens eine Minute danach wieder anmeldet. Wenn das das einzige Handy im Haus ist, dann schaltet das ganze System natürlich immer zwischen Niemand-Da und Jemand-Da hin und her. Das wiederum triggert die Heizungssteuerung unnötig.

              Vlt kann Looxer oder NightWatcher mal schauen, ob man sowas wie ein 2 Minuten Delay einbauen kann. Also Wenn ein Gerät auf abwesend, dann erst mal 2 Minutenrelaxen, und wenn es dann immer noch abwesend ist, handeln.

              Gruß

              1 Antwort Letzte Antwort
              0
              • M Offline
                M Offline
                mumurik
                schrieb am zuletzt editiert von
                #47

                > Vlt kann Looxer oder NightWatcher mal schauen, ob man sowas wie ein 2 Minuten Delay einbauen kann. Also Wenn ein Gerät auf abwesend, dann erst mal 2 Minutenrelaxen, und wenn es dann immer noch abwesend ist, handeln.

                Gab es mittlerweile eine Lösung hierzu, sprich Einbau eines 2 Min Delays oder ähnlich?

                1 Antwort Letzte Antwort
                0
                • D Offline
                  D Offline
                  duffbeer2000
                  schrieb am zuletzt editiert von
                  #48

                  @NightWatcher:

                  @bishop, das ist kein Fehler, sondern eine "Warnung". Die soll wohl dafür sogren, dass man keine Zeitkritischen Schleifen in eine Funktion packt. In dem Fall sollte man das vernachlässigen können. Wenn man ganz viel langeweile hat, kann man natürlich das komplette Script noch mal von 0 programmieren. Für mich war das so okay. Solange man keine hunderte WLAN Geräte abfragt, wird das auch kaum messbar sein. `

                  @NightWatcher: Die Warnung bedeutet etwas anderes. Sie sagt aus das man in einer Schleife keine Function deklarieren soll. Ich kenne mich mit JavaScrip zwar nicht wirklich aus aber meiner Meinung nach ist das fett markierte eine Function Expression, um das ganze korrekt zu machen müsste man die vor der Schleife deklarieren und in der Schleife nur noch aufrufen? Ich komm da nochmal drauf zurück da ich gerade versuche mir JS beizubringen und daran bin ich gescheitert.

                  for (var key in User){

                  on({id: StateTR064Device + key, valNe: 0 }, ****function(obj) {

                  if (obj.state.ack) {

                  anwesenheit('UserKommtGeht',obj.id.split(".").pop(-1));

                  }

                  }****);

                  }

                  1 Antwort Letzte Antwort
                  0
                  • D Offline
                    D Offline
                    dondaik
                    schrieb am zuletzt editiert von
                    #49

                    warum soll man da am adapter handeln ?

                    das behebt / beachtet man doch dann in seiner eigenen anwendung :mrgreen:

                    ( und dann sind da noch die 2-3 anderen adapter die man ggf alle miteinander kombinieren kann )

                    wer Schreibfehler findet darf sie behalten … :-(

                    Ps: Anfänger im Bereich Tinkerboard + IOBROKER !

                    1 Antwort Letzte Antwort
                    0
                    • MicM Offline
                      MicM Offline
                      Mic
                      Developer
                      schrieb am zuletzt editiert von Mic
                      #50

                      Hi,

                      da der neue TR-064-Community-Adapter (Forum, Github) bei mir bislang sehr gut mit iOS-Geräten funktioniert, habe ich nun das Script von @looxer01 , und erweitert durch @NightWatcher, verbessert und erweitert. Vielen Dank Euch Beiden!

                      Hier das Script auf Github: presence-script-for-tr-064-community-adapter

                      Auszug aus Change Log:

                      • Diverse Verbesserungen: Sourcecode, Logging, States neu gegliedert, besserer Scriptstart, Bereinigung, Abfangen von Fehlern, usw.
                      • Neue Option FIX_ERROR für FritzBox und iOS (iPhone etc.): Wenn ein Gerät nicht mehr im WLAN ist, wird manchmal nach wenigen Sekunden auf "nicht anwesend" im Adapter gesetzt, dann ca. 15 Sekunden später wieder auf "anwesend", dann ca. 5-10 Minuten später dauerhaft auf "abwesend". Um dieses Verhalten zu umgehen, wird hier eine Verzögerung eingebaut, um z.B. nach 30 Sekunden zu prüfen, ob lt. Adapter tatsächlich abwesend, und erst dann die Abwesenheit aktiviert. (siehe Github Issue)

                      Viel Spaß damit.

                      sigi234S 1 Antwort Letzte Antwort
                      2
                      • MicM Mic

                        Hi,

                        da der neue TR-064-Community-Adapter (Forum, Github) bei mir bislang sehr gut mit iOS-Geräten funktioniert, habe ich nun das Script von @looxer01 , und erweitert durch @NightWatcher, verbessert und erweitert. Vielen Dank Euch Beiden!

                        Hier das Script auf Github: presence-script-for-tr-064-community-adapter

                        Auszug aus Change Log:

                        • Diverse Verbesserungen: Sourcecode, Logging, States neu gegliedert, besserer Scriptstart, Bereinigung, Abfangen von Fehlern, usw.
                        • Neue Option FIX_ERROR für FritzBox und iOS (iPhone etc.): Wenn ein Gerät nicht mehr im WLAN ist, wird manchmal nach wenigen Sekunden auf "nicht anwesend" im Adapter gesetzt, dann ca. 15 Sekunden später wieder auf "anwesend", dann ca. 5-10 Minuten später dauerhaft auf "abwesend". Um dieses Verhalten zu umgehen, wird hier eine Verzögerung eingebaut, um z.B. nach 30 Sekunden zu prüfen, ob lt. Adapter tatsächlich abwesend, und erst dann die Abwesenheit aktiviert. (siehe Github Issue)

                        Viel Spaß damit.

                        sigi234S Online
                        sigi234S Online
                        sigi234
                        Forum Testing Most Active
                        schrieb am zuletzt editiert von sigi234
                        #51

                        @Mic

                        Super, Danke funktioniert einwandfrei.........
                        Könnte man beim DP List of present persons: ein Komma einfügen?
                        Also: Name,Name,Name,

                        Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                        Immer Daten sichern!

                        MicM 2 Antworten Letzte Antwort
                        0
                        • sigi234S sigi234

                          @Mic

                          Super, Danke funktioniert einwandfrei.........
                          Könnte man beim DP List of present persons: ein Komma einfügen?
                          Also: Name,Name,Name,

                          MicM Offline
                          MicM Offline
                          Mic
                          Developer
                          schrieb am zuletzt editiert von
                          #52

                          @sigi234
                          Vielen Dank für Dein Feedback und Deinen Test :-)

                          Klar, hatte ich vom ursprünglichen Code so übernommen und fiel mir auch schon auf, dass da ein Trennzeichen fehlt. Werde ich einbauen.

                          sigi234S 1 Antwort Letzte Antwort
                          0
                          • MicM Mic

                            @sigi234
                            Vielen Dank für Dein Feedback und Deinen Test :-)

                            Klar, hatte ich vom ursprünglichen Code so übernommen und fiel mir auch schon auf, dass da ein Trennzeichen fehlt. Werde ich einbauen.

                            sigi234S Online
                            sigi234S Online
                            sigi234
                            Forum Testing Most Active
                            schrieb am zuletzt editiert von
                            #53

                            @Mic sagte in Anwesenheitscontrol basierend auf TR64 Adapter - Script:

                            @sigi234
                            Vielen Dank für Dein Feedback und Deinen Test :-)

                            Klar, hatte ich vom ursprünglichen Code so übernommen und fiel mir auch schon auf, dass da ein Trennzeichen fehlt. Werde ich einbauen.

                            Bitte sehr, ein langer Wunsch von mir wäre ein DP pro Person wie lange sie An/Abwesend war?

                            Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                            Immer Daten sichern!

                            MicM 2 Antworten Letzte Antwort
                            0
                            • sigi234S sigi234

                              @Mic sagte in Anwesenheitscontrol basierend auf TR64 Adapter - Script:

                              @sigi234
                              Vielen Dank für Dein Feedback und Deinen Test :-)

                              Klar, hatte ich vom ursprünglichen Code so übernommen und fiel mir auch schon auf, dass da ein Trennzeichen fehlt. Werde ich einbauen.

                              Bitte sehr, ein langer Wunsch von mir wäre ein DP pro Person wie lange sie An/Abwesend war?

                              MicM Offline
                              MicM Offline
                              Mic
                              Developer
                              schrieb am zuletzt editiert von
                              #54

                              @sigi234 sagte in Anwesenheitscontrol basierend auf TR64 Adapter - Script:

                              ein langer Wunsch von mir wäre ein DP pro Person wie lange sie An/Abwesend war?

                              Coole Idee. Werde mal sehen, das auch einzubauen, ist eine schöne Übung in Javascript :grin: . Also ein State wie "lastOffset" jeweils unter der Person. Wie Anzeigen, in Stunden/Minuten? z.B. "36h 20m"? Oder reicht der Stundenwert gerundet? Ich denke eigentlich Stundenwert reicht.

                              sigi234S 1 Antwort Letzte Antwort
                              0
                              • MicM Mic

                                @sigi234 sagte in Anwesenheitscontrol basierend auf TR64 Adapter - Script:

                                ein langer Wunsch von mir wäre ein DP pro Person wie lange sie An/Abwesend war?

                                Coole Idee. Werde mal sehen, das auch einzubauen, ist eine schöne Übung in Javascript :grin: . Also ein State wie "lastOffset" jeweils unter der Person. Wie Anzeigen, in Stunden/Minuten? z.B. "36h 20m"? Oder reicht der Stundenwert gerundet? Ich denke eigentlich Stundenwert reicht.

                                sigi234S Online
                                sigi234S Online
                                sigi234
                                Forum Testing Most Active
                                schrieb am zuletzt editiert von
                                #55

                                @Mic sagte in Anwesenheitscontrol basierend auf TR64 Adapter - Script:

                                Ich denke eigentlich Stundenwert reicht.

                                Ja, das denke ich auch...........

                                Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                Immer Daten sichern!

                                1 Antwort Letzte Antwort
                                0
                                • sigi234S sigi234

                                  @Mic

                                  Super, Danke funktioniert einwandfrei.........
                                  Könnte man beim DP List of present persons: ein Komma einfügen?
                                  Also: Name,Name,Name,

                                  MicM Offline
                                  MicM Offline
                                  Mic
                                  Developer
                                  schrieb am zuletzt editiert von
                                  #56

                                  @sigi234 sagte in Anwesenheitscontrol basierend auf TR64 Adapter - Script:

                                  @Mic

                                  Könnte man beim DP List of present persons: ein Komma einfügen?
                                  Also: Name,Name,Name,

                                  Ist nun eingebaut in Version 0.5: presence-script-for-tr-064-community-adapter

                                  Ebenso werden die Namen nun alphabetisch sortiert.

                                  Hierzu kamen folgende Einstellungen hinzu.

                                  /*******************************************************************************
                                   * Erweiterte Einstellungen
                                   ******************************************************************************/
                                  
                                  /********
                                   * Datenpunkt presentPersonsString
                                   ********/
                                  // Trennzeichen für 'presentPersonsString'. Dieses wird zwischen den einzelnen anwesenden Namen gesetzt.
                                  const PRESENT_PERSONS_DELIMITER = ', ';
                                  
                                  // Text in für 'presentPersonsString', falls niemand anwesend.
                                  const PRESENT_PERSONS_NONE_TXT = '';
                                  
                                  1 Antwort Letzte Antwort
                                  2
                                  • sigi234S sigi234

                                    @Mic sagte in Anwesenheitscontrol basierend auf TR64 Adapter - Script:

                                    @sigi234
                                    Vielen Dank für Dein Feedback und Deinen Test :-)

                                    Klar, hatte ich vom ursprünglichen Code so übernommen und fiel mir auch schon auf, dass da ein Trennzeichen fehlt. Werde ich einbauen.

                                    Bitte sehr, ein langer Wunsch von mir wäre ein DP pro Person wie lange sie An/Abwesend war?

                                    MicM Offline
                                    MicM Offline
                                    Mic
                                    Developer
                                    schrieb am zuletzt editiert von
                                    #57

                                    @sigi234 sagte in Anwesenheitscontrol basierend auf TR64 Adapter - Script:

                                    ein langer Wunsch von mir wäre ein DP pro Person wie lange sie An/Abwesend war?

                                    Ist nun eingebaut in Version 0.6: presence-script-for-tr-064-community-adapter

                                    Neuer Datenpunkt: persons.xxx.offsetEntryLeave

                                    Gibt hierfür eine Option, was angezeigt wird:

                                    /********
                                     * Option für Datenpunkt "persons.xxx.offsetEntryLeave" (zeigt , wie lange die Person an- oder abwesend war.)
                                     ********/
                                    // Wenn true: Im Datenpunkt werden Stunden und Minuten angezeigt, z.B. 10:36 (bei 10 Stunden 36 Min.), oder 48:12 (bei 48 Std. 12 Min.)
                                    // Wenn false: Es werden nur Stunden gerundet angezeigt, z.B. 11 (bei 10 Stunden 36 Minuten) oder 48 (bei 48 Std. 12 Min.)
                                    const OFFSET_HOURS_AND_MINS = true;
                                    
                                    1 Antwort Letzte Antwort
                                    3
                                    • FredFF Online
                                      FredFF Online
                                      FredF
                                      Most Active Forum Testing
                                      schrieb am zuletzt editiert von
                                      #58

                                      @Mic
                                      Funktioniert... Danke fürs teilen.
                                      Jetzt lass ich mal die Anwesenheit über unifi und den TR laufen, mal sehen wer gewinnt :grinning:

                                      1 Antwort Letzte Antwort
                                      0
                                      • MicM Offline
                                        MicM Offline
                                        Mic
                                        Developer
                                        schrieb am zuletzt editiert von
                                        #59

                                        Freut mich, dass es funktioniert.

                                        Hier noch ein Anwendungsszenario:
                                        Alle Alexas sind bei mir an einer Osram-Steckdose. Diese schalten sich alle aus, sobald keiner mehr anwesend. Allerdings wäre es ziemlich doof, wenn ein Wecker im Schlafzimmer aktiv ist, und die Fritzbox Nachts warum auch immer meinen sollte, es sei keiner zu Hause und alle Alexas ausschaltet. Daher habe ich folgendes Script geschrieben, das prüft, ob ein Wecker im Alexa Schlafzimmer aktiv ist, und schaltet nur dann aus, wenn kein Wecker aktiv.

                                        Eines der Beispiele, warum ioBroker so super ist, man kann hier alles individuell gestalten.

                                        Hier das Script:

                                        /**
                                         * Schaltet ein Alexa-Gerät nur dann per Osram-Steckdose ab, wenn im Gerät auch kein Wecker gesetzt ist.
                                         * Dies dient dazu, dass das Gerät bei aktivem Wecker nicht abgeschaltet wird, und der TR064-Adapter Abwesenheit meldet.
                                         * Ist eine Sicherheitsstufe, falls der Adapter bzw. die Fritzbox fälschlicherweise abwesend meldet, damit der Wecker 
                                         * auch wirklich auslöst.
                                         * Autor Mic, Stand: 17.07.2019
                                         * @param {string}    statePlug           State-Pfad zur Osram-Steckdose, an der das Alexa-Gerät hängt.
                                         * @param {string}    stateAlexa          State-Pfad zu Alexa-Gerät, z.B. alexa2.0.Echo-Devices.ABCDEF0123XYZABC
                                         * @param {boolean}   [logInfo=false]     Optional: true: Logausgabe als Info, false: keine Logausgabe
                                         */
                                        function offAlexaIfNoAlarm(statePlug, stateAlexa, logInfo) {
                                            
                                            let alarmCount = alexaAlarms(stateAlexa, logInfo);
                                        
                                            if (alarmCount > 0) {
                                                // Wir machen nichts, da mindestens 1 Wecker gestellt ist
                                                if (logInfo) log('Keine Aktion, da ' + alarmCount + ' Wecker gestellt ' + ((alarmCount > 1)  ? 'sind.' : 'ist.'));
                                            } else {
                                                // Ausschalten, da kein Wecker aktiv.
                                                setState(statePlug, false);
                                                if (logInfo) log('Kein Wecker gestellt, daher wird Alexa ausgeschaltet.');
                                            }
                                        
                                            /**
                                             * Prüft, wie viele Wecker bei einem Alexa-Gerät aktiv sind.
                                             * @param {string}    alexaDeviceState       State zu Alexa-Gerät, z.B. alexa2.0.Echo-Devices.ABCDEF0123XYZABC
                                             * @param {boolean}   [logInfo=false]        Optional: true: Logausgabe als Info, false: keine Logausgabe
                                             * @return {number}   Anzahl der gestellten, also aktiven Wecker.
                                             */
                                            function alexaAlarms(alexaDeviceState, logInfo) {
                                                let mSelector = $('state[id=' + alexaDeviceState + '.Alarm.*.enabled' + '$]'); // Gibt alle State-IDs zurück, die dem Pattern entsprechen
                                                let counter = 0;
                                                mSelector.each(function(id, i) {
                                                    // Nun haben wir mit "id" die State-ID, z.B. alexa2.0.Echo-Devices.xxxxxxxxxxxxxxX.Alarm.xxxxxxx.enabled
                                                    // Damit prüfen wir, ob der Wecker aktiv ist (.enabled = true)
                                                    if (getState(id).val) {
                                                        // Treffer
                                                        counter =+ 1;
                                                        if(logInfo) {
                                                            let alarmMainState = id.substring(0, id.length-8); // get alarm main state by removing last 8 chars (.enabled)
                                                            let alarmTime = getObject(alarmMainState).common.name; // common.name contains the alarm time as string
                                                            log('Gesetzten Wecker für ' + alarmTime + ' gefunden.');
                                                        }
                                                    }
                                                });
                                                return counter;
                                            }
                                        }
                                        
                                        
                                        sigi234S 1 Antwort Letzte Antwort
                                        0
                                        • MicM Mic

                                          Freut mich, dass es funktioniert.

                                          Hier noch ein Anwendungsszenario:
                                          Alle Alexas sind bei mir an einer Osram-Steckdose. Diese schalten sich alle aus, sobald keiner mehr anwesend. Allerdings wäre es ziemlich doof, wenn ein Wecker im Schlafzimmer aktiv ist, und die Fritzbox Nachts warum auch immer meinen sollte, es sei keiner zu Hause und alle Alexas ausschaltet. Daher habe ich folgendes Script geschrieben, das prüft, ob ein Wecker im Alexa Schlafzimmer aktiv ist, und schaltet nur dann aus, wenn kein Wecker aktiv.

                                          Eines der Beispiele, warum ioBroker so super ist, man kann hier alles individuell gestalten.

                                          Hier das Script:

                                          /**
                                           * Schaltet ein Alexa-Gerät nur dann per Osram-Steckdose ab, wenn im Gerät auch kein Wecker gesetzt ist.
                                           * Dies dient dazu, dass das Gerät bei aktivem Wecker nicht abgeschaltet wird, und der TR064-Adapter Abwesenheit meldet.
                                           * Ist eine Sicherheitsstufe, falls der Adapter bzw. die Fritzbox fälschlicherweise abwesend meldet, damit der Wecker 
                                           * auch wirklich auslöst.
                                           * Autor Mic, Stand: 17.07.2019
                                           * @param {string}    statePlug           State-Pfad zur Osram-Steckdose, an der das Alexa-Gerät hängt.
                                           * @param {string}    stateAlexa          State-Pfad zu Alexa-Gerät, z.B. alexa2.0.Echo-Devices.ABCDEF0123XYZABC
                                           * @param {boolean}   [logInfo=false]     Optional: true: Logausgabe als Info, false: keine Logausgabe
                                           */
                                          function offAlexaIfNoAlarm(statePlug, stateAlexa, logInfo) {
                                              
                                              let alarmCount = alexaAlarms(stateAlexa, logInfo);
                                          
                                              if (alarmCount > 0) {
                                                  // Wir machen nichts, da mindestens 1 Wecker gestellt ist
                                                  if (logInfo) log('Keine Aktion, da ' + alarmCount + ' Wecker gestellt ' + ((alarmCount > 1)  ? 'sind.' : 'ist.'));
                                              } else {
                                                  // Ausschalten, da kein Wecker aktiv.
                                                  setState(statePlug, false);
                                                  if (logInfo) log('Kein Wecker gestellt, daher wird Alexa ausgeschaltet.');
                                              }
                                          
                                              /**
                                               * Prüft, wie viele Wecker bei einem Alexa-Gerät aktiv sind.
                                               * @param {string}    alexaDeviceState       State zu Alexa-Gerät, z.B. alexa2.0.Echo-Devices.ABCDEF0123XYZABC
                                               * @param {boolean}   [logInfo=false]        Optional: true: Logausgabe als Info, false: keine Logausgabe
                                               * @return {number}   Anzahl der gestellten, also aktiven Wecker.
                                               */
                                              function alexaAlarms(alexaDeviceState, logInfo) {
                                                  let mSelector = $('state[id=' + alexaDeviceState + '.Alarm.*.enabled' + '$]'); // Gibt alle State-IDs zurück, die dem Pattern entsprechen
                                                  let counter = 0;
                                                  mSelector.each(function(id, i) {
                                                      // Nun haben wir mit "id" die State-ID, z.B. alexa2.0.Echo-Devices.xxxxxxxxxxxxxxX.Alarm.xxxxxxx.enabled
                                                      // Damit prüfen wir, ob der Wecker aktiv ist (.enabled = true)
                                                      if (getState(id).val) {
                                                          // Treffer
                                                          counter =+ 1;
                                                          if(logInfo) {
                                                              let alarmMainState = id.substring(0, id.length-8); // get alarm main state by removing last 8 chars (.enabled)
                                                              let alarmTime = getObject(alarmMainState).common.name; // common.name contains the alarm time as string
                                                              log('Gesetzten Wecker für ' + alarmTime + ' gefunden.');
                                                          }
                                                      }
                                                  });
                                                  return counter;
                                              }
                                          }
                                          
                                          
                                          sigi234S Online
                                          sigi234S Online
                                          sigi234
                                          Forum Testing Most Active
                                          schrieb am zuletzt editiert von
                                          #60

                                          @Mic sagte in Anwesenheitscontrol basierend auf TR64 Adapter - Script:

                                          Alle Alexas sind bei mir an einer Osram-Steckdose. Diese schalten sich alle aus, sobald keiner mehr anwesend

                                          Interessant, warum hast du das so gemacht? Die Alexas brauchen ja wieder 2 Minuten um sich zu verbinden.
                                          Also schalten sie sich immer aus oder ein wenn niemand da ist.

                                          Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                          Immer Daten sichern!

                                          R 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

                                          632

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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