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

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Major Update] UniFi Adapter v0.5.0

    This topic has been deleted. Only users with topic management privileges can see it.
    • braindead
      braindead Developer @Camuri last edited by

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

      Bei mir werden alle DP angelegt außer die hier 😞

      Einige DP sind nicht bei jedem Device vorhanden und werden deshalb nicht angelegt. Welche Devices hast Du und bei welchen erwartest Du den DP?

      C 1 Reply Last reply Reply Quote 0
      • C
        Camuri @braindead last edited by

        @braindead vor dem 0.5 Update hatte ich den Speedtest ja auch in den DPs hier laufen momentan Security Gateway 3P, 8er Poe Switch und 6 Unifi AP-AC Pro

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

          Mit dem aktuellen Update der UDM auf Firmware 1.7. hat sich die API geändert. Der Controller der UDM ist mit diesem Update nicht mehr unter Port 8443 erreichbar. Der API Endpunkt ist nun nicht mehr

          https://unifi-udm:8443/api/s/default/stat/...

          sondern

          https://unifi-udm/proxy/network/api/s/default/stat/...

          Durch dieses Firmware Update ist der Adapter in Verbindung mit der UDM aktuell nicht einsetzbar. Hinzu kommt, dass der Unifi-Controller auf dem Cloudkey jedoch nach wie vor mit den alten Pfaden erreichbar ist. Somit müsste man in der Konfiguration des Adapters irgendeine Konfigurationsmöglichkeit schaffen, um auszuwählen, ob es sich um eine UDM handelt oder um einen "klassischen" Controller.

          Viele Grüße

          Tom

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

            @Tom-0 Der Adapter nutzt zur Kommunikation mit dem Controller node-unifi. Die Unterstützung für UniFiOS/UDM wurde dort gerade erst offiziell implementiert.

            Ich habe gerade v0.5.1-beta.2 des Adapters auf GitHub veröffentlicht. Es wäre toll, wenn Du die Version einmal testen und mir Feedback geben könntest, ob der Adapter problemlos mit UniFiOS/UDM arbeitet.

            https://github.com/iobroker-community-adapters/ioBroker.unifi

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

              @braindead Ist der Rest auch schon Testfähig?

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

                @Chaot Natürlich. 🙂

                Chaot 1 Reply Last reply Reply Quote 1
                • Chaot
                  Chaot @braindead last edited by Chaot

                  @braindead Na dann ..... Ich bin schon 24 Stunden ohne Fehlermeldung 😊

                  Edit:
                  Sieh an:

                  host.ioBroker	2020-05-20 19:26:18.262	info	Restart adapter system.adapter.unifi.0 because enabled
                  host.ioBroker	2020-05-20 19:26:18.262	info	instance system.adapter.unifi.0 terminated with code 0 (NO_ERROR)
                  host.ioBroker	2020-05-20 19:26:18.262	error	Caught by controller[0]: at /opt/iobroker/node_modules/iobroker.unifi/main.js:347:21
                  host.ioBroker	2020-05-20 19:26:18.261	error	Caught by controller[0]: at Unifi.processClients (/opt/iobroker/node_modules/iobroker.unifi/main.js:376:13)
                  host.ioBroker	2020-05-20 19:26:18.261	error	Caught by controller[0]: at Unifi.applyJsonLogic (/opt/iobroker/node_modules/iobroker.unifi/main.js:881:33)
                  host.ioBroker	2020-05-20 19:26:18.261	error	Caught by controller[0]: at processTicksAndRejections (internal/process/task_queues.js:97:5)
                  host.ioBroker	2020-05-20 19:26:18.261	error	Caught by controller[0]: at Unifi.applyJsonLogic (/opt/iobroker/node_modules/iobroker.unifi/main.js:820:36)
                  host.ioBroker	2020-05-20 19:26:18.261	error	Caught by controller[0]: at Unifi.extendObjectAsync (/opt/iobroker/node_modules/iobroker.js-controller/lib/tools.js:1584:16)
                  host.ioBroker	2020-05-20 19:26:18.261	error	Caught by controller[0]: at new Promise (<anonymous>)
                  host.ioBroker	2020-05-20 19:26:18.260	error	Caught by controller[0]: at /opt/iobroker/node_modules/iobroker.js-controller/lib/tools.js:1585:16
                  host.ioBroker	2020-05-20 19:26:18.260	error	Caught by controller[0]: at Unifi.extendObject (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2015:17)
                  host.ioBroker	2020-05-20 19:26:18.260	error	Caught by controller[0]: at validateId (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:518:23)
                  host.ioBroker	2020-05-20 19:26:18.260	error	Caught by controller[0]: Error: The "default.clients." is invalid. Ids are not allowed to end in "."
                  host.ioBroker	2020-05-20 19:26:18.259	error	Caught by controller[0]: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejecte
                  unifi.0	2020-05-20 19:26:17.716	error	at /opt/iobroker/node_modules/iobroker.unifi/main.js:347:21
                  unifi.0	2020-05-20 19:26:17.716	error	at Unifi.processClients (/opt/iobroker/node_modules/iobroker.unifi/main.js:376:13)
                  unifi.0	2020-05-20 19:26:17.716	error	at Unifi.applyJsonLogic (/opt/iobroker/node_modules/iobroker.unifi/main.js:881:33)
                  unifi.0	2020-05-20 19:26:17.716	error	at processTicksAndRejections (internal/process/task_queues.js:97:5)
                  unifi.0	2020-05-20 19:26:17.716	error	at Unifi.applyJsonLogic (/opt/iobroker/node_modules/iobroker.unifi/main.js:820:36)
                  unifi.0	2020-05-20 19:26:17.716	error	at Unifi.extendObjectAsync (/opt/iobroker/node_modules/iobroker.js-controller/lib/tools.js:1584:16)
                  unifi.0	2020-05-20 19:26:17.716	error	at new Promise (<anonymous>)
                  unifi.0	2020-05-20 19:26:17.716	error	at /opt/iobroker/node_modules/iobroker.js-controller/lib/tools.js:1585:16
                  unifi.0	2020-05-20 19:26:17.716	error	at Unifi.extendObject (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2015:17)
                  unifi.0	2020-05-20 19:26:17.716	error	at validateId (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:518:23)
                  unifi.0	2020-05-20 19:26:17.716	error	(2418) Error: The "default.clients." is invalid. Ids are not allowed to end in "."
                  unifi.0	2020-05-20 19:26:17.703	error	(2418) unhandled promise rejection: The "default.clients." is invalid. Ids are not allowed to end in "."
                  Unhandled	2020-05-20 19:26:17.701	error	promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
                  host.ioBroker	2020-05-20 19:26:14.400	info	instance system.adapter.unifi.0 started with pid 2418
                  

                  🤒

                  Edit2:
                  Zurück auf 5.0 Fehler weg.

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

                    @Chaot Ich guck mir das später mal an. Jetzt geht's erstmal mit der Holden ins Autokino. 😎

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

                      @braindead
                      Ich habe jetzt mal die 0.5.1-beta.2 drauf. Der Punkt is_online funktioniert bei mir auf 30 Sekunden Intervall hervorragend. 👍
                      Ich habe mal bis auf mein Handy alles geblacklistet (war ne schöne klickerei😕 )
                      Wenn nur ein Gerät da ist, dann schmiert der Adapter erstmal ab. Mit zwei Geräten passiert das bei mir nicht. Wenn ich dann mit nur einem Gerät neu starte, dann bleibt der Adapter ohne Fehler. Ich werde den Adapter mal ne Weile laufen lassen und mir mal Telegram Nachrichten schicken lassen, mal sehen ob die Handys brav online bleiben (auch im Ruhemodes)
                      Vielen Dank für Deine Arbeit.👍

                      2020-05-20 20:41:31.369 - error: host.iobroker Caught by controller[0]: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
                      2020-05-20 20:41:31.374 - error: host.iobroker Caught by controller[1]: Error: The "default.clients." is invalid. Ids are not allowed to end in "."
                      2020-05-20 20:41:31.374 - error: host.iobroker Caught by controller[1]: at validateId (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:518:23)
                      2020-05-20 20:41:31.374 - error: host.iobroker Caught by controller[1]: at Unifi.extendObject (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2015:17)
                      2020-05-20 20:41:31.375 - error: host.iobroker Caught by controller[1]: at /opt/iobroker/node_modules/iobroker.js-controller/lib/tools.js:1585:16
                      2020-05-20 20:41:31.375 - error: host.iobroker Caught by controller[1]: at new Promise ()
                      2020-05-20 20:41:31.375 - error: host.iobroker Caught by controller[1]: at Unifi.extendObjectAsync (/opt/iobroker/node_modules/iobroker.js-controller/lib/tools.js:1584:16)
                      2020-05-20 20:41:31.375 - error: host.iobroker Caught by controller[1]: at Unifi.applyJsonLogic (/opt/iobroker/node_modules/iobroker.unifi/main.js:820:36)
                      2020-05-20 20:41:31.376 - error: host.iobroker Caught by controller[1]: at processTicksAndRejections (internal/process/task_queues.js:97:5)
                      2020-05-20 20:41:31.376 - error: host.iobroker Caught by controller[1]: at Unifi.applyJsonLogic (/opt/iobroker/node_modules/iobroker.unifi/main.js:881:33)
                      2020-05-20 20:41:31.376 - error: host.iobroker Caught by controller[1]: at Unifi.processClients (/opt/iobroker/node_modules/iobroker.unifi/main.js:376:13)
                      2020-05-20 20:41:31.376 - error: host.iobroker Caught by controller[1]: at /opt/iobroker/node_modules/iobroker.unifi/main.js:347:21
                      

                      EDIT: bei is_online wird der Wert ganz kurz von null auf true/false geändert ? Das Gerät ist aber dauerhaft online.

                      Bildschirmfoto 2020-05-20 um 21.07.42.png

                      20.5.2020, 21:05:17.350	[info ]: javascript.0 (2548) Stop script script.js.13_Anwesenheit.Test_Unifi_Anwesenheit
                      20.5.2020, 21:05:17.474	[info ]: javascript.0 (2548) Start javascript script.js.13_Anwesenheit.Test_Unifi_Anwesenheit
                      20.5.2020, 21:05:17.488	[info ]: javascript.0 (2548) script.js.13_Anwesenheit.Test_Unifi_Anwesenheit: registered 1 subscription and 0 schedules
                      20.5.2020, 21:05:26.968	[info ]: javascript.0 (2548) script.js.13_Anwesenheit.Test_Unifi_Anwesenheit: 30 Sekunden Intervall: null
                      20.5.2020, 21:05:26.991	[info ]: javascript.0 (2548) script.js.13_Anwesenheit.Test_Unifi_Anwesenheit: 30 Sekunden Intervall: false
                      20.5.2020, 21:05:56.924	[info ]: javascript.0 (2548) script.js.13_Anwesenheit.Test_Unifi_Anwesenheit: 30 Sekunden Intervall: null
                      20.5.2020, 21:05:56.986	[info ]: javascript.0 (2548) script.js.13_Anwesenheit.Test_Unifi_Anwesenheit: 30 Sekunden Intervall: true
                      20.5.2020, 21:06:27.013	[info ]: javascript.0 (2548) script.js.13_Anwesenheit.Test_Unifi_Anwesenheit: 30 Sekunden Intervall: null
                      20.5.2020, 21:06:27.036	[info ]: javascript.0 (2548) script.js.13_Anwesenheit.Test_Unifi_Anwesenheit: 30 Sekunden Intervall: false
                      20.5.2020, 21:06:56.868	[info ]: javascript.0 (2548) script.js.13_Anwesenheit.Test_Unifi_Anwesenheit: 30 Sekunden Intervall: null
                      20.5.2020, 21:06:56.893	[info ]: javascript.0 (2548) script.js.13_Anwesenheit.Test_Unifi_Anwesenheit: 30 Sekunden Intervall: true
                      20.5.2020, 21:07:26.803	[info ]: javascript.0 (2548) script.js.13_Anwesenheit.Test_Unifi_Anwesenheit: 30 Sekunden Intervall: null
                      20.5.2020, 21:07:26.824	[info ]: javascript.0 (2548) script.js.13_Anwesenheit.Test_Unifi_Anwesenheit: 30 Sekunden Intervall: false
                      

                      60 Sekunden Update

                      Bildschirmfoto 2020-05-20 um 21.16.41.png

                      20.5.2020, 21:14:13.077	[info ]: javascript.0 (2548) Stop script script.js.13_Anwesenheit.Test_Unifi_Anwesenheit
                      20.5.2020, 21:14:13.201	[info ]: javascript.0 (2548) Start javascript script.js.13_Anwesenheit.Test_Unifi_Anwesenheit
                      20.5.2020, 21:14:13.214	[info ]: javascript.0 (2548) script.js.13_Anwesenheit.Test_Unifi_Anwesenheit: registered 1 subscription and 0 schedules
                      20.5.2020, 21:15:04.892	[info ]: javascript.0 (2548) script.js.13_Anwesenheit.Test_Unifi_Anwesenheit: 60 Sekunden Intervall: null
                      20.5.2020, 21:15:04.978	[info ]: javascript.0 (2548) script.js.13_Anwesenheit.Test_Unifi_Anwesenheit: 60 Sekunden Intervall: true
                      20.5.2020, 21:16:04.922	[info ]: javascript.0 (2548) script.js.13_Anwesenheit.Test_Unifi_Anwesenheit: 60 Sekunden Intervall: null
                      20.5.2020, 21:16:04.953	[info ]: javascript.0 (2548) script.js.13_Anwesenheit.Test_Unifi_Anwesenheit: 60 Sekunden Intervall: true
                      20.5.2020, 21:17:05.025	[info ]: javascript.0 (2548) script.js.13_Anwesenheit.Test_Unifi_Anwesenheit: 60 Sekunden Intervall: null
                      20.5.2020, 21:17:05.099	[info ]: javascript.0 (2548) script.js.13_Anwesenheit.Test_Unifi_Anwesenheit: 60 Sekunden Intervall: true
                      
                      braindead 1 Reply Last reply Reply Quote 0
                      • braindead
                        braindead Developer @dslraser last edited by

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

                        @braindead
                        Ich habe jetzt mal die 0.5.1-beta.2 drauf. Der Punkt is_online funktioniert bei mir auf 30 Sekunden Intervall hervorragend. 👍

                        30 Sekunden? Welche Scheingenauigkeit möchtest Du damit erreichen?

                        Wenn nur ein Gerät da ist, dann schmiert der Adapter erstmal ab. Mit zwei Geräten passiert das bei mir nicht.

                        Das habe ich ehrlich gesagt bisher nicht getestet, aber ich könnte mir vorstellen, dass das evtl. mit dem 30 Sekunden Intervall zu tun hat. Technisch logst Du Dich damit jedesmal ein, fragst ein paar Daten ab und meldest Dich wieder ab. Ich werde das mal bei mir testen.

                        EDIT: bei is_online wird der Wert ganz kurz von null auf true/false geändert ? Das Gerät ist aber dauerhaft online.

                        Gut beobachtet. Hintergrund ist, dass auch ein Client, der offline ist, erstmal in der Liste der Clients vorhanden ist. Ich guck mal, ob ich hier noch etwas verbessern kann.

                        dslraser 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:

                          30 Sekunden? Welche Scheingenauigkeit möchtest Du damit erreichen?

                          Das war nur zum testen. Und was meinst Du mit Scheingenauigkeit ? Standard ist 60 Sekunden eingestellt, da logge ich mich auch jedes Mal ein und aus. Ich bin ja nur am probieren welcher Wert für eine An/Abwesenheitserkennung Sinn macht.

                          braindead 2 Replies Last reply Reply Quote 0
                          • braindead
                            braindead Developer @dslraser last edited by

                            @dslraser Einige User erhoffen sich, dass sie sofort merken, ob ein Client on-/offline ist. Ich dachte Du wärst einer davon. Sorry. 🙂

                            Ich habe Deinen Test gerade bei mir nachgestellt: 30 Sekunden sind kein Problem. Nur ein Client funktioniert solange, wie dieser Client online ist. Geht dieser Client offline, bekomme ich die selbe Fehlermeldung wie Du. Das sollte sich leicht fixen lassen.

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

                              @dslraser Ich habe gerade v0.5.1-beta.3 auf GitHub veröffentlicht. Der Fehler sollte gefixt sein. Kannst Du das mal bei Dir probieren?

                              dslraser Chaot 2 Replies 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:

                                @dslraser Ich habe gerade v0.5.1-beta.3 auf GitHub veröffentlicht. Der Fehler sollte gefixt sein. Kannst Du das mal bei Dir probieren?

                                Mache ich, aber nicht mehr jetzt.✌

                                1 Reply Last reply Reply Quote 1
                                • Chaot
                                  Chaot @braindead last edited by

                                  @braindead Beta3 scheint bei mir jetzt zu klappen.
                                  Keine Fehlermeldung bisher. Mal Abwarten bis morgen.

                                  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:

                                    @dslraser Einige User erhoffen sich, dass sie sofort merken, ob ein Client on-/offline ist. Ich dachte Du wärst einer davon. Sorry. 🙂

                                    Ich habe Deinen Test gerade bei mir nachgestellt: 30 Sekunden sind kein Problem. Nur ein Client funktioniert solange, wie dieser Client online ist. Geht dieser Client offline, bekomme ich die selbe Fehlermeldung wie Du. Das sollte sich leicht fixen lassen.

                                    Der Fehler ist nun weg, jedenfalls kann ich ihn nicht mehr nachstellen.

                                    Danke auf jeden Fall.

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

                                      @dslraser und @Chaot v0.5.1-beta.5 ist gerade auf GitHub online gegangen. Das switchen von is_online zwischen null und dem richtigen Wert sollte behoben sein.

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

                                        @braindead Beta5 ist installiert. Bisher wieder ohne Fehlermeldungen. Es scheint auch alles zu funktionieren wie gewohnt.

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

                                          hab das nun mal mit dem unifi.0.default.clients.XYZ.is_online getestet, habe mir Telegram über den Schraubenschlüssel aktiviert.
                                          Problem jedoch Zeitstempel und letzte Änderung, somit kommt bei jedem Abfrageintervall eine Nachricht, da sich letzte Änderung fortlaufend mit aktualisiert,
                                          selbiges betrifft auch is_wired
                                          cefc9c78-01a2-4828-90a3-4f1c38084571-image.png
                                          in der History sieht .is_online so aus, funktioniert mit beta 5
                                          4a7744a6-87fd-483b-b009-ca7ff21337f2-image.png

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

                                            @crunchip

                                            ich mache es so und es funktioniert. (für is_online habe ich keinen vernünftigen Trigger hinbekommen, da letzter Wert und vorletzer Wert auch nicht funktioniert, auf Grund null/false oder null/true und der von Dir beschriebenen Aktualisierung)

                                            Bildschirmfoto 2020-05-22 um 12.47.37.png

                                            Bildschirmfoto 2020-05-22 um 12.53.23.png

                                            <xml xmlns="http://www.w3.org/1999/xhtml">
                                              <variables>
                                                <variable type="" id=";k,Ihk0[-)fmYrQXm8m^">anlegen_in</variable>
                                                <variable type="" id="nTXOZ!3I{zM-7hg^DXcc">last_seen_by_uap</variable>
                                                <variable type="undefined" id="schedule">schedule</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/IG51bGwgOiBsb29wUGFyYW1bMV1bJ2RlZiddOyAvLyBtaW1pYyBzYW1lIGJlaGF2aW9yIGFzIGNyZWF0ZVN0YXRlIGlmIG5vIGluaXQgdmFsdWUgaXMgcHJvdmlkZWQKICAgICAgICAgICAgY3JlYXRlU3RhdGUobG9vcFBhcmFtWzBdLCBsb29wSW5pdCwgZm9yY2UsIGxvb3BQYXJhbVsxXSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBudW1TdGF0ZXMtLTsKICAgICAgICAgICAgICAgIGlmIChudW1TdGF0ZXMgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gQWxsIHN0YXRlcyBwcm9jZXNzZWQuJyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykgeyAvLyBleGVjdXRlIGlmIGEgZnVuY3Rpb24gd2FzIHByb3ZpZGVkIHRvIHBhcmFtZXRlciBjYWxsYmFjawogICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gRnVuY3Rpb24gdG8gY2FsbGJhY2sgcGFyYW1ldGVyIHdhcyBwcm92aWRlZCcpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIH0gZWxzZSB7CiAgICAgICAgLy8gQ3JlYXRlIFN0YXRlcyB1bmRlciAwX3VzZXJkYXRhLjAKICAgICAgICBsZXQgbnVtU3RhdGVzID0gc3RhdGVzVG9DcmVhdGUubGVuZ3RoOwogICAgICAgIGxldCBjb3VudGVyID0gLTE7CiAgICAgICAgc3RhdGVzVG9DcmVhdGUuZm9yRWFjaChmdW5jdGlvbihsb29wUGFyYW0pIHsKICAgICAgICAgICAgY291bnRlciArPSAxOwogICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2cgKCdbRGVidWddIEN1cnJlbnRseSBwcm9jZXNzaW5nIGZvbGxvd2luZyBzdGF0ZTogWycgKyBsb29wUGFyYW1bMF0gKyAnXScpOwogICAgICAgICAgICBpZiggKCQobG9vcFBhcmFtWzBdKS5sZW5ndGggPiAwKSAmJiAoZXhpc3RzU3RhdGUobG9vcFBhcmFtWzBdKSkgKSB7IC8vIFdvcmthcm91bmQgZHVlIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9pb0Jyb2tlci9pb0Jyb2tlci5qYXZhc2NyaXB0L2lzc3Vlcy80NzgKICAgICAgICAgICAgICAgIC8vIFN0YXRlIGlzIGV4aXN0aW5nLgogICAgICAgICAgICAgICAgaWYgKFdBUk4gJiYgIWZvcmNlKSBsb2coJ1N0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ10gaXMgYWxyZWFkeSBleGlzdGluZyBhbmQgd2lsbCBubyBsb25nZXIgYmUgY3JlYXRlZC4nLCAnd2FybicpOwogICAgICAgICAgICAgICAgaWYgKCFXQVJOICYmIExPR19ERUJVRykgbG9nKCdbRGVidWddIFN0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ10gaXMgYWxyZWFkeSBleGlzdGluZy4gT3B0aW9uIGZvcmNlICg9b3ZlcndyaXRlKSBpcyBzZXQgdG8gWycgKyBmb3JjZSArICddLicpOwogICAgICAgICAgICAgICAgaWYoIWZvcmNlKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gU3RhdGUgZXhpc3RzIGFuZCBzaGFsbCBub3QgYmUgb3ZlcndyaXR0ZW4gc2luY2UgZm9yY2U9ZmFsc2UKICAgICAgICAgICAgICAgICAgICAvLyBTbywgd2UgZG8gbm90IHByb2NlZWQuCiAgICAgICAgICAgICAgICAgICAgbnVtU3RhdGVzLS07CiAgICAgICAgICAgICAgICAgICAgaWYgKG51bVN0YXRlcyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gQWxsIHN0YXRlcyBzdWNjZXNzZnVsbHkgcHJvY2Vzc2VkIScpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7IC8vIGV4ZWN1dGUgaWYgYSBmdW5jdGlvbiB3YXMgcHJvdmlkZWQgdG8gcGFyYW1ldGVyIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gQW4gb3B0aW9uYWwgY2FsbGJhY2sgZnVuY3Rpb24gd2FzIHByb3ZpZGVkLCB3aGljaCB3ZSBhcmUgZ29pbmcgdG8gZXhlY3V0ZSBub3cuJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gZ28gb3V0IGFuZCBjb250aW51ZSB3aXRoIG5leHQgZWxlbWVudCBpbiBsb29wLgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47IC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE4NDUyOTIwL2NvbnRpbnVlLWluLWN1cnNvci1mb3JlYWNoCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSAvLyBpZighZm9yY2UpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIFN0YXRlIGlzIG5vdCBleGlzdGluZyBvciBmb3JjZSA9IHRydWUsIHNvIHdlIGFyZSBjb250aW51aW5nIHRvIGNyZWF0ZSB0aGUgc3RhdGUgdGhyb3VnaCBzZXRPYmplY3QoKS4KICAgICAgICAgICAgbGV0IG9iaiA9IHt9OwogICAgICAgICAgICBvYmoudHlwZSA9ICdzdGF0ZSc7CiAgICAgICAgICAgIG9iai5uYXRpdmUgPSB7fTsKICAgICAgICAgICAgb2JqLmNvbW1vbiA9IGxvb3BQYXJhbVsxXTsKICAgICAgICAgICAgc2V0T2JqZWN0KGxvb3BQYXJhbVswXSwgb2JqLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgbG9nKCdDYW5ub3Qgd3JpdGUgb2JqZWN0IGZvciBzdGF0ZSBbJyArIGxvb3BQYXJhbVswXSArICddOiAnICsgZXJyKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIE5vdyB3ZSBhcmUgY3JlYXRpbmcgbmV3IHN0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ10nKQogICAgICAgICAgICAgICAgICAgIGxldCBpbml0ID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0uZGVmID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYobG9vcFBhcmFtWzFdLnR5cGUgPT09ICdudW1iZXInKSBpbml0ID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgaWYobG9vcFBhcmFtWzFdLnR5cGUgPT09ICdib29sZWFuJykgaW5pdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0udHlwZSA9PT0gJ3N0cmluZycpIGluaXQgPSAnJzsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBpbml0ID0gbG9vcFBhcmFtWzFdLmRlZjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdGUobG9vcFBhcmFtWzBdLCBpbml0LCB0cnVlLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBzZXRTdGF0ZSBkdXJjaGdlZsO8aHJ0OiAnICsgbG9vcFBhcmFtWzBdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bVN0YXRlcy0tOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bVN0YXRlcyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbGwgc3RhdGVzIHByb2Nlc3NlZC4nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7IC8vIGV4ZWN1dGUgaWYgYSBmdW5jdGlvbiB3YXMgcHJvdmlkZWQgdG8gcGFyYW1ldGVyIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBGdW5jdGlvbiB0byBjYWxsYmFjayBwYXJhbWV0ZXIgd2FzIHByb3ZpZGVkJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfSwgREVMQVkgKyAoMjAgKiBjb3VudGVyKSApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIH0KfQoKCmxldCBzdGF0ZXNUb0NyZWF0ZSA9IFsKICAgIC8vQW53ZXNlbmhlaXQgUGVyc29uZW4vSGFuZHlzCiAgICBbJ0Fud2VzZW5oZWl0LkhlaWtvJywgeyduYW1lJzonSGVpa28gQW53ZXNlbmhlaXQnLCAndHlwZSc6J3N0cmluZycsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonc3RyaW5nJywgJ2RlZic6J25vY2ggbGVlcicgfV0sCiAgICBbJ0Fud2VzZW5oZWl0LktlcnN0aW4nLCB7J25hbWUnOidLZXJzdGluIEFud2VzZW5oZWl0JywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J3N0cmluZycsICdkZWYnOidub2NoIGxlZXInIH1dLAogICAKXTsKCmNyZWF0ZVVzZXJTdGF0ZXMoYW5sZWdlbl9pbiwgZmFsc2UsIHN0YXRlc1RvQ3JlYXRlLCBmdW5jdGlvbigpezsKICAgIG1haW4oKTsKfSk7CgoK</field>
                                                <comment pinned="false" h="80" w="160">Datenpunkte erstellen</comment>
                                              </block>
                                              <block type="procedures_callcustomnoreturn" id="(4(-f$1VS~CwO}P[R@.6" x="13" y="63">
                                                <mutation name="Datenpunkte_anlegen">
                                                  <arg name="anlegen_in"></arg>
                                                </mutation>
                                                <value name="ARG0">
                                                  <block type="text" id="4)/(kKqpd^/S.|-%(%s!">
                                                    <field name="TEXT">javascript.0</field>
                                                  </block>
                                                </value>
                                              </block>
                                              <block type="procedures_defnoreturn" id="SSMy$1MUVX,GQsbb[2*m" x="13" y="138">
                                                <field name="NAME">main</field>
                                                <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                                <statement name="STACK">
                                                  <block type="variables_set" id="x/A;x*nKgX6!*YEVG!tq">
                                                    <field name="VAR" id="nTXOZ!3I{zM-7hg^DXcc" variabletype="">last_seen_by_uap</field>
                                                    <value name="VALUE">
                                                      <block type="field_oid" id="K-7W*}@_6*8kH(w#3=u0">
                                                        <field name="oid">unifi.0.default.clients.8c:b8:4a:34:ac:85.last_seen_by_uap</field>
                                                      </block>
                                                    </value>
                                                    <next>
                                                      <block type="schedule_create" id="S/j#m7!^1%Nt=iNwzRS-">
                                                        <field name="NAME">schedule</field>
                                                        <value name="SCHEDULE">
                                                          <shadow type="field_cron" id=";r[9Exo]CQHPwtqLrQZQ">
                                                            <field name="CRON">* * * * *</field>
                                                          </shadow>
                                                        </value>
                                                        <statement name="STATEMENT">
                                                          <block type="variables_set" id="o|V8!@#=5R+|*I`05TB4">
                                                            <field name="VAR" id="nTXOZ!3I{zM-7hg^DXcc" variabletype="">last_seen_by_uap</field>
                                                            <value name="VALUE">
                                                              <block type="field_oid" id="b,nG5]~+E^QmVj}^OLHK">
                                                                <field name="oid">unifi.0.default.clients.8c:b8:4a:34:ac:85.last_seen_by_uap</field>
                                                              </block>
                                                            </value>
                                                            <next>
                                                              <block type="controls_if" id="_z?rO3%XvQmDU%U1=lon">
                                                                <mutation else="1"></mutation>
                                                                <value name="IF0">
                                                                  <block type="logic_compare" id="/$w3`9Ff5xYiel|?K5Az">
                                                                    <field name="OP">LTE</field>
                                                                    <value name="A">
                                                                      <block type="math_arithmetic" id="VZ6IF-gK]$)JS9mN{`YK">
                                                                        <field name="OP">MINUS</field>
                                                                        <value name="A">
                                                                          <shadow type="math_number" id="QkfPH}!i3jgK?TzPhTe%">
                                                                            <field name="NUM">1</field>
                                                                          </shadow>
                                                                          <block type="time_get" id="a[3B]W)o~qbg7R,|dJ7b">
                                                                            <mutation format="false" language="false"></mutation>
                                                                            <field name="OPTION">m</field>
                                                                          </block>
                                                                        </value>
                                                                        <value name="B">
                                                                          <shadow type="math_number" id="fw{ZJArB^VS):u6pli(T">
                                                                            <field name="NUM">1</field>
                                                                          </shadow>
                                                                          <block type="convert_from_date" id="h@3O[Rmjr1W_;=7DZ:i`">
                                                                            <mutation format="false" language="false"></mutation>
                                                                            <field name="OPTION">m</field>
                                                                            <value name="VALUE">
                                                                              <block type="get_value_var" id="7Eq~kIl^~FZt/42Sm`V@">
                                                                                <field name="ATTR">val</field>
                                                                                <value name="OID">
                                                                                  <shadow type="text" id="y/6*Cdpp{jB70^`7!Yz+">
                                                                                    <field name="TEXT"></field>
                                                                                  </shadow>
                                                                                  <block type="variables_get" id="]6E|f-t0Ik)68zsY9^!g">
                                                                                    <field name="VAR" id="nTXOZ!3I{zM-7hg^DXcc" variabletype="">last_seen_by_uap</field>
                                                                                  </block>
                                                                                </value>
                                                                              </block>
                                                                            </value>
                                                                          </block>
                                                                        </value>
                                                                      </block>
                                                                    </value>
                                                                    <value name="B">
                                                                      <block type="math_number" id="-aa6)TlDt;0}DX3miju8">
                                                                        <field name="NUM">1</field>
                                                                      </block>
                                                                    </value>
                                                                  </block>
                                                                </value>
                                                                <statement name="DO0">
                                                                  <block type="control_ex" id="q8DK@_{T^+trL5u?goV]" inline="true">
                                                                    <field name="TYPE">true</field>
                                                                    <field name="CLEAR_RUNNING">FALSE</field>
                                                                    <value name="OID">
                                                                      <shadow type="field_oid" id="oI~m.j|.S**Jp#2.s;,j">
                                                                        <field name="oid">javascript.0.Anwesenheit.Heiko</field>
                                                                      </shadow>
                                                                    </value>
                                                                    <value name="VALUE">
                                                                      <shadow type="logic_boolean" id="onH/zg_lwNY;i9[%)$^d">
                                                                        <field name="BOOL">TRUE</field>
                                                                      </shadow>
                                                                      <block type="text" id="Ec6r1EfG`xz73%/NnY!k">
                                                                        <field name="TEXT">Heiko ist online ✅</field>
                                                                      </block>
                                                                    </value>
                                                                    <value name="DELAY_MS">
                                                                      <shadow type="math_number" id="yqWXH0g:VUZYAU{*-Lwk">
                                                                        <field name="NUM">0</field>
                                                                      </shadow>
                                                                    </value>
                                                                  </block>
                                                                </statement>
                                                                <statement name="ELSE">
                                                                  <block type="control_ex" id="~m81/itJLw]L5+x.f9j(" inline="true">
                                                                    <field name="TYPE">true</field>
                                                                    <field name="CLEAR_RUNNING">FALSE</field>
                                                                    <value name="OID">
                                                                      <shadow type="field_oid" id="Q|$,f:2fvqDb-qr(b.[Y">
                                                                        <field name="oid">javascript.0.Anwesenheit.Heiko</field>
                                                                      </shadow>
                                                                    </value>
                                                                    <value name="VALUE">
                                                                      <shadow type="logic_boolean" id="onH/zg_lwNY;i9[%)$^d">
                                                                        <field name="BOOL">TRUE</field>
                                                                      </shadow>
                                                                      <block type="text" id="e:z5Xl{@]xk_kF5Zt#I1">
                                                                        <field name="TEXT">Heiko ist offline ❌</field>
                                                                      </block>
                                                                    </value>
                                                                    <value name="DELAY_MS">
                                                                      <shadow type="math_number" id="w7Yo75yEr6SeiQTojkXq">
                                                                        <field name="NUM">0</field>
                                                                      </shadow>
                                                                    </value>
                                                                  </block>
                                                                </statement>
                                                              </block>
                                                            </next>
                                                          </block>
                                                        </statement>
                                                        <next>
                                                          <block type="on_ext" id="B9:ea#4L(Oy)Bn!/1XDs">
                                                            <mutation items="1"></mutation>
                                                            <field name="CONDITION">ne</field>
                                                            <field name="ACK_CONDITION"></field>
                                                            <value name="OID0">
                                                              <shadow type="field_oid" id="+{|4+_:MEg}y(8j4):jk">
                                                                <field name="oid">javascript.0.Anwesenheit.Heiko</field>
                                                              </shadow>
                                                            </value>
                                                            <statement name="STATEMENT">
                                                              <block type="controls_if" id="89X)lg$MSzz$I)(L[.@R">
                                                                <mutation else="1"></mutation>
                                                                <value name="IF0">
                                                                  <block type="logic_compare" id="bic_/sHb4(u+:*T{HBaI">
                                                                    <field name="OP">EQ</field>
                                                                    <value name="A">
                                                                      <block type="get_value" id="WIl,L_Tr4-jPC9#bj!LS">
                                                                        <field name="ATTR">val</field>
                                                                        <field name="OID">javascript.0.Anwesenheit.Heiko</field>
                                                                      </block>
                                                                    </value>
                                                                    <value name="B">
                                                                      <block type="text" id="Zrc,Gsx.Rl-VpL5{1FTH">
                                                                        <field name="TEXT">Heiko ist online ✅</field>
                                                                      </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" id="@W?c;cM+bwA__@R-$2Ex">
                                                                        <field name="TEXT">Heiko ist online ✅</field>
                                                                      </block>
                                                                    </value>
                                                                    <value name="USERNAME">
                                                                      <block type="text" id="e%4Xn,W12]|0tv_IN1s{">
                                                                        <field name="TEXT">Heiko</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" id="MzWy_rxy3nBlUY?~nN9r">
                                                                        <field name="TEXT">Heiko ist offline ❌</field>
                                                                      </block>
                                                                    </value>
                                                                    <value name="USERNAME">
                                                                      <block type="text" id="WR[xJSy`G(s0Y):xgWwf">
                                                                        <field name="TEXT">Heiko</field>
                                                                      </block>
                                                                    </value>
                                                                  </block>
                                                                </statement>
                                                              </block>
                                                            </statement>
                                                          </block>
                                                        </next>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </statement>
                                              </block>
                                            </xml>
                                            

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            813
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

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