Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Idee gesucht: Abwesenheitskontrolle mit Blocky

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Idee gesucht: Abwesenheitskontrolle mit Blocky

    This topic has been deleted. Only users with topic management privileges can see it.
    • 4
      4-Real last edited by

      @Werde45:

      Erstmal danke für den Hinweis mit den externen Eingängen.. Ich hatte fast die Freigabe, mir einen breiteren (größeren) Bildschirm zu kaufen….Toll gemacht :lol:

      Aber zurück zum Thema: Ich probiere das schon eine Weile (ohne echte Scharfschaltung) und habe auf den betroffenen Geräten das WLAN permanent aktiviert. Bisher funktioniert es gut....

      Es wäre schon schlimm, wenn der Alarm nachts losgeht...

      ich werde berichte....und mal mein System vorstellen... `

      Okay, dann hast du bisher Glück gehabt, ich würde da lieber nämlich erst auf Nummer Sicher gehen, bevor du da irgendwas Scharf stellst.

      Du kannst es ja ein paar Tage testen indem du dir einfach, sobald das Handy "offline" ist, eine Telegram Nachricht zukommen lässt.

      Somit kannst du erstmal ein paar Tage schauen ob es irgendwelche "Standby Zeit" vom Handy WLAN gibt.

      1 Reply Last reply Reply Quote 0
      • G
        Georgius last edited by

        Danke einmal.

        Der Teil mit dem Handy ist soweit kein Problem, was mir generell Probleme macht ist das Konzept von JavaSkript das immer durchläuft und nicht wartet. Mit dem Konzept hatte ich schon vor 30 Jahren in der Schule mit SPS Probleme.

        In "normalen" Programmiersprachen würde ich etwas so schreiben:

        Wenn Tür von Offen auf Geschlossen wechselt setzte Flag warte 10 Minuten Wenn Flag noch gesetzt ist setze Abwesenheit

        Wenn Ping positiv lösche Flag

        Mein Problem ist das "warte 10 Minuten"

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

          Ok. Ich wollte nicht das Thema "klauen".

          1 Reply Last reply Reply Quote 0
          • G
            Georgius last edited by

            Kein Problem, hole es mir schon zurück. :lol:

            1 Reply Last reply Reply Quote 0
            • J
              Jan1 last edited by

              @Georgius:

              Danke einmal.

              Der Teil mit dem Handy ist soweit kein Problem, was mir generell Probleme macht ist das Konzept von JavaSkript das immer durchläuft und nicht wartet. Mit dem Konzept hatte ich schon vor 30 Jahren in der Schule mit SPS Probleme.

              In "normalen" Programmiersprachen würde ich etwas so schreiben:

              Wenn Tür von Offen auf Geschlossen wechselt setzte Flag warte 10 Minuten Wenn Flag noch gesetzt ist setze Abwesenheit

              Wenn Ping positiv lösche Flag

              Mein Problem ist das "warte 10 Minuten" `

              Das "warte 10 Minuten" machst ganz einfach in dem Du die Flagabfrage per falls Bedingung in ein timeout von 10 Minuten packst. Alls was da drin steht, wird erst nach 10 Minuten abgearbeitet und wenn dann das Flag noch gesetzt ist, hast auch Dein "setzte Abwesenheit" 😉

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

                @Georgius:

                Danke einmal.

                Der Teil mit dem Handy ist soweit kein Problem, was mir generell Probleme macht ist das Konzept von JavaSkript das immer durchläuft und nicht wartet. Mit dem Konzept hatte ich schon vor 30 Jahren in der Schule mit SPS Probleme.

                In "normalen" Programmiersprachen würde ich etwas so schreiben:

                Wenn Tür von Offen auf Geschlossen wechselt setzte Flag warte 10 Minuten Wenn Flag noch gesetzt ist setze Abwesenheit

                Wenn Ping positiv lösche Flag

                Mein Problem ist das "warte 10 Minuten" `
                Hi falls es dir etwas nützt ich habe es so gelöst.

                Grüße

                var tuerkontakt = "hm-rpc.1.LEQ1086061.1.STATE"/*Türschloss Eingang.STATE*/; /*Hier die ID des Türkontakts eintragen*/
                var anwesenheit = "javascript.0.Alarmanlage.in.auto"/*Alarmanlage.in.anwesenheit*/; /*Hier die ID der Anwesenheitsvariable eintragen*/
                var min = 15; /*Hier die Zeitspanne der aktiven Abwesenheitserkennung nach Türschließung*/
                var inrange = false; /*Falls kein Türkontakt vorhanden auf true setzen*/
                
                on(tuerkontakt, function(obj) {
                   if (obj.newState.val === false) {
                        inrange = true;
                        setTimeout(function() {
                            inrange = false;
                        }, min * 60 * 1000);
                    }
                });
                on("javascript.0.Anwesenheitssteuerung.Userlist.JemandDa"/*Anwesenheit alle User*/, function(obj) {
                   if (obj.newState.val === false) {
                        if (inrange === true) {
                        setState(anwesenheit,false);
                        } else {
                            log("Anwesenheit Userliste 0 nach Zeit abgelaufen setze Anwesenheit auf 0", "warn");
                            }
                        }
                    if (obj.newState.val === true) { setState(anwesenheit,true); }
                });
                
                
                1 Reply Last reply Reply Quote 0
                • smartboart
                  smartboart last edited by

                  Mache das auch ueber den tr64 Adapter… Löse das mit nem Javascript und nem timer der loslauft.. Wenn niemand da läuft Zeit... Wenn irgend ein handy wieder erreichbar wird der timer zurueckgesetzt... Wenn länger als 15 min der timer nicht zurueck gesetzt wird dann wird der state niemand zu hause erst gesetzt. Das verhindert fehlschaltungen zuverlässig. Wird irgend ein Handy erkannt wird der state wieder zurueck gesetzt.

                  Das funktioniert fehlerfrei mit meinem p20pro dem iPhone 6 und Samsung s5mini... Keine Fehler bei der abwesenheitserkennung..

                  Alarm deaktivieren tue ich damit aber nicht... Dauert mir zu lange bis die Handys wieder im netz sind... Und so lange verzoegere ich den alarm nicht...

                  Mache das deaktivieren ueber handsender oder vis.. Anzeige ob Anlage scharf mach ich mit ner LED an der Sirene und rgbw am Briefkasten... Die Bewohner wissen also immer beim heim kommen wie der Status ist.

                  Gesendet von meinem CLT-L09 mit Tapatalk

                  1 Reply Last reply Reply Quote 0
                  • M
                    mumurik last edited by

                    > Mache das auch ueber den tr64 Adapter… Löse das mit nem Javascript und nem timer der loslauft.. Wenn niemand da läuft Zeit... Wenn irgend ein handy wieder erreichbar wird der timer zurueckgesetzt... Wenn länger als 15 min der timer nicht zurueck gesetzt wird dann wird der state niemand zu hause erst gesetzt. Das verhindert fehlschaltungen zuverlässig. Wird irgend ein Handy erkannt wird der state wieder zurueck gesetzt.
                    @smartboart:

                    genau dieses Szenario versuche ich gerade abzubilden. Könntest du bitte eventuell dieses Script zur Verfügung stellen?

                    Danke!

                    1 Reply Last reply Reply Quote 0
                    • M
                      mikiline last edited by

                      @Werde45:

                      Hi,

                      ich habe dem TR064 Adapter verwendet und frage unsere 4 Handys als Geräte abgefragt und dann weiter mit Blockly (bisher Proof-of-Concept);

                      Anwesenheit.png

                      Der Plan ist alle 15 Minuten alle 4 Handys mit Oder-Verknüpfung abzufragen. Wenn alle 4 Geräte nicht da sind kann ich davon ausgehen, es ist niemand zu hause. Später soll dann Anstatt dem Pushover eine Sprachnachricht erfolgen (als Warnung im Haus) und dann wird die Alarmanlage (über CCU2) aktivieren.

                      Ich sende mal den Code wenn ich damit fertig bin… `

                      wieso alle 15 min? Prüfe doch einfach wenn einer "active" wird bzw. "inaktiv"…..Dann brauch es den Zeitintervall nicht und es spart Ressourcen

                      1 Reply Last reply Reply Quote 0
                      • 4
                        4-Real last edited by

                        Also meine Abwesenheitskontrolle mit dem TR64 Adapter funzt nicht sehr gut. Habe jetzt mehrere Wochen getestet und habe aus Testzwecken einfach nen kleines Blockly script erstellt was halt sagt ob mein Handy "aktiv" oder "inaktiv" ist bzw mit dem Router verbunden ist.

                        Tja pustekuchen, trotz das ich zuhause sitze kommt plötzlich eine Pushnachricht in Telegram ich bin Abwesend und je nach Aktualisierungsintervall kommt dann halt z.b. nach 120 Sekunden (Weil das der Aktualisierungsintervall ist, der im TR64 Adapter eingstellt ist) die Meldung ich bin doch wieder aktiv.

                        Und das Szenario spielt sich dann leider den ganzen Tag mal mehr und mal weniger ab. Habe jetzt mal den Intervall ein wenig höher gestellt auf 200 Sekunden.. ich weiß noch nicht ob ich damit spielen muss, und werde es nochmal ein paar Tage mit rumspielen der Werte testen.

                        1 Reply Last reply Reply Quote 0
                        • R
                          radierer last edited by

                          Ich habs auch ne Weile mit dem anpingen der Smartphones probiert .. damit war ne ordentliche Anwesenheitserkennung bei uns nicht möglich. Seit einem guten Monat haben wir jetzt G-Tags mit dem Radar Adapter im Einsatz, was bisher ohne Probleme funktioniert. Das Ganze läuft aktuell noch auf einem RPi 3 b+ mit dem internen BT. Empfang ist so gut wie im ganzen Haus gegeben .. außer an zwei/drei abgelegenen Ecken, wo auch keine Schlüssel/Jacken abgelegt werden. Ich kann daher diese Lösung klar empfehlen, zumal die G-Tags weder übermäßig teuer noch störend am Schlüsselbund sind.

                          1 Reply Last reply Reply Quote 0
                          • Nashra
                            Nashra Most Active Forum Testing last edited by

                            @radierer:

                            Ich kann daher diese Lösung klar empfehlen, zumal die G-Tags weder übermäßig teuer noch störend am Schlüsselbund sind. `
                            Moin, welche G-Tags sind das denn wenn man mal fragen darf 🙂

                            1 Reply Last reply Reply Quote 0
                            • R
                              radierer last edited by

                              @Nashra:

                              @radierer:

                              Ich kann daher diese Lösung klar empfehlen, zumal die G-Tags weder übermäßig teuer noch störend am Schlüsselbund sind. Moin, welche G-Tags sind das denn wenn man mal fragen darf :)

                              Moin,

                              also ich nutze diese hier:

                              https://www.amazon.de/Gigaset-G-tag-Sch … B00SJEBI1Y

                              Die Bewertungen bei A****on sind zwar schlecht, aber für die Anwesenheitserkennung funktionieren die bei mir wirklich erstklassig.

                              1 Reply Last reply Reply Quote 0
                              • M
                                mikiline last edited by

                                @radierer:

                                @Nashra:

                                @radierer:

                                Ich kann daher diese Lösung klar empfehlen, zumal die G-Tags weder übermäßig teuer noch störend am Schlüsselbund sind. Moin, welche G-Tags sind das denn wenn man mal fragen darf :)

                                Moin,

                                also ich nutze diese hier:

                                https://www.amazon.de/Gigaset-G-tag-Sch … B00SJEBI1Y

                                Die Bewertungen bei A****on sind zwar schlecht, aber für die Anwesenheitserkennung funktionieren die bei mir wirklich erstklassig. `

                                Mit dem Bluetooth Adapter? Oder wie hast Du das in ioBroker integriert?

                                Edit: mit Radar Adapter…..(wer lesen kann ist im Vorteil ;))

                                1 Reply Last reply Reply Quote 0
                                • Nashra
                                  Nashra Most Active Forum Testing last edited by

                                  @radierer:

                                  @Nashra:

                                  @radierer:

                                  Ich kann daher diese Lösung klar empfehlen, zumal die G-Tags weder übermäßig teuer noch störend am Schlüsselbund sind. Moin, welche G-Tags sind das denn wenn man mal fragen darf :)

                                  Moin,

                                  also ich nutze diese hier:

                                  https://www.amazon.de/Gigaset-G-tag-Sch … B00SJEBI1Y

                                  Die Bewertungen bei A***on sind zwar schlecht, aber für die Anwesenheitserkennung funktionieren die bei mir wirklich erstklassig. `
                                  Danke für die Info. Naja die Bewertungen bei A
                                  und auch diversen anderen Shops sollte man eh nicht sonderlich beachten, wird

                                  viel Müll geschrieben.

                                  1 Reply Last reply Reply Quote 0
                                  • R
                                    radierer last edited by

                                    @mikiline Genau .. mit dem Radar Adapter. Einfach die MAC Adresse der G-Tags auslesen und beim Radar Adapter entsprechend eintragen. Ich hatte testweise bei mir aufm Tablet die App von den G-Tags (Keeper) installiert. Wenn die App aktiv ist, verlieren die G-Tags irgendwie die Verbindung zum Raspi/ioBroker .. keine Ahnung wieso.

                                    Hier ne Anleitung, wie man die MAC der G-Tags auslesen kann: https://hausautomatisierung-koch.de/tag/g-tag/

                                    @Nashra: Stimmt .. zumal ich in diesem Fall die G-Tags ja auch nicht für ihren ursprünglich gedachten Zweck benutze .. von daher sind die Bewertungen nicht relevant. 😄

                                    1 Reply Last reply Reply Quote 0
                                    • D
                                      dondaik last edited by

                                      radar erkennt die G-Tags auch als unbekannt und dann schreibt man sie halt um 🙂 … und die aktuelle version scheint sich auch verbessert zu haben ... bis jetzt habe ich mit der neuen version keine probleme mit der erkennung ( ok, das update ist glaube ich drei tage alt ...) und das ist für mich genau der weg den ich wollte... die erkennungszeit anwesend ist ok und bei abwesend ist es mir egal ob das licht 1 minute früher oder später ausgeht...

                                      der aufstellungsort für den orange pi ( der nur radar machen wird ) wird zentral im flur sein also ist alles "gut" 🙂 - irgendwo da liegen die schlüssel immer .

                                      und da WLAN bei den handys (egentlich )immer an ist kommt das zweite anwesenheits-flag ggf von der fritzbox .....doch da überlege ich noch ob ich das brauche 🙂

                                      nachtrag: klar das ein PI eigentlich zu schwach für iobroker ist .... 🙂

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

                                        @mumurik:

                                        > Mache das auch ueber den tr64 Adapter… Löse das mit nem Javascript und nem timer der loslauft.. Wenn niemand da läuft Zeit... Wenn irgend ein handy wieder erreichbar wird der timer zurueckgesetzt... Wenn länger als 15 min der timer nicht zurueck gesetzt wird dann wird der state niemand zu hause erst gesetzt. Das verhindert fehlschaltungen zuverlässig. Wird irgend ein Handy erkannt wird der state wieder zurueck gesetzt.
                                        @smartboart:

                                        genau dieses Szenario versuche ich gerade abzubilden. Könntest du bitte eventuell dieses Script zur Verfügung stellen?

                                        Danke! `

                                        Sorry den Beitrag nicht weiter verfolgt…Aber besser spät als nie...

                                        ich löse das so....funktioniert prima! ganz simpel.

                                        createState('javascript.0.Anwesenheitssteuerung.BewohnerAnwesend', {def: 'true', type: 'boolean', name: 'Bewohner Anwesend - jemand Da'});
                                        
                                        const id1 = 'tr-064.0.devices.PC-192-168-xx-xx.active';//Mustermann
                                        const id2 = 'tr-064.0.devices.PC-192-168-xx-xx.active';//Musterfrau
                                        const id3 = 'tr-064.0.devices.PC-192-168-xx-xx.active';//Mustergast
                                        const id4 = 'javascript.0.Anwesenheitssteuerung.BewohnerAnwesend';
                                        
                                        function Anwesend() { 
                                        var Mustermann = getState(id1).val;
                                        var Musterfrau = getState(id2).val;
                                        var Mustergast = getState(id3).val; 
                                        var BWA = getState(id4).val;
                                            if(Mustermann===false&&Musterfrau===false&&Mustergast===false&&BWA===true) {
                                            setStateDelayed('javascript.0.Anwesenheitssteuerung.BewohnerAnwesend', false, 180*1000);//3 min Zeit bis niemand zu Hause sicher erkannt
                                            log('Es ist niemand zu Hause');
                                            } else { 
                                                if(Musterfrau===true||Mustermann===true||Mustergast===true) {
                                                clearStateDelayed('javascript.0.Anwesenheitssteuerung.BewohnerAnwesend');//wenn innerhalb 3 min wieder aktiv wird timer zurück gesetzt
                                                setState('javascript.0.Anwesenheitssteuerung.BewohnerAnwesend', true);
                                                log('Es ist jemand zu Hause');
                                                   }
                                                }   
                                            }
                                        
                                        on({id:"tr-064.0.devices.PC-192-168-xx-xx.active", change: 'ne'},function(obj){
                                        //on(id1, function(dp) {
                                          Anwesend();
                                        });   
                                        
                                        on({id:"tr-064.0.devices.PC-192-168-xx-xx.active", change: 'ne'},function(obj){
                                        //on(id2, function(dp) {
                                           Anwesend();
                                        }); 
                                        
                                        on({id:"tr-064.0.devices.PC-192-168-xx-xx.active", change: 'ne'},function(obj){
                                        //on(id3, function(dp) {
                                           Anwesend();
                                        });
                                        

                                        Weitere scripte die den state weiter verarbeiten trigger ich mit change ne

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          mumurik last edited by

                                          @smartboart:

                                          @mumurik:

                                          > Mache das auch ueber den tr64 Adapter… Löse das mit nem Javascript und nem timer der loslauft.. Wenn niemand da läuft Zeit... Wenn irgend ein handy wieder erreichbar wird der timer zurueckgesetzt... Wenn länger als 15 min der timer nicht zurueck gesetzt wird dann wird der state niemand zu hause erst gesetzt. Das verhindert fehlschaltungen zuverlässig. Wird irgend ein Handy erkannt wird der state wieder zurueck gesetzt.
                                          @smartboart:

                                          genau dieses Szenario versuche ich gerade abzubilden. Könntest du bitte eventuell dieses Script zur Verfügung stellen?

                                          Danke! `

                                          Sorry den Beitrag nicht weiter verfolgt…Aber besser spät als nie...

                                          ich löse das so....funktioniert prima! ganz simpel.

                                          createState('javascript.0.Anwesenheitssteuerung.BewohnerAnwesend', {def: 'true', type: 'boolean', name: 'Bewohner Anwesend - jemand Da'});
                                          
                                          const id1 = 'tr-064.0.devices.PC-192-168-xx-xx.active';//Mustermann
                                          const id2 = 'tr-064.0.devices.PC-192-168-xx-xx.active';//Musterfrau
                                          const id3 = 'tr-064.0.devices.PC-192-168-xx-xx.active';//Mustergast
                                          const id4 = 'javascript.0.Anwesenheitssteuerung.BewohnerAnwesend';
                                          
                                          function Anwesend() { 
                                          var Mustermann = getState(id1).val;
                                          var Musterfrau = getState(id2).val;
                                          var Mustergast = getState(id3).val; 
                                          var BWA = getState(id4).val;
                                              if(Mustermann===false&&Musterfrau===false&&Mustergast===false&&BWA===true) {
                                              setStateDelayed('javascript.0.Anwesenheitssteuerung.BewohnerAnwesend', false, 180*1000);//3 min Zeit bis niemand zu Hause sicher erkannt
                                              log('Es ist niemand zu Hause');
                                              } else { 
                                                  if(Musterfrau===true||Mustermann===true||Mustergast===true) {
                                                  clearStateDelayed('javascript.0.Anwesenheitssteuerung.BewohnerAnwesend');//wenn innerhalb 3 min wieder aktiv wird timer zurück gesetzt
                                                  setState('javascript.0.Anwesenheitssteuerung.BewohnerAnwesend', true);
                                                  log('Es ist jemand zu Hause');
                                                     }
                                                  }   
                                              }
                                          
                                          on({id:"tr-064.0.devices.PC-192-168-xx-xx.active", change: 'ne'},function(obj){
                                          //on(id1, function(dp) {
                                            Anwesend();
                                          });   
                                          
                                          on({id:"tr-064.0.devices.PC-192-168-xx-xx.active", change: 'ne'},function(obj){
                                          //on(id2, function(dp) {
                                             Anwesend();
                                          }); 
                                          
                                          on({id:"tr-064.0.devices.PC-192-168-xx-xx.active", change: 'ne'},function(obj){
                                          //on(id3, function(dp) {
                                             Anwesend();
                                          });
                                          

                                          Weitere scripte die den state weiter verarbeiten trigger ich mit change ne `

                                          Danke!

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          578
                                          Online

                                          31.8k
                                          Users

                                          79.9k
                                          Topics

                                          1.3m
                                          Posts

                                          13
                                          30
                                          2466
                                          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