Neues Modul - 74_Unifi - Für den Ubiquiti Networks (UBNT) - Unifi Controller

Begonnen von rapster, 23 August 2015, 02:12:04

Vorheriges Thema - Nächstes Thema

Motivierte linke Hände

FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

Wuehler

So, ist eingecheckt. Überall wo die WLAN-SSIDs verwendet werden wird vor der Anzeige makeReadingName() verwendet. Damit könnten sogar Leerzeichen in der SSID enthalten sein.

Ich denke dasselbe könnte man bei den Clients einbauen. Da wird immer der im Unifi-Controller hinterlegte Alias verwendet, es sei denn der Alias enthält Leer- oder Sonderzeichen, dann wird der Hostname verwendet, wenn der nicht existiert oder ebenfalls Leer-/Sonderzeichen enthält wird die interne ID verwendet.
Würde aber bedeuten, dass die Nutzer, die Sonderzeichen in Alias oder Hostname verwenden ihre notifies usw. anpassen müssen.

Motivierte linke Hände

Zitat von: Wuehler am 27 Januar 2018, 13:24:09
Ich denke dasselbe könnte man bei den Clients einbauen.

Ich wäre dafür. Das gibt dann "ordentliche" Readings mit einem erwarteten Inhalt.

Vielen Dank für Deine stete Weiterentwicklung des Moduls!
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

justme1968

bin auch dafür. eventuell über ein attribut aktivierbar wegen der rückwärts kompatibilität.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Gimbel

Ich habe nach dem Einsatz des Moduls (Danke dafür) eine alternative Methode gefunen mit der die Presence Erkennung etwas schneller (Present 25-45 Sekunden, Absent ca. 4-5 Minuten) und ressourcen-schonender (falls man den Controller auf einem Raspberry o.ä. hostet) zu bewerkstelligen ist.

Hier der Post dazu: https://forum.fhem.de/index.php/topic,83434.0.html

Falls Presence noch ein Thema ist, könnte man vieleicht diese Methode zusätzlich in das Modul integrieren.

Oder was habt ihr für Zeiten in der ihr die Erkennung realisiert bekommt?

Wuehler

Hi,
In der neuesten Unifi-Controller-Version gibt es eine Notification-Funktion. Damit kann man sich per Mail benachrichtigen lassen, wenn sich ein client connected/disconnectet. Zusammen mit dem Modul mailcheck wurde beides nach ca. 5 Sekunden in fhem registriert. Komplett ohne das Unifi-Modul. Mailcheck musste ich um zwei Zeilen erweiern. Siehe dortiges Forum. Nur wenn alle gleichzeitig das Haus verlassen wird manchmal eine der Mails übersprungen. Dann ist das Unifi-Modul als Fallback da.
Nebenwirkung ist leider, dass jedes (dis-)connect in Unifi einen Alert erzeugt.

Motivierte linke Hände

Danke, @Wuehler, Update sieht gut aus.

Nur eine Frage: Kann es sein, dass Du makeReadingName() nicht nur auf die Namen von Readings, sondern auch auf die Inhalte anwendest? In den Readings .*_essid sind die Sonderzeichen auch gegen '_' getauscht.

Schönen Sonntag!
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

Wuehler

Ja, in FHEM sollte alles konsistent sein, damit man Readings als Input für Aktionen nehmen kann.

Wuehler

Im Anhang eine Testversion mit einem neuen Attribut "deprecatedClientName". Auszug aus der commandref dazu:

attr deprecatedClientNames <0,1>
Client-names in reading-names, reading-values and drop-down-lists can be set in two ways. Both ways generate the client-name in follwing order: 1. Attribute devAlias; 2. client-alias in Unifi;3. hostname;4. internal unifi-id.
1: Deprecated. Valid characters for unifi-client-alias or hostname are [a-z][A-Z][0-9][-][.]
0: All invalid characters are replaced by using makeReadingName() in fhem.pl.
default: 1 (if module is defined and attribute is not set)


Wäre Klasse, wenn es jemand testet bevor ich es einchecke. Anderweitiges Feedback dazu auch immer willkommen.

ChrisW

wollte nochmal nachfragen ob es nun die möglichkeit gibt das Gäste Wlan An / Aus zu schalten über fhem ? Hab mich damit letztes Jahr mal beschäftigt aber die wirklich einfache lösung wie bei der Fritzbox gab es da noch nicht.
Danke
Raspberry PI3 mit allem möglichen.

Motivierte linke Hände

Ja, gibt es. fhem updaten, dann hast Du disableWLAN und enableWLAN.
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

Roli1606

Zitat von: Gimbel am 27 Januar 2018, 17:40:11
Ich habe nach dem Einsatz des Moduls (Danke dafür) eine alternative Methode gefunen mit der die Presence Erkennung etwas schneller (Present 25-45 Sekunden, Absent ca. 4-5 Minuten) und ressourcen-schonender (falls man den Controller auf einem Raspberry o.ä. hostet) zu bewerkstelligen ist.

Hier der Post dazu: https://forum.fhem.de/index.php/topic,83434.0.html

Falls Presence noch ein Thema ist, könnte man vieleicht diese Methode zusätzlich in das Modul integrieren.

Oder was habt ihr für Zeiten in der ihr die Erkennung realisiert bekommt?

Also ich hätte an der Methode Interesse. Die Anwesenheits-erkennung mit mailcheck dauert bei mir auch rund 2 min. Aus irgendeinem Grund werden die Emails sehr verzögert gesendet obwohl der Cubietruck beim versenden der Mails nicht ausgelastet ist.

MFG Roland
Cubietruck mit Stefanius Image
FHEM 5.8
HMLAN
und CUL

Wuehler

Bei mir laufen fhem und der Unifi-Controller auf jeweils einem eigenen Raspi3. Da gibt es keine Probleme. Als ich beides auf demselben Raspi installiert habe gab es häufiger Performanceprobleme. Finde die 35 Euro für einen zusätzlichen Raspi haben sich gelohnt. Und viel Zeit hat das Aufsetzen usw. auch nicht gekostet.

Motivierte linke Hände

Hi, ich schon wieder... :)

Bei einem erneuten Anlauf, das Blocken von Geräten und An-/Abschalten von SSIDs von meinen Bash-Skripten auf dieses Modul umzustellen, sind mir noch zwei Dinge aufgefallen:

Es wäre schön, wenn es ein Reading gäbe, das den aktuellen Block-Status anzeigen würde. Aktuell gibt es <Client> als Reading, das "connected" oder "disconnected" anzeigt. Daran kann ich aber nicht zweifelsfrei erkennen, ob das Gerät geblockt oder aus irgendeinem anderen Grund nicht connected ist. Die Unifi API liefert für blockierte Geräte einen blocked-Wert als true oder false zurück. Das ist m.E. der den Kommandos "blockClient" und "unblockClient" entsprechende Status. Das könnte man als neues Reading implementieren. Oder alternativ, um die Reading-Flut ein wenig einzudämmen, könnte man das <Client>-Reading um den Wert "blocked" erweitern. "Unblocked" bräuchte man nicht zwingend, da das dann "connected" oder "disconnected" ergäbe.

Es wäre schön, wenn 74_Unifi für "blockClient" und "unblockClient" auch die MAC-Adresse statt des Client-Namens akzeptieren würde. Denn den Client-Namen kann der Nutzer des Gerätes durch Veränderungen am Gerät ändern. Dann laufen fest kodierte Block-Kommandos, die auf dem Gerätnamen basieren, ins Leere. Das macht es dem Nachwuchs zu einfach, die Nutzungsbeschränkungen zu umgehen. Die MAC-Adresse ist da effektiver :)

Grüße, Christian
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

hoppel118

Zitat von: Motivierte linke Hände am 30 Januar 2018, 16:11:05Es wäre schön, wenn 74_Unifi für "blockClient" und "unblockClient" auch die MAC-Adresse statt des Client-Namens akzeptieren würde. Denn den Client-Namen kann der Nutzer des Gerätes durch Veränderungen am Gerät ändern. Dann laufen fest kodierte Block-Kommandos, die auf dem Gerätnamen basieren, ins Leere. Das macht es dem Nachwuchs zu einfach, die Nutzungsbeschränkungen zu umgehen. Die MAC-Adresse ist da effektiver :)

Ob das wirklich Abhilfe schafft... Ich sag mal so, es hängt davon ab, wie IT-affin deine Kinder sind. [emoji6]

https://www.google.de/amp/s/de.m.wikihow.com/Die-MAC-Adresse-eines-Computers-unter-Windows-ändern%3famp=1

Unter Linux ist das, wenn ich mich recht entsinne, auch nur ein Befehl auf der Command Line.

Gruß Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic | HomeConnect | MQTT | Philips Hue | Sonos | Unifi Network & Protect | vbus | Xiaomi