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

donate donate
  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.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.0k

Anwesenheitscontrol basierend auf TR64 Adapter - Script

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
116 Beiträge 34 Kommentatoren 27.0k 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.
  • L Online
    L Online
    looxer01
    schrieb am zuletzt editiert von
    #1

    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 Antwort Letzte Antwort
    2
    • C Offline
      C Offline
      CyberMicha
      schrieb am zuletzt editiert von
      #2

      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 Antwort Letzte Antwort
      0
      • L Online
        L Online
        looxer01
        schrieb am zuletzt editiert von
        #3

        @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 Antwort Letzte Antwort
        0
        • C Offline
          C Offline
          CyberMicha
          schrieb am zuletzt editiert von
          #4

          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 Antwort Letzte Antwort
          0
          • L Online
            L Online
            looxer01
            schrieb am zuletzt editiert von
            #5

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

            Dies ist aber bei Javascript objekten nicht der Fall

            1 Antwort Letzte Antwort
            0
            • C Offline
              C Offline
              CyberMicha
              schrieb am zuletzt editiert von
              #6

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

              1 Antwort Letzte Antwort
              0
              • C Offline
                C Offline
                Computerfreunde
                schrieb am zuletzt editiert von
                #7

                Sehr schön,

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

                1 Antwort Letzte Antwort
                0
                • L Online
                  L Online
                  looxer01
                  schrieb am zuletzt editiert von
                  #8

                  Hi,

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

                  vG Looxer

                  1 Antwort Letzte Antwort
                  0
                  • C Offline
                    C Offline
                    Computerfreunde
                    schrieb am zuletzt editiert von
                    #9

                    @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 Antwort Letzte Antwort
                    0
                    • U Offline
                      U Offline
                      UweS
                      schrieb am zuletzt editiert von
                      #10

                      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 Antwort Letzte Antwort
                      0
                      • L Online
                        L Online
                        looxer01
                        schrieb am zuletzt editiert von
                        #11

                        @UweS:

                        dann im Heizungsskript verlinkt und

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

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

                        vG Looxer

                        1 Antwort Letzte Antwort
                        0
                        • smartboartS Offline
                          smartboartS Offline
                          smartboart
                          schrieb am zuletzt editiert von
                          #12

                          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 Antwort Letzte Antwort
                          0
                          • C Offline
                            C Offline
                            commander
                            schrieb am zuletzt editiert von
                            #13

                            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

                            aXCellA 1 Antwort Letzte Antwort
                            0
                            • Beliar_666B Offline
                              Beliar_666B Offline
                              Beliar_666
                              schrieb am zuletzt editiert von
                              #14

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

                              1 Antwort Letzte Antwort
                              0
                              • L Online
                                L Online
                                looxer01
                                schrieb am zuletzt editiert von
                                #15

                                @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 Antwort Letzte Antwort
                                0
                                • Beliar_666B Offline
                                  Beliar_666B Offline
                                  Beliar_666
                                  schrieb am zuletzt editiert von
                                  #16

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

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

                                    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

                                    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
                                    1
                                    • Homer.J.H Offline
                                      Homer.J.H Offline
                                      Homer.J.
                                      schrieb am zuletzt editiert von
                                      #18

                                      @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 Antwort Letzte Antwort
                                      0
                                      • N Offline
                                        N Offline
                                        NightWatcher
                                        schrieb am zuletzt editiert von
                                        #19

                                        Ups, ein kleines ! vergessen :shock:

                                        Habe mein Script oben aktualisiert.

                                        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
                                        • Homer.J.H Offline
                                          Homer.J.H Offline
                                          Homer.J.
                                          schrieb am zuletzt editiert von
                                          #20

                                          @NightWatcher:

                                          Ups, ein kleines ! vergessen :shock:

                                          Habe mein Script oben aktualisiert. `

                                          Funktioniert. :D

                                          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

                                          836

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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