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.
    • 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
                                        • braindead
                                          braindead Developer last edited by

                                          @crunchip Ich bin mir nicht ganz sicher, ob ich Deinen Text richtig verstehe, deshalb habe ich das bei mir mit v0.5.1-beta.5 nachgestellt und is_online und is_wired von meinem Handy werden geloggt und Änderungen werden mir per Telegram geschickt.

                                          Ich habe für die beiden DPs genau eine Telegram Nachricht bekommen, als das Handy offline gegangen ist. Genauso gab es jeweils nur einen Eintrag in der Historie. Selbiges ist passiert, als ich 30 Minuten später wieder online gegangen bin. Bei mir funktioniert die Aktualisierung der DPs also genau wie es sein soll.

                                          Die Tatsache, dass is_wired sich ändert, wenn der Client offline geht, ist ein Bug des UniFi Controllers. Ich habe versucht das abzufangen, es ist mir bisher aber nicht gelungen.

                                          @dslraser In v0.5.1-beta.5 gibt es die null/false bzw. null/true Problematik nicht mehr. Kannst Du das bitte einmal testen und bestätigen?

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

                                            In v0.5.1-beta.5 gibt es die null/false bzw. null/true Problematik nicht mehr. Kannst Du das bitte einmal testen und bestätigen?

                                            probiere ich aus.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            893
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

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