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

Wuehler

Hi,
das mit dem blockClient ist gefixt. Morgen im Update. Weiß auch nicht wie mir das passieren konnte. Bin mir sicher, dass ich das getestet hatte.

zu 1. Die IDs statt SSIDs in der DropDown muss ich mir mal in Ruhe ansehen. Eher am Wochenende.

zu 2. Da scheint es einen Bug (?) im list zu geben. Wenn der aus JSON in den Hash übernommene Wert ein JSON::true (und nicht "true") ist, wird er bei list nicht mit ausgegeben. Könnte also in Ruhe dann Readings für <ssid>_enabled hinzufügen. Oder JSON::true wird nicht mit in den hash kopiert?

Gruß,
Dirk

sxx128

Hallo zusammen,

ich habe leider ein Problem mit Presence und der Erkennung meines Iphones. Unter Presence Device Overview stehen bei mir seit der Einrichtung des Unifi AP  in FHEM ausschließlich drei

???


Unter Internals steht folgendes:


event UniFi:meiniphone:.disconnected UniFi:meiniphone:.connected


In den Readings des Unifi AP steht das Device mit der jeweils aktuellen Uhrzeit.


meiniphone

connected

2018-01-20 09:40:46


Habt ihr eine Idee was da schief läuft oder wo ich ansetzen könnte.

Grüße
und Danke
Steven128
Hardware: Raspberryy PI 4
CC1101-USB-Lite 868MHz/Culfw-1.66
HM-MOD-RPI-PCB
Komponenten: Homematic/Homematic IP/Zigbee
PiVCCU

der-Lolo

Hallo Wuehler,
ich habe gerade ein FHEM update gemacht und anschliessend neu gestartet.
Da kommt nun eine Perl Warnung.

PERL WARNING: main::Unifi_SSIDs() called too early to check prototype at ./FHEM/74_Unifi.pm line 1476, <$fh> line 350.

wenn Du mal bereinigst wäre es toll wenn Du danach schaust.

Danke!

Wuehler

Jetzt bräuchte ich mal etwas RegExp-Unterstützung:
Warum findet
$wlanRef->{name} =~ /^([\w\.\-]+)$/) {
das WLAN "Secure", aber nicht das WLAN "Gast"?
siehe fünf Posts vorher von MotivierteLinkeHände.

Ein Reading für den Status (enabled/disabled) habe ich eingebaut, ebenso das Warning gefixt. Wenn jetzt noch jemand die RegExp erklären kann packe ich alles ins nächste Update.

@Steven128: Wie ist denn dein presence definiert? Ich vermute, dass hier der falsche Thread für dein Problem ist, eher bei PRESENCE. Das Unifi-Modul scheint ja alles richtig zu machen.  Ich persönlich nutze PRESENCE nur experimentell für mich, da bei uns nicht alle Roommates technisch gut identifizierbar sind  ;)

rcmcronny

Hoi,

@Steven128
Presence hab ich so definiert, läuft bei mir 1a


defmod <NAME> PRESENCE function {ReadingsVal('<UNIFYDEVICE>','<HOSTNAME DES GERÄTES IM UNIFY>','') eq "connected" ? 1 : 0} 60 60


<HOSTNAME DES GERÄTES IM UNIFY> ist bei mir "android-xxxxxxx"

Hoffe es hilft etwas weiter ;)

Ronny

rudolfkoenig

Mit einem Regexp "a aber nicht b" zu realisieren ist sehr muehselig, ich empfehle zwei Pruefengen, einmal mit =~ und einmal mit !~

Wuehler

Ich verstehe den regExp so, dass zwischen Anfang und Ende des Strings nur Zahlen, Buchstaben, der Punkt und das Minus zugelassen sind. Das trifft auf "Main", "Gast", "Secure" und "Deschding" zu.

@MotivierteLinkeHände: Ist da evtl. doch irgendwo ein Leerzeichen in deiner SSID? Bei mir funktioniert es mit einem WLAN namens "Main" auch.

Motivierte linke Hände

Nein, kein Leerzeichen. Aber ja, SSIDs mit, z.B., Ausrufezeichen werden auch nicht gefunden.

Ich kann ja über die php API die WLAN Configs auslesen. Das sieht ganz harmlos aus:

"name": "Main"

Auch nicht gefunden wird die - zulässige - SSID "Secure!". Das passt zu Deinem Test per regexp.

Aus Neugierde: Warum hast Du den Test auf einen zulässigen Namen überhaupt drin? Ich habe mal ein Logging eingebaut, bei mir liest er aus der Config im Namensfeld keinen Müll aus. Er verwirft bei dem Test nur bestehende SSIDs. (Kann man z.B. schön mit einem ! im Namen testen.) Wie wäre es, wenn Du beim Test des SSID-Namens auf Unifi vertraust und $wlanref->{name} ohne weiteren Test übernimmst?
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

Ich habe mich da an die Implementierung von rapster gehalten. Da ist sicherlich eine gewisse Vorsicht dabei gewesen, keine Sonderzeichen zuzulassen, um nicht aufgrund seltsamer Fehlermeldungen überall Sonderbehandlungen einbauen zu müssen.
Ich übertreibe jetzt vielleicht  ;)  denke aber, dass das der Grund war.

Interessanter finde ich, warum Main und Gast bei dir nicht funktionieren, bei mir aber schon.

Wuehler

Neues Reading für WLAN-Status sowie Behebung der Warning ist eingecheckt. Bitte testen und krzes Feedback geben.
@MotivierteHände: konntest du das Problem mit Main und Gast eingrenzen oder soll ich mal eine Version mit mehr Logausgaben bauen?

Motivierte linke Hände

Danke, Logausgaben habe ich mir selbst gebaut. Wenn ich den regexp-Check rausnehme, funktioniert hier alles, mit Check das meiste.

Wenn ich das nächste Mal mehr Zeit habe, kann ich nochmal mit den Namen testen. Bis dahin nehme ich den Check hier raus und nehme das Modul vom Update aus. Dann passt es auf jeden Fall auch.  ;D

Danke nochmal,
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.

Mohrengemuse

Zitat von: Wuehler am 22 Januar 2018, 12:00:56
Neues Reading für WLAN-Status sowie Behebung der Warning ist eingecheckt. Bitte testen und krzes Feedback geben.

Guten Abend,

ich habe heute zufällig nach dem Update gesehen dass man jetzt auch WLANs aktivieren/deaktivieren kann. Direkt ausprobiert, funktioniert Top. Auch der Status meiner verschiedenen WLANs wird sauber ausgegeben. 

In diesem Sinne, herzlichen Dank für dieses neue Feature, ich habe es mir schon lange gewünscht  :D

Vielleicht könntest du noch ein Reading oder ein get einbauen welches alle im Guest WLAN angemeldeten Nutzer zurückgibt. Das würde mir das filtern ersparen. Aber so ists auch schon super!

Gruß, Mohrengemuse

Eisix

Hallo Wühler,

Schön daß es hier wieder weiter geht :)
Baust du die Voucher Geschichte wieder in die Update Version ein?

Gruß
Eisix

Motivierte linke Hände

Zitat von: Wuehler am 22 Januar 2018, 12:00:56
Neues Reading für WLAN-Status sowie Behebung der Warning ist eingecheckt. Bitte testen und krzes Feedback geben.
@MotivierteHände: konntest du das Problem mit Main und Gast eingrenzen oder soll ich mal eine Version mit mehr Logausgaben bauen?

So, habe mal gerade das Update mit der neuen Version eingespielt und dann auch in Unifi mit den SSIDs herumgespielt. Ich weiß nicht, was vorher schiefgelaufen war oder sich an komischen Zeichen eingeschlichen hatte. Aktuell scheint es so zu sein, dass die SSIDs mit nur "normalen" Zeichen alle von Deinem Modul erkannt werden. Wenn ich ein Ausrufezeichen in die SSID einbaue, erkennt das Schaltfeld zum An- und Ausschalten von WLANs die SSIDs nicht mehr, sondern arbeitet mit der ID von Unifi. Deine Readings für den Status der WLANs allerdings erkennen auch SSIDs mit Ausrufezeichen. :-) Und wenn ich die enable bzw. disable Kommandos händisch eingebe, kann ich auch dort die SSIDs mit Ausrufezeichen verwenden. Nur für die Dropdownbox scheint die regexp-Prüfung zuzuschlagen.
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

Danke für den Test. Ich denke da habe ich dann folgendes zu tun:
1. laut https://wiki.fhem.de/wiki/DevelopmentModuleAPI, dort goodReadingName(), werde ich beim erstellen des Readings die Funktion makeReadingName() verwenden. Das heißt, dass Sonderzeichen durch einen Unterstrich ersetzt werden.
2. in der DropDown-Liste lasse ich dagegen alles außer Leerzeichen zu.
3. Hinweise dazu in die commandeef aufnehmen. 

@Eisix: Der VoucherCache kommt auch wieder. Ich wollte die ganzen Anpassungen aber lieber Stück für Stück von der Einfachsten zur Umfangreichsten in die offizielle Version übernehmen. Das macht allen die Fehlersuche einfacher  ;)