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. ioBroker Allgemein
  4. [gelöst] geofency ändert Home status nicht

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

[gelöst] geofency ändert Home status nicht

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
14 Beiträge 3 Kommentatoren 1.4k Aufrufe
  • Ä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.
  • S Offline
    S Offline
    Sven2013
    schrieb am zuletzt editiert von
    #5

    Hallo Michael,

    Mein Anliegen hat sich erledigt. Ich habe grade dein Script zu dem Thema gefunden. Meine Suchbegriffe waren vorher wohl schlecht gewählt.

    Danke ,

    Gruß Sven

    Gesendet von iPhone mit Tapatalk

    1 Antwort Letzte Antwort
    0
    • ruhr70R Offline
      ruhr70R Offline
      ruhr70
      schrieb am zuletzt editiert von
      #6

      Wie heissen denn Deine Geofency User?

      Du hast einmal "sven" und einmal "Vi". Gibt es noch mehr?

      Adapter: Fritzbox, Unify Circuit
      Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

      1 Antwort Letzte Antwort
      0
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        schrieb am zuletzt editiert von
        #7

        Probier mal:

        ! ```
        `var geofencyUser = ["sven","Vi"];
        var geofencyHome = "Home Zu_Hause_SH1";
        ! // In welchem Pfad sollen in der Javascript Instanz die Datenpunkte angelegt werden. String mit "." am Ende.
        var dpPfad = "geofency" + ".";
        ! // Datenpunktnamen
        var idAnzahlDaheim = dpPfad + "anzahlDaheim";
        var idAnwesend = dpPfad + "anwesend";
        var idListeDaheim = dpPfad + "listeDaheim";
        ! // Umgebungsparameter
        var instanz = "javascript." + instance + ".";
        var geofencyPfad = "geofency.0.";
        var scriptOn = name.replace("script.js",instanz + "scriptEnabled");
        ! function dpAnlegen() {
        ! // einfach angelegte Datenpunkte
        // -----------------------------
        //createState(dpPfad + 'datenpunktName',"Test");
        ! // ausführlich beschriebene Datenpunkte
        // ------------------------------------
        createState(idAnzahlDaheim, 0, { // Datenpunktname ohne Leerzeichen und Sonderzeichen, wie er in den Objekten angelegt wird
        name: 'Anzahl Geofency User daheim', // Lesbarer Name des Datenpunkts
        desc: 'Anzahl Geofency User daheim', // Beschreibung des Datenpunkts
        type: 'number', // Bescreibung des Typ, wie: number, string, boolean
        unit: '' // Einheit, wenn benötigt
        });
        ! createState(idAnwesend, null, { // Datenpunktname ohne Leerzeichen und Sonderzeichen, wie er in den Objekten angelegt wird
        name: 'Geofency User daheim', // Lesbarer Name des Datenpunkts
        desc: 'Geofency User daheim, Booelean', // Beschreibung des Datenpunkts
        type: 'boolean', // Bescreibung des Typ, wie: number, string, boolean
        unit: '' // Einheit, wenn benötigt
        });
        ! createState(idListeDaheim, "", { // Datenpunktname ohne Leerzeichen und Sonderzeichen, wie er in den Objekten angelegt wird
        name: 'Liste Geofency User daheim', // Lesbarer Name des Datenpunkts
        desc: 'Liste Geofency User daheim, Booelean', // Beschreibung des Datenpunkts
        type: 'string', // Bescreibung des Typ, wie: number, string, boolean
        unit: '' // Einheit, wenn benötigt
        });
        !
        }
        ! function getStateSec (dp) {
        if (getState(dp)) {
        return getState(dp);
        }
        log("Skript versucht nicht vorhandenen Datenpunkt zu lesen: " + dp,"warn");
        log("Skript wird angehalten und muss manuell wieder gestartet werden","warn");
        log(scriptOn);
        setState(scriptOn,false); // Skript wird gestoppt
        }
        ! function geofencyStatus() {
        var dp, status;
        var listeDaheim = [];
        var anzahlDaheim = 0;
        var anwesend = false;

        for (var i = 0; i < geofencyUser.length; i++) {
            dp = geofencyPfad + geofencyUser[i] + "." + geofencyHome + ".entry";
            status = getStateSec(dp).val;
            if((status === true) || (status == "1")) {
                log(dp + ": " + status);
                anzahlDaheim++;
                listeDaheim.push(geofencyUser[i]);
                anwesend = true;
            }
        }
        log("AnzahlDaheim:" + anzahlDaheim);
        setState(idAnzahlDaheim,anzahlDaheim);
        setState(idAnwesend,anwesend);
        setState(idListeDaheim,JSON.stringify(listeDaheim));
        

        }

        ! function onAnlegen() {
        ! /*
        on({id: 'xxx' ,change:'ne'}, function (obj) {
        // was soll bei Datenpunktänderung passieren
        });
        */
        for (var i = 0; i < geofencyUser.length; i++) {
        var dp = geofencyPfad + geofencyUser[i] + "." + geofencyHome + ".entry";
        on({id: dp ,change:'ne'}, function (obj) {
        geofencyStatus();
        });
        }
        ! }
        ! function main() {
        geofencyStatus();
        }
        ! dpAnlegen(); // erst die notwendigen Datenpunkte anlegen
        setTimeout(onAnlegen, 500); // dann die Subscriptions setzen
        setTimeout(main, 1000); // dann das Hauptprogramm starten` [/i][/i][/i]

        Adapter: Fritzbox, Unify Circuit
        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

        1 Antwort Letzte Antwort
        0
        • ruhr70R Offline
          ruhr70R Offline
          ruhr70
          schrieb am zuletzt editiert von
          #8

          @Sven2013:

          Mein Anliegen hat sich erledigt. Ich habe grade dein Script zu dem Thema gefunden. Meine Suchbegriffe waren vorher wohl schlecht gewählt. `

          Oh… den Post habe ich gar nicht gesehen.

          Jetzt hast Du ein Post höher noch ein anderes Skript, welches:

          • die Anzahl der Anwesenden zählt

          • die Namen der Anwesenden aufführt

          • true bei Anwesenheit setzt

          Welches Skript meintest Du denn?

          Adapter: Fritzbox, Unify Circuit
          Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            Sven2013
            schrieb am zuletzt editiert von
            #9

            Hallo Michael,

            vielen Dank für deine Arbeit. Ich habe aktuell nur den Nutzer "Sven" und 2 Orte die dazu gehören.

            1 Ort: Zu_Hause_SH1

            2 Ort: Vi

            var geofencyUser    = ["sven",];
            var geofencyHome    = "Zu_Hause_SH1";
            var geofencyHome    = "Vi";
            
            

            muss ich sonst noch etwas ändern?

            Ich hatte deinen Post: http://forum.iobroker.net/viewtopic.php … ipt#p27934 gefunden.

            Gruß Sven

            1 Antwort Letzte Antwort
            0
            • ruhr70R Offline
              ruhr70R Offline
              ruhr70
              schrieb am zuletzt editiert von
              #10

              Die Zeile musst Du löschen:

              var geofencyHome    = "Vi";
              

              Allerdings steht "Vi" bei Dir im Baum so, als wenn es kein Ort, sondern ein weitere Anwender wäre.

              Wenn Du nur einen User hast, dann brauchst Du gar kein Skript ;-)

              Dann reicht der Datenpunkt:

              geofency.0.sven.Zu_Hause_SH1.entry

              Wenn da eine "1" drin steht bist Du daheim, bei "0" unterwegs.

              Adapter: Fritzbox, Unify Circuit
              Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                Sven2013
                schrieb am zuletzt editiert von
                #11

                Ok, es funktioniert mit deinem Script einwandfrei.

                Doch ich nötige ein Script, da ich jetzt wo das funktioniert noch Benutzer hinzufügen werde.

                Mein Plan ist es, das ich darüber die komplette Anwesenheit regeln möchte.

                z.B.

                niemand zu Hause - Telefone auf Handy umgeleitet

                alle zu Hause - Lichtsteuerung - anders als wenn nur ich zu Hause bin

                usw…

                Danke nochmal dafür.

                Gruß Sven

                1 Antwort Letzte Antwort
                0
                • ruhr70R Offline
                  ruhr70R Offline
                  ruhr70
                  schrieb am zuletzt editiert von
                  #12

                  @Sven2013:

                  Ok, es funktioniert mit deinem Script einwandfrei.

                  Doch ich nötige ein Script, da ich jetzt wo das funktioniert noch Benutzer hinzufügen werde. `

                  Genau das macht das Skript.

                  Du musst in der Zeile:

                  var geofencyUser    = ["sven"];
                  
                  

                  Alle Geofency User eintragen, z.B.:

                  var geofencyUser    = ["sven","Maria","monika","bernd"];
                  
                  

                  Und die Datenpunkte sollten so gefüllt werden, wie Du es benötigst.

                  Wenn es bei einem User noch keine Meldung für daheim gegeben hat, gibt es den Datenpunkt nicht und das Skript würde mit einer Warnung gestoppt. Ich habe Dir deswegen unten eine neue Version eingestellt, die sich dann nicht beenden sollte.

                  Du musst nur darauf achten, dass bei allen Geofency Nutzern in der App "Zu Hause SH1" als Ort eingestellt ist. Der Name ist wichtig.

                  Wenn Du unterschiedliche Bezeichnung für "daheim" an den unterschiedlichen handys verwenden willst, muss das Skript dafür erweitert werden.

                  Die neue Version vom Skript:

                  ! ```
                  `var geofencyUser = ["sven"]; // Hier den Namen aller User eintragen
                  var geofencyHome = "Zu_Hause_SH1";
                  ! // In welchem Pfad sollen in der Javascript Instanz die Datenpunkte angelegt werden. String mit "." am Ende.
                  var dpPfad = "geofency" + ".";
                  ! // Datenpunktnamen
                  var idAnzahlDaheim = dpPfad + "anzahlDaheim";
                  var idAnwesend = dpPfad + "anwesend";
                  var idListeDaheim = dpPfad + "listeDaheim";
                  ! // Umgebungsparameter
                  var instanz = "javascript." + instance + ".";
                  var geofencyPfad = "geofency.0.";
                  var scriptOn = name.replace("script.js",instanz + "scriptEnabled");
                  ! function dpAnlegen() {
                  ! // einfach angelegte Datenpunkte
                  // -----------------------------
                  //createState(dpPfad + 'datenpunktName',"Test");
                  ! // ausführlich beschriebene Datenpunkte
                  // ------------------------------------
                  createState(idAnzahlDaheim, 0, { // Datenpunktname ohne Leerzeichen und Sonderzeichen, wie er in den Objekten angelegt wird
                  name: 'Anzahl Geofency User daheim', // Lesbarer Name des Datenpunkts
                  desc: 'Anzahl Geofency User daheim', // Beschreibung des Datenpunkts
                  type: 'number', // Bescreibung des Typ, wie: number, string, boolean
                  unit: '' // Einheit, wenn benötigt
                  });
                  ! createState(idAnwesend, null, { // Datenpunktname ohne Leerzeichen und Sonderzeichen, wie er in den Objekten angelegt wird
                  name: 'Geofency User daheim', // Lesbarer Name des Datenpunkts
                  desc: 'Geofency User daheim, Booelean', // Beschreibung des Datenpunkts
                  type: 'boolean', // Bescreibung des Typ, wie: number, string, boolean
                  unit: '' // Einheit, wenn benötigt
                  });
                  ! createState(idListeDaheim, "", { // Datenpunktname ohne Leerzeichen und Sonderzeichen, wie er in den Objekten angelegt wird
                  name: 'Liste Geofency User daheim', // Lesbarer Name des Datenpunkts
                  desc: 'Liste Geofency User daheim, Booelean', // Beschreibung des Datenpunkts
                  type: 'string', // Bescreibung des Typ, wie: number, string, boolean
                  unit: '' // Einheit, wenn benötigt
                  });
                  !
                  }
                  ! function getStateSec (dp) {
                  if (getState(dp)) {
                  return getState(dp);
                  }
                  log("Skript versucht nicht vorhandenen Datenpunkt zu lesen: " + dp,"warn");
                  // log("Skript wird angehalten und muss manuell wieder gestartet werden","warn");
                  // setState(scriptOn,false); // Skript wird gestoppt
                  return false;
                  }
                  ! function geofencyStatus() {
                  var dp, status;
                  var listeDaheim = [];
                  var anzahlDaheim = 0;
                  var anwesend = false;

                  for (var i = 0; i < geofencyUser.length; i++) {
                      dp = geofencyPfad + geofencyUser[i] + "." + geofencyHome + ".entry";
                      status = getStateSec(dp).val;
                      if((status === true) || (status == "1")) {
                          log(dp + ": " + status);
                          anzahlDaheim++;
                          listeDaheim.push(geofencyUser[i]);
                          anwesend = true;
                      }
                  }
                  log("AnzahlDaheim:" + anzahlDaheim);
                  setState(idAnzahlDaheim,anzahlDaheim);
                  setState(idAnwesend,anwesend);
                  setState(idListeDaheim,JSON.stringify(listeDaheim));
                  

                  }

                  ! function onAnlegen() {
                  ! /*
                  on({id: 'xxx' ,change:'ne'}, function (obj) {
                  // was soll bei Datenpunktänderung passieren
                  });
                  */
                  for (var i = 0; i < geofencyUser.length; i++) {
                  var dp = geofencyPfad + geofencyUser[i] + "." + geofencyHome + ".entry";
                  on({id: dp ,change:'ne'}, function (obj) {
                  geofencyStatus();
                  });
                  }
                  ! }
                  ! function main() {
                  geofencyStatus();
                  }
                  ! dpAnlegen(); // erst die notwendigen Datenpunkte anlegen
                  setTimeout(onAnlegen, 500); // dann die Subscriptions setzen
                  setTimeout(main, 1000); // dann das Hauptprogramm starten` [/i][/i][/i]

                  Adapter: Fritzbox, Unify Circuit
                  Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    Sven2013
                    schrieb am zuletzt editiert von
                    #13

                    Hey,

                    total Klasse. 1000 Dank dafür. Ich freue mich, dass du dir die Mühe gemacht hast und ich wieder ein Stück weiter bin :-)

                    Ich achte darauf, das meine Freu auch den gleichen DatenPunkt nutzt für zu Hause.

                    Gruß Sven

                    1 Antwort Letzte Antwort
                    0
                    • S Offline
                      S Offline
                      simpixo
                      schrieb am zuletzt editiert von
                      #14

                      @Sven2013:

                      Hallo,

                      ich nutze schon eine weile den Geofancy Adapter. Dieser funktioniert auch einwandfrei. Danke dafür.

                      Ich bekomme aber die Funktion "Home" nicht hin. Sie ändert sich einfach nicht…

                      filename="geofancy 2.png" index="0">~~

                      Im Adapter selbst habe ich unter "Home Zu_Hause_SH1" angegeben.

                      Was ist denn daran falsch?

                      Gruß Sven `

                      Das funktioniert doch :) Habe soeben herausgefunden wie man das Objekt befüllen kann….

                      432_bildschirmfoto_2016-06-27_um_12.39.20.png

                      Der Ort muss genauso heißen wie in der Instanz angeben! Bei mir heißt der Ort Zuhause in der Geofency App und in der Instanz "Home" da ging es leider nicht. Ich habe heute mal testweise den Ort in der Geofency Instanz auf "Zuhause" geändert und schwups war das Objekt "atHome" gefüllt…

                      Hoffe dem einen oder anderen damit geholfen zu haben

                      Gruß

                      Adrian

                      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
                      FAQ Cloud / IOT
                      HowTo: Node.js-Update
                      HowTo: Backup/Restore
                      Downloads
                      BLOG

                      603

                      Online

                      32.7k

                      Benutzer

                      82.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