NEWS
Adapter: ioBroker.unifi
-
Hi,
ich möchte auch gerne die An-Abwesenheits steuerung über den Unifi Adapter machen.
Installiert ist alles und die Daten kommen beim IOBroker an.
Nun möchte ich den last_seen Zeitstempel nutzen und wenn dieser upgedatet wird, dann bin ich anwesend und wenn nicht, dann abwesend.
Variable auf der CCU2 ist angelegt, wir aber leider nicht gefüllt
Ich bekomme das in Blockly irgendwie nicht hin…
Kann mir da bitte jemand unter die Arme greifen.. `
Folgendes Blockly Script läuft bei mir sehr gut mit Unifi für die Anwesenheit. Anstatt last_seen habe ich uptime_by_uap. Musst nur den client anpassen, hier wird alle 2 Minuten getriggert:Unbenannt.JPG
Blockly Import:
! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="create" id="LcnDrYS;;Bc/!E+1GuwZ" x="-837" y="13"><field name="NAME">Variablen.ICH_UAP</field></block>
! <block type="schedule" id="{@eI25!GvKfragf.dsL" x="-837" y="113"><field name="SCHEDULE">*/2 * * * *</field> ! <statement name="STATEMENT"><block type="controls_if" id="B+@.|[Ga9L/N^}7kRBv,"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="CniS*}L/,0cF#N|nCepx"><field name="OP">EQ</field> ! <value name="A"><block type="logic_compare" id="T_r[9FxM%kil?c^0EZ:J"><field name="OP">LT</field> ! <value name="A"><block type="math_arithmetic" id="B%^IgKuzuM5{246Y!m,(" inline="false"><field name="OP">MINUS</field> ! <value name="A"><shadow type="math_number" id="G5:q#-9.sd2K90TfdAJ
"><field name="NUM">1</field></shadow>
! <block type="get_value" id="gC-urCBA/^%84(j=^i*"><field name="ATTR">lc</field> ! <field name="OID">unifi.0.default.clients.++MAC-Adresse._uptime_by_uap</field></block></value> ! <value name="B"><shadow type="math_number" id="zYRKTi[[k_,%fr.8Vy7M"><field name="NUM">1</field></shadow> ! <block type="math_arithmetic" id="]J~)QBR4cH/jiG*lz?UL"><field name="OP">MINUS</field> ! <value name="A"><shadow type="math_number" id="XX}xF%B/_0,1}l~
SgW-"><field name="NUM">1</field></shadow>
! <block type="time_get" id="-4r2Is(JCg_?:Ms_v+Y"><mutation format="false" language="false"></mutation> ! <field name="OPTION">object</field></block></value> ! <value name="B"><shadow type="math_number" id="rCdNrAEh^
-FoWAxGU~G"><field name="NUM">120000</field></shadow></value></block></value></block></value>
! <value name="B"><block type="math_number" id="DLCYi/V][Pj-{RpP]JE{"><field name="NUM">0</field></block></value></block></value>
! <value name="B"><block type="logic_boolean" id="]F~s0eAM%+j//mq0
GH"><field name="BOOL">TRUE</field></block></value></block></value>
! <statement name="DO0"><block type="control" id="o;yBJXcmet8(TwXWJlMf"><mutation delay_input="false"></mutation>
! <field name="OID">javascript.0.Variablen.ICH_UAP</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="JD=F=FX|FbaZIy,OPphL"><field name="BOOL">FALSE</field></block></value></block></statement>
! <statement name="ELSE"><block type="control" id="GrHf7?!*t8yz{3P2n=w="><mutation delay_input="false"></mutation>
! <field name="OID">javascript.0.Variablen.ICH_UAP</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="zTf,][x}2(Hs!fMBWgz:"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement></block></xml> `Kann man statt alle 2 Minuten nicht auch den Wert _uptime_by_uap als Trigger nehmen? Wenn dieser geändert wird, soll das Skript auslösen. So hat man bei mehreren Geräten doch immer die genau Zeit oder?
-
Das wäre super. Dann würde die Anwesenheit sofort auf true springen. Für false finde ich die 2min OK.
-
Die Idee, die ich hatte funktioniert leider nicht.
Das Problem ist, dass die Uptime ja hochzählt. Bei Anwesenheit kann man sie also als Trigger verwenden.
Wenn man aber Abwesend ist, zählt die Uptime nicht mehr hoch und das Skript würde somit nicht mehr auslösen.
So wie ich das sehe bleibt nur die Möglichkeit mit einem Cron Trigger
-
Hallo zusammen,
ich habe da nochmal eine Frage Zu Anwesenheitserkennung.
Wenn ich nach Hause komme, wird die Anwesenheit innerhalb von 30 Sekuden erkannt.
Wenn ich das Haus verlassen, dauert es aber Minunten. Heute morgen z.B. 9 Minuten, bis das System erkannt hat, dass ich nicht mehr da bin.
Ist das normal? Das Blockly Skript zur Erkennung läuft alle 15 Sekunden
-
Hallo
Ich habe hier einen Workround entwickelt, der eine offizielle API von dem Unify Server nutzt:
#!/bin/bash export username= <username>export password= <password>export baseurl=https://localhost:8443 export site=default . unifi_sh_api unifi_api /upd/wlanconf/ <networkid>'{"enabled": true}'</networkid></password></username>
und zum ausschalten:````
unifi_api /upd/wlanconf/ <networkid>'{"enabled": false}'</networkid>Vielleicht hilfts jemandem noch :) `
Adarof, könntest Du das bitte nochmal etwas genauer erklären? Ich würde auch gerbne das WLAN per VIS-Script ein-/ausschalten wollen.
Was muss ich dazu einstellen?
-
Hallo zusammen,
ich habe da nochmal eine Frage Zu Anwesenheitserkennung.
Wenn ich nach Hause komme, wird die Anwesenheit innerhalb von 30 Sekuden erkannt.
Wenn ich das Haus verlassen, dauert es aber Minunten. Heute morgen z.B. 9 Minuten, bis das System erkannt hat, dass ich nicht mehr da bin.
Ist das normal? Das Blockly Skript zur Erkennung läuft alle 15 Sekunden `
Bei mir geht es schneller. Welches Script läuft bei dir? Meins läuft nur alle 2 min.Edit: habe mich vertan, siehe unten. 9min habe ich auch ungefähr.
-
Bei mir geht es schneller. Welches Script läuft bei dir? Meins läuft nur alle 2 min. `
-
Bei mir geht es schneller. Welches Script läuft bei dir? Meins läuft nur alle 2 min. `
anwesenheit.jpg `
Sorry, meine Aussage nach Gefühl war falsch. Nachdem ich die Haustür geschlossen habe, bin ich nach ca. 10min abwesend. Das Script fragt nur alle 2min nach und im Auto habe ich noch wlan Empfang. Also Abmeldung nach 7 - 8min kommt hin. Ist für mich ok. Das Anmeldung muss schneller gehen und tut es auch. Aber ich glaube da ist die Taktung die 60s des Aktualisierungsintervalls, da habe ich keine kürzeren Zeiten probiert, sind ja schon ziemlich viele Daten die jedesmal geholt werden, denke ich.Hab mal heute und gestern geschaut:
19.6: Tür zu:6:37:55
UAP false: 6:46:01
20.6: Tür zu: 7:16:00
UAP false: 7:26:01
-
Hallo zusammen,
ich habe da nochmal eine Frage Zu Anwesenheitserkennung.
Wenn ich nach Hause komme, wird die Anwesenheit innerhalb von 30 Sekuden erkannt.
Wenn ich das Haus verlassen, dauert es aber Minunten. Heute morgen z.B. 9 Minuten, bis das System erkannt hat, dass ich nicht mehr da bin.
Ist das normal? Das Blockly Skript zur Erkennung läuft alle 15 Sekunden `
Ich nutze das hm_pdetect Addon für die Homematic und werte da die Anwesenheit über unsere Smartphones aus. Das Addon prüft alle 15 Sekunden.
Bei mir ist es exakt genauso wie bei Dir. Diese Verzögerung scheint also mit dem Unifi Access Point zusammen zu hängen. Scheinbar werden die Geräte erst nach rund 10 Minuten in den Abwesenheitszustand versetzt, obwohl man schon längst nicht mehr im WLAN ist.
Die Frage ist, ob man da irgendwo ansetzen kann?
-
Hallo zusammen,
was ich bei meiner UniFi-Hardware etwas vermisse, ist ein (Monats-)Datenmengenzähler, wie ich ihn von meiner Fritzbox gewohnt war. Im UniFi-Controller gibt es zwar einen, aber der zählt die Gesamtdatenmenge seit Inbetriebnahme. Eleganter fände ich es, die Daten in eine DB zu schreiben und über Grafana in frei definierbaren Zeiträumen zu visualisieren. Aber leider scheitere ich daran, dass ich den entsprechenden Datenpunkt im iobroker bzw in den Objekten des UniFi-Adapters nicht finde. Weiß hier jemand, wo ich die Daten finde, die hier im Controller angezeigt werden?
-
Hallo
Ich habe hier einen Workround entwickelt, der eine offizielle API von dem Unify Server nutzt:
#!/bin/bash export username= <username>export password= <password>export baseurl=https://localhost:8443 export site=default . unifi_sh_api unifi_api /upd/wlanconf/ <networkid>'{"enabled": true}'</networkid></password></username>
und zum ausschalten:````
unifi_api /upd/wlanconf/ <networkid>'{"enabled": false}'</networkid>Vielleicht hilfts jemandem noch :) `
Adarof, könntest Du das bitte nochmal etwas genauer erklären? Ich würde auch gerbne das WLAN per VIS-Script ein-/ausschalten wollen.
Was muss ich dazu einstellen? `
Hallo
Das von mir sind Shell-Skripte; die müsstest Du auf den Raspi (oder ioBroker-Host) legen. Diese müssen dann aufgerufen werden aus ioBroker.
Bei mir geschieht das über ein Script (anbei) von einer CCU Variable.
Ich kann aber auch noch warnen: Leider verlieren beim umschalten alle WLAN-Verbindungen die Verbindung - die Unifi scheinen beim ein/ausschalten konzeptuell "alles" an WLAN neu zu starten.
2636_gastwlan.png -
Hallo
Das von mir sind Shell-Skripte; die müsstest Du auf den Raspi (oder ioBroker-Host) legen. Diese müssen dann aufgerufen werden aus ioBroker.
Bei mir geschieht das über ein Script (anbei) von einer CCU Variable.
Ich kann aber auch noch warnen: Leider verlieren beim umschalten alle WLAN-Verbindungen die Verbindung - die Unifi scheinen beim ein/ausschalten konzeptuell "alles" an WLAN neu zu starten. `
Danke, aber ich bekomme noch einen Fehler.
Fehlt mir da noch was? Du sagtest ja etwas von einer Api. Muss die noch installiert werden?
Wenn ich das Skript auf dem IOBroker PC aufrufe.
./unifywlanstart.sh: Zeile 7: unifi_sh_api: Datei oder Verzeichnis nicht gefunden ./unifywlanstart.sh: Zeile 8: unifi_api: Kommando nicht gefunden.
-
Hallo
unifi_sh_api wird mit den ReleaseNotes der FW verteilt - also z.B. hier (ganz unten)
https://community.ubnt.com/t5/UniFi-Upd … -p/2162104
Gruss -
-
Hallo
unifi_sh_api wird mit den ReleaseNotes der FW verteilt - also z.B. hier (ganz unten)
https://community.ubnt.com/t5/UniFi-Upd … -p/2162104
Gruss - `
Die neue Version habe ich gefunden, aber was mache ich da jetzt genau mit? Als Script auf dem IOBroker Server speichern? Ausführen?
-
Hallo
das ". unifi_sh_api" in meinem Script bedeutet, dass er die Date "unifi_sh_api" (die Du im Download gefunden hast) "sourced" oder einfach quasi wie eine Library lädt - aus dem gleichen Verzeichnis. D.h. einfach neben meine Scripte legen.
Gruss -
-
Hi,
ich würde gerne mein failover WAN (LTE Router mit prepaid SIM) nur im Bedarfsfall einschalten (mit einer HomematicIP Schaltsteckdose) und wen das "normale" WAN wieder up ist wieder ausschalten.
Dazu müsste ich den load-balancer status des UniFi USG auslesen können.
Wäre es möglich den Adapter entsprechend zu erweitern?
-
@stephanstricker:@stephanstricker:Hi,
hab heute mal den Unifi Adapter ausprobieren wollen. Leider schmeisst er beim Start direkt "api.err.Invalid".
Der Unifi Controller ist Version 5.6.29.
Irgendwelche Tipps?
Grüsse
Franky `
Ich habe das gleiche Problem. Gibt es dafür schon eine Lösung? `
Habs gefunden, Benutzername war falsch `
Habe genau dasselbe Problem Username und Pass stimmen aber 100%…
Könnte es sein das der Controller probiert Port 22 (SSH) zu benutzen?
Das würde bei mir nicht gehen da der Controller in einem docker läuft und 22 bereits anderweitig belegt ist.
Sent from my iPhone using Tapatalk
-
Falls der mehrfach benutzte Port 22 die Ursache ist …
hast Du mal probiert dem Container eine eigene (statische?) IP zu geben, so dass der Container nicht mit der IP des HOST angesprochen wird?
(so mache ich es zumindest mit meinen Docker-Containern auf meinem QNAP-NAS). Dann wäre der Port 22 für diese IP zumindets noch nicht anderweitig belegt.
Falls Deine Docker-Umgebung allerdings auf einem Windows oder MAC Client laufen, weiss ich nicht ob es da auch so eine Option gibt.
-
Ich habe gerade noch einmal in meinen Einstellungen des UniFi Adapters im ioBroker nachgeschaut.
Bei mir wird explizit der Port 8443 angegeben und mein Username/Passwort ist auch <u>nicht</u> der, den ich für SSH im Controller defniert habe.
Dann würde ich 2 x NEIN sagen für deine Vermutung es würde der Port 22 (SSH) für die Verbindung genutzt (ausser Du hast das so eingetragen?!?!?)
-
Einen hab ich noch
Du kannst doch im UniFi Controller weitere Admin-User anlegen.
Probier doch mal einen separaten Admin-User für den ioBroker Zugriff anzulegen und beginne mal mit einem einfachen Passwort aus Buchstaben und Zahlen. Womöglich liegt das Problem an Sonderzeichen im Passwort oder der Passwortlänge?