- ioBroker Community Home
- Deutsch
- Skripten / Logik
- Blockly
- [Gelöst] Netzwerkgeräte zählen mit Selektor und Blockly
[Gelöst] Netzwerkgeräte zählen mit Selektor und Blockly
-
Hi, ich verwende für mein Netzwerk mit Unifi Hardware den Unifi Adapter für iobroker. Ich würde jetzt gerne die Geräte mit einem bestimmten Namen und nur jene welche online sind zählen. Krieg ich das mit einem Selektor hin?
namecommonAttr=something1{nativeName=something3}[id=idfilter][state.id=idfilter]
Wollte das mit nativeName lösen, aber das wird wohl nicht gehen da dort keine wildcards erlaubt sind.
Ich bräuchte also einen Filter auf 2 States eines Objektes(is_online=true und hostname='*blabla*').

ich würde so vorgehen:
- selector auf "is_online"
- foreach block nutzen, um mit jedem Eintrag zu arbeiten

- per getState prüfen ob is_online = true, wenn nein, dann nächstes Element
- per String befehlen die ID vom Hostaname zusammen bauen (ich bin gerade nicht sicher ob im create_text "hostname" oder ".hostname" stehen muss - ich meine aber "hostname" ist richtig

- per getState den Hostanmen holen und mit dem von Dir gewünschten Muster verbinden. Nur wenn der passt - zählen.
A.
ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
"Shit don't work" ist keine Fehlermeldung, sondern ein Fluch. -
ich würde so vorgehen:
- selector auf "is_online"
- foreach block nutzen, um mit jedem Eintrag zu arbeiten

- per getState prüfen ob is_online = true, wenn nein, dann nächstes Element
- per String befehlen die ID vom Hostaname zusammen bauen (ich bin gerade nicht sicher ob im create_text "hostname" oder ".hostname" stehen muss - ich meine aber "hostname" ist richtig

- per getState den Hostanmen holen und mit dem von Dir gewünschten Muster verbinden. Nur wenn der passt - zählen.
A.
@Asgothian wie wird die Variable "text" gefüllt? Die ist bei mir so "undefined".
-
@Asgothian wie wird die Variable "text" gefüllt? Die ist bei mir so "undefined".
@gramar in die Variable Text musst du natürlich die Variable aus dem "for each item" eintragen.. wenn du da nichts angepasst hast, dann brauchst du einen Variablenbaustein, den du mit "i" definierst.
A.
ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
"Shit don't work" ist keine Fehlermeldung, sondern ein Fluch. -
@gramar
neinder Selektor liefert eine Liste von allen Datenpunkten zurück die dem Muster entsprechen
in dem "für jeden wert" Baustein wird diese Liste jetzt einen Eintrag nach dem anderen abgearbeitet.
i bekommt dabei immer den Wert des aktuell zu bearbeitenden Listeneintrags.A
ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
"Shit don't work" ist keine Fehlermeldung, sondern ein Fluch. -
Hi, ich verwende für mein Netzwerk mit Unifi Hardware den Unifi Adapter für iobroker. Ich würde jetzt gerne die Geräte mit einem bestimmten Namen und nur jene welche online sind zählen. Krieg ich das mit einem Selektor hin?
namecommonAttr=something1{nativeName=something3}[id=idfilter][state.id=idfilter]
Wollte das mit nativeName lösen, aber das wird wohl nicht gehen da dort keine wildcards erlaubt sind.
Ich bräuchte also einen Filter auf 2 States eines Objektes(is_online=true und hostname='*blabla*').

@gramar sagte:
Filter auf 2 States eines Objektes(is_online=true und hostname='blabla').
Mit Blockly wird es umständlich, jedoch mit Javascript ist es einfach.
const idsOnline = $('unify.0.default.clients.*.is_online'); idsOnline.on(function() { let anzahl = 0; idsOnline.each(function(id, i) { if(getState(id).val) { let idHost = id.replace('is_online', 'hostname'); let host = getState(idHost).val; if(host.includes('blabla')) anzahl++; } }); log(anzahl + ' Clients blabla sind online'); });Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs -
...ich stehe wohl gerade auf dem Schlauch...sorry...
"i" ist ja in meinem Beispiel dann immer true oder false. Ich verstehe nicht wie ich in die Variable "text" den Namen bzw. die "ID" des Datenpunktes hineinbekomme.
-
@gramar sagte:
Das geht mit Blockly also gar nicht!
Das geht auch mit Blockly, aber umständlich, da Blockly einige Methoden (z.B. replace, includes) nicht bietet.
Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs -
Hi, ich verwende für mein Netzwerk mit Unifi Hardware den Unifi Adapter für iobroker. Ich würde jetzt gerne die Geräte mit einem bestimmten Namen und nur jene welche online sind zählen. Krieg ich das mit einem Selektor hin?
namecommonAttr=something1{nativeName=something3}[id=idfilter][state.id=idfilter]
Wollte das mit nativeName lösen, aber das wird wohl nicht gehen da dort keine wildcards erlaubt sind.
Ich bräuchte also einen Filter auf 2 States eines Objektes(is_online=true und hostname='*blabla*').

@gramar habe noch ein script gefunden (vielleicht kannst du daraus was machen):
zählt die unifi clients
let myClientArray=[] let dpAnzahl='0_userdata.0.Unifi.AnzahlClientsWLAN'; let dpLastNew='0_userdata.0.Unifi.lastNewClient'; let oldClients; schedule(mySchedule, function () { countClients=0; oldClients=getState(dpAnzahl).val; $('unifi.0.default.clients.*.mac').each(function(id, i) { // hier eigene schleife definieren countClients++; if (existsState(id.replace("mac","ap_mac"))) { myClientArray.push(getState(id).val); // log(myClientArray[4]) } // abfrage ap_mac }); // log(countClients.toString()+" "+oldClients.toString()) if( oldClients < countClients) {log("alarm - new Client"); setState(dpLastNew,formatDate(getDateObject((parseFloat((new Date().getTime())))), "DD.MM.YYYY SS:mm:ss"));} oldClients=countClients; setState(dpAnzahl,countClients); });sonst hätte ich noch eines mit einer tabelle der clients - alle clients
https://forum.iobroker.net/topic/34491/htmltabelle-unificlients-newadapter

nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html
-
Hi, ich verwende für mein Netzwerk mit Unifi Hardware den Unifi Adapter für iobroker. Ich würde jetzt gerne die Geräte mit einem bestimmten Namen und nur jene welche online sind zählen. Krieg ich das mit einem Selektor hin?
namecommonAttr=something1{nativeName=something3}[id=idfilter][state.id=idfilter]
Wollte das mit nativeName lösen, aber das wird wohl nicht gehen da dort keine wildcards erlaubt sind.
Ich bräuchte also einen Filter auf 2 States eines Objektes(is_online=true und hostname='*blabla*').

gibt auch noch in blockly von @dslraser für die anwesenheit
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id=";k,Ihk0[-)fmYrQXm8m^">anlegen_in</variable> <variable id="fyVM({2.Ubq}R7hxFVRc">speicherort</variable> <variable id="![EW]9b!hQ9S[MT.q}6-">telegram_benutzer</variable> <variable id="nTXOZ!3I{zM-7hg^DXcc">person_1_is_online_DP</variable> <variable id="lvz.2`K]e8c1*JEc-vJu">anwesenheit_person_1</variable> <variable id="@i-nl2q|$|OFpK!Yx+CC">anwesenheit_person_2</variable> <variable id="yB(N?#)zIjYIo%.B@UT(">person_2_is_online_DP</variable> <variable id=";^euFaDvC/jHl4C^!SUw">person_1</variable> <variable type="timeout" id="start">start</variable> <variable id="sgYRW3,@::dC5Ux]x;8|">person_2</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/IG51bGwgOiBsb29wUGFyYW1bMV1bJ2RlZiddOyAvLyBtaW1pYyBzYW1lIGJlaGF2aW9yIGFzIGNyZWF0ZVN0YXRlIGlmIG5vIGluaXQgdmFsdWUgaXMgcHJvdmlkZWQKICAgICAgICAgICAgY3JlYXRlU3RhdGUobG9vcFBhcmFtWzBdLCBsb29wSW5pdCwgZm9yY2UsIGxvb3BQYXJhbVsxXSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBudW1TdGF0ZXMtLTsKICAgICAgICAgICAgICAgIGlmIChudW1TdGF0ZXMgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gQWxsIHN0YXRlcyBwcm9jZXNzZWQuJyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykgeyAvLyBleGVjdXRlIGlmIGEgZnVuY3Rpb24gd2FzIHByb3ZpZGVkIHRvIHBhcmFtZXRlciBjYWxsYmFjawogICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gRnVuY3Rpb24gdG8gY2FsbGJhY2sgcGFyYW1ldGVyIHdhcyBwcm92aWRlZCcpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIH0gZWxzZSB7CiAgICAgICAgLy8gQ3JlYXRlIFN0YXRlcyB1bmRlciAwX3VzZXJkYXRhLjAKICAgICAgICBsZXQgbnVtU3RhdGVzID0gc3RhdGVzVG9DcmVhdGUubGVuZ3RoOwogICAgICAgIGxldCBjb3VudGVyID0gLTE7CiAgICAgICAgc3RhdGVzVG9DcmVhdGUuZm9yRWFjaChmdW5jdGlvbihsb29wUGFyYW0pIHsKICAgICAgICAgICAgY291bnRlciArPSAxOwogICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2cgKCdbRGVidWddIEN1cnJlbnRseSBwcm9jZXNzaW5nIGZvbGxvd2luZyBzdGF0ZTogWycgKyBsb29wUGFyYW1bMF0gKyAnXScpOwogICAgICAgICAgICBpZiggKCQobG9vcFBhcmFtWzBdKS5sZW5ndGggPiAwKSAmJiAoZXhpc3RzU3RhdGUobG9vcFBhcmFtWzBdKSkgKSB7IC8vIFdvcmthcm91bmQgZHVlIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9pb0Jyb2tlci9pb0Jyb2tlci5qYXZhc2NyaXB0L2lzc3Vlcy80NzgKICAgICAgICAgICAgICAgIC8vIFN0YXRlIGlzIGV4aXN0aW5nLgogICAgICAgICAgICAgICAgaWYgKFdBUk4gJiYgIWZvcmNlKSBsb2coJ1N0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ10gaXMgYWxyZWFkeSBleGlzdGluZyBhbmQgd2lsbCBubyBsb25nZXIgYmUgY3JlYXRlZC4nLCAnd2FybicpOwogICAgICAgICAgICAgICAgaWYgKCFXQVJOICYmIExPR19ERUJVRykgbG9nKCdbRGVidWddIFN0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ10gaXMgYWxyZWFkeSBleGlzdGluZy4gT3B0aW9uIGZvcmNlICg9b3ZlcndyaXRlKSBpcyBzZXQgdG8gWycgKyBmb3JjZSArICddLicpOwogICAgICAgICAgICAgICAgaWYoIWZvcmNlKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gU3RhdGUgZXhpc3RzIGFuZCBzaGFsbCBub3QgYmUgb3ZlcndyaXR0ZW4gc2luY2UgZm9yY2U9ZmFsc2UKICAgICAgICAgICAgICAgICAgICAvLyBTbywgd2UgZG8gbm90IHByb2NlZWQuCiAgICAgICAgICAgICAgICAgICAgbnVtU3RhdGVzLS07CiAgICAgICAgICAgICAgICAgICAgaWYgKG51bVN0YXRlcyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gQWxsIHN0YXRlcyBzdWNjZXNzZnVsbHkgcHJvY2Vzc2VkIScpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7IC8vIGV4ZWN1dGUgaWYgYSBmdW5jdGlvbiB3YXMgcHJvdmlkZWQgdG8gcGFyYW1ldGVyIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gQW4gb3B0aW9uYWwgY2FsbGJhY2sgZnVuY3Rpb24gd2FzIHByb3ZpZGVkLCB3aGljaCB3ZSBhcmUgZ29pbmcgdG8gZXhlY3V0ZSBub3cuJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gZ28gb3V0IGFuZCBjb250aW51ZSB3aXRoIG5leHQgZWxlbWVudCBpbiBsb29wLgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47IC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE4NDUyOTIwL2NvbnRpbnVlLWluLWN1cnNvci1mb3JlYWNoCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSAvLyBpZighZm9yY2UpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIFN0YXRlIGlzIG5vdCBleGlzdGluZyBvciBmb3JjZSA9IHRydWUsIHNvIHdlIGFyZSBjb250aW51aW5nIHRvIGNyZWF0ZSB0aGUgc3RhdGUgdGhyb3VnaCBzZXRPYmplY3QoKS4KICAgICAgICAgICAgbGV0IG9iaiA9IHt9OwogICAgICAgICAgICBvYmoudHlwZSA9ICdzdGF0ZSc7CiAgICAgICAgICAgIG9iai5uYXRpdmUgPSB7fTsKICAgICAgICAgICAgb2JqLmNvbW1vbiA9IGxvb3BQYXJhbVsxXTsKICAgICAgICAgICAgc2V0T2JqZWN0KGxvb3BQYXJhbVswXSwgb2JqLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgbG9nKCdDYW5ub3Qgd3JpdGUgb2JqZWN0IGZvciBzdGF0ZSBbJyArIGxvb3BQYXJhbVswXSArICddOiAnICsgZXJyKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIE5vdyB3ZSBhcmUgY3JlYXRpbmcgbmV3IHN0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ10nKQogICAgICAgICAgICAgICAgICAgIGxldCBpbml0ID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0uZGVmID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYobG9vcFBhcmFtWzFdLnR5cGUgPT09ICdudW1iZXInKSBpbml0ID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgaWYobG9vcFBhcmFtWzFdLnR5cGUgPT09ICdib29sZWFuJykgaW5pdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0udHlwZSA9PT0gJ3N0cmluZycpIGluaXQgPSAnJzsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBpbml0ID0gbG9vcFBhcmFtWzFdLmRlZjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdGUobG9vcFBhcmFtWzBdLCBpbml0LCB0cnVlLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBzZXRTdGF0ZSBkdXJjaGdlZsO8aHJ0OiAnICsgbG9vcFBhcmFtWzBdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bVN0YXRlcy0tOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bVN0YXRlcyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbGwgc3RhdGVzIHByb2Nlc3NlZC4nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7IC8vIGV4ZWN1dGUgaWYgYSBmdW5jdGlvbiB3YXMgcHJvdmlkZWQgdG8gcGFyYW1ldGVyIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBGdW5jdGlvbiB0byBjYWxsYmFjayBwYXJhbWV0ZXIgd2FzIHByb3ZpZGVkJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfSwgREVMQVkgKyAoMjAgKiBjb3VudGVyKSApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIH0KfQoKcGVyc29uMSA9ICdHYWxheHlTOScKcGVyc29uMiA9ICdGaXJlSERUYWJsZXQnCmxldCBzdGF0ZXNUb0NyZWF0ZSA9IFsKICAgIC8vQW53ZXNlbmhlaXQgUGVyc29uZW4vSGFuZHlzCiAgICBbJ1VuaWZpLkFud2VzZW5oZWl0LicrW3BlcnNvbjFdLCB7J25hbWUnOltwZXJzb24xXSsnIEFud2VzZW5oZWl0JywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J3N0cmluZycsICdkZWYnOidub2NoIGxlZXInIH1dLAogICAgWydVbmlmaS5Bbndlc2VuaGVpdC4nK1twZXJzb24yXSwgeyduYW1lJzpbcGVyc29uMl0rJyBBbndlc2VuaGVpdCcsICd0eXBlJzonc3RyaW5nJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonbm9jaCBsZWVyJyB9XSwKICAgCl07CgpjcmVhdGVVc2VyU3RhdGVzKGFubGVnZW5faW4sIGZhbHNlLCBzdGF0ZXNUb0NyZWF0ZSwgZnVuY3Rpb24oKXs7CiAgICBtYWluKCk7Cn0pOwoKCg==</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">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">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.e4:fd:a1:49:89:76.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(">person_2_is_online_DP</field> <value name="VALUE"> <block type="field_oid" id="-sv5+m0scL`QHg14v2P!"> <field name="oid">unifi.0.default.clients.68:9a:87:58:88:81.is_online</field> </block> </value> <next> <block type="variables_set" id="9m,K[:2^)KFEl|00rZQ7"> <field name="VAR" id=";^euFaDvC/jHl4C^!SUw">person_1</field> <value name="VALUE"> <block type="text" id="pJ}1(u|}l3lA7~[z+Wg5"> <field name="TEXT">MediaTabT5</field> </block> </value> <next> <block type="variables_set" id="k`L|~6i[HzfGD|D*L^Z["> <field name="VAR" id="sgYRW3,@::dC5Ux]x;8|">person_2</field> <value name="VALUE"> <block type="text" id="$^o6%]+%A^W3{Txo4Yds"> <field name="TEXT">FireHDTablet</field> </block> </value> <next> <block type="variables_set" id="bEu?$N6,|qbfd8h2t;xr"> <field name="VAR" id="![EW]9b!hQ9S[MT.q}6-">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"> <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">speicherort</field> </block> </value> </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" x="24" y="342"> <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`" collapsed="true"> <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">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">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">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">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">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|">person_2</field> </block> </value> </block> </value> <next> <block type="timeouts_settimeout" id=".|_m4*n~bGC)tC]M]!E^" collapsed="true"> <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 xmlns="http://www.w3.org/1999/xhtml" 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">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 xmlns="http://www.w3.org/1999/xhtml" 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">anwesenheit_person_1</field> </block> </value> <value name="VALUE"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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">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 xmlns="http://www.w3.org/1999/xhtml" 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">anwesenheit_person_1</field> </block> </value> <value name="VALUE"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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">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 xmlns="http://www.w3.org/1999/xhtml" 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(">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 xmlns="http://www.w3.org/1999/xhtml" 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">anwesenheit_person_2</field> </block> </value> <value name="VALUE"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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|">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 xmlns="http://www.w3.org/1999/xhtml" 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">anwesenheit_person_2</field> </block> </value> <value name="VALUE"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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|">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 xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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">person_1_is_online_DP</field> </block> </value> <statement name="STATEMENT"> <block type="controls_if" id="_z?rO3%XvQmDU%U1=lon"> <mutation else="1"></mutation> <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 xmlns="http://www.w3.org/1999/xhtml" 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">anwesenheit_person_1</field> </block> </value> <value name="VALUE"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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">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> <next> <block type="telegram" id="54*y/hkmyWndQBH{h#)V" disabled="true"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">Markdown</field> <value name="MESSAGE"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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">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> </block> </next> </block> </statement> <statement name="ELSE"> <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 xmlns="http://www.w3.org/1999/xhtml" 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">anwesenheit_person_1</field> </block> </value> <value name="VALUE"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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">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> <next> <block type="telegram" id="gONL!Ak:KiDx*lp_)..%" disabled="true"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">Markdown</field> <value name="MESSAGE"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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">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> </block> </next> </block> </statement> </block> </statement> <next> <block type="on_ext" id="~ObZs=5%-:^CnQuYO(z="> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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(">person_2_is_online_DP</field> </block> </value> <statement name="STATEMENT"> <block type="controls_if" id="!K2H`_FR~oD9eh*@T1|w"> <mutation else="1"></mutation> <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 xmlns="http://www.w3.org/1999/xhtml" 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">anwesenheit_person_2</field> </block> </value> <value name="VALUE"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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|">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> <next> <block type="telegram" id="G/k/uD]_e{FwK|;oni_9" disabled="true"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">Markdown</field> <value name="MESSAGE"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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|">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> </block> </next> </block> </statement> <statement name="ELSE"> <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 xmlns="http://www.w3.org/1999/xhtml" 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">anwesenheit_person_2</field> </block> </value> <value name="VALUE"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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|">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> <next> <block type="telegram" id="QrG*QsVt38c~9UI4H1.U" disabled="true"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">Markdown</field> <value name="MESSAGE"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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|">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> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="variables_get" id="41ZPm5?AKrt.cqhBg3{2" x="412" y="863"> <field name="VAR" id="![EW]9b!hQ9S[MT.q}6-">telegram_benutzer</field> </block> <block type="variables_get" id="vm,}kUg}PwBi!:PsGM,{" x="413" y="1162"> <field name="VAR" id="![EW]9b!hQ9S[MT.q}6-">telegram_benutzer</field> </block> <block type="variables_get" id="SIP/Bn3+q.?-|~fP{|mj" x="387" y="1637"> <field name="VAR" id="![EW]9b!hQ9S[MT.q}6-">telegram_benutzer</field> </block> <block type="variables_get" id="M|AZ+FjOe.JP3wkCCbbC" disabled="true" x="487" y="2038"> <field name="VAR" id="![EW]9b!hQ9S[MT.q}6-">telegram_benutzer</field> </block> </xml>
nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html
