Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Script in vis starten oder stopen. Zusätzlich per Radar und Anwesendheitserkennung

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] Script in vis starten oder stopen. Zusätzlich per Radar und Anwesendheitserkennung

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

      Hallo zusammen,

      folgendes Problem hab ich und kann es ohne Hilfe leider nicht lösen.

      Ich habe ein script das meine Fenster überwacht ob die geöffnet werden oder geschlossen. Wenn sich der Status eines Fensters ändert bekomme ich also eine email.

      Jetzt bringt mir das nichts wenn Frau und Kind zuhause sind und im Sommer öfters mal Fenster oder Türen geöffnet werden.

      Ich hätte also gerne in meiner vis einen Button der das script aktiviert wenn ich (oder meine Frau) das Haus verlasse und beim zurück kommen wieder deaktiviert. Gibt es da evtl sogar schon ein fertiges widget was ich einfach nur noch nicht gefunden habe?

      Ich hoffe ich konnte mich verständlich ausdrücken.

      Danke schonmal für eure Hilfe.

      Gruss Danyel

      1 Reply Last reply Reply Quote 0
      • htrecksler
        htrecksler Forum Testing last edited by

        ich würde es etwas anders lösen.

        Das Skript kann ja ruhig die ganze Zeit laufen.

        Schaffe dir einfach einen Datenpunkt (bool - ja/nein)

        Den schaltest Du über VIS.

        Und im Script prüfst Du einfach den Datenpunkt bevor du die Mail schickst.

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

          *Edit - Zu Langsam 😄

          Ein fertiges Widget kenne ich nicht aber du kannst einen neuen Datenpunkt erstellen (Anwesenheit:true/false) und den fragst du mit deinem Mail-Script ab. So kannst du dann nur wenn true die Email senden.

          Wenn du das weiterdenken möchtest kannst du die Anwesenheit auch automatisch bspw. über das Handy deiner Frau bzw. deines Kindes die im Home-Wlan eingebucht sind oder nicht erfassen, so braucht man nicht extra einen Button drücken.

          Kann dir hier gerne mal die Lösung zeigen wie ich das mache

          Gruß

          Steffen

          1 Reply Last reply Reply Quote 0
          • htrecksler
            htrecksler Forum Testing last edited by

            @peoples:

            *Edit - Zu Langsam 😄 `

            geht mir auch oft so 😄

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

              Ich werde mal gucken ob ich das verstanden habe und umsetzen kann.

              Bin noch neu unterwegs was die scripte angeht und ist alles mehr ein ausprobieren als wissen wie es geht.

              edit

              Datenpunkt gibt es jetzt schonmal mit true und false.

              Jetzt muß ich nur mal gucken wie ich das dem script bei bringe da vorher nach zu gucken.

              Gruss Danyel

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

                @peoples:

                …. über das Handy deiner Frau bzw. deines Kindes die im Home-Wlan eingebucht sind oder nicht erfassen, so braucht man nicht extra einen Button drücken.

                ...... `

                wie hast Du das umgesetzt?

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

                  Ich glaube so langsam fällt der Groschen.

                  Konnte jetzt noch nicht so ausführlich testen aber scheint zu funktionieren.

                  2958_bildschirmfoto_2017-12-31_um_22.36.44.png

                  1 Reply Last reply Reply Quote 0
                  • S
                    stephan61 last edited by

                    Hallo unter Objecte Javascript gibt es den Punkt "script enable"

                    dort sind deine Scripte aufgelistet und du kannst die Scripte ein und ausschalten

                    lässt sich auch in scene oder direkt in scripte verwenden.

                    Gruß Stephan

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

                      @ringdingringding:

                      wie hast Du das umgesetzt? `

                      Ich habe mir hierfür den Ping-Adapter installiert, dem Handy meiner Frau und meinem eine feste Ip gegeben welche ich dann wie folgt abfrage:

                      (Auszug aus dem gesamt Script)

                      
                      var logging = false;                                         // Logging on/off
                      var instanz = 'javascript.0';   instanz = instanz + '.';    // 
                                                                                  //
                      var pfad0 =   'Anwesenheit';      pfad0 = pfad0 + '.';        // Pfad der Jalousien innerhalb der Instanz 
                      
                      var ping1 = getState("ping.0.iobroker.192_XXXXX").val; //Handy Ip-1
                      var ping2 = getState("ping.0.iobroker.192_XXXXX").val; //Handy IP-2
                      
                      createState(pfad0 + 'Status',  {def: 'true',type: 'boolean',name: 'Anwesenheit min. eines Bewohners'});	// Objekt für Anwesend Ja/Nein
                      
                      function check(){
                          if(ping1 || ping2){
                              setState(instanz + pfad0 +"Status"/*Anwesenheit min. eines Bewohners*/, true);
                          }
                          else{
                              setState(instanz + pfad0 +"Status"/*Anwesenheit min. eines Bewohners*/, false);
                          }
                      }
                      on([ping.0.iobroker.XX_IP1_XX, ping.0.iobroker.XX_IP2_XX], function(dp) {
                          check();
                      }
                      
                      

                      Gruß

                      Steffen

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

                        Gerade mal versucht was hinzubekommen mit "Radar-Adapter"

                        2958_bildschirmfoto_2018-01-02_um_22.05.17.png

                        irgendwas passt da aber noch nicht!?

                        Ich habe den Datenpunkt true und false.

                        Wenn der false ist und beide ips ausser haus sind soll der auf true gesetzt werden.

                        Wenn eine ip wieder zurück ist soll wieder auf false gesetzt werden.

                        Gründsätzlich schon mal richtig?

                        Gruß Danyel

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

                          Kann man das nicht als Script exprtieren? Dann würde ich mal drauf schauen weil von Blocky hab ich keine Ahnung.

                          Gruß

                          Steffen

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

                            Viele "moderne" Handys reagieren nach einiger Zeit des "nicht benutzt werdens" nicht mehr auf Pings weil die Handys in den Energiesparmodus gehen.

                            Gruß

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

                              Habe es nochmal geändert. Der "Radar Adapter" zeigt mir an wieviele von den voreingestellten IPs online sind.

                              Also CountHere! Wenn jetzt CountHere = 0 Fensterüberwachung EIN. Wenn CountHere > 0 Überwachung AUS

                              2958_bildschirmfoto_2018-01-03_um_13.06.30.png

                              Hier der code:

                              ! on({id: (function (){var val = 'javascript.0.Virtueller_Schalter_Alarm'; if (val === 'true') return true; if (val === 'false') return false; return !!val;})() == false, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (parseFloat('radar.0.countHere') == 0) { setState("javascript.0.Virtueller_Schalter_Alarm"/*Virtueller_Schalter_Alarm*/, true, true); } console.log('Fensterkontrolle wurde Aktiviert Ping sagt keiner zuhause'); }); on({id: (function (){var val = 'javascript.0.Virtueller_Schalter_Alarm'; if (val === 'true') return true; if (val === 'false') return false; return !!val;})() == true, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (parseFloat('radar.0.countHere') > 0) { setState("javascript.0.Virtueller_Schalter_Alarm"/*Virtueller_Schalter_Alarm*/, false, true); } console.log('Fensterkontrolle wurde Deaktiviert Ping sagt einer ist wieder zuhause'); }); !

                              Gruss Danyel

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

                                @ringdingringding:

                                Habe es nochmal geändert. Der "Radar Adapter" zeigt mir an wieviele von den voreingestellten IPs online sind.

                                Also CountHere! Wenn jetzt CountHere = 0 Fensterüberwachung EIN. Wenn CountHere > 0 Überwachung AUS

                                Bildschirmfoto 2018-01-03 um 13.06.30.png

                                Hier der code:

                                ! on({id: (function (){var val = 'javascript.0.Virtueller_Schalter_Alarm'; if (val === 'true') return true; if (val === 'false') return false; return !!val;})() == false, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (parseFloat('radar.0.countHere') == 0) { setState("javascript.0.Virtueller_Schalter_Alarm"/*Virtueller_Schalter_Alarm*/, true, true); } console.log('Fensterkontrolle wurde Aktiviert Ping sagt keiner zuhause'); }); on({id: (function (){var val = 'javascript.0.Virtueller_Schalter_Alarm'; if (val === 'true') return true; if (val === 'false') return false; return !!val;})() == true, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (parseFloat('radar.0.countHere') > 0) { setState("javascript.0.Virtueller_Schalter_Alarm"/*Virtueller_Schalter_Alarm*/, false, true); } console.log('Fensterkontrolle wurde Deaktiviert Ping sagt einer ist wieder zuhause'); }); !

                                Gruss Danyel `
                                Bei dir wird nur getriggert, wenn sich der Zustand ändert vom virtuellen Schalter… so gewollt?

                                Du solltest triggern auf Änderung von countHere.

                                Rotbraun ist das Triggerfeld.

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

                                  Stimmt Du hast recht.

                                  So geht es aber auch noch nicht!? Wo denke ich falsch?

                                  2958_bildschirmfoto_2018-01-03_um_14.17.12.png

                                  on({id: 'radar.0.countHere', change: "ne"}, function (obj) {
                                    var value = obj.state.val;
                                    var oldValue = obj.oldState.val;
                                    if (parseFloat('radar.0.countHere') == 0) {
                                      setState("javascript.0.Virtueller_Schalter_Alarm"/*Virtueller_Schalter_Alarm*/, true, true);
                                      console.log('Fensterkontrolle wurde Aktiviert Ping sagt keiner zuhause');
                                    }
                                    if (parseFloat('radar.0.countHere') > 0) {
                                      setState("javascript.0.Virtueller_Schalter_Alarm"/*Virtueller_Schalter_Alarm*/, false, true);
                                      console.log('Fensterkontrolle wurde Deaktiviert Ping sagt einer ist wieder zuhause');
                                    }
                                  });
                                  
                                  

                                  Gruss

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

                                    Bin ich den komplett falsch mit meinem Ansatz?

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

                                      @ringdingringding:

                                      Bin ich den komplett flasch mit meinem Ansatz? `
                                      Optisch sieht es gut aus.

                                      Setz doch mal ein "Debug output Wert von countHere" oberhalb der Bedingungen ein.

                                      Dann kann man sehen ob der Trigger überhaupt auslöst und welchen Wert "countHere" hat.

                                      Grüße

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

                                        radar.0 2018-01-04 16:27:18.725 info ScanAll: From all 0 devices dedected 0 are whoHere:

                                        und

                                        radar.0 2018-01-04 16:24:21.803 info ScanAll: From all 1 devices dedected 1 are whoHere: DanyelIP

                                        Das scheint also schonmal zu funktionieren.

                                        Aber warum der rest nicht?

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

                                          @ringdingringding:

                                          Aber warum der rest nicht? `

                                          Mal gemacht was ich geschrieben habe? :roll:

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

                                            2958_bildschirmfoto_2018-01-04_um_16.44.49.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            912
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            35
                                            3183
                                            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