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, bevor du das deinstallierst. Mach mal nen
echo $loginresult
Nach dem login. Könnte auch ein falsches Passwort sein.
Wenn ich es auf die s
schnelle richtig sehe kommt der erste Hinweis auch unter php 5.4. das zweite ist auch nur ein Hinweis. Und vor dem ersten echten error ist der login.  Du musst user und pw des unifi controllers eingeben.

Motivierte linke Hände

PHP7 habe ich hier auch. Daran sollte es nicht liegen. Versuch mal Wuehlers Tipp.
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.

TottiToad

ich habe den Befehl:


echo $loginresults;


Im Script WLAN.php (Script von Motivierte linke Hände) eingefügt. Jedoch bekomme ich keine ausgäbe ?!?

@Motivierte linke Hände
Das Du auch php7 nutzt beruhigt mich schon mal. Den auf php 5.6 zu gehen wäre mit Debian Stretch auch schwierig.

Username und Passwort habe ich die genutzt, welche ich zum Login überBrowser zum Controller benötige.
Habe aber auch die Benutzerdaten für SSL probiert. Keine Veränderung !

CURLOPT_SSL_VERIFYHOST habe ich auf 2 gestellt, somit ist der Hinweis weg.

Jedoch Weiterhin:


PHP Notice:  cURL error: SSL: unable to obtain common name from peer certificate in /usr/local/src/Client.php on line 110
falsePHP Warning:  array_column() expects parameter 1 to be array, boolean given in /usr/local/src/WLAN.php on line 49

Names:
PHP Warning:  array_search() expects parameter 2 to be array, null given in /usr/local/src/WLAN.php on line 52

array_search Ergebnis:
PHP Notice:  Trying to get property of non-object in /usr/local/src/WLAN.php on line 64
PHP Notice:  Trying to get property of non-object in /usr/local/src/WLAN.php on line 68



Grüße
Totti


EDIT !!!!!

So denn, es läuft !!!!
Habe nochmals komplett von vorne Angefangen und jetzt läuft es. Irgendwie hatte sich wohl nen Fehler eingeschlichen !

Jetzt wird weiter probiert !

Schau mal wie ich nen Button oder ähnliches in FTUI umsetzte und wie ich die "Voucher Abfrage" mit Telegram von Wuehler hinbekomme ?!?

Wuehler

Kurze Info. Für das WLAN.php Script ist php 7 Pflicht, da die Funktion array_column() erst ab dann mit Object-Array zurechtkommt.

TottiToad

Riesen Dank euch !!!!

Habe jetzt erst einmal alles so umgesetzt das es funktioniert.


Werde wenn mal Zeit ist, schauen wie ich einen Voucher Abruf ins FTUI umgesetzt bekommen. Am besten mit einem "Auswahl Rädchen" bei dem ich angebe für welchen Zeitraum ein Voucher erstellt werden soll.

Mal nachlesen, wie ich Werte an das Script übergeben kann (Vielleicht dann doch eher noch wie Motivierte linke Hände komplett alles über ein Shell Script laufen lassen)

Ich hoffe hier geht es weiter mit Ideen, Umsetzungen etc.
(Die Unifi Sachen sind schon genial. Habe gerade ein Script eingebaut das mein USG eine WOL Befehl sendet, sobald von intern/extern darauf zugegriffen wird)

Grüße & Danke
Totti

Mumpitz

Zitat von: TottiToad am 13 Oktober 2017, 17:40:48
Riesen Dank euch !!!!

Habe jetzt erst einmal alles so umgesetzt das es funktioniert.


Werde wenn mal Zeit ist, schauen wie ich einen Voucher Abruf ins FTUI umgesetzt bekommen. Am besten mit einem "Auswahl Rädchen" bei dem ich angebe für welchen Zeitraum ein Voucher erstellt werden soll.

Mal nachlesen, wie ich Werte an das Script übergeben kann (Vielleicht dann doch eher noch wie Motivierte linke Hände komplett alles über ein Shell Script laufen lassen)

Ich hoffe hier geht es weiter mit Ideen, Umsetzungen etc.
(Die Unifi Sachen sind schon genial. Habe gerade ein Script eingebaut das mein USG eine WOL Befehl sendet, sobald von intern/extern darauf zugegriffen wird)

Grüße & Danke
Totti
Wärst du allenfalls bereit, deine Lösung inkl dem FTUI hier schritt für schritt zu erklären oder gar eine Anleitung zu machen???

TottiToad

Hi,

klar Grundsätzlich gerne ;)

Jedoch muss ich zum einen noch ein Paar Kleinigkeiten fertigstellen (Widget für Voucher Erstellung etc)
Und zum anderen bräuchte ich das OK von @Wuehler und @Motivierte Linke Hände, da die Haupteile von ihnen gekommen sind.

Mache aber dann gerne ne "Anleitung" wie ich es umgesetzt habe fertig (Bin aber selbst Anfänger)

Ich hoffe das das hier im Thread auch so Ok ist, bin bei sowas immer unsicher. Evtl. nen extra Thread aufmachen für die Umsetzung ?

Über Rückmeldung wäre ich dankbar !

Grüße
Totti


Wuehler

Hi nochmal,

ich bin mir nicht sicher, ob der Weg den du eingeschlagen hast sinnvoll ist. Bei dem Versuch ein neues Modul daraus zu programmieren ist mit aufgefallen, dass man sehr stark darauf achten muss, dass ein Befehl aufgrund des Wartens auf einen Rückgabewert nicht FHEM in Gänze blockiert. Insgesamt wird durch FHEM alles schön nacheinander abgearbeitet. Sprich wenn dein notify 2 Sekunden auf die Rückgabe wartet werden alle anderen notifies usw. nicht ausgeführt.

Bei der Unifi-API handelt es sich im Grunde um http-Requests und das php-Script wartet bis es einen Response bekommt. Im Unifi-Modul wurde daher mit NonBlockingHttp-Request gearbeitet.
Das hat zur Folge, dass man bei Absetzen mehrerer Requests nicht genau weiß, welcher Response dann zu welchem Request gehört. Beim bisherigen Unifi-Modul ist das aufgrund des Intervals in dem aktualisiert wird egal (jeder Request wird im Interval nur einmal aufgerufen).

Hoffentlich habe ich das richtig Verstanden und wiedergegeben  ::)

Ich grübele jetzt schon länger drüber nach wie man das am besten löst. Ne Idee habe ich auch schon. Allerdings wird sie evtl. nicht auf allen FHEM-Installationen funktionieren. Muss daher wohl mal die Experten fragen, ob solche Installationen die mir da vorschweben überhaupt vorkommen können.

Gruß und Gute Nacht,
Der Wuehler

PS: Ich kann mittlerweile mit dem eigenen Modul Voucher erzeugen. Die WLAN Ein-/Ausschaltung müsste dann auch einfach einzubauen gehen.

TottiToad

Hi,

ob das der Richtig Weg ist weiß ich leider selbst nicht ;)

Bin halt auch noch absoluter Anfänger und "kämpfe" mich dadurch. So lernt man ja auch immer wieder ne Menge dazu.

Und jetzt habe ich auch den drang es irgendwie erstmal hinzubekommen. Klar geht es im endeffekt bestimmt eleganter, doch erstmal zählt für mich das Ergebnis ;)

Ich bin jedenfalls heute nochmals ein Stück weiter gekommen.
Der erstellte Voucher Code wird erstellt und taucht auch im log auf. Nur leider bekomme ich ihn noch nicht in eine Dummy oder irgendwohin übergeben  :(


2017.10.14 19:15:30 4: dummy set Voucher_Dummy Voucher_anfordern
2017.10.14 19:15:30 5: Triggering Voucher_create
2017.10.14 19:15:30 4: Voucher_create exec {Code_Anfordern("$EVENT")}

Code: 8098743296
2017.10.14 19:15:33 4: dummy set Code_Dummy -1


Über Hinweise, Ideen etc wäre ich natürlich dankbar !

Grüße & Danke
Totti

P.S.: Dein Modul wäre mit Sicherheit für einige hier interessant, bin gespannt ! Und gerne für test bereit ;)

popy

Zitat von: Markus Bloch am 16 Januar 2017, 22:41:57
Die neue PRESENCE-Version habe ich soeben eingecheckt, steht ab morgen via update zur Verfügung. Damit kann man Unifi folgendermaßen einbinden (sofern ich es richtig verstanden habe, wie Unifi funktioniert):

define <NAME> PRESENCE event UniFi:NamedDevice:.disconnected UniFi:NamedDevice:.connected

Dazu kann man dann mit den neuen Attributen absenceTimeout sowie presenceTimeout einstellen, wie lange nach dem Empfang eines entsprechenden Events gewartet werden soll, bevor der PRESENCE Status final auf "absent" oder "present" gesetzt werden soll. Die Angabe erfolgt in HH:MM:SS wobei Stunden und Minuten optional sind.:


attr <NAME> presenceTimeout 10          # 10 Sekunden
attr <NAME> absenceTimeout 15:00        # 15 Minuten


Das ganze erfolgt ohne den ganzen Blocking.pm-Overhead direkt und ist daher in "Echtzeit".

Viele Grüße

Markus

Hallo.

Bin grad dabei meinen Unifi COntroller einzubinden.
Daten werden korrekt vom Controller abgefragt.
Jetzt geht's natürlich an die Presence Erkennung  8)

Leider scheitere ich da (mit meinen noob Kentnissen) an der Angabe von "NamedDevice".
Mein Gerät heißt in Unifi "LG G4" und auch das Unifi Modul hat unter Name "LG G4".
Darin befindet sich ein Leerzeichen und ich weiß nicht wie es angeben muss.
Habe schon folgendes probier, ohne Erfolg:


define P_WIFI_Ich PRESENCE event UniFi:'LG G4':.disconnected UniFi:'LG G4':.connected

define P_WIFI_Ich PRESENCE event UniFi:/LG G4/:.disconnected UniFi:/LG G4/:.connected

define P_WIFI_Ich PRESENCE event UniFi:LG G4:.disconnected UniFi:LG G4:.connected



Eine weitere Frage zum Event Syntax "UniFi:LG G4:.disconnected" Muss "Unifi" wirklich "Unifi" sein (= modulname) oder muss es der definierte Name meines Controllers sein?

Wäre über jeden Tipp dankbar.
Danke





popy

Hallo.

Wer suche kann ist klar im Vorteil  :D jedenfalls wenn's die Richtigen Wörter sind.
Hatte nach NamedDevice gesucht und nichts gefunden.
Bei Leerzeichen und Alias wird man hier fündig: https://forum.fhem.de/index.php/topic,40287.msg692074.html#msg692074

Durch testen habe ich Frage zwei auch Beantwortet, es muss der Device Name sein.

Funktioniert super, danke für das Modul!

pOpY

TottiToad

Dank einiger Hilfe hier und allg. durchs Forum habe ich mir das Modul jetzt etwas erweitert.

Zum einen im FTUI (Bild s.h. Anhang)

- An und ausschalten des GästeWlans
- Erstellen eines neuen Voucher Codes (vorheriges einstellen der Gültigkeit 1Std. bis 1 Woche möglich)
- Anzeigen im Popup des neuen Voucher-Codes (für die bessere Lesbarkeit in 5er Blöcke aufgeteilt)


Gleiches habe ich im WEB Fronted umgesetzt
- Voucher Code Erstellen
- Popup mit erstelltem Code anzeigen


Danke nochmals für das geniale Modul und die Hilfe !!!

Grüße & Danke
Totti

P.S.: Vom gespannt auf die Weiterentwicklung des Moduls oder ggf. Zusatzmodule


gloob

Könnte man die Funktionen nicht auch ins Unifi Modul übernehmen und übers normale Update verteilen?
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

TottiToad

Ich glaube @Wuehler ist da an was dran und@Motivierte Linke Hände hats glaube ich nochmal ganz anders gelöst.

Vom Modul Entwickler hat jetzt schon seit Mai nichts mehr zur weiteren Entwicklung geschrieben.


Finde es aber so wie ich es umgesetzt hab jetzt erstmal ausreichend. Und ist auch relativ einfach umgesetzt
(Uni API php Dateien aufs System geschoben und 3 Dummys und ein Notify erstellt)

Ich denke das es bestimmt auch anstatt mit 3 Dummys mit einem gehen würde, in dem alle Werte sind (Readings Group oder so), doch das habe ich noch nicht hinbekommen.
Und mich stören 3 Dummys jetzt nicht ;)

Grüße
Totti