Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. [Major Update] UniFi Adapter v0.5.0

    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

    [Major Update] UniFi Adapter v0.5.0

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

      Hi,
      super Arbeit !!!!
      Ich habe schon lange einen Unifi Access Point. Eigentlich lief es bisher ok aber jetzt ist das SetUp wesentlich effizienter und übersichtlicher.
      Vielen Dank dafür.
      Für alle die Interesse haben und als kleines Danke schön an @braindead Ich habe vor Jahren mal ein AnwesenheitsControl Script für TR64 geschrieben. Jetzt habe ich ein kleines Script für den Unifi Adapter geschrieben (eigentlich für mich - Teile ich aber gerne 🙂
      Das Script kann wie gehabt ein externes Logging, eine Jason mit Komm und Geht und eine einfache Liste der Anwesenheiten.
      Ausserdem lassen sich die States aus Unifi spiegeln. Vielleicht hilft das bei dem Thema WhiteList.
      Der Hauptnutzen des Scriptes ist es aber einen Datenpunkt zu haben, der die Anwesenheiten kumuliert. Also JemandDA oder nicht..

      weiter unten das Script. Habe es einfach gehalten. Damit sollten also Anpassungen leicht möglich sein.

      Liebe Grüße
      Looxer

      //-----------------------------------------------------------------------------------------------------
      // Einstellungsbereich
      //-----------------------------------------------------------------------------------------------------
      
      // Liste der teilnehmenden User/Geräte
      var Anwesenheit = [];
      Anwesenheit[0] = ['unifi.0.default.clients.7c:94:2a:xx:4e:xx.is_online', 'Daisy' ];
      Anwesenheit[1] = ['unifi.0.default.clients.b8:7b:c5:xx:4c:xx.is_online', 'Micky' ];
      Anwesenheit[2] = ['unifi.0.default.clients.d0:2b:20:xx:98:xx.is_online', 'Tick' ];
      Anwesenheit[3] = ['unifi.0.default.clients.8c:8e:f2:xx:6f:xx.is_online', 'Trick' ];
      Anwesenheit[4] = ['unifi.0.default.clients.88:44:77:xx:5b:xx.is_online', 'Track' ];
      
      var path = "javascript.0.Anwesenheitssteuerung.Userlist."
                                                     
      //Logging
         var logflag = false;                                                         // logging enabled
         var LogPath = "/opt/iobroker/iobroker-data/Anwesenheiten2.csv";             // Pfad und Dateiname des externen Logs
      
      // Debug
      var debug = true;                                                                   // mehr/weniger meldungen im Log
      
      // States anlegen ?
      var CreateAllStates = true;                                                    // checken ob alle States angeleget sind ? dann auf true
      
      var shadowing = true;                                                           // user Status spiegeln 
      
      //-------------------------------------------------------------------------------------------------------
      // Start der Logik
      //-------------------------------------------------------------------------------------------------------
      var fs = require('fs');                     // enable write fuer externes log
      
      var UserAllText         = "JemandDa"; // ist irgendwer da ?
      var UserString          = "Liste"; // Statename fuer die Liste in VIS
      
      if (CreateAllStates) {
          CreateStates(); // States anlegen
      };
      Subscribe(); // Subscriptions fuer alle User anlegen
      
      
      
      
      
      //-----------------------------------------------------------------------------------------------------
      // Suscription
      //-----------------------------------------------------------------------------------------------------
      function Subscribe () {
      
          for (var i in Anwesenheit) {  // loop ueber alle 
              log("Subscription fuer "+Anwesenheit[i][1] + " erstellt","info");
              on({id: Anwesenheit[i][0], change: 'any'}, function(obj) {  // erstelle subscription
                  if (obj.state.val !== obj.oldState.val) {
                      if(debug ) {log ("Anwesenheitsstatus Aenderung fuer Objekt " + obj.id  +" auf " + obj.state.val + " erkannt","info" )};
                      UserUpdate(obj.id,obj.state.val );
                  }
      
              }); // endon
          }
      }
      
      //-----------------------------------------------------------------------------------------------------
      // Userupdate
      //-----------------------------------------------------------------------------------------------------
      function UserUpdate (objekt,Status) {
          var User = "";
          var CreationTime = formatDate(new Date(),"TT.MM.JJJJ SS:mm:ss");
          var LogString= "";
          var anzahluser = 0;
          
          // auslösenden User ermitteln
          for (var i in Anwesenheit) {  // loop ueber alle
              anzahluser = anzahluser + 1 ;
              if(Anwesenheit[i][0] === objekt ) {     // das ist der Auslöser
                  User = Anwesenheit[i][1]
                  log ("Anwesenheitsstatus Aenderung fuer User " + User + " auf " + Status + " erkannt","info" );
              }
          }
          if(debug) {log("Anzahl User in der Userlist = "+ anzahluser,"info")}
          if(Status === true) {                   // user wurde auf anwesend gesetzt
              setState(path+"1KommtGeht."+User+"Kommt",CreationTime);
              LogString = User + ";"+ "Kommt";         
              writelog(LogString);    
          }else{  
              setState(path+"1KommtGeht."+User+"Geht",CreationTime);
              LogString = User + ";" + "Geht"; 
              writelog(LogString);   
          }
      
          // jetzt schauen ob kein User mehr da ist
          var Userda = false;
          var Userlist = "";
          for (var i in Anwesenheit) {  // loop ueber alle
              if (existsState(Anwesenheit[i][0]) ) { 
                  if (getState(Anwesenheit[i][0]).val) {
                      Userda = true;
                      Userlist = Userlist + " " + Anwesenheit[i][1];
                  }
              }
          } 
          if(!Userda) {
              setState(path+UserAllText,false );   // kein User da
              Userlist = "Niemand";              // kein User da
      
          }else{
              setState(path+UserAllText,true );   // wenn mindestens ein user da ist dann ist der state JemandDa = true
          }
          setState(path+UserString,Userlist );   // update der Userlist
      
      
      // jetzt Jason füllen
          var JasonString ="";
          var counter = 0;
          var UserStatus = false;
          var UserKommt = "";
          var UserGeht = "";
          for (var i in Anwesenheit) {  // loop ueber alle
              counter = counter + 1 ;
              //   Jason (Descr1, Wert1,  Deesc2, Wert2,  Deesc3, Wer3,  Deesc4, Wert4,
              if ( counter === 1 ) {                                                                    // Eroeffnung der Json Tabelle
                  JasonString = "[";                                                      
              }
              if (existsState(Anwesenheit[i][0]) ) { 
                  UserStatus = getState(Anwesenheit[i][0]).val;
              }else {
                  UserStatus = false;
              };
      
              if(Anwesenheit[i][1] === User ) {                                                   // auslösender User
                  if(Status === true) {                                                           // user ist gekommen
                      UserKommt = CreationTime;                                                   // aktuelle Zeit setzen
                      UserGeht = getState(path+"1KommtGeht."+Anwesenheit[i][1]+"Geht").val;
                      if(shadowing) {
                          setState(path+Anwesenheit[i][1],true);
                      }
                   }else {                                                                        // user ist gegangen
                      UserGeht = CreationTime;
                      UserKommt =getState(path+"1KommtGeht."+Anwesenheit[i][1]+"Kommt").val; 
                      if(shadowing  ) {
                          setState(path+Anwesenheit[i][1],false);
                      }
                   } 
                }else {
                  UserKommt =getState(path+"1KommtGeht."+Anwesenheit[i][1]+"Kommt").val;          // wenn dieser User nicht auslösend war dann nur den gespeicherten Wert einlesen --- Kommt
                  UserGeht = getState(path+"1KommtGeht."+Anwesenheit[i][1]+"Geht").val;
                  if(shadowing) {
                      if (existsState(Anwesenheit[i][0])) {
                          setState(path+Anwesenheit[i][1],getState(Anwesenheit[i][0]).val);
                         }else {
                          setState(path+Anwesenheit[i][1],false);
                      }
                  }
              };
              JasonString = JasonString +JasonCreate ("Name", Anwesenheit[i][1], "Status", UserStatus, "Kommt", UserKommt , "Geht", UserGeht );
              if ( counter === anzahluser ) { 
                  JasonString = JasonString + "]";                                                // Schliessen der Json Tabelle
               } else {
                  JasonString = JasonString + ",";                                                  // Schliessen einer einzelnen Zeile - nur die letzte nicht
              };
          
          } // ende for
          setState(path+'1KommtGeht.' + "AnwesenheitJason", JasonString);       
      
      
      
      }  // Ende Funktion
      
      
      //-----------------------------------------------------------------------------------------------------
      // Erstellung von jason strings zur Tabellendarstellung
      //-----------------------------------------------------------------------------------------------------
      function JasonCreate (Desc1, Wert1, Desc2, Wert2, Desc3,Wert3, Desc4,Wert4) {
      
      var buildzeile = "{";
      buildzeile = buildzeile +  '"'  + Desc1+ '":';
      buildzeile = buildzeile +  '"'  + Wert1 + '"' + ",";
      buildzeile = buildzeile +  '"'  + Desc2 + '"' + ":";
      buildzeile = buildzeile +  '"'  + Wert2 + '"' + ",";
      buildzeile = buildzeile +  '"'  + Desc3 + '"' + ":";
      buildzeile = buildzeile +  '"'  + Wert3 + '"' + ",";
      buildzeile = buildzeile +  '"'  + Desc4 + '"' + ":";
      buildzeile = buildzeile +  '"'  + Wert4 + '"' + "}";
      
      
      return buildzeile;
          
      } // Ende Funktion
      
      //-----------------------------------------------------------------------------------------------------
      // Funktion schreibt einen Logeintrag in das Filesystem und auch in das interne Log-System
      //-----------------------------------------------------------------------------------------------------
      function writelog(string) {
          if (logflag === true) {
              var logdate = formatDate(new Date(),"TT.MM.JJJJ");
              var logtime = formatDate(new Date(),"SS:mm:ss");
      
              fs.readFile(LogPath, 'utf8', function(err,data){
                  if (!err){
                      fs.appendFileSync(LogPath, logdate+" ;"+logtime+" ;"+string + "\n");       // Füge Satz in Datei ein
                  }else{
                      log("Logfile nicht gefunden - wird angelegt"), "info";
                      var headerLine= "Datum;Uhrzeit;Name;Kommt-Geht";
                      fs.appendFileSync(LogPath, headerLine + "\n");       // Füge Satz in Datei ein
                      fs.appendFileSync(LogPath, logdate+" ;"+logtime+" ;"+string + "\n");       // Füge Satz in Datei ein
                  } // ende check error
              }); // ende check File
          } // endif check logflag
      
      } // Ende Funktion
      
      //-----------------------------------------------------------------------------------------------------
      // States erstellen
      //-----------------------------------------------------------------------------------------------------
      function CreateStates () {
      
      
          for (var i in Anwesenheit) {  // loop ueber alle 
              if(shadowing) { 
                  createState(path+Anwesenheit[i][1] , false , {read: true, write: true, type: 'boolean', name: 'Anwesenheit - User '+Anwesenheit[i][1], desc: 'ZAnwesenheit - User '+Anwesenheit[i][1] } );       
              }
              createState(path+"1KommtGeht."+Anwesenheit[i][1]+"Geht"   , "", {read: true, write: true, type: 'string', name: 'Anwesenheit Zeit ausloggen', desc: 'Zeit gehen  User '+Anwesenheit[i][1] } );
              createState(path+"1KommtGeht."+Anwesenheit[i][1]+"Kommt" , "", {read: true, write: true, type: 'string', name: 'Anwesenheit Zeit einloggen', desc: 'Zeit kommen User '+Anwesenheit[i][1] } );
          };
          createState(path+UserAllText      , false, {read: true, write: true, type: 'boolean', name: 'Anwesenheit alle User', desc: 'Anwesenheit alle User'})
          createState(path+UserString , "Niemand", {read: true, write: true, type: 'string', name: 'Anwesenheit Userliste', desc: 'Anwesenheit Userliste'});
          createState( path + '1KommtGeht.' + "AnwesenheitJason", "",{read: true, write: true, type: 'string', name: 'Anwesenheitsstatus Jason Liste', desc: 'UserListe als Jason'});
      
      };  // Ende Funktion
      
      
      

      dslraser 1 Reply Last reply Reply Quote 0
      • dslraser
        dslraser Forum Testing Most Active @looxer01 last edited by

        @looxer01
        kannst Du Dein Script bitte komplett in Code Tags Packen.
        Damit (in der Menüleiste)
        Bildschirmfoto 2020-05-24 um 20.05.10.png

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

          @looxer01 sagte in [Major Update] UniFi Adapter v0.5.0:

          sorry - da hatte sich ein Fehler eingeschlichen. Sollte jetzt komplett selektierbar sein.
          vG Looxer

          dslraser 1 Reply Last reply Reply Quote 1
          • dslraser
            dslraser Forum Testing Most Active @looxer01 last edited by

            @looxer01
            ja, nun ist es okay, danke fürs teilen.

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

              @crunchip @braindead
              Ich habe in mein Blockly eine Verzögerung eingebaut. Den Adapter habe ich auf 60 Sekunden gelassen. Heute Nacht habe ich das mal mit 2 Minuten Verzögerung laufen gelassen. (nur für die Abmeldung/Offline Meldung) Bei 2 Minuten Verzögerung hatte ich nicht eine einzige Offline Meldung. Die Online Meldung kommt beim nächsten Adapter Intervall Durchlauf und die Offline Meldung dann nach Adapter Intevall Durchlauf + max die eingestellte Verzögerung. Ich werde jetzt mal die Verzögerung nur knapp über dem Updateintervall testen. (eine Minute Verzögerung reicht bei meiner Installation nicht)

              Falls Jemand probieren möchte:
              Bildschirmfoto 2020-05-25 um 09.17.34.png

              <xml xmlns="http://www.w3.org/1999/xhtml">
               <variables>
                 <variable type="" id=";k,Ihk0[-)fmYrQXm8m^">anlegen_in</variable>
                 <variable type="" id="fyVM({2.Ubq}R7hxFVRc">speicherort</variable>
                 <variable type="" id="nTXOZ!3I{zM-7hg^DXcc">person_1_is_online_DP</variable>
                 <variable type="" id="lvz.2`K]e8c1*JEc-vJu">anwesenheit_person_1</variable>
                 <variable type="" id="@i-nl2q|$|OFpK!Yx+CC">anwesenheit_person_2</variable>
                 <variable type="" id="yB(N?#)zIjYIo%.B@UT(">person_2_is_online_DP</variable>
                 <variable type="" id=";^euFaDvC/jHl4C^!SUw">person_1</variable>
                 <variable type="undefined" id="start">start</variable>
                 <variable type="" id="sgYRW3,@::dC5Ux]x;8|">person_2</variable>
                 <variable type="" id=";,S.tm1x]$^/_:4UWB~|">verzoegerung_person_1</variable>
                 <variable type="undefined" id="warten_person_1">warten_person_1</variable>
                 <variable type="undefined" id="warten_person_2">warten_person_2</variable>
                 <variable type="" id="XzCE`hDBP%sX+x?@f$E;">verzoegerung_person_2</variable>
                 <variable type="" id="![EW]9b!hQ9S[MT.q}6-">telegram_benutzer</variable>
               </variables>
               <block type="procedures_defcustomnoreturn" id="eZsGA^2r{c%G,YpuLp]K" x="13" y="13">
                 <mutation statements="false">
                   <arg name="anlegen_in" varid=";k,Ihk0[-)fmYrQXm8m^"></arg>
                 </mutation>
                 <field name="NAME">Datenpunkte_anlegen</field>
                 <field name="SCRIPT">LyoqCiAqIENyZWF0ZSBzdGF0ZXMgdW5kZXIgMF91c2VyZGF0YS4wIG9yIGphdmFzY3JpcHQueAogKiBDdXJyZW50IFZlcnNpb246ICAgICBodHRwczovL2dpdGh1Yi5jb20vTWljLU0vaW9icm9rZXIuY3JlYXRlVXNlclN0YXRlcwogKiBTdXBwb3J0OiAgICAgICAgICAgICBodHRwczovL2ZvcnVtLmlvYnJva2VyLm5ldC90b3BpYy8yNjgzOS8KICogQXV0b3I6ICAgICAgICAgICAgICAgTWljIChpb0Jyb2tlcikgfCBNaWMtTSAoZ2l0aHViKQogKiBWZXJzaW9uOiAgICAgICAgICAgICAxLjEgKDI2IEphbnVhcnkgMjAyMCkKICogRXhhbXBsZTogICAgICAgICAgICAgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWMtTS9pb2Jyb2tlci5jcmVhdGVVc2VyU3RhdGVzI2JlaXNwaWVsCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIFBMRUFTRSBOT1RFOiBQZXIgaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCwgdGhlIHVzZWQgZnVuY3Rpb24gc2V0T2JqZWN0KCkgCiAqICAgICAgICAgICAgICBleGVjdXRlcyB0aGUgY2FsbGJhY2sgUFJJT1IgdG8gY29tcGxldGluZyB0aGUgc3RhdGUgY3JlYXRpb24uIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlci4gCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIEBwYXJhbSB7c3RyaW5nfSB3aGVyZSAgICAgICAgICBXaGVyZSB0byBjcmVhdGUgdGhlIHN0YXRlOiAnMF91c2VyZGF0YS4wJyBvciAnamF2YXNjcmlwdC54Jy4KICogQHBhcmFtIHtib29sZWFufSBmb3JjZSAgICAgICAgIEZvcmNlIHN0YXRlIGNyZWF0aW9uIChvdmVyd3JpdGUpLCBpZiBzdGF0ZSBpcyBleGlzdGluZy4KICogQHBhcmFtIHthcnJheX0gc3RhdGVzVG9DcmVhdGUgIFN0YXRlKHMpIHRvIGNyZWF0ZS4gc2luZ2xlIGFycmF5IG9yIGFycmF5IG9mIGFycmF5cwogKiBAcGFyYW0ge29iamVjdH0gW2NhbGxiYWNrXSAgICAgT3B0aW9uYWw6IGEgY2FsbGJhY2sgZnVuY3Rpb24gLS0gVGhpcyBwcm92aWRlZCBmdW5jdGlvbiB3aWxsIGJlIGV4ZWN1dGVkIGFmdGVyIGFsbCBzdGF0ZXMgYXJlIGNyZWF0ZWQuCiAqLwoKCmZ1bmN0aW9uIGNyZWF0ZVVzZXJTdGF0ZXMod2hlcmUsIGZvcmNlLCBzdGF0ZXNUb0NyZWF0ZSwgY2FsbGJhY2sgPSB1bmRlZmluZWQpIHsKIAogICAgY29uc3QgV0FSTiA9IGZhbHNlOyAvLyBPbmx5IGZvciAwX3VzZXJkYXRhLjA6IFRocm93cyB3YXJuaW5nIGluIGxvZywgaWYgc3RhdGUgaXMgYWxyZWFkeSBleGlzdGluZyBhbmQgZm9yY2U9ZmFsc2UuIERlZmF1bHQgaXMgZmFsc2UsIHNvIG5vIHdhcm5pbmcgaW4gbG9nLCBpZiBzdGF0ZSBleGlzdHMuCiAgICBjb25zdCBMT0dfREVCVUcgPSBmYWxzZTsgLy8gVG8gZGVidWcgdGhpcyBmdW5jdGlvbiwgc2V0IHRvIHRydWUKICAgIC8vIFBlciBpc3N1ZSAjNDc0IChodHRwczovL2dpdGh1Yi5jb20vaW9Ccm9rZXIvaW9Ccm9rZXIuamF2YXNjcmlwdC9pc3N1ZXMvNDc0KSwgdGhlIHVzZWQgZnVuY3Rpb24gc2V0T2JqZWN0KCkgZXhlY3V0ZXMgdGhlIGNhbGxiYWNrIAogICAgLy8gYmVmb3JlIHRoZSBzdGF0ZSBpcyBhY3R1YWwgY3JlYXRlZC4gVGhlcmVmb3JlLCB3ZSB1c2UgYSBzZXRUaW1lb3V0IGFuZCBjb3VudGVyIGFzIGEgd29ya2Fyb3VuZC4KICAgIGNvbnN0IERFTEFZID0gNTA7IC8vIERlbGF5IGluIG1pbGxpc2Vjb25kcyAobXMpLiBJbmNyZWFzZSB0aGlzIHRvIDEwMCwgaWYgaXQgaXMgbm90IHdvcmtpbmcuCgogICAgLy8gVmFsaWRhdGUgIndoZXJlIgogICAgaWYgKHdoZXJlLmVuZHNXaXRoKCcuJykpIHdoZXJlID0gd2hlcmUuc2xpY2UoMCwgLTEpOyAvLyBSZW1vdmUgdHJhaWxpbmcgZG90CiAgICBpZiAoICh3aGVyZS5tYXRjaCgvXigoamF2YXNjcmlwdFwuKFsxLTldWzAtOV18WzAtOV0pKSR8MF91c2VyZGF0YVwuMCQpLykgPT0gbnVsbCkgKSB7CiAgICAgICAgbG9nKCdUaGlzIHNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHRvIGNyZWF0ZSBzdGF0ZXMgdW5kZXIgWycgKyB3aGVyZSArICddJywgJ2Vycm9yJyk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIC8vIFByZXBhcmUgInN0YXRlc1RvQ3JlYXRlIiBzaW5jZSB3ZSBhbHNvIGFsbG93IGEgc2luZ2xlIHN0YXRlIHRvIGNyZWF0ZQogICAgaWYoIUFycmF5LmlzQXJyYXkoc3RhdGVzVG9DcmVhdGVbMF0pKSBzdGF0ZXNUb0NyZWF0ZSA9IFtzdGF0ZXNUb0NyZWF0ZV07IC8vIHdyYXAgaW50byBhcnJheSwgaWYganVzdCBvbmUgYXJyYXkgYW5kIG5vdCBpbnNpZGUgYW4gYXJyYXkKCiAgICAvLyBBZGQgIndoZXJlIiB0byBTVEFURVNfVE9fQ1JFQVRFCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0YXRlc1RvQ3JlYXRlLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgbGV0IGxwUGF0aCA9IHN0YXRlc1RvQ3JlYXRlW2ldWzBdLnJlcGxhY2UoL1wuKlwuL2csICcuJyk7IC8vIHJlcGxhY2UgYWxsIG11bHRpcGxlIGRvdHMgbGlrZSAnLi4nLCAnLi4uJyB3aXRoIGEgc2luZ2xlICcuJwogICAgICAgIGxwUGF0aCA9IGxwUGF0aC5yZXBsYWNlKC9eKChqYXZhc2NyaXB0XC4oWzEtOV1bMC05XXxbMC05XSlcLil8MF91c2VyZGF0YVwuMFwuKS8sJycpIC8vIHJlbW92ZSBhbnkgamF2YXNjcmlwdC54LiAvIDBfdXNlcmRhdGEuMC4gZnJvbSBiZWdpbm5pbmcKICAgICAgICBscFBhdGggPSB3aGVyZSArICcuJyArIGxwUGF0aDsgLy8gYWRkIHdoZXJlIHRvIGJlZ2lubmluZyBvZiBzdHJpbmcKICAgICAgICBzdGF0ZXNUb0NyZWF0ZVtpXVswXSA9IGxwUGF0aDsKICAgIH0KCiAgICBpZiAod2hlcmUgIT0gJzBfdXNlcmRhdGEuMCcpIHsKICAgICAgICAvLyBDcmVhdGUgU3RhdGVzIHVuZGVyIGphdmFzY3JpcHQueAogICAgICAgIGxldCBudW1TdGF0ZXMgPSBzdGF0ZXNUb0NyZWF0ZS5sZW5ndGg7CiAgICAgICAgc3RhdGVzVG9DcmVhdGUuZm9yRWFjaChmdW5jdGlvbihsb29wUGFyYW0pIHsKICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIE5vdyB3ZSBhcmUgY3JlYXRpbmcgbmV3IHN0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ10nKTsKICAgICAgICAgICAgbGV0IGxvb3BJbml0ID0gKGxvb3BQYXJhbVsxXVsnZGVmJ10gPT0gdW5kZWZpbmVkKSA/IG51bGwgOiBsb29wUGFyYW1bMV1bJ2RlZiddOyAvLyBtaW1pYyBzYW1lIGJlaGF2aW9yIGFzIGNyZWF0ZVN0YXRlIGlmIG5vIGluaXQgdmFsdWUgaXMgcHJvdmlkZWQKICAgICAgICAgICAgY3JlYXRlU3RhdGUobG9vcFBhcmFtWzBdLCBsb29wSW5pdCwgZm9yY2UsIGxvb3BQYXJhbVsxXSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBudW1TdGF0ZXMtLTsKICAgICAgICAgICAgICAgIGlmIChudW1TdGF0ZXMgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gQWxsIHN0YXRlcyBwcm9jZXNzZWQuJyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykgeyAvLyBleGVjdXRlIGlmIGEgZnVuY3Rpb24gd2FzIHByb3ZpZGVkIHRvIHBhcmFtZXRlciBjYWxsYmFjawogICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gRnVuY3Rpb24gdG8gY2FsbGJhY2sgcGFyYW1ldGVyIHdhcyBwcm92aWRlZCcpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIH0gZWxzZSB7CiAgICAgICAgLy8gQ3JlYXRlIFN0YXRlcyB1bmRlciAwX3VzZXJkYXRhLjAKICAgICAgICBsZXQgbnVtU3RhdGVzID0gc3RhdGVzVG9DcmVhdGUubGVuZ3RoOwogICAgICAgIGxldCBjb3VudGVyID0gLTE7CiAgICAgICAgc3RhdGVzVG9DcmVhdGUuZm9yRWFjaChmdW5jdGlvbihsb29wUGFyYW0pIHsKICAgICAgICAgICAgY291bnRlciArPSAxOwogICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2cgKCdbRGVidWddIEN1cnJlbnRseSBwcm9jZXNzaW5nIGZvbGxvd2luZyBzdGF0ZTogWycgKyBsb29wUGFyYW1bMF0gKyAnXScpOwogICAgICAgICAgICBpZiggKCQobG9vcFBhcmFtWzBdKS5sZW5ndGggPiAwKSAmJiAoZXhpc3RzU3RhdGUobG9vcFBhcmFtWzBdKSkgKSB7IC8vIFdvcmthcm91bmQgZHVlIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9pb0Jyb2tlci9pb0Jyb2tlci5qYXZhc2NyaXB0L2lzc3Vlcy80NzgKICAgICAgICAgICAgICAgIC8vIFN0YXRlIGlzIGV4aXN0aW5nLgogICAgICAgICAgICAgICAgaWYgKFdBUk4gJiYgIWZvcmNlKSBsb2coJ1N0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ10gaXMgYWxyZWFkeSBleGlzdGluZyBhbmQgd2lsbCBubyBsb25nZXIgYmUgY3JlYXRlZC4nLCAnd2FybicpOwogICAgICAgICAgICAgICAgaWYgKCFXQVJOICYmIExPR19ERUJVRykgbG9nKCdbRGVidWddIFN0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ10gaXMgYWxyZWFkeSBleGlzdGluZy4gT3B0aW9uIGZvcmNlICg9b3ZlcndyaXRlKSBpcyBzZXQgdG8gWycgKyBmb3JjZSArICddLicpOwogICAgICAgICAgICAgICAgaWYoIWZvcmNlKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gU3RhdGUgZXhpc3RzIGFuZCBzaGFsbCBub3QgYmUgb3ZlcndyaXR0ZW4gc2luY2UgZm9yY2U9ZmFsc2UKICAgICAgICAgICAgICAgICAgICAvLyBTbywgd2UgZG8gbm90IHByb2NlZWQuCiAgICAgICAgICAgICAgICAgICAgbnVtU3RhdGVzLS07CiAgICAgICAgICAgICAgICAgICAgaWYgKG51bVN0YXRlcyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gQWxsIHN0YXRlcyBzdWNjZXNzZnVsbHkgcHJvY2Vzc2VkIScpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7IC8vIGV4ZWN1dGUgaWYgYSBmdW5jdGlvbiB3YXMgcHJvdmlkZWQgdG8gcGFyYW1ldGVyIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gQW4gb3B0aW9uYWwgY2FsbGJhY2sgZnVuY3Rpb24gd2FzIHByb3ZpZGVkLCB3aGljaCB3ZSBhcmUgZ29pbmcgdG8gZXhlY3V0ZSBub3cuJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gZ28gb3V0IGFuZCBjb250aW51ZSB3aXRoIG5leHQgZWxlbWVudCBpbiBsb29wLgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47IC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE4NDUyOTIwL2NvbnRpbnVlLWluLWN1cnNvci1mb3JlYWNoCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSAvLyBpZighZm9yY2UpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIFN0YXRlIGlzIG5vdCBleGlzdGluZyBvciBmb3JjZSA9IHRydWUsIHNvIHdlIGFyZSBjb250aW51aW5nIHRvIGNyZWF0ZSB0aGUgc3RhdGUgdGhyb3VnaCBzZXRPYmplY3QoKS4KICAgICAgICAgICAgbGV0IG9iaiA9IHt9OwogICAgICAgICAgICBvYmoudHlwZSA9ICdzdGF0ZSc7CiAgICAgICAgICAgIG9iai5uYXRpdmUgPSB7fTsKICAgICAgICAgICAgb2JqLmNvbW1vbiA9IGxvb3BQYXJhbVsxXTsKICAgICAgICAgICAgc2V0T2JqZWN0KGxvb3BQYXJhbVswXSwgb2JqLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgbG9nKCdDYW5ub3Qgd3JpdGUgb2JqZWN0IGZvciBzdGF0ZSBbJyArIGxvb3BQYXJhbVswXSArICddOiAnICsgZXJyKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIE5vdyB3ZSBhcmUgY3JlYXRpbmcgbmV3IHN0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ10nKQogICAgICAgICAgICAgICAgICAgIGxldCBpbml0ID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0uZGVmID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYobG9vcFBhcmFtWzFdLnR5cGUgPT09ICdudW1iZXInKSBpbml0ID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgaWYobG9vcFBhcmFtWzFdLnR5cGUgPT09ICdib29sZWFuJykgaW5pdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0udHlwZSA9PT0gJ3N0cmluZycpIGluaXQgPSAnJzsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBpbml0ID0gbG9vcFBhcmFtWzFdLmRlZjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdGUobG9vcFBhcmFtWzBdLCBpbml0LCB0cnVlLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBzZXRTdGF0ZSBkdXJjaGdlZsO8aHJ0OiAnICsgbG9vcFBhcmFtWzBdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bVN0YXRlcy0tOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bVN0YXRlcyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbGwgc3RhdGVzIHByb2Nlc3NlZC4nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7IC8vIGV4ZWN1dGUgaWYgYSBmdW5jdGlvbiB3YXMgcHJvdmlkZWQgdG8gcGFyYW1ldGVyIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBGdW5jdGlvbiB0byBjYWxsYmFjayBwYXJhbWV0ZXIgd2FzIHByb3ZpZGVkJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfSwgREVMQVkgKyAoMjAgKiBjb3VudGVyKSApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIH0KfQoKcGVyc29uMSA9ICdIZWlrbycKcGVyc29uMiA9ICdLZXJzdGluJwpsZXQgc3RhdGVzVG9DcmVhdGUgPSBbCiAgICAvL0Fud2VzZW5oZWl0IFBlcnNvbmVuL0hhbmR5cwogICAgWydVbmlmaS5Bbndlc2VuaGVpdC4nK1twZXJzb24xXSwgeyduYW1lJzpbcGVyc29uMV0rJyBBbndlc2VuaGVpdCcsICd0eXBlJzonc3RyaW5nJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonbm9jaCBsZWVyJyB9XSwKICAgIFsnVW5pZmkuQW53ZXNlbmhlaXQuJytbcGVyc29uMl0sIHsnbmFtZSc6W3BlcnNvbjJdKycgQW53ZXNlbmhlaXQnLCAndHlwZSc6J3N0cmluZycsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonc3RyaW5nJywgJ2RlZic6J25vY2ggbGVlcicgfV0sCiAgIApdOwoKY3JlYXRlVXNlclN0YXRlcyhhbmxlZ2VuX2luLCBmYWxzZSwgc3RhdGVzVG9DcmVhdGUsIGZ1bmN0aW9uKCl7OwogICAgbWFpbigpOwp9KTsKCgo=</field>
                 <comment pinned="false" h="80" w="160">Datenpunkte erstellen</comment>
               </block>
               <block type="variables_set" id="oODt+HYM*+ptP0jLnPoN" x="13" y="62">
                 <field name="VAR" id="fyVM({2.Ubq}R7hxFVRc" variabletype="">speicherort</field>
                 <value name="VALUE">
                   <block type="text" id="^a2)}wPt=s[~]UsHJqvr">
                     <field name="TEXT">0_userdata.0</field>
                   </block>
                 </value>
                 <next>
                   <block type="comment" id="@hJky?+Qv5OpJOJa;Tl6">
                     <field name="COMMENT">Unifi Adapter Client DP is_online</field>
                     <next>
                       <block type="variables_set" id="Y?6=|YzWSeM4LOdF5$XM">
                         <field name="VAR" id="nTXOZ!3I{zM-7hg^DXcc" variabletype="">person_1_is_online_DP</field>
                         <value name="VALUE">
                           <block type="field_oid" id="knG,[`=1g+b,s{kx1EP,">
                             <field name="oid">unifi.0.default.clients.8c:b8:4a:34:ac:85.is_online</field>
                           </block>
                         </value>
                         <next>
                           <block type="comment" id="/R=ulymL%~caLxh2Ilfo">
                             <field name="COMMENT">Unifi Adapter Client DP is_online</field>
                             <next>
                               <block type="variables_set" id="Vx9vV3Sg8kY@H?;zDw@(">
                                 <field name="VAR" id="yB(N?#)zIjYIo%.B@UT(" variabletype="">person_2_is_online_DP</field>
                                 <value name="VALUE">
                                   <block type="field_oid" id="!feFu(z:sKBl~0nK`eGu">
                                     <field name="oid">unifi.0.default.clients.04:d6:aa:76:06:53.is_online</field>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="variables_set" id="9m,K[:2^)KFEl|00rZQ7">
                                     <field name="VAR" id=";^euFaDvC/jHl4C^!SUw" variabletype="">person_1</field>
                                     <value name="VALUE">
                                       <block type="text" id="pJ}1(u|}l3lA7~[z+Wg5">
                                         <field name="TEXT">Heiko</field>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="comment" id="}W{ch-1OEjvE8xy`G(aN">
                                         <field name="COMMENT">60000 x 1 = 1 Minute</field>
                                         <next>
                                           <block type="comment" id="vOE*^-a,jtYycI=KQ)Q!">
                                             <field name="COMMENT">90000 x 1 = 1,5 Minuten</field>
                                             <next>
                                               <block type="variables_set" id="WCX(yO/edOT~0H{EzEDJ">
                                                 <field name="VAR" id=";,S.tm1x]$^/_:4UWB~|" variabletype="">verzoegerung_person_1</field>
                                                 <value name="VALUE">
                                                   <block type="math_arithmetic" id="8=|?+a[CEu_T?522u981">
                                                     <field name="OP">MULTIPLY</field>
                                                     <value name="A">
                                                       <shadow type="math_number" id="y=JYnz0]^+S}-0Wcp8dK">
                                                         <field name="NUM">90000</field>
                                                       </shadow>
                                                     </value>
                                                     <value name="B">
                                                       <shadow type="math_number" id="xBI[G7a_J/}x!L4k{6FN">
                                                         <field name="NUM">1</field>
                                                       </shadow>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="variables_set" id="k`L|~6i[HzfGD|D*L^Z[">
                                                     <field name="VAR" id="sgYRW3,@::dC5Ux]x;8|" variabletype="">person_2</field>
                                                     <value name="VALUE">
                                                       <block type="text" id="$^o6%]+%A^W3{Txo4Yds">
                                                         <field name="TEXT">Kerstin</field>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="variables_set" id="aJJ+aqI83onu8lQ]Q_UQ">
                                                         <field name="VAR" id="XzCE`hDBP%sX+x?@f$E;" variabletype="">verzoegerung_person_2</field>
                                                         <value name="VALUE">
                                                           <block type="math_arithmetic" id="q`nu[t,DyhqtYO9Tp}`Y">
                                                             <field name="OP">MULTIPLY</field>
                                                             <value name="A">
                                                               <shadow type="math_number" id="`Ce#nDl]~dO36UCkyB]1">
                                                                 <field name="NUM">90000</field>
                                                               </shadow>
                                                             </value>
                                                             <value name="B">
                                                               <shadow type="math_number" id="cHM6|FVqyG^7-@=9PZ$t">
                                                                 <field name="NUM">1</field>
                                                               </shadow>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <next>
                                                           <block type="variables_set" id="bEu?$N6,|qbfd8h2t;xr">
                                                             <field name="VAR" id="![EW]9b!hQ9S[MT.q}6-" variabletype="">telegram_benutzer</field>
                                                             <value name="VALUE">
                                                               <block type="text" id="@AJ19!Lch7=H%ib(sX@`">
                                                                 <field name="TEXT">Heiko</field>
                                                               </block>
                                                             </value>
                                                             <next>
                                                               <block type="procedures_callcustomnoreturn" id="(4(-f$1VS~CwO}P[R@.6" collapsed="true">
                                                                 <mutation name="Datenpunkte_anlegen">
                                                                   <arg name="anlegen_in"></arg>
                                                                 </mutation>
                                                                 <value name="ARG0">
                                                                   <block type="variables_get" id="!74)L93;^_?DR0pALJ9f">
                                                                     <field name="VAR" id="fyVM({2.Ubq}R7hxFVRc" variabletype="">speicherort</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </next>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                         </next>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </next>
                   </block>
                 </next>
               </block>
               <block type="procedures_defnoreturn" id="SSMy$1MUVX,GQsbb[2*m" collapsed="true" x="12" y="437">
                 <field name="NAME">main</field>
                 <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                 <statement name="STACK">
                   <block type="timeouts_cleartimeout" id="TZP~F0nTRJ5tX).DDSa`">
                     <field name="NAME">start</field>
                     <next>
                       <block type="variables_set" id=",U2@|cXpD(cMh/t+?6ch">
                         <field name="VAR" id="lvz.2`K]e8c1*JEc-vJu" variabletype="">anwesenheit_person_1</field>
                         <value name="VALUE">
                           <block type="text_join" id="!1[II16BPGnRh-7=6hz[">
                             <mutation items="3"></mutation>
                             <value name="ADD0">
                               <block type="variables_get" id="xK5Ij}90B8}K(46SJ?nI">
                                 <field name="VAR" id="fyVM({2.Ubq}R7hxFVRc" variabletype="">speicherort</field>
                               </block>
                             </value>
                             <value name="ADD1">
                               <block type="text" id="j|:+t7a^%@D?7F{x85Vu">
                                 <field name="TEXT">.Unifi.Anwesenheit.</field>
                               </block>
                             </value>
                             <value name="ADD2">
                               <block type="variables_get" id="/d9dG48mWBBOwwOV|b7q">
                                 <field name="VAR" id=";^euFaDvC/jHl4C^!SUw" variabletype="">person_1</field>
                               </block>
                             </value>
                           </block>
                         </value>
                         <next>
                           <block type="variables_set" id="!b3P0hupqzO)$LYY_96G">
                             <field name="VAR" id="@i-nl2q|$|OFpK!Yx+CC" variabletype="">anwesenheit_person_2</field>
                             <value name="VALUE">
                               <block type="text_join" id="j^1|XvQ;,bZdK7j*e[W]">
                                 <mutation items="3"></mutation>
                                 <value name="ADD0">
                                   <block type="variables_get" id="{e5Na0l3aK]%yCR.A^B{">
                                     <field name="VAR" id="fyVM({2.Ubq}R7hxFVRc" variabletype="">speicherort</field>
                                   </block>
                                 </value>
                                 <value name="ADD1">
                                   <block type="text" id="IVD:VEYV~yR=s_-/Xf!N">
                                     <field name="TEXT">.Unifi.Anwesenheit.</field>
                                   </block>
                                 </value>
                                 <value name="ADD2">
                                   <block type="variables_get" id="Aty5L{S^6krr(,SAac[M">
                                     <field name="VAR" id="sgYRW3,@::dC5Ux]x;8|" variabletype="">person_2</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <next>
                               <block type="timeouts_settimeout" id=".|_m4*n~bGC)tC]M]!E^">
                                 <field name="NAME">start</field>
                                 <field name="DELAY">1</field>
                                 <field name="UNIT">sec</field>
                                 <statement name="STATEMENT">
                                   <block type="controls_if" id="@IdN-@8]b19pM5K:RKAV">
                                     <mutation else="1"></mutation>
                                     <value name="IF0">
                                       <block type="logic_compare" id="mOtoF5ZD{_J6ssks0m)y">
                                         <field name="OP">EQ</field>
                                         <value name="A">
                                           <block type="get_value_var" id="P=ub#}lCd=k9sU(YPcg:">
                                             <field name="ATTR">val</field>
                                             <value name="OID">
                                               <shadow type="text" id="+?=%oVJ6|*ti.6j6/Wxj">
                                                 <field name="TEXT"></field>
                                               </shadow>
                                               <block type="variables_get" id="l+hT5v.Pk.O2J$/Iaqt,">
                                                 <field name="VAR" id="nTXOZ!3I{zM-7hg^DXcc" variabletype="">person_1_is_online_DP</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <block type="logic_boolean" id="9{xgUNQr|Jen;~u_$)6d">
                                             <field name="BOOL">TRUE</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <statement name="DO0">
                                       <block type="control_ex" id=".V]CdR(,WY/[gHi[+RLy" inline="true">
                                         <field name="TYPE">true</field>
                                         <field name="CLEAR_RUNNING">FALSE</field>
                                         <value name="OID">
                                           <shadow type="field_oid" id="hRVN~;8VstUL/pd4KSAZ">
                                             <field name="oid">Object ID</field>
                                           </shadow>
                                           <block type="variables_get" id="3%^DGT`3E`2/0p:w3{4^">
                                             <field name="VAR" id="lvz.2`K]e8c1*JEc-vJu" variabletype="">anwesenheit_person_1</field>
                                           </block>
                                         </value>
                                         <value name="VALUE">
                                           <shadow type="logic_boolean" id="bbVKs5v:Ert)PYdo!`!i">
                                             <field name="BOOL">TRUE</field>
                                           </shadow>
                                           <block type="text_join" id="f8$xC!VB#l1J#2YIx60!">
                                             <mutation items="3"></mutation>
                                             <value name="ADD0">
                                               <block type="variables_get" id="1oBT:?uj_zr?Mgi+#WM`">
                                                 <field name="VAR" id=";^euFaDvC/jHl4C^!SUw" variabletype="">person_1</field>
                                               </block>
                                             </value>
                                             <value name="ADD1">
                                               <block type="text" id="SWk`f2QCt@7CE*{M9F=y">
                                                 <field name="TEXT"> </field>
                                               </block>
                                             </value>
                                             <value name="ADD2">
                                               <block type="text" id="Gh(!zydv3Jh_{d7dIKNr">
                                                 <field name="TEXT">ist online ✅</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <value name="DELAY_MS">
                                           <shadow type="math_number" id="I7CJ`-|pTzVbPm]Rm~#j">
                                             <field name="NUM">0</field>
                                           </shadow>
                                         </value>
                                       </block>
                                     </statement>
                                     <statement name="ELSE">
                                       <block type="control_ex" id="Rm7t|TP;p?8IkYCVTFYf" inline="true">
                                         <field name="TYPE">true</field>
                                         <field name="CLEAR_RUNNING">FALSE</field>
                                         <value name="OID">
                                           <shadow type="field_oid" id="hRVN~;8VstUL/pd4KSAZ">
                                             <field name="oid">Object ID</field>
                                           </shadow>
                                           <block type="variables_get" id="rh!@7z?k=8.uZbxF?DoI">
                                             <field name="VAR" id="lvz.2`K]e8c1*JEc-vJu" variabletype="">anwesenheit_person_1</field>
                                           </block>
                                         </value>
                                         <value name="VALUE">
                                           <shadow type="logic_boolean" id="bbVKs5v:Ert)PYdo!`!i">
                                             <field name="BOOL">TRUE</field>
                                           </shadow>
                                           <block type="text_join" id=";.n,Hn*I2XhhSW85o_Q2">
                                             <mutation items="3"></mutation>
                                             <value name="ADD0">
                                               <block type="variables_get" id="tu5-.4UIt2~I(onp}L$P">
                                                 <field name="VAR" id=";^euFaDvC/jHl4C^!SUw" variabletype="">person_1</field>
                                               </block>
                                             </value>
                                             <value name="ADD1">
                                               <block type="text" id="`*!Euh8@c0Kv1`dL)`|]">
                                                 <field name="TEXT"> </field>
                                               </block>
                                             </value>
                                             <value name="ADD2">
                                               <block type="text" id="OP@O9n8`%s$i4iu!qalG">
                                                 <field name="TEXT">ist offline ❌</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <value name="DELAY_MS">
                                           <shadow type="math_number" id="?QJBHR?P%=ONW9U|7bz~">
                                             <field name="NUM">0</field>
                                           </shadow>
                                         </value>
                                       </block>
                                     </statement>
                                     <next>
                                       <block type="controls_if" id="CW7PDI-i5$*GOj_KJb4Q">
                                         <mutation else="1"></mutation>
                                         <value name="IF0">
                                           <block type="logic_compare" id="-!aPk*oy9xC5J=ysP)7=">
                                             <field name="OP">EQ</field>
                                             <value name="A">
                                               <block type="get_value_var" id="n+Ps:J5qI;GEdiv{)E?z">
                                                 <field name="ATTR">val</field>
                                                 <value name="OID">
                                                   <shadow type="text" id="+?=%oVJ6|*ti.6j6/Wxj">
                                                     <field name="TEXT"></field>
                                                   </shadow>
                                                   <block type="variables_get" id="!|b(=p?G65~q+jglAR8w">
                                                     <field name="VAR" id="yB(N?#)zIjYIo%.B@UT(" variabletype="">person_2_is_online_DP</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <value name="B">
                                               <block type="logic_boolean" id="!(SIj5PDvV$R:iUQ*(LP">
                                                 <field name="BOOL">TRUE</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <statement name="DO0">
                                           <block type="control_ex" id="4VEiHKIjpLMpRX2h?+MR" inline="true">
                                             <field name="TYPE">true</field>
                                             <field name="CLEAR_RUNNING">FALSE</field>
                                             <value name="OID">
                                               <shadow type="field_oid" id="hRVN~;8VstUL/pd4KSAZ">
                                                 <field name="oid">Object ID</field>
                                               </shadow>
                                               <block type="variables_get" id="MTibw$-yf66T#p]`3z?r">
                                                 <field name="VAR" id="@i-nl2q|$|OFpK!Yx+CC" variabletype="">anwesenheit_person_2</field>
                                               </block>
                                             </value>
                                             <value name="VALUE">
                                               <shadow type="logic_boolean" id="bbVKs5v:Ert)PYdo!`!i">
                                                 <field name="BOOL">TRUE</field>
                                               </shadow>
                                               <block type="text_join" id=":iT@UQ1eLTq{?.Nc0-Ob">
                                                 <mutation items="3"></mutation>
                                                 <value name="ADD0">
                                                   <block type="variables_get" id=")vF^Rbw,2,7/)$D8gF};">
                                                     <field name="VAR" id="sgYRW3,@::dC5Ux]x;8|" variabletype="">person_2</field>
                                                   </block>
                                                 </value>
                                                 <value name="ADD1">
                                                   <block type="text" id="23zE8haiF=Z5L.H#Pk7i">
                                                     <field name="TEXT"> </field>
                                                   </block>
                                                 </value>
                                                 <value name="ADD2">
                                                   <block type="text" id="+0!/qeY$7F8aH-xnRR*0">
                                                     <field name="TEXT">ist online ✅</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <value name="DELAY_MS">
                                               <shadow type="math_number" id="l4gI%#`:C=?(4rd|p`^.">
                                                 <field name="NUM">0</field>
                                               </shadow>
                                             </value>
                                           </block>
                                         </statement>
                                         <statement name="ELSE">
                                           <block type="control_ex" id="W?x]+MW|=5vu@Uj(3,75" inline="true">
                                             <field name="TYPE">true</field>
                                             <field name="CLEAR_RUNNING">FALSE</field>
                                             <value name="OID">
                                               <shadow type="field_oid" id="hRVN~;8VstUL/pd4KSAZ">
                                                 <field name="oid">Object ID</field>
                                               </shadow>
                                               <block type="variables_get" id="VV1Lj`Qf^tQkmc+x.maW">
                                                 <field name="VAR" id="@i-nl2q|$|OFpK!Yx+CC" variabletype="">anwesenheit_person_2</field>
                                               </block>
                                             </value>
                                             <value name="VALUE">
                                               <shadow type="logic_boolean" id="bbVKs5v:Ert)PYdo!`!i">
                                                 <field name="BOOL">TRUE</field>
                                               </shadow>
                                               <block type="text_join" id="ll.R;kcidI|hRLwDFVB{">
                                                 <mutation items="3"></mutation>
                                                 <value name="ADD0">
                                                   <block type="variables_get" id="WD$^uCEDqYwF6:QS*F]j">
                                                     <field name="VAR" id="sgYRW3,@::dC5Ux]x;8|" variabletype="">person_2</field>
                                                   </block>
                                                 </value>
                                                 <value name="ADD1">
                                                   <block type="text" id="wR$`1P`CT=B)$/YSN(~J">
                                                     <field name="TEXT"> </field>
                                                   </block>
                                                 </value>
                                                 <value name="ADD2">
                                                   <block type="text" id="4c(~/}V#~bT!jwy2iB}J">
                                                     <field name="TEXT">ist offline ❌</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <value name="DELAY_MS">
                                               <shadow type="math_number" id="!d5FRdKZAaU7?)=#m4%_">
                                                 <field name="NUM">0</field>
                                               </shadow>
                                             </value>
                                           </block>
                                         </statement>
                                       </block>
                                     </next>
                                   </block>
                                 </statement>
                                 <next>
                                   <block type="on_ext" id="SX%6!fqcVoVlD@SU-7Y4">
                                     <mutation items="1"></mutation>
                                     <field name="CONDITION">ne</field>
                                     <field name="ACK_CONDITION"></field>
                                     <value name="OID0">
                                       <shadow type="field_oid" id=";0_S:)AqTJF$]lRUv@gx">
                                         <field name="oid">default</field>
                                       </shadow>
                                       <block type="variables_get" id="UKe(AmN7{4GdYH(3_`O#">
                                         <field name="VAR" id="nTXOZ!3I{zM-7hg^DXcc" variabletype="">person_1_is_online_DP</field>
                                       </block>
                                     </value>
                                     <statement name="STATEMENT">
                                       <block type="timeouts_cleartimeout" id=";5poL43K$!]^/%.4$m+%">
                                         <field name="NAME">warten_person_1</field>
                                         <next>
                                           <block type="controls_if" id="_z?rO3%XvQmDU%U1=lon">
                                             <value name="IF0">
                                               <block type="on_source" id="_(Fal+8L^ATHe#Hq|y+9">
                                                 <field name="ATTR">state.val</field>
                                               </block>
                                             </value>
                                             <statement name="DO0">
                                               <block type="control_ex" id="LM-KIX/g(V6Tuik9CLF/" inline="true">
                                                 <field name="TYPE">true</field>
                                                 <field name="CLEAR_RUNNING">FALSE</field>
                                                 <value name="OID">
                                                   <shadow type="field_oid" id="hRVN~;8VstUL/pd4KSAZ">
                                                     <field name="oid">Object ID</field>
                                                   </shadow>
                                                   <block type="variables_get" id="7,y}skvg#u?n$OT[5K=S">
                                                     <field name="VAR" id="lvz.2`K]e8c1*JEc-vJu" variabletype="">anwesenheit_person_1</field>
                                                   </block>
                                                 </value>
                                                 <value name="VALUE">
                                                   <shadow type="logic_boolean" id="bbVKs5v:Ert)PYdo!`!i">
                                                     <field name="BOOL">TRUE</field>
                                                   </shadow>
                                                   <block type="text_join" id="l|J80x/T-`0?9M^7b]:N">
                                                     <mutation items="3"></mutation>
                                                     <value name="ADD0">
                                                       <block type="variables_get" id=".qiA1:)|eFl9@:8-b6*`">
                                                         <field name="VAR" id=";^euFaDvC/jHl4C^!SUw" variabletype="">person_1</field>
                                                       </block>
                                                     </value>
                                                     <value name="ADD1">
                                                       <block type="text" id="G0=0Fc~I_fA]0O)}g3W(">
                                                         <field name="TEXT"> </field>
                                                       </block>
                                                     </value>
                                                     <value name="ADD2">
                                                       <block type="text" id="]N,+4OnsaC~Lw_.k0/hh">
                                                         <field name="TEXT">ist online ✅</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <value name="DELAY_MS">
                                                   <shadow type="math_number" id="1:S1**dQmdnwe.l7.Z-b">
                                                     <field name="NUM">0</field>
                                                   </shadow>
                                                 </value>
                                               </block>
                                             </statement>
                                             <next>
                                               <block type="timeouts_settimeout" id="=B9@U~m`_A#Z6:]qChNR">
                                                 <field name="NAME">warten_person_1</field>
                                                 <field name="DELAY">verzoegerung_person_1</field>
                                                 <field name="UNIT">ms</field>
                                                 <statement name="STATEMENT">
                                                   <block type="controls_if" id="1VR-AfT4Oa^*9,9^jtoL">
                                                     <value name="IF0">
                                                       <block type="logic_negate" id="7-N(LCjniX9-2w}5C|lV">
                                                         <value name="BOOL">
                                                           <block type="on_source" id="9dgu*Y:=}#idI+CVK{?O">
                                                             <field name="ATTR">state.val</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <statement name="DO0">
                                                       <block type="control_ex" id="YN=l|7.)+2WVOGMcg!/`" inline="true">
                                                         <field name="TYPE">true</field>
                                                         <field name="CLEAR_RUNNING">FALSE</field>
                                                         <value name="OID">
                                                           <shadow type="field_oid" id="hRVN~;8VstUL/pd4KSAZ">
                                                             <field name="oid">Object ID</field>
                                                           </shadow>
                                                           <block type="variables_get" id="4.t^B;y;~YJA^DTb;gyE">
                                                             <field name="VAR" id="lvz.2`K]e8c1*JEc-vJu" variabletype="">anwesenheit_person_1</field>
                                                           </block>
                                                         </value>
                                                         <value name="VALUE">
                                                           <shadow type="logic_boolean" id="bbVKs5v:Ert)PYdo!`!i">
                                                             <field name="BOOL">TRUE</field>
                                                           </shadow>
                                                           <block type="text_join" id="o}K:*wP8{onf4yKv=4YT">
                                                             <mutation items="3"></mutation>
                                                             <value name="ADD0">
                                                               <block type="variables_get" id="941ISD`abMu2l=]8Y(/m">
                                                                 <field name="VAR" id=";^euFaDvC/jHl4C^!SUw" variabletype="">person_1</field>
                                                               </block>
                                                             </value>
                                                             <value name="ADD1">
                                                               <block type="text" id="ZM+pW%,1k!o2Vf?t0R?l">
                                                                 <field name="TEXT"> </field>
                                                               </block>
                                                             </value>
                                                             <value name="ADD2">
                                                               <block type="text" id="S__OPp))@Dgo/JTcf}ax">
                                                                 <field name="TEXT">ist offline ❌</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <value name="DELAY_MS">
                                                           <shadow type="math_number" id="f6RJ7!swO;Le1Bfko;L2">
                                                             <field name="NUM">0</field>
                                                           </shadow>
                                                         </value>
                                                       </block>
                                                     </statement>
                                                   </block>
                                                 </statement>
                                               </block>
                                             </next>
                                           </block>
                                         </next>
                                       </block>
                                     </statement>
                                     <next>
                                       <block type="on_ext" id="~ObZs=5%-:^CnQuYO(z=">
                                         <mutation items="1"></mutation>
                                         <field name="CONDITION">ne</field>
                                         <field name="ACK_CONDITION"></field>
                                         <value name="OID0">
                                           <shadow type="field_oid" id=";0_S:)AqTJF$]lRUv@gx">
                                             <field name="oid">default</field>
                                           </shadow>
                                           <block type="variables_get" id="Olbu@Xq[MZTK?j4d_a#g">
                                             <field name="VAR" id="yB(N?#)zIjYIo%.B@UT(" variabletype="">person_2_is_online_DP</field>
                                           </block>
                                         </value>
                                         <statement name="STATEMENT">
                                           <block type="timeouts_cleartimeout" id="TP402$RK@-Gp1F8cUm2A">
                                             <field name="NAME">warten_person_2</field>
                                             <next>
                                               <block type="controls_if" id="!K2H`_FR~oD9eh*@T1|w">
                                                 <value name="IF0">
                                                   <block type="on_source" id="*I8C7_{s9`7I(Zx#@%|2">
                                                     <field name="ATTR">state.val</field>
                                                   </block>
                                                 </value>
                                                 <statement name="DO0">
                                                   <block type="control_ex" id="mFAN(dDUr6q/gR6UwBVZ" inline="true">
                                                     <field name="TYPE">true</field>
                                                     <field name="CLEAR_RUNNING">FALSE</field>
                                                     <value name="OID">
                                                       <shadow type="field_oid" id="hRVN~;8VstUL/pd4KSAZ">
                                                         <field name="oid">Object ID</field>
                                                       </shadow>
                                                       <block type="variables_get" id="$UftmC*.f}ze-ab-ys,Q">
                                                         <field name="VAR" id="@i-nl2q|$|OFpK!Yx+CC" variabletype="">anwesenheit_person_2</field>
                                                       </block>
                                                     </value>
                                                     <value name="VALUE">
                                                       <shadow type="logic_boolean" id="bbVKs5v:Ert)PYdo!`!i">
                                                         <field name="BOOL">TRUE</field>
                                                       </shadow>
                                                       <block type="text_join" id="P3N04_kX]?qG{Xs2[(fH">
                                                         <mutation items="3"></mutation>
                                                         <value name="ADD0">
                                                           <block type="variables_get" id="P5IAcPBtd#@dS,*2B@fW">
                                                             <field name="VAR" id="sgYRW3,@::dC5Ux]x;8|" variabletype="">person_2</field>
                                                           </block>
                                                         </value>
                                                         <value name="ADD1">
                                                           <block type="text" id="r7@)j/8/+({|VPB=@6%r">
                                                             <field name="TEXT"> </field>
                                                           </block>
                                                         </value>
                                                         <value name="ADD2">
                                                           <block type="text" id="xxE=NzJgw3NYsn-%!LPx">
                                                             <field name="TEXT">ist online ✅</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <value name="DELAY_MS">
                                                       <shadow type="math_number" id="p/d5]r.~2%E#lqUZ+Zzo">
                                                         <field name="NUM">0</field>
                                                       </shadow>
                                                     </value>
                                                   </block>
                                                 </statement>
                                                 <next>
                                                   <block type="timeouts_settimeout" id="@C,B!T7fXep/Dm=_:4d3">
                                                     <field name="NAME">warten_person_2</field>
                                                     <field name="DELAY">verzoegerung_person_2</field>
                                                     <field name="UNIT">ms</field>
                                                     <statement name="STATEMENT">
                                                       <block type="controls_if" id="MR]9DN1U5jsMH!CAUwnx">
                                                         <value name="IF0">
                                                           <block type="logic_negate" id=",X~j=CgHu3Dua,Pajc)c">
                                                             <value name="BOOL">
                                                               <block type="on_source" id=":T;WH4z-(3~qmteGL,c3">
                                                                 <field name="ATTR">state.val</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <statement name="DO0">
                                                           <block type="control_ex" id="L{2Dp(q220seA@K)H~:9" inline="true">
                                                             <field name="TYPE">true</field>
                                                             <field name="CLEAR_RUNNING">FALSE</field>
                                                             <value name="OID">
                                                               <shadow type="field_oid" id="hRVN~;8VstUL/pd4KSAZ">
                                                                 <field name="oid">Object ID</field>
                                                               </shadow>
                                                               <block type="variables_get" id="37B(F$tlde-Bt#u.;L~#">
                                                                 <field name="VAR" id="@i-nl2q|$|OFpK!Yx+CC" variabletype="">anwesenheit_person_2</field>
                                                               </block>
                                                             </value>
                                                             <value name="VALUE">
                                                               <shadow type="logic_boolean" id="bbVKs5v:Ert)PYdo!`!i">
                                                                 <field name="BOOL">TRUE</field>
                                                               </shadow>
                                                               <block type="text_join" id="eFy4q-cPhD:xWFQ|LO1f">
                                                                 <mutation items="3"></mutation>
                                                                 <value name="ADD0">
                                                                   <block type="variables_get" id=";$UrDWF]KPE{L^K`r/hr">
                                                                     <field name="VAR" id="sgYRW3,@::dC5Ux]x;8|" variabletype="">person_2</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="ADD1">
                                                                   <block type="text" id="wwJ^.~7}z9=7(BjXQ.p)">
                                                                     <field name="TEXT"> </field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="ADD2">
                                                                   <block type="text" id="lM_E)oJ#UCr|#hxu*pAT">
                                                                     <field name="TEXT">ist offline ❌</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <value name="DELAY_MS">
                                                               <shadow type="math_number" id="~ECK]+XM?KdV2JNU{|2O">
                                                                 <field name="NUM">0</field>
                                                               </shadow>
                                                             </value>
                                                           </block>
                                                         </statement>
                                                       </block>
                                                     </statement>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                         </statement>
                                         <next>
                                           <block type="on_ext" id="kBmahL8nnn?vxO//$f-[">
                                             <mutation items="1"></mutation>
                                             <field name="CONDITION">ne</field>
                                             <field name="ACK_CONDITION"></field>
                                             <value name="OID0">
                                               <shadow type="field_oid" id="ni$tZS5FQYqe`2,/#UC,">
                                                 <field name="oid">default</field>
                                               </shadow>
                                               <block type="variables_get" id="QQcy{{[8Zg74:pbx$kRi">
                                                 <field name="VAR" id="lvz.2`K]e8c1*JEc-vJu" variabletype="">anwesenheit_person_1</field>
                                               </block>
                                             </value>
                                             <statement name="STATEMENT">
                                               <block type="controls_if" id="$/OU#xEey?~;BXD:2yDW">
                                                 <mutation else="1"></mutation>
                                                 <value name="IF0">
                                                   <block type="logic_compare" id="Q~Ms:uf(M:~S,tM9,~js">
                                                     <field name="OP">EQ</field>
                                                     <value name="A">
                                                       <block type="on_source" id="i@wtxhk*E|Qo{AoB_u?I">
                                                         <field name="ATTR">state.val</field>
                                                       </block>
                                                     </value>
                                                     <value name="B">
                                                       <block type="text_join" id="@,A~!kjAU/-aY3.wbM9;">
                                                         <mutation items="3"></mutation>
                                                         <value name="ADD0">
                                                           <block type="variables_get" id="TACK]j|)Lo@,E00/vwhP">
                                                             <field name="VAR" id=";^euFaDvC/jHl4C^!SUw" variabletype="">person_1</field>
                                                           </block>
                                                         </value>
                                                         <value name="ADD1">
                                                           <block type="text" id="7hOD~O*?LrVG~dZ8TQ5`">
                                                             <field name="TEXT"> </field>
                                                           </block>
                                                         </value>
                                                         <value name="ADD2">
                                                           <block type="text" id="L492!]0m|`X{r2h{+w=6">
                                                             <field name="TEXT">ist online ✅</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <statement name="DO0">
                                                   <block type="telegram" id="54*y/hkmyWndQBH{h#)V">
                                                     <field name="INSTANCE"></field>
                                                     <field name="LOG"></field>
                                                     <field name="SILENT">FALSE</field>
                                                     <field name="PARSEMODE">Markdown</field>
                                                     <value name="MESSAGE">
                                                       <shadow type="text" id="F8`_}5Ls0W8c7x2c+hZa">
                                                         <field name="TEXT">text</field>
                                                       </shadow>
                                                       <block type="text_join" id="IGB?:md|3ZD;,sYcS|bg">
                                                         <mutation items="3"></mutation>
                                                         <value name="ADD0">
                                                           <block type="variables_get" id="/tAT/wS-)[}+6m*I4~g8">
                                                             <field name="VAR" id=";^euFaDvC/jHl4C^!SUw" variabletype="">person_1</field>
                                                           </block>
                                                         </value>
                                                         <value name="ADD1">
                                                           <block type="text" id="fFlUO))aCIA!f=Yag|;M">
                                                             <field name="TEXT"> </field>
                                                           </block>
                                                         </value>
                                                         <value name="ADD2">
                                                           <block type="text" id="V[o?yVyX~D{w{(:^NNVr">
                                                             <field name="TEXT">ist online ✅</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <value name="USERNAME">
                                                       <block type="variables_get" id="41ZPm5?AKrt.cqhBg3{2">
                                                         <field name="VAR" id="![EW]9b!hQ9S[MT.q}6-" variabletype="">telegram_benutzer</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </statement>
                                                 <statement name="ELSE">
                                                   <block type="telegram" id="gONL!Ak:KiDx*lp_)..%">
                                                     <field name="INSTANCE"></field>
                                                     <field name="LOG"></field>
                                                     <field name="SILENT">FALSE</field>
                                                     <field name="PARSEMODE">Markdown</field>
                                                     <value name="MESSAGE">
                                                       <shadow type="text" id="=nQH.TsZSn{lfpy^dbYY">
                                                         <field name="TEXT">text</field>
                                                       </shadow>
                                                       <block type="text_join" id="z,us3C]4=+L0DA.p_}lp">
                                                         <mutation items="3"></mutation>
                                                         <value name="ADD0">
                                                           <block type="variables_get" id="i3Q4|n~53-sQ?^T*H.TC">
                                                             <field name="VAR" id=";^euFaDvC/jHl4C^!SUw" variabletype="">person_1</field>
                                                           </block>
                                                         </value>
                                                         <value name="ADD1">
                                                           <block type="text" id="QFr-g%mo//Sg8;:roRfA">
                                                             <field name="TEXT"> </field>
                                                           </block>
                                                         </value>
                                                         <value name="ADD2">
                                                           <block type="text" id=")0nYWe-N-O.,_Jrn${Vm">
                                                             <field name="TEXT">ist offline ❌</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <value name="USERNAME">
                                                       <block type="variables_get" id="vm,}kUg}PwBi!:PsGM,{">
                                                         <field name="VAR" id="![EW]9b!hQ9S[MT.q}6-" variabletype="">telegram_benutzer</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </statement>
                                               </block>
                                             </statement>
                                             <next>
                                               <block type="on_ext" id="q4OPoLnwQVEJSw$nioXu">
                                                 <mutation items="1"></mutation>
                                                 <field name="CONDITION">ne</field>
                                                 <field name="ACK_CONDITION"></field>
                                                 <value name="OID0">
                                                   <shadow type="field_oid" id="hXjoTKk;7Ym;i+XqSni1">
                                                     <field name="oid">default</field>
                                                   </shadow>
                                                   <block type="variables_get" id="U=OI/?JPPNn/VeC.eoBY">
                                                     <field name="VAR" id="@i-nl2q|$|OFpK!Yx+CC" variabletype="">anwesenheit_person_2</field>
                                                   </block>
                                                 </value>
                                                 <statement name="STATEMENT">
                                                   <block type="controls_if" id="({xqy3x//DnK@jj08nId">
                                                     <mutation else="1"></mutation>
                                                     <value name="IF0">
                                                       <block type="logic_compare" id="7hJU.dk^tV/xxaHXK:96">
                                                         <field name="OP">EQ</field>
                                                         <value name="A">
                                                           <block type="on_source" id="lLs6wkl|I#q4lph`RbX(">
                                                             <field name="ATTR">state.val</field>
                                                           </block>
                                                         </value>
                                                         <value name="B">
                                                           <block type="text_join" id="kT/l3;AAS%)aS2G#O$Kn">
                                                             <mutation items="3"></mutation>
                                                             <value name="ADD0">
                                                               <block type="variables_get" id="iVvqZxBB66K4Oco(cXJa">
                                                                 <field name="VAR" id="sgYRW3,@::dC5Ux]x;8|" variabletype="">person_2</field>
                                                               </block>
                                                             </value>
                                                             <value name="ADD1">
                                                               <block type="text" id="(J`VLxYAOs=YWWOW$[H+">
                                                                 <field name="TEXT"> </field>
                                                               </block>
                                                             </value>
                                                             <value name="ADD2">
                                                               <block type="text" id="o@}[*NOAo(#=4meNSS8q">
                                                                 <field name="TEXT">ist online ✅</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <statement name="DO0">
                                                       <block type="telegram" id="G/k/uD]_e{FwK|;oni_9">
                                                         <field name="INSTANCE"></field>
                                                         <field name="LOG"></field>
                                                         <field name="SILENT">FALSE</field>
                                                         <field name="PARSEMODE">Markdown</field>
                                                         <value name="MESSAGE">
                                                           <shadow type="text" id="F8`_}5Ls0W8c7x2c+hZa">
                                                             <field name="TEXT">text</field>
                                                           </shadow>
                                                           <block type="text_join" id="EwI{:V.W#KbT~#,))hp4">
                                                             <mutation items="3"></mutation>
                                                             <value name="ADD0">
                                                               <block type="variables_get" id="rXJ#~l_SmSueR^}c}c+2">
                                                                 <field name="VAR" id="sgYRW3,@::dC5Ux]x;8|" variabletype="">person_2</field>
                                                               </block>
                                                             </value>
                                                             <value name="ADD1">
                                                               <block type="text" id="{++h2{_?][DK]_UJQ!1;">
                                                                 <field name="TEXT"> </field>
                                                               </block>
                                                             </value>
                                                             <value name="ADD2">
                                                               <block type="text" id="+T~B`e5Yo89(P:rS[eXJ">
                                                                 <field name="TEXT">ist online ✅</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <value name="USERNAME">
                                                           <block type="variables_get" id="SIP/Bn3+q.?-|~fP{|mj">
                                                             <field name="VAR" id="![EW]9b!hQ9S[MT.q}6-" variabletype="">telegram_benutzer</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </statement>
                                                     <statement name="ELSE">
                                                       <block type="telegram" id="QrG*QsVt38c~9UI4H1.U">
                                                         <field name="INSTANCE"></field>
                                                         <field name="LOG"></field>
                                                         <field name="SILENT">FALSE</field>
                                                         <field name="PARSEMODE">Markdown</field>
                                                         <value name="MESSAGE">
                                                           <shadow type="text" id="=nQH.TsZSn{lfpy^dbYY">
                                                             <field name="TEXT">text</field>
                                                           </shadow>
                                                           <block type="text_join" id="i*RxzVi!*A==)}IS5C}S">
                                                             <mutation items="3"></mutation>
                                                             <value name="ADD0">
                                                               <block type="variables_get" id="}%!^~Qa|-+l=w6[91@*f">
                                                                 <field name="VAR" id="sgYRW3,@::dC5Ux]x;8|" variabletype="">person_2</field>
                                                               </block>
                                                             </value>
                                                             <value name="ADD1">
                                                               <block type="text" id="nE0K73Q(?EJwI52FCdl@">
                                                                 <field name="TEXT"> </field>
                                                               </block>
                                                             </value>
                                                             <value name="ADD2">
                                                               <block type="text" id="zQ8F1qC^L?*7c#hE}z_A">
                                                                 <field name="TEXT">ist offline ❌</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <value name="USERNAME">
                                                           <block type="variables_get" id="M|AZ+FjOe.JP3wkCCbbC">
                                                             <field name="VAR" id="![EW]9b!hQ9S[MT.q}6-" variabletype="">telegram_benutzer</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </statement>
                                                   </block>
                                                 </statement>
                                               </block>
                                             </next>
                                           </block>
                                         </next>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </next>
                   </block>
                 </statement>
               </block>
              </xml>
              

              crunchip 1 Reply Last reply Reply Quote 2
              • crunchip
                crunchip Forum Testing Most Active @dslraser last edited by

                @dslraser 👍 ich werde es mal testen

                dslraser 1 Reply Last reply Reply Quote 1
                • dslraser
                  dslraser Forum Testing Most Active @crunchip last edited by

                  @crunchip sagte in [Major Update] UniFi Adapter v0.5.0:

                  @dslraser 👍 ich werde es mal testen

                  Hat heute morgen und eben (ich war unterwegs) funktioniert wie gewünscht.

                  Screenshot_20200525-133128_Telegram.jpg

                  crunchip 1 Reply Last reply Reply Quote 0
                  • crunchip
                    crunchip Forum Testing Most Active @dslraser last edited by crunchip

                    @dslraser ja sieht besser aus, soweit ich testen konnte.
                    Übrigens läuft der radar2 in der neuen Version(v1.9.9) prima, werde diese DP's wohl wieder für Anwesend verwenden.

                    braindead 1 Reply Last reply Reply Quote 0
                    • braindead
                      braindead Developer @crunchip last edited by

                      @crunchip Wenn online sofort funktioniert, offline aber Probleme macht, dann muss ich wohl doch ein Offset einbauen für offline, oder? Wobei ich mich etwas wunder, dass es bei meinem Android Handy ohne Offset funktioniert. Hast Du ein Apple Gerät?

                      K crunchip dslraser 4 Replies Last reply Reply Quote 0
                      • K
                        Kueppert @braindead last edited by

                        @braindead ich könnte mir fast vorstellen, dass hier ggf. jedes Handy (Hersteller/Android-Version) anders reagiert. Einen fest verbauten Offset im Code würde ich jetzt nicht so gut finden - oder meinstest du einen Offset, den man selbst im Adapter angeben kann?

                        braindead 1 Reply Last reply Reply Quote 0
                        • braindead
                          braindead Developer @Kueppert last edited by

                          @Kueppert Korrekt, der Offset muss konfigurierbar sein. Andernfalls ist er für einige User zu klein und für andere zu groß.

                          1 Reply Last reply Reply Quote 1
                          • crunchip
                            crunchip Forum Testing Most Active @braindead last edited by crunchip

                            @braindead nein sind beides Galaxy S10. Ein S10 und ein S10+. Auch sind beide per Einstellung bei Energiemodus auf maximale Leistung gestellt und auch der Wlan Energiesparmodus ist deaktiviert.
                            Dann wahrscheinlich die beste Wahl, es im Adapter konfigurierbar zu machen.

                            1 Reply Last reply Reply Quote 0
                            • dslraser
                              dslraser Forum Testing Most Active @braindead last edited by dslraser

                              @braindead sagte in [Major Update] UniFi Adapter v0.5.0:

                              Wobei ich mich etwas wunder, dass es bei meinem Android Handy ohne Offset funktioniert.

                              Hast Du einen AP, oder mehrere ?
                              (EDIT: wir haben hier ein Samsung Note 8 und ein Samsung Note 10 plus 5G---eingestellt wie bei @crunchip )

                              1 Reply Last reply Reply Quote 0
                              • dslraser
                                dslraser Forum Testing Most Active @braindead last edited by

                                @braindead sagte in [Major Update] UniFi Adapter v0.5.0:

                                Wenn online sofort funktioniert, offline aber Probleme macht, dann muss ich wohl doch ein Offset einbauen für offline, oder?

                                Beides funktioniert sofort.
                                Aber ich habe es gestern bei mir noch mal getestet. Wenn ich mit dem Handy in den Keller laufe, dann wechselt das Handy den AP und dann geht der DP is_online für einen Durchlauf auf false, da kann ich live zusehen. Wenn ich jetzt einfach im Adapter das Intervall verlängere geht es ja auch nur "zufällig", da ich ja nicht weiß wie weit der Durchlauf gerade ist wenn das Handy den DP wechselt und kurz auf false geht. Deswegen hatte ich es für mich erstmal so gelöst. " 2 Minuten ist bei mir ein guter Wert. Auch 1,5 Minuten waren vorhin schon zu kurz.

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

                                  Ich hab jetzt seit 2 Tagen ein Testscript für die Anwesenheit am laufen. Bei mir läuft es soweit top, einzig beim wechsel des AP (hab 3 davon) kann es zu einer kurzen "falsch Meldung" kommen, wenn ich in der Bude rumlaufe aber nur dann. Stört mich jetzt soweit nicht, da im Gegensatz zum tr-064 die Erkennung dafür auch wesentlich schneller ist. Falls das mit einem konfigurierbarem Offset lösbar wäre, wäre das natürlich top! 👍

                                  dslraser 1 Reply Last reply Reply Quote 0
                                  • dslraser
                                    dslraser Forum Testing Most Active @Xsev last edited by

                                    @Xsev sagte in [Major Update] UniFi Adapter v0.5.0:

                                    einzig beim wechsel des AP (hab 3 davon) kann es zu einer kurzen "falsch Meldung" kommen, wenn ich in der Bude rumlaufe aber nur dann

                                    Ja genau. Deshalb eine Verzögerung. Wenn Du darüber eine Anwesenheitserkennung realisieren willst, dann wäre das

                                    Stört mich jetzt soweit nicht

                                    nicht sehr hilfreich. Es könnte ja sein das Du bei Anwesenheit dies oder jenes an oder ausschaltest und bei Abwesenheit umgekehrt, da wären "Falschmeldungen" störend.

                                    Xsev 1 Reply Last reply Reply Quote 0
                                    • Sunshinemaker
                                      Sunshinemaker last edited by

                                      @braindead

                                      Wir haben hier 3 iPhones mit aktuellster Software und bei denen kommt es zu keinen Falschmeldungen. Ich hab keine Verzögerung eingebaut oder so, quasi Out-of-the-Box und läuft alles wie gewünscht.

                                      dslraser 1 Reply Last reply Reply Quote 0
                                      • dslraser
                                        dslraser Forum Testing Most Active @Sunshinemaker last edited by

                                        @Sören sagte in [Major Update] UniFi Adapter v0.5.0:

                                        bei denen kommt es zu keinen Falschmeldungen

                                        Und wieviel AP gibt es bei Dir ? Einen oder mehrere ? (weil es vermutlich daran liegt, wenn es mehrere AP gibt)

                                        Sunshinemaker 1 Reply Last reply Reply Quote 1
                                        • Xsev
                                          Xsev @dslraser last edited by Xsev

                                          @dslraser

                                          Stört mich aktuell nicht, da ich derzeit (noch)nichts damit schalte. Aber gebe dir natürlich recht.

                                          1 Reply Last reply Reply Quote 0
                                          • Sunshinemaker
                                            Sunshinemaker @dslraser last edited by

                                            @dslraser said in [Major Update] UniFi Adapter v0.5.0:

                                            Und wieviel AP gibt es bei Dir ? Einen oder mehrere ? (weil es vermutlich daran liegt, wenn es mehrere AP gibt)

                                            Ich hab hier nur einen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            411
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            unifi
                                            54
                                            510
                                            84938
                                            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