Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Anwesenheitscontrol basierend auf TR64 Adapter - Script

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    Anwesenheitscontrol basierend auf TR64 Adapter - Script

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

      Hi,

      ich habe ein kleines Programm geschrieben, dass die Anwesenheit aufgrund des TR64 adapters auswertet.

      Voraussetzung ist, dass der Adapter TR64 installiert ist und natürlich eine Fritzbox vorhanden ist.

      Die Anwesenheiten werden sehr zuverlässig gemessen mit IOS oder Android oder was auch immer. Natürlich dürfen die Telefone sich nicht vom WLAN abmelden was sowohl bei IOS nicht mehr passiert und auch nicht bei Android (es sei denn, dass sie so eingestellt sind)

      Meine Erfahrung ist, dass es 10 Minuten dauert bis eine Abwesenheit festgestellt wird und ca. 1 Minute bis die Anwesenheit festgestellt ist.

      Folgende Funktionen sind realisiert:

      • Anwesenheitsdarstellung im Bereich javascript ( ist aber quasi nur eine Dopplung vom TR64)

      • Anwesenheitsermittlung (ist irgendwer im Hause)

      • Liste der anwesenden Personen

      • Kommt Geht pro person

      • JSON Liste der Anwesenheiten mit den letzten Kommt/Geht Zeiten

      • auf Wunsch wird ein LOG geführt, dass die Geht/Kommt Zeiten historisch mitschreibt.

      • Anbindung der Anwesenheitssimulation. Wenn gewünscht wird die Anwesenheitssimulation eingeschaltet. Die Anwesenheitssimulation gibt es hier:

      http://forum.iobroker.net/viewtopic.php … simulation

      • 6 User sind einstellbar. Falls gewünscht können weitere User hinzugefügt werden (mit kleiner Programmerweiterung) - reduzierbar auf 6 user im Einstellbereich des Programmes

      vG Looxer

      Anwesenheitsliste als Json
      305_kommtgeht.jpg

      Programm:
      305_anwesenheitscontrol.txt

      P 1 Reply Last reply Reply Quote 2
      • C
        CyberMicha last edited by

        Hi, funktioniert ziemlich gut.

        Bekomme immer die Meldung "eval can be harmful" zwar nur eine Warnung aber hmmm 🙂

        Kannst du mir vielleicht auch einmal diesen Code erklären? Bzw was macht der?

        on({id: User1, valNe: 0 }, function(obj) {  if (obj.state.ack) { anwesenheit(User1Text,1); }   });
        

        Versuche gerade zu verstehen wie das Script triggert.

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

          @CyberMicha:

          Bekomme immer die Meldung "eval can be harmful" zwar nur eine Warnung aber hmmm 🙂 `

          das ist ok. Ist eher ein Hinweis als Warnung.

          on({id: User1, valNe: 0 }, function(obj) {  if (obj.state.ack) { anwesenheit(User1Text,1); }   });
          
          

          Wenn TR64 das User Device auf true oder false setzt und auch die Bestätigung der Aenderung (stat.ack) erfolgt ist dann wird die Funktion "Anwesenheit" mit den Parametern User1Text(das ist der auslösende User) und "1" (das ist der erste User) aufgerufen.

          vG Looxer

          1 Reply Last reply Reply Quote 0
          • C
            CyberMicha last edited by

            Okay danke 😃

            Schaue gerade was ich damit feines anstellen kann.

            Den Status javascript.0.Anwesenheitssteuerung.Userlist.JemandDa müsste ich doch auch irgendwie in anderen Skripten abfragen können oder? Hab es mal versucht auch mit dem on dingens aber das wollte leider nicht 😕

            on({id: "javascript.0.Anwesenheitssteuerung.Userlist.JemandDa", valNe: 0 }, function(obj) {  if (obj.state.ack) { setState("javascript.0.textProcessor", 'Wilkommen zu Hause', true); }}); // ende on
            
            1 Reply Last reply Reply Quote 0
            • L
              looxer01 last edited by

              lass mal das ack weg. Das macht nur Sinn, wenn Bestätigungen erwartet werden.

              Dies ist aber bei Javascript objekten nicht der Fall

              1 Reply Last reply Reply Quote 0
              • C
                CyberMicha last edited by

                Ist halt doch etwas anderes als c# 🙂 Danke werde ich mal testen.

                1 Reply Last reply Reply Quote 0
                • C
                  Computerfreunde last edited by

                  Sehr schön,

                  eine Frage, wie kann ich diese Tabelle mit Kommt/Geht darstellen?

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

                    Hi,

                    mit dem widget "basic table" und der object id der JSON Tabelle das vom Programm erzeugt wird.

                    vG Looxer

                    1 Reply Last reply Reply Quote 0
                    • C
                      Computerfreunde last edited by

                      @looxer01:

                      Hi,

                      mit dem widget "basic table" und der object id der JSON Tabelle das vom Programm erzeugt wird.

                      vG Looxer `

                      Danke für die schnelle Antwort.

                      Und Guten Rutsch in 2018

                      1 Reply Last reply Reply Quote 0
                      • U
                        UweS last edited by

                        Hallo

                        Kann ich statt dem TR-064 Adapter auch einfach den radar Adapter verwenden?

                        Ich habe mal folgendes versucht:

                        ! var User1 = setState ("radar.0.XXX.here");
                        ! var User2 = setState ("radar.0.XXX.btHere");
                        ! var User3 = setState ("radar.0.XXX.btHere");

                        und hier weiß ich nicht was ich eintragen soll:

                        ! // Hier ist der State für den die Deviceermittlung der durch den TR064 ermittelt wird
                        ! //var StateTR064Device = "tr-064.0.devices.";

                        und wie bekomme ich das dann in das Heizungsskript?

                        Ich weiß viele Fragen, ich habs nicht so mit dem Programmieren mehr so copy paste und dann ausprobieren.

                        So wie es aussieht hab ich es doch hinbekommen mit try and Error

                        Nachdem ich beimRadar Adapter kein state gefunden habe habe ich mir für die :

                        var User__n__ = StateTR064Device + "Trick"; einfach var Uwe = "radar.0.Uwe.here";

                        reingeschrieben.

                        dann kam immer ein Fehler

                        ! createState(StateUserListeJason, CreationTime,{read: true, write: true, type: 'string', name: 'Anwesenheitsstatus Jason Liste', desc: 'UserListe als Jason'});

                        den habe ich dann auskommentiert

                        und den nächsten Fehler auch

                        ! setState(StateUserListeJason, JasonString);

                        dann im Heizungsskript verlinkt und

                        es funktioniert. JuHu

                        Danke

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

                          @UweS:

                          dann im Heizungsskript verlinkt und

                          es funktioniert. JuHu `
                          aaaah, du hast es also hinbekommen - sehr gut. 😄

                          Ich habe auch eine Portierung für UNIFI vorgenommen. Das war schon etwas aufwendiger.

                          vG Looxer

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

                            6558_unbenannt.png
                            Hi, wie bekomme ich die Tabelle so schön zusammen geschrumpft, bzw. wie kann ich die Felderbreite an die Namen anpassen?

                            1 Reply Last reply Reply Quote 0
                            • C
                              commander last edited by

                              Hallo,

                              dieses script arbeitet zu meiner vollsten zufriedenheit, jedoch die tabelle macht mir sorgen.

                              name und status überdecken sich, und die zeiten werden leider nicht eingetragen. kann man das irgendwo einstellen?

                              gruß jörg

                              aXCell 1 Reply Last reply Reply Quote 0
                              • Beliar_666
                                Beliar_666 last edited by

                                Bei mir updated er nicht mehr, obwohl im TR64 sofort erkannt wird wer eingeloggt ist und wer nicht.

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

                                  @Beliar_666:

                                  Bei mir updated er nicht mehr, obwohl im TR64 sofort erkannt wird wer eingeloggt ist und wer nicht. `
                                  Hi,

                                  Erste Frage wäre ob die Trigger ausgelöst werden.

                                  Definition ist hier:

                                  var StateTR064Device    =    "tr-064.0.devices.";
                                  
                                  // Hier ist der State für den die Anwesenheitssimulation. Bei True wird die AWS (separates Programm) gestartet
                                  var IDAWSAktiv              = "javascript.0.Anwesenheitssteuerung.AWSAktiv";    // ID AWS flag
                                  
                                  // Falls die Anwesenheitssimulation verknüpft werden soll dann hier TRUE eintragen und dann die Zeit in Sekunden nach Abwesenheit, die vergehen soll bis die Simulation aktiviert wird
                                  var AWSCheckAktiv  = false;                                                     // auf true setzen, wenn die Anwesenheitssimulation genutzt wird
                                  var AWSZeit = 600;                                                               // nach diesen Sekunden verzoegerung wird die Simulation aktiviert
                                  
                                  // die Variable anzahluser muss mit den folgenden variablen zusammenpassen: user1-userN, User1Text - userNtext, StateUser1 - StateUserN
                                  // vorgegeben ist 6, wenn mehr verwendet werden sollen, dann muss das coding leicht angepasst werden
                                  var anzahluser          = 5;                                                    // Maximale Anzahl der User mit Anwesenheitsueberwachung
                                  
                                  //  die Deviceliste aus TR064, die ueberwacht werden soll muss hier eingetragen werden
                                  var User1 = StateTR064Device + "Iphone-Daisy";
                                  var User2 = StateTR064Device + "Micky-iPhone";
                                  var User3 = StateTR064Device + "Tick";
                                  var User4 = StateTR064Device + "Trick";
                                  var User5 = StateTR064Device + "Track-Phone";   
                                  var User6 = StateTR064Device + "initial";                                
                                  
                                  

                                  Bekommst du diesen Logeintrag im Log angezeigt, wenn sich die Anwesenheit ändert ?

                                  log ("Ausloeser: " +  Ausloeser,"info");
                                  
                                  

                                  Wenn nein, dann stimmt was mit dem Trigger nicht.

                                  wie oben aus dem Code zu sehen ist ist der Datenpunkt dazu

                                  tr-064.0.devices. <name>in diesem Fall bitte genau überprüfen. Sag mal Bescheid.

                                  vG Looxer</name>

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

                                    Danke für die schnelle Hilfe, auch hier war der Datenpunkt falsch übernommen. Jetzt funktioniert es!

                                    1 Reply Last reply Reply Quote 0
                                    • N
                                      NightWatcher last edited by

                                      Guten Abend,

                                      ich habe das Script mal ein wenig optimiert,entschlankt, so angepasst dass unlimitiert Anwesenheitssätze eingebaut werden können (das Array in Zeile 29 muss einfach erweitert werden) und eine HTML String Liste für das Material Design eingebaut.
                                      1534_anwesenheitscontrol.txt

                                      1 Reply Last reply Reply Quote 1
                                      • Homer.J.
                                        Homer.J. last edited by

                                        @NightWatcher:

                                        Guten Abend,

                                        ich habe das Script mal ein wenig optimiert,entschlankt, so angepasst dass unlimitiert Anwesenheitssätze eingebaut werden können (das Array in Zeile 29 muss einfach erweitert werden) und eine HTML String Liste für das Material Design eingebaut. `

                                        Morgen,

                                        Script läuft sehr gut einzige was mir aufgefallen ist das die Anwesenheit Userliste auf Niemand sich nicht verändert, bleibt auf Niemand stehen.

                                        1 Reply Last reply Reply Quote 0
                                        • N
                                          NightWatcher last edited by

                                          Ups, ein kleines ! vergessen :shock:

                                          Habe mein Script oben aktualisiert.

                                          1 Reply Last reply Reply Quote 0
                                          • Homer.J.
                                            Homer.J. last edited by

                                            @NightWatcher:

                                            Ups, ein kleines ! vergessen :shock:

                                            Habe mein Script oben aktualisiert. `

                                            Funktioniert. 😄

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            466
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            33
                                            115
                                            18034
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo