Nabend,
habe ein wenig nachgelesen, wie das mit dem zweistufigen Modulen funktioniert und habe eine erste Beta für den UnifiSwitch gebaut. Als IODev wird ein funktionierende Unifi-Modul verwendet. Um dort die Anzahl Readings nicht explodieren zu lassen ein Kind-Modul -> UnifiSwitch.
Es muss sowohl das Unifi als auch das UnifiSwitch-Modul aus dem Anhang in den FHEM-Ordner kopiert werden. Bis es das per offiziellem Update gibt wird es noch etwas dauern.
Bitte mal ausprobieren und Fehler sowie Wünsche posten.
TODOs:
- state des USW korrekt setzen (aktuell nur connected und provisioning)
V 0.1:
- Initiale Version mit ein paar Readings zum poe-state je port
V 0.11:
- state des USW wird gesetzt (noch nicht immer korrekt, da ich die state-Nr. für z.B. upgrading noch nicht kenne)
- Port-Nummern < 9 mit führender 0
- Model als Internal
- port-state als reading hinzugefügt
- fixed encode_json-Fehler
V 0.90:
- setter für poe-Mode aus dem Unifi-Modul entfernen und hier einfügen
- commandref
Edit: 10.06.2018:
Modul ist ab 11.06.2018 eingecheckt. Anhänge hier entfernt.
...das ging ja schnell mit der Umsetzung :-)
Hab die beiden Module mal in mein Testsystem eingepflegt, bekomme aber leider direkt nen Komplettabsturz:
Undefined subroutine &main::encode_json called at ./FHEM/74_Unifi.pm line 1145.
Kann aber auch sein dass irgendein Paket fehlt, das Unifizierend-Modul hatte ich vorher auf dem Testsystem noch nicht im Einsatz.
Hi,
gerade eingespielt, shutdown restart und go. Derzeit betreibe ich 2 * US8 Switche (die via PoE am Hauptswitch hängen) und einen US16P150, der hier alles zentral mit PoE versorgt (4 APs, 2 US8)
Was passiert nach dem restart:
- Raum "UnifiSwitch" wird angelegt (nice)
- Alle Switches werden via "autocreate" angelegt und in den Raum gepackt (nice2)
Generell enthalten die Readings die In formationen, die man erwartet, je Switchport gibt es folgende Einträge:
port_8_name
Wohnzimmer
2018-05-13 11:47:27
port_8_poe_current
175.53
2018-05-13 11:47:27
port_8_poe_mode
auto
2018-05-13 11:47:27
port_8_poe_power
9.33
2018-05-13 11:47:27
port_8_poe_voltage
53.14
2018-05-13 11:47:27
Als Reading liest Du das "model" des Switches aus, in diesem Fall
usw_model US16P150
. Da es mE unveränderlich (je Device) ist, hätte ich das bei Internals gesehen. Naja - und einen sinnvollen State gibt es noch nicht, aber das wusstest Du vermutlich.
Aber das wichtigste: Das Modul macht was es soll, alle meine Switches wurden angelegt, zu jedem Switchport gibt es die PoE-relevante Info. Alles Switches werden mit dem richtigen Model erkannt - also bestens. Und die Verlagerung der PoE-Infos in die abhängigen Devices gefällt mir gut.
Darüberhinaus stellt sich mir generell die Frage, wie man bei umfangreichen Unifi-Installationen die Explosion von Readings im Hauptdevice verhindern kann... Zu jedem Gerät gibt es ~6 Readings - bei meiner Installation sind das dann schon geschmeidige 60 Geräte * 6 Readings ;-) Tut erstmal nicht weh - nur halt so ein Gedanke.
Also Danke erstmal für die Mühe, jetzt auf ein 2-stufiges Modulkonzept umzusteigen.
Gruß,
Tom
Zitat von: roedert am 13 Mai 2018, 12:00:52
...das ging ja schnell mit der Umsetzung :-)
Hab die beiden Module mal in mein Testsystem eingepflegt, bekomme aber leider direkt nen Komplettabsturz:
Undefined subroutine &main::encode_json called at ./FHEM/74_Unifi.pm line 1145.
Kann aber auch sein dass irgendein Paket fehlt, das Unifizierend-Modul hatte ich vorher auf dem Testsystem noch nicht im Einsatz.
Yep, da fehlt mE JSON für perl https://packages.debian.org/de/sid/libjson-perl (https://packages.debian.org/de/sid/libjson-perl). Installieren, ggfs "shutdown restart" und dann sollte es klappen.
Danke euch für den Test.
Ich habe gesehen, dass es auch eine fhem-Funktion tojson() gibt. Werde die mal verwenden. Vielleicht braucht man dann kein zusätzliches Paket.
Ansonsten fänd ich eure Meinungen interessant, wann man in Zukunft ein Kind-Modul nutzen sollte und wenn nicht.
60 eigene client-Devices sind bestimmt auch keine Lösung.
Rein theoretisch müsste auch ein dreistufiges Modul gehen, so dass z.B. jeder Port des Switch auch ein eigenes Devices sein könnte.
Bin auf eure Meinung gespannt.
VG,
Dirk
Hi,
Undefined subroutine &main::encode_json called at ./FHEM/74_Unifi.pm line 1145.
Diesen Fehler bekomme ich auch. libjson-perl ist aber installiert (2.90-1). Auch ein Update auf 2.97001-1 brachte keine Änderung.
Gruß, Jochen
Hi Wuehler,
dank für die Arbeit, klappt bei mir wunderbar, alle 5 Switch sind angelegt worden und ich kann alle Informationen rauslesen.
Bzgl. Mehrstufigkeit würde ich folgedes Vorschlagen:
Alle Unifi Devices, die im Controller als Unifi Device geführt werden, als Kind-Modul.
In Zukunft also auch die AP's, wenn es Sinn macht.
Damit repräsentiert das Unifi Modul den Controller und das UnifiSwitch Modul die Devices, evtl, sollte das Modul dann auch anders heißen, UnifiDevice.
Pro Port ein weiteres Kinde-Modul halte ich für nicht angebracht, wer das braucht, kann das leicht mit ReadingsProxy bauen.
Wichtiger wäre mir ein
set <UnifiSwitch> port_6_poe_mode off|auto|etc.
am leibsten mit dropDowns :)
ein kleiner Hinweis noch, evtl nennst du die Ports 01, 02 usw. ansonsten sieht das mit den Readings bei einem US8P150 so aus:
TYPE UnifiSwitch
READINGS:
2018-05-14 11:08:27 port_10_name SFP 2
2018-05-14 11:08:27 port_1_name KG.vr.SW.server.downlink
2018-05-14 11:08:27 port_1_poe_current 115.23
2018-05-14 11:08:27 port_1_poe_mode auto
2018-05-14 11:08:27 port_1_poe_power 6.20
2018-05-14 11:08:27 port_1_poe_voltage 53.78
nicht sehr schlimm aber evtl. unschön.
Grüße und Danke
Christian
Ich habe in 74_Unifi.pm folgendes hinzugefügt:
use JSON qw(encode_json);
Damit funktioniert es. Jetzt bekomme ich das Device angelegt:
define UNDEFINED UnifiSwitch UNDEFINED
attr UNDEFINED room UnifiSwitch
Die Readings sind aber korrekt.
usw_model US16P150 etc.
Was meiner Meinung nach aber fehlt, ist der Port Status selbst.
Zitat von: Christian Uhlmann am 14 Mai 2018, 11:10:34
Bzgl. Mehrstufigkeit würde ich folgedes Vorschlagen:
Alle Unifi Devices, die im Controller als Unifi Device geführt werden, als Kind-Modul.
In Zukunft also auch die AP's, wenn es Sinn macht.
Damit repräsentiert das Unifi Modul den Controller und das UnifiSwitch Modul die Devices, evtl, sollte das Modul dann auch anders heißen, UnifiDevice.
Um das mal aufzugreifen: Je UNIFI-Gerät ein entsprechendes Device anlegen - sinnvoll und auch handhabbar, denke ich. Insofern +1. Welche Infos dann in dem Device als Reading zur Verfügung gestellt werden - was halt geht und sinnvoll ist.
Entspricht ja auch der Vorgehensweise ähnlicher Module.
Und: Danke!
Gruß und Danke,
Tom
Hi,
im ersten Post eine neue Version sowie Infos über die Anpassungen. Falls ihr noch ein upgrade auf dem USW machen könnt bitte eine Info, welcher code dabei angezeigt wird, dann baue ich eine Übersetzung ein. (1= connected; 5 = provisioning; 2-4=?; ?=upgrading)
Offen ist noch der Einbau der setter (und Ausbau aus dem Unifi-Modul).
Ich denke, dass es zukünftig bei Bedarf noch folgende Kind-Module geben könnte. Ein allgemeingültiges UnifiDevice halte ich für nicht so sinnvoll, da darin dann auch immer unnötige Funktionen anderer Devices enthalten sein würden:
- 74_UnifiAP.pm: Readings und getter/setter für Access-Points
- 74_UnifiUSG.pm: Readings und getter/setter für USG
- 74_UnifiClients.pm: Alle Clients in einem extra-Device
- 74_UnifiHotspot.pm: Der Hotspot mit z.B. dem VoucherCache
Aber das muss man sich im Detail dann noch ansehen.
@Jochen_f: Hast du deinem switch keinen Alias gegeben? Ich habe jetzt mal die IP des switch als Fallback genommen, dass da kein UNDEFINED kommt. Bitte nochmal den Switch löschen und wenn weiterhin UNDEFINED kommt nochmal löschen und vom Unifi ein log mit verbose=5 anhängen.
VG,
Dirk
Zitat von: Wuehler am 14 Mai 2018, 08:59:39
Ansonsten fänd ich eure Meinungen interessant, wann man in Zukunft ein Kind-Modul nutzen sollte und wenn nicht.
60 eigene client-Devices sind bestimmt auch keine Lösung.
Besten Dank erstmal für die schnelle Umsetzung - sieht schonmal prima aus.
Die Idee für jedes Gerät ein UniFi-Gerät (Switch, AP etc) ein eigenes Device zu erstellen klingt eigentlich plausibel. Nochmal ein Device per Switchport halte ich auch für übertrieben.
Konsequenterweise könnte man auch für jeden Netzwerk-Client ein eigenes Device anlegen, dann hat man evtl. zwar deine "60 Client-Devices" - aber momentan hat man "hunderte" Readings im Unifi-Device was ja auch nicht gerade übersichtlicher ist.
Edit: Sorry, ich hatte deinen Beitrag von gestern Abend noch nicht gesehen, da steht's ja ähnlich drin. Diesen Ansatz halte ich für sehr sinnvoll.
Ja, der Switch hatte in der Tat keinen Alias. Die Unifi Software nimmt als Namen dann standardmäßig die MAC Adresse, daher war mir das noch gar nicht aufgefallen.
Funktioniert jetzt einwandfrei, auch Port Status ist jetzt vorhanden.
Vielen Dank!
Gruß, Jochen
Danke für euer Feedback.
@roedert: Sicherheitshalber folgende Klarstellung: ich meinte für die Clients genau ein Device in dem dann alle Clients mit ihren Readings sind. Ich meinte nicht ein Device je Client.
ok, kann man glaube ich drüber streiten was unübersichtlicher ist:
- ein Device mit "hunderten" unübersichtlichen Readings von allen Clients
oder
- unübersichtliche "60" Devices mit einer Hand voll Readings pro Client
Ich würde Variante 2 bevorzugen, so ist es ja auch in der UniFi-GUI abgebildet.
Evtl. kann man auch dem UniFi-"Elterndevice" auch ein Attribut geben, welche Clients (als Regex) zu ignorieren sind und somit gar nicht erst als Device/Reading erstellt werden.
Zitat von: roedert am 15 Mai 2018, 14:40:43
ok, kann man glaube ich drüber streiten was unübersichtlicher ist:
- ein Device mit "hunderten" unübersichtlichen Readings von allen Clients
oder
- unübersichtliche "60" Devices mit einer Hand voll Readings pro Client
Ich würde Variante 2 bevorzugen, so ist es ja auch in der UniFi-GUI abgebildet.
Evtl. kann man auch dem UniFi-"Elterndevice" auch ein Attribut geben, welche Clients (als Regex) zu ignorieren sind und somit gar nicht erst als Device/Reading erstellt werden.
Diesen Ansatz hatte ich auch schon im Kopf "hin und her gewälzt".
Folgender Gedanke:
1. Einschränkung der anzuzeigenden Devices regexp (was ja Deinem Vorschlag entspricht)
2. Einschränkung der anzuzeigenden Readings via Regexp - Raumtemperatur, PH-Wert und aktuelle Beschleunigung (you get the picture) interessieren mich je nach Anwendungsfall nicht - aber An/Abwesenheit schon.
Aber eine Einschränkbarkeit der Netzwerkteilnehmer im Hauptdevice (=Controller) fände ich schon charmant.
Gruß - Test folgt später.
Tom
Zitat von: Wuehler am 14 Mai 2018, 21:56:03
Hi,
im ersten Post eine neue Version sowie Infos über die Anpassungen. Falls ihr noch ein upgrade auf dem USW machen könnt bitte eine Info, welcher code dabei angezeigt wird, dann baue ich eine Übersetzung ein. (1= connected; 5 = provisioning; 2-4=?; ?=upgrading)
....
Leider steht bei mir nur ein Update für den USG an - von daher kann ich Dir den Gefallen nicht tun.
OK, einigen wir uns auf Unentschieden ;)
Vorschlag (gilt nur für Clients):
- Modul UnifiClients.pm
- kann mehrere Clients mit den zugehörigen Readings anzeigen
- kann per RegExp eingeschränkt werden
- es kann mehrere Clients-Devices geben mit unterschiedlichen RegExp
- Problem: Es entsteht ggf. recht viel Overhead in fhem.pl, wenn jeder client einzeln verarbeitet wird (60x Dispatch()-Funktion bei 60 Clients)
- Man braucht ein zusätzliches Attribut in UnifiClients.pm: UpdateOrder, da eine Nachricht nur genau von einem Clients-Device verarbeitet werden wird (falls ein Client bei mehreren RegExp positiv sein würde und man z.B. eine ClientsRest mit RegExp .* haben möchte (welches vermutlich durch autocreate eh immer wieder angelegt werden wird))
Hört sich nach viel Forschungsarbeit an. Werde daher vielleicht doch erstmal ein Attribut "clientList" im Unifi-Modul einführen, mit der man die Readings auf bestimmte Clients einschränken kann.
Ausserdem muss ich mir einen Weg überlegen, wie man die Änderungen langsam und schadlos ins Update bringt.
VG,
Dirk
Ich hatte das irgendwie anders mit dem Regex gemeint.
Das Unifi-Modul erstellt automatisch für jeden einzelnen Client ein Device (genau wie momentan für jeden einzelnen Switch).
Um die Übersicht zu behalten kann man aber zB beim UniFi-Device angeben sowas attr UniFi ignoreclient iPhone.*
Dies verhindert, das für Clients die mit iPhone beginnen kein Device automatisch erstellt wird.
Oder umgekehrt - man muss angeben für welche Clients automatisch ein Device erstellt werden soll.
attr UniFi autocreateclient iPhone.*
In jedem einzelnen Client-Device sind dann die Readings, die es momentan (noch) im UniFi-Device gibt:
state
accesspoint
essid
hostname
last_seen
snr
uptime
Sind natürlich alles nur meine laienhaften Gedanken, inwieweit sich das in der Form technisch umsetzen lassen würde habe ich keine Ahnung.
Das würde für alle mit Gast-WLAN bedeuten, dass sie die Liste andauernd um den nächsten Besucher oder Paketboten der sein Handy auf ,,nutze jedes WLAN" eingestellt hat erweitern müssen. DA die je nach Handytyp einen Hostname haben kann man nichtmal alle Mac-Adressen wegfiltern.
Für jeden "Netzteilnehmer" hier im Haus mehr oder minder automatisch ein Device in FHEM angelegt zu bekommen - eher ungern.
Der UNIFI-Controller bietet sehr viele Informationen - sowohl zu seinen eigenen Devices (Device, Port, Stromverbrauch usw) als auch zu den Netzteilnehmern. Egal wo man diese Informationen jetzt verwaltet - bei größeren Netzwerken wird das schnell unübersichtlich - entweder durch die schiere Anzahl der Readings in einem Device (aktuelle Implementierung) oder durch eine Unmenge von Devices, die automatisch angelegt werden (der Ansatz von roedert).
Unsere beiden Ansätze stimmen insofern überein, als das ein Eindämmen dieser Informationsflut sinnvoll erscheint.
Mein Ansatz beruht auf folgender Annahme:
- Fhem soll den UNIFI Controller nicht ersetzen => Viele Informationen werde ich mir nach wie vor im Controller direkt holen - weil ich dort vermutlich auch konfigurierend eingreife, wenn erforderlich
- Fhem soll auf Ereignisse reagieren, die aus dem UNIFI Controller extrahiert werden können => Anwesenheitserkennung, ggfs Verfügbarkeitsüberwachung allgemein, Verbrauchswerte plotten
Getreu des KISS-Prinzips halte ich die bisherige Implementierung (clientbezogene Readings in einem zentralen Device zusammentragen) für vollkommen ausreichend - Performanceaspekte noch nicht betrachtet. Allein aus Gründen der Übersichtlichkeit fände ich es schön, wenn man die Readings je Netzteilnehmer "konfigurieren" könnte, also aus der vollständigen Liste je Device
- state
- accesspoint
- essid
- hostname
- last seen
- snr
- uptime
sind doch idR nur wenige Readings interessant. In meinem Fall vermutlich
zum Zwecke der Anwesenheitserkennung.
Könnte ich jetzt die anderen 5 Readings via regexp ausblenden, hätte ich die Datenmenge im zentralen Device bereits um rund 70% reduziert.
Detaillierte Auswertungen / Informationen kann ich ja nachwievor auch in FHEM extrahieren mit "get <unifi> clientdata <clientname", wenn ich die Info in FHEM weiterverarbeiten möchte.
Just my 2 cts.
Gruß,
Tom
Zitat von: sledge am 16 Mai 2018, 19:55:06Readings je Netzteilnehmer "konfigurieren" könnte
Da wird die Konfiguration aber komplex, wenn man je Netzteilnehmer eine eigene config machen möchte. Wenn dann für alle dieselben Readings.
Komme in der nächsten Zeit eh nicht dazu. Erstmal den UnifiSwitch fertig machen. Oder jemand anders schickt nen patch.
Zitat von: sledge am 16 Mai 2018, 19:55:06
Unsere beiden Ansätze stimmen insofern überein, als das ein Eindämmen dieser Informationsflut sinnvoll erscheint.
Richtig, und dafür wurden ja schon die beiden Möglichkeiten genannt:
- per Regex ausschliessen was nicht automatisch angelegt werden soll
- per Regex angeben, was automatisch angelegt werden soll
3. Variante wäre Clients gar nicht automatisch anzulegen, sondern nur manuell.
Unabhängig davon, ob nun ein Device pro Netzclient implementiert wird oder nicht, wäre es auch sinnvoll in der jetzigen Implementierung Clients filtern zu können um dort die Anzahl der Readings zu begrenzen.
Bei mir zB sind es so um die 50 Clients, interessant sind jedoch nur die beiden iPhones für die Anwesenheitserkennung.
Zitat von: Wuehler am 16 Mai 2018, 20:05:50
Da wird die Konfiguration aber komplex, wenn man je Netzteilnehmer eine eigene config machen möchte. Wenn dann für alle dieselben Readings.
Genau das meinte ich auch - unsaubere Formulierung meinerseits.
Und wie gesagt: Ich bin mehr als zufrieden mit der aktuellen Implementierung - meine Vorschläge sind jammern auf hohem Niveau.
Zitat von: sledge am 16 Mai 2018, 20:40:27
Und wie gesagt: Ich bin mehr als zufrieden mit der aktuellen Implementierung - meine Vorschläge sind jammern auf hohem Niveau.
Absolute Zustimmung, das ist schon jetzt ein tolles und nützliches Modul. Ganz großen Dank und Respekt dafür!
Ich oder wir "meckern" hier nicht, sondern wollen unterstützen/diskutieren welche sinnvollen Ideen, Änderungen, Optimierungen oder was auch immer wir noch beisteuern können solange du Zeit, Lust und Spaß daran hast das Modul weiter zu entwickeln und zu pflegen.
@roedert: Danke, und habe ich auch so verstanden. Auch wenn es vielleicht anders angekommen ist. Der Dank geht übrigens auch an rapster, der den größten Teil entwickelt hat.
Aktuell ist dieser Thread etwas vom Thema UnifiSwitch weggekommen. Vorschlag daher: Erstmal den UnifiSwitch fertigstellen und dann in einem neuen Thread das Thema UnifiClients nochmal neu aufgreifen. Ich habe durch die Diskussion einige Ideen mitbekommen und muss bei manchen erstmal schauen, wie sie umsetzbar sind. Ggf. dann auch erstmal nur mit einem einfachen Readings-Attribut am Controller-Device.
Ich bin nicht sicher ob es bei den Switches auch so ist - aber bei den APs gibt es noch den Zustand Isolated, scheint mir der fall zusein wenn ein AP per Kabel nicht erreichbar ist - aber noch eine Funkverbindung zu einem anderen AP hat.
Zitat von: der-Lolo am 17 Mai 2018, 06:06:55
Ich bin nicht sicher ob es bei den Switches auch so ist - aber bei den APs gibt es noch den Zustand Isolated, scheint mir der fall zusein wenn ein AP per Kabel nicht erreichbar ist - aber noch eine Funkverbindung zu einem anderen AP hat.
Ja, das sollte im JSON der Status 11 sein
Die anderen habe ich aber bisher noch nicht ermitteln können
Dass das generelle Anlegen eines Devices pro Switchport "Unsinn" bzw. Overkill wäre, waren wir uns ja eigentlich ziemlich einig.
Ist aber die Frage ob es nicht optional sinnvoll wäre, ein "(PoE-)Switchport-Device" manuell anlegen zu können, welches dann auf die set-Befehle on und off versteht.
Beispiel: Ein Kamera hängt an Port 7 eines Switches.
So könnte ich ein Device Kamera definieren unter Angabe des Switches und des Ports und dieses dann direkt mit "set Kamera off" ausschalten.
Geht natürlich mit "set Switch 7 poeMode off" genauso - "set Kamera off" ist aber natürlich übersichtlicher. Und wenn sich der Switch/Port an dem die Kamera angeschlossen ist mal ändert muss ich das nur im Kamera-Device anpassen und nicht über all wo evtl "set switchname portnummer....." steht.
Vielleicht geht dies aber auch anders mit bestehenden FHEM-Mitteln umzusetzen, mit struct oder anderen Helferlein - das habe ich mir noch nicht angeschaut.
Ein dummy und dazu passendes notify ginge natürlich, sind aber auch schon wieder 2 Objekte.
Wie gesagt ... nur ein Denkanstoß. Ob und mit wieviel Aufwand dies realisierbar ist, kann ich nicht einschätzen.
Moin,
Versuch dazu mal einen cmdAlias anzulegen:
https://wiki.fhem.de/wiki/Cmdalias (https://wiki.fhem.de/wiki/Cmdalias)
Ist denke ich eine bessere Lösung als ein eigenes port-device.
Inetwa so:
define setkam cmdalias .* AS set MySwitch 7 $EVTPART1
Müsste dann mit
setkam on
Bzw.
setkam off
bzw.
setkam auto
aufrufbar sein.
Dann musst du beim Umzug der Kamera auch nur den cmdAlias anpassen.
VG,
Dirk
Hallo zusammen,
Im Anhang des ersten Posts eine neue Version 0.90 des UnifiSwitch-Moduls (und Unifi-Moduls).
Meiner Meinung nach wäre das Modul für den UnifiSwitch jetzt erstmal soweit fertig, dass es offiziell bereitgestellt werden könnte.
Bitte nochmal testen. Da ich immer noch nicht der perl-Experte bin fänd ich es Klasse, wenn jemand mal ein Review des neuen Moduls sowie der Anpassungen im Unifi-Moduls durchführen könnte, bevor es dann offiziell wird.
Aktuell funktioniert das Modul nur für USWs. Für den NanoSwitch weiß ich nicht, ob der als Model ebenfalls usw sendet. Für alle anderen Geräte wäre denke ich ein weiteres Submodul/physisches Device richtig, oder es bleibt im Controller-Device.
Danke und viele Grüße,
Dirk
Ich bin diese Woche noch unterwegs, leider hat sich zu Hause irgendwie das Developmentsystem aufgegangen.
Somit komme ich erst nächste Woche zum Testen.
Aber trotzdem schonmal ein großes Danke an dich für die Umsetzung.
Ist die Funktionalität des Unifii-Moduls eigentlich identisch geblieben, so dass man die beiden Files auch offiziell einchecken könnte ohne dass existierende Konfigurationen evtl nicht mehr funktioniere könnten?
Moin,
Ja, ist erstmal identisch. Gibt nen Logeintrag wenn man Set poeMode verwendet, als Hinweis, dass man das neue Modul nutzen soll. Irgendwann baue ich die doppelten Funktionen dann aus.
Hallo zusammen,
ich habe das Modul jetzt eingecheckt. Morgen dann im Update.
Inhalte siehe erster Post in diesem Thread.
VG, Dirk
Sorry, bin irgendwie nicht zum Testen gekommen .... außerdem hatte sich das Testsystem "verabschiedet".
Da du das Modul aber jetzt ja auch offiziell eingepflegt hast, habe ich es heute gleich produktiv geladen ... und es sieht alles gut aus :-)
Großen Dank nochmal an Dich!
Danke für das Feedback. Geht mir dann gleich besser, wenn es bei euch läuft und keine Fehler kommen. Ein wenig soannend ist es bei größeren Anpassungen ja immer ;)
Musste jetzt mal eingecheckt werden, da ich neue kleine Anfirderungen nicht im alten Modul einbauen wollte.
Ich wollte gerade meine POEmode-Befehle vom Unifi-Objekt auf das entsprechende UnifiSwitch-Objekt umziehen. Dabei fiel mir auf dass der Syntax 1:1 vom Unifi-Modul übernommen wurde.
set <name> poeMode <name|mac|id> <port> <off|auto|passive|passthrough|restart>
Aber wozu muss ich jetzt nochmal <name|mac|id> für den Switch angeben, das set bezieht sich doch jetzt schon schon durch das neue Objekt auf einen festgelegten Switch?
Auch könntest du die Doku evtl. ein wenig aussagekräftiger anpassen, ich war gerade am rätseln was denn poe_current und poe_power sei ..... current ist der Strom in mA, power ist die Leistung in W.
Hab auch gerade nach den richtigen englischen Begriffen gesucht - kann doch nicht sein dass in englisch Strom und Leistung beides "power" heisst?
Readings
Note: All readings generate events. You can control this with these global attributes.
Each port has the readings name and state. POE-ports have more readings.
name - The name of the port as defined in UnifiController.
state - The connection state of the port. Can be disconnected or in Mbps/Gbps.
poe_current - The current power-usage.
poe_mode - The poe-mode of the port.
poe_power - The power of the port.
poe_voltage - The voltage of the port.
Zitat von: roedert am 12 Juni 2018, 00:39:32
set <name> poeMode <name|mac|id> <port> <off|auto|passive|passthrough|restart>
Das ist auch nur ein Fehler in der Doku. Im code habe ich <name|mac|id> ausgebaut, in der Doku leider übersehen.
Passe die Doku dann zeitnah mal an.
@roedert: funktioniert die Umstellung des pie-Mode auf den Switch?
Ja klar, alles bestens :D
Hallo,
morgen im Update die Korrektur der commandref sowie 2 neue states im Mapping: upgrading und managed by other.
Ich hoffe, es hat niemand zwei Unifi-Controller im selben Netz an ein FHEM angebunden. Das "Managed by other" könnte dann interessant werden, da vermutlich beide Unifi-Devices dann dasselbe UnifiSwitch-Device updaten würden. Anpassen werde ich daran aber erst etwas bei Bedarf, da es alternative Lösungsmöglichkeiten gibt.
Schönes Wochenende,
Dirk
Guten Morgen Wuehler,
ich habe folgendes im Log:
2018.06.18 19:36:38 3: UnifiController (UnifiSwitch_Parse) - return: UNDEFINED UnifiSwitch_SwitchSchaltschrank UnifiSwitch SwitchSchaltschrank
...
2018.06.30 07:34:31 3: UnifiController (UnifiSwitch_Parse) - return: UNDEFINED UnifiSwitch_SwitchSchaltschrank UnifiSwitch SwitchSchaltschrank
im Abstand von etwa 30sekunden.
FHEM läuft bei mir auf einer Synology DiskStation oft für eine weile nahezu unbeobachtet - die Hardware verträgt also ein bisschen was.
Ich habe zwar einen UnifiSwitch im Netzwerk - aber sehe aktuell keine verwendung für das Switch Modul.
Es kann doch nicht richtig sein das ich den Switch definieren muss nur weil er im Netzwerk ist, oder?
Um nun den Spuk im Log zu beenden habe ich gedacht ich definiere den Switch einfach...
In der ComandRef findet sich aber kein hinweis zu UnifiSwitch - auch auf den ersten Seiten hier im Thread finde ich keine Beispielkonfiguration. Im FHEMwiki gibt es auch nichts über Unifi
Wie lege ich nun also einen Switch an?
Eigentlich müsste ich Laub haken und Rasen mähen ;-)
Zitat von: der-Lolo am 30 Juni 2018, 08:15:45
Um nun den Spuk im Log zu beenden habe ich gedacht ich definiere den Switch einfach...
In der ComandRef findet sich aber kein hinweis zu UnifiSwitch - auch auf den ersten Seiten hier im Thread finde ich keine Beispielkonfiguration. Im FHEMwiki gibt es auch nichts über Unifi
Wie lege ich nun also einen Switch an?
Eigentlich müsste ich Laub haken und Rasen mähen ;-)
Meine drei Switche wurden automatisch angelegt - da musste ich "nichts" machen. Klappt(e) wunderbar. Das ewinzige, was mir bei Dir auffällt, ist ein recht langer Name - meine sind deutlich kürzer.
Und die einzigen Meldungen, die ich dann habe, sind die Update-Meldungen vom Modul:
2018.06.24 10:35:49 1: UPD FHEM/74_UnifiSwitch.pm
Das mit Rasenmähen und Laub harken - guter Hinweis. Ist zwar gerade Mittagsruhe, aber das ist ja egal ;)
Das lag am deaktiviertem autocreate...
Jetzt ist alles gut... Mit dem Namen des Switches hing das also nicht zusammen ;-)
Hallo Wuehler,
wenn ich nun einen POE port per
set SwitchBuero poeMode off
ausschalte oder per
set SwitchBuero poeMode auto
einschalte bekomme ich im FHEM-Log folgendes...
2018.07.15 17:30:20 1: UnifiController (Unifi_Write) - executed with Unifi_RestJson_Send
2018.07.15 17:30:05 1: UnifiController (Unifi_Write) - executed with Unifi_RestJson_Send
2018.07.15 17:22:59 1: UnifiController (Unifi_Write) - executed with Unifi_RestJson_Send
2018.07.15 17:22:43 1: UnifiController (Unifi_Write) - executed with Unifi_RestJson_Send
Benutze ich die funktion falsch? Stimmt noch was mit meiner Installation nicht?
Warum bekomme ich diese Log Einträge unter verbose 1? Meiner meinung nach gehören dort nur wirklich kritische vorkomnisse hinein...
der vollständigkeit halber noch ein List vom Switch
Internals:
CFGFN
CODE SwitchBuero
DEF SwitchBuero
IODev UnifiController
LASTInputDev UnifiController
MODEL US8P60
MSGCNT 217
NAME SwitchBuero
NR 1928
STATE connected
TYPE UnifiSwitch
UnifiController_MSGCNT 217
UnifiController_TIME 2018-07-15 17:57:33
VERSION 0.91
READINGS:
2018-07-15 17:57:33 port_01_name Uplink
2018-07-15 17:57:33 port_01_state 1000 Mbps
2018-07-15 17:57:33 port_02_name Port 2
2018-07-15 17:57:33 port_02_state disconnected
2018-07-15 17:57:33 port_03_name Port 3
2018-07-15 17:57:33 port_03_state disconnected
2018-07-15 17:57:33 port_04_name Port 4
2018-07-15 17:57:33 port_04_state disconnected
2018-07-15 17:57:33 port_05_name GardenDoorESP
2018-07-15 17:57:33 port_05_poe_current 6.83
2018-07-15 17:57:33 port_05_poe_mode auto
2018-07-15 17:57:33 port_05_poe_power 0.33
2018-07-15 17:57:33 port_05_poe_voltage 48.13
2018-07-15 17:57:33 port_05_state 100 Mbps
2018-07-15 17:57:33 port_06_name Port 6
2018-07-15 17:57:33 port_06_poe_current 0.00
2018-07-15 17:57:33 port_06_poe_mode auto
2018-07-15 17:57:33 port_06_poe_power 0.00
2018-07-15 17:57:33 port_06_poe_voltage 0.00
2018-07-15 17:57:33 port_06_state disconnected
2018-07-15 17:57:33 port_07_name Port 7
2018-07-15 17:57:33 port_07_poe_current 0.00
2018-07-15 17:57:33 port_07_poe_mode auto
2018-07-15 17:57:33 port_07_poe_power 0.00
2018-07-15 17:57:33 port_07_poe_voltage 0.00
2018-07-15 17:57:33 port_07_state disconnected
2018-07-15 17:57:33 port_08_name Port 8
2018-07-15 17:57:33 port_08_poe_current 0.00
2018-07-15 17:57:33 port_08_poe_mode auto
2018-07-15 17:57:33 port_08_poe_power 0.00
2018-07-15 17:57:33 port_08_poe_voltage 0.00
2018-07-15 17:57:33 port_08_state disconnected
usw:
_id 5b4b4fe6e4b0bc41424d8c06
_uptime 7501
board_rev 6
bytes 3262672
cfgversion 7952747e8842c55a
connect_request_ip 192.168.1.8
connect_request_port 42128
considered_lost_at 1531670368
device_id 5b4b4fe6e4b0bc41424d8c06
fw_caps 187941
general_temperature 0
guest-num_sta 0
inform_authkey df79e437fdabcfc176a59090c007c6b8
inform_ip 192.168.1.3
inform_url http://unifi:8080/inform
ip 192.168.1.8
known_cfgversion 7952747e8842c55a
last_seen 1531670230
led_override default
license_state registered
mac 78:8a:20:7f:b2:d8
model US8P60
name SwitchBuero
next_heartbeat_at 1531670276
num_sta 0
outdoor_mode_override default
rx_bytes 1224602
serial 788A207FB2D8
site_id 594e2b79744eee3df4737ed5
state 1
stp_priority 32768
stp_version rstp
tx_bytes 2038070
type usw
uplink_depth 1
uptime 7501
user-num_sta 0
version 3.9.19.8123
x_authkey df79e437fdabcfc176a59090c007c6b8
x_fingerprint 66:66:a8:8e:a0:7f:dd:da:79:ad:3a:9f:43:b4:7e:d2
config_network:
dns1 192.168.1.1
dns2 8.8.8.8
gateway 192.168.1.1
ip 192.168.1.8
netmask 255.255.255.0
type static
dhcp_server_table:
downlink_table:
ethernet_table:
HASH(0x1da942c8)
HASH(0x1da8b348)
last_uplink:
uplink_mac f0:9f:c2:12:cd:0c
port_overrides:
HASH(0x1daf4c68)
HASH(0x1daeff08)
HASH(0x1da92e60)
port_table:
HASH(0x1daee070)
HASH(0x1daf0238)
HASH(0x1da5a510)
HASH(0x1dae2fd0)
HASH(0x1db248a0)
HASH(0x1db24090)
HASH(0x1db35f98)
HASH(0x1dadde20)
ssh_session_table:
stat:
bytes 5282713
datetime 2018-07-15T13:45:00Z
duration 7814000
o sw
oid 78:8a:20:7f:b2:d8
port_1-rx_broadcast 2889
port_1-rx_bytes 2082396
port_1-rx_multicast 4602
port_1-rx_packets 11447
port_1-tx_broadcast 299
port_1-tx_bytes 1265797
port_1-tx_multicast 4031
port_1-tx_packets 7887
port_5-rx_broadcast 160
port_5-rx_bytes 79092
port_5-rx_errors 1
port_5-rx_packets 666
port_5-tx_broadcast 2851
port_5-tx_bytes 1855428
port_5-tx_multicast 7937
port_5-tx_packets 11603
rx_broadcast 3049
rx_bytes 2161488
rx_crypts 0
rx_dropped 0
rx_errors 1
rx_frags 0
rx_multicast 4602
rx_packets 12113
site_id 594e2b79744eee3df4737ed5
sw 78:8a:20:7f:b2:d8
time 1531662300000
tx_broadcast 3150
tx_bytes 3121225
tx_dropped 0
tx_errors 0
tx_multicast 11968
tx_packets 19490
tx_retries 0
sys_stats:
loadavg_1 1.51
loadavg_15 1.56
loadavg_5 1.57
mem_buffer 0
mem_total 262516736
mem_used 157089792
system-stats:
cpu 55.9
mem 59.8
uptime 7501
uplink:
ip 192.168.1.8
mac 78:8a:20:7f:b2:d8
max_speed 1000
media GE
name eth0
netmask 255.255.255.0
num_port 8
port_idx 1
rx_bytes 2038070
rx_bytes-r 257
rx_dropped 0
rx_errors 0
rx_multicast 0
rx_packets 11000
speed 1000
tx_bytes 1224602
tx_bytes-r 235
tx_dropped 0
tx_errors 0
tx_packets 7455
type wire
Attributes:
group Unifi
room 99-Controller
Moin Lolo,
Bin gerade nicht im Lande. Danke für den Hinweis. Schaue ich mir nächste Woche dann an. Ist ja nichts Priomäßiges.
Viele Grüße,
Dirk
Zitat von: der-Lolo am 15 Juli 2018, 18:00:13
set SwitchBuero poeMode off
ausschalte oder per
set SwitchBuero poeMode auto
einschalte
...da fehlt doch die Portnummer!
set SwitchBuero poeMode <Port> off
Ja, sorry roedert - aber nur hier im post!
Morgen im Update ein kleiner BugFix des Unifi-Controller-Moduls mit dem richtigen Loglevel für die von Lolo genannte Meldung.
Hallo,
Ich habe eine Frage
set switch poeMode 6 off
set switch poeMode 6 auto
funktioniert!
set switch poeMode 6 restart
Funktioniert nicht!
Habe ich einen Fehler in der syntax oder ist das Kommando nicht implementiert?
Gruß
Eisix
Hi,
Habe eben mal in den übernommenen code geschaut:
} elsif( $setVal2 eq 'restart' ) {#TODO: Was wir hier gemacht? Funktioniert das noch?
IOWrite($hash, "Unifi_RestJson_Send", {cmd => 'power-cycle', mac => $apRef->{mac}, port_idx => $setVal+0});
;D
Der Kommentar sagt es ja schon fast.
Muss ich mir die Tage dann mal genauer ansehen.
VG,
Dirk
Hallo,
von der App oder GUI aus funktioniert es noch, wenn dir das was hilft. Melde dich wenn ich testen soll!
Gruß
Eisix
Hi Eisix,
das wird für mich etwas schwieriger nachzustellen. Aktuell nutze ich poe nicht. Power-cycle kann man aber nur auswählen, wenn der Port auch Strom zieht. Kann das also gerade auf der Unifi-UI nicht ausprobieren. Kannst du mal mit den Entwicklertools des Browsers mitschneiden, welche URL beim restart eines ports aufgerufen wird uns welches json gesendet wird.
Danke,
Dirk
Hallo,
Unifi Server Version ist: unifi_5.10.17
Bin kein Experte für die Entwicklertools
Das ist der HTML Code der ausgeführt wird zum restart.
<tr class="clickable" collection-view-repeat="model in switchPropertiesPortListCtrl.view.getModels()" collection-view-repeat-watch-all="switchPropertiesPortListCtrl.columnStore.getColumns()" ng-attr-id="portRow{{switchPropertiesPortListCtrl.model.get('_id')}}-{{::model.get('port_idx')}}" ng-class="{'is-row-selected': highlightedPort === model.get('port_idx')}" ng-click="toggleHighlightedPort(model)" id="portRow5ada26b692e74007bd290ff6-1"><!----><td class="portCheckbox ubntTableCell--checkbox" ng-if="attrs.withBatchEdit" ng-show="(switchPropertiesPortListCtrl.model | canConfigureDevice)"><input class="mr-0" type="checkbox" ng-checked="switchPropertiesPortListCtrl.isBatchEditSelected(model)" ng-click="switchPropertiesPortListCtrl.toggleBatchEdit(model); $event.stopPropagation();" ng-disabled="!isPortSelectable({model: model})"></td><!----><!----><!----><td class="portName type-ellipsis" ng-if="::switchPropertiesPortListCtrl.isColumnVisible('name')" style="max-width: 200px">Port 1</td><!----><!----><td class="portStatus" ng-if="::switchPropertiesPortListCtrl.isColumnVisible('status')"><div class="positionRelative ubntPort unifiPortDiagramPort clickable ubntPort--withBorder ubntPort--1000" ng-class="{ 'clickable': !isDisabled && !!portModel, 'is-selected': isSelected, 'ubntPort--withBorder': withBorder, 'ubntPort--disconnected': portModel.get('enable') && !portModel.get('up'), 'ubntPort--100': portLedColor === 'amber', 'ubntPort--1000': portLedColor === 'green', 'ubntPort--10000': portLedColor === 'white', 'unifiPortDiagramPort--has2': icons.length === 2, 'unifiPortDiagramPort--has3': icons.length === 3, 'is-spacer': isSpacer }" ng-mouseenter="isActive = true" ng-mouseleave="isActive = false" unifi-switch-port-diagram-model="switchPropertiesPortListCtrl.model" unifi-switch-port-diagram-port-model="model" unifi-switch-port-diagram-with-border="true"><!----><div class="unifiPortDiagramPort__icon d-flex justify-center align-center" ng-switch="::portDiagramIconCtrl.icon" ng-repeat="icon in icons" unifi-port-diagram-icon="icon" unifi-port-diagram-icon-class="['ubntIcon']"><!----><!----><!----><!----><!----><!----><!----><!----><svg ng-switch-when="uplink" ng-class="{"ubntIcon":true}" viewBox="0 0 306 306" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="ubntIcon"><polygon points="35.7 247.4 153 130.1 270.3 247.4 306 211.7 153 58.7 0 211.7 " fill="currentColor"></polygon></svg><!----><!----></div><!----><!----></div></td><!----><!----><!----><!----><td class="portPoe" ng-if="attrs.isPoeSupported && switchPropertiesPortListCtrl.isColumnVisible('poe_mode')"></td><!----><!----><td class="portActions ubntTableCell--withActions ubntTableCell--smash"><div class="ubntTableCell__actions ubntTableCell__actions--inline"><div class="ubntButtonGroup ubntButtonGroup--cozy mr-2"><!----><button class="ubntButton ubntButton--link" ng-if="(switchPropertiesPortListCtrl.model | canConfigureDevice) && !model.get('masked') && !model.get('attr_no_edit')" ng-click="switchPropertiesPortListCtrl.edit(model)" title="Edit"><span class="button__icon icon ubnt-icon--pencil"></span></button><!----><!----><!----></div></div></td></tr>
Und das wurde dann in der Console angezeigt.
components.v5.10.17.1.js:62 XHR finished loading: POST "https://192.168.1.1:8443/api/s/default/cmd/devmgr".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
$apply @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
dispatch @ components.v5.10.17.1.js:136
d.handle @ components.v5.10.17.1.js:136
18XHR finished loading: GET "<URL>".
components.v5.10.17.1.js:62 XHR finished loading: GET "https://192.168.1.1:8443/api/s/default/stat/device/fc:ec:da:04:28:c3".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
completeTask @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
setTimeout (async)
p.defer @ components.v5.10.17.1.js:62
$evalAsync @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
c @ components.v5.10.17.1.js:62
e @ components.v5.10.17.1.js:62
z @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
g @ components.v5.10.17.1.js:62
_resolve @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
requestAnimationFrame (async)
p @ components.v5.10.17.1.js:62
n @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
p @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:7
push @ components.v5.10.17.1.js:7
leave @ components.v5.10.17.1.js:62
n.leave @ base.v5.10.17.1.js:1
(anonymous) @ components.v5.10.17.1.js:91
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
completeTask @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
setTimeout (async)
p.defer @ components.v5.10.17.1.js:62
$evalAsync @ components.v5.10.17.1.js:62
i @ components.v5.10.17.1.js:82
dispatch @ components.v5.10.17.1.js:136
d.handle @ components.v5.10.17.1.js:136
components.v5.10.17.1.js:62 XHR finished loading: GET "https://192.168.1.1:8443/api/s/default/stat/sta".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
$apply @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
components.v5.10.17.1.js:62 XHR finished loading: GET "https://192.168.1.1:8443/api/self/sites".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
$apply @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
components.v5.10.17.1.js:62 XHR finished loading: GET "https://192.168.1.1:8443/api/s/default/stat/health".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
$apply @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
components.v5.10.17.1.js:62 XHR finished loading: GET "https://192.168.1.1:8443/api/s/default/get/setting".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
$apply @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
components.v5.10.17.1.js:62 XHR finished loading: GET "https://192.168.1.1:8443/api/s/default/stat/sysinfo".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
$apply @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
components.v5.10.17.1.js:62 XHR finished loading: GET "https://192.168.1.1:8443/api/s/default/stat/widget/warnings".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
$apply @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
components.v5.10.17.1.js:62 XHR finished loading: GET "https://192.168.1.1:8443/api/s/default/cnt/alarm?archived=false".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
$apply @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
components.v5.10.17.1.js:62 XHR finished loading: GET "https://192.168.1.1:8443/api/s/default/stat/current-channel".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
$apply @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
components.v5.10.17.1.js:62 XHR finished loading: GET "https://192.168.1.1:8443/api/s/default/stat/ccode".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
$apply @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
components.v5.10.17.1.js:62 XHR finished loading: GET "https://192.168.1.1:8443/status".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
$apply @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
components.v5.10.17.1.js:62 XHR finished loading: GET "https://192.168.1.1:8443/api/s/default/rest/networkconf".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
$apply @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
components.v5.10.17.1.js:62 XHR finished loading: GET "https://192.168.1.1:8443/api/s/default/rest/wlangroup".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
$apply @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
components.v5.10.17.1.js:62 XHR finished loading: GET "https://192.168.1.1:8443/api/s/default/rest/wlanconf".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
$apply @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
components.v5.10.17.1.js:62 XHR finished loading: GET "https://192.168.1.1:8443/api/s/default/rest/tag".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
$apply @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
components.v5.10.17.1.js:62 XHR finished loading: GET "https://192.168.1.1:8443/api/s/default/rest/portconf".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
$apply @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
components.v5.10.17.1.js:62 XHR finished loading: GET "https://192.168.1.1:8443/api/s/default/rest/radiusprofile".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
$apply @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
components.v5.10.17.1.js:62 XHR finished loading: GET "https://192.168.1.1:8443/api/s/default/stat/device".
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
$digest @ components.v5.10.17.1.js:62
$apply @ components.v5.10.17.1.js:62
(anonymous) @ components.v5.10.17.1.js:62
Hilft dir das irgendwie weiter? Wenn nicht dann sehe ich zwei Möglichkeiten entweder versuchst du mir es genauer zu erklären oder wir machen eine Teamviewer-session und du machst es selbst.
Gruß
Eisix
Hi,
nee, reicht leider nicht ;-)
Für Chrome in den Entwicklertools:
- Console auswählen
- Bei den Einstellungen der Console (rechts das Zahnrad) muss ein Haken sein bei "Log XMLHttpRequests"
- Dann klickst du dich bis zur Stelle mit dem restart-Link, aber noch nicht draufdrücken
- In der Console ein clear (Stop-Symbol) ausführen
- Im Reiter Network ebenfalls clear
- zurück zur Console
- Jetzt auf den restart link klicken
- In der console wird es mehrere Einträge geben, der erste ist Interessant, müsste auf /default/rest/device/...ID... enden
- In der console auf diesen Eintrag klicken, du kommst nach Network
- dort rechte Moustaste-> copy -> copy as PowerShell
- Das Ergebnis hier posten.
Viel Erfolg,
Dirk
Hi Eisix,
versuch mal die Datei im Anhang. Habe mal schnell etwas geändert, bin mir aber nicht wirklich sicher.
Gruß,
Dirk
Hallo,
sehe keine Änderung. Verbose 5 beim Switch und Server bring auch nichts. Wird nur das set Kommando angezeigt aber kein Error.
Gruß
Eisix
Das wäre ja dann auch zu einfach gewesen. ;)
Ich werde mal nen AP abbauen und an meinen Switch hängen, geht ja eigentlich schnell. Dann kann ich das Problem nachstellen.
Wenn ich es richtig sehe ist es für dich aber auch nicht super dringend, oder?
Mich würde dein Anwendungsfall interessieren. Wann braucht man einen pie-piwer-cycle?
Viele Grüße,
Dirk
Habe ein Allnet Poe Tablet in die Wand gebaut und da kommt man so schlecht an den Powerbutton :-\.
Momentan mache ich ein off und auto des Ports wenn ich einen reboot brauche. Ich weiss nicht ob das wirklich das gleiche ist. Gehe mal davon aus das off einfach den Strom wegnimmt, ob der Powercycle vorher noch eine Art shutdown schick??
Da das aber nicht so oft vorkommt ist es nicht dringend, lass dir Zeit.
Gruß
Eisix
also was ich gesehen habe ist.
Bei einem Restart nimmt er den Power weg wartet paar Sekunden und gibt wieder Power.
Ich überlege mirauch ein Allnet Tablet zuholen, wollte dann die Reboots etc über AMAD lösen.
Hallo Eisix,
kann es leider hier nicht nachstellen, da mein kleiner switch kein passivePoe kann, mein AP das aber braucht.
Habe daher nochmal tiefer in den code geschaut und noch einen Fehler gefunden. Du musst beide Module (UnifiSwitch und Unifi) runterladen und einspielen.
Falls es nicht funktioniert bitte auch beim Unifi ein verbose=5 machen, und dann den restart-Befehl ausführen.
Viel Erfolg,
Dirk
@TNT0068: Gute Idee und ggf. auch schonender als den Strom einfach wegzunehmen.
Hallo Dirk,
funktioniert! Danke für die schnelle Umsetzung.
Die AMAD Variante muss ich mir auch mal anschauen sollte definitiv gesünder sein solange der Service noch läuft.
Gruß
Eisix
OK, habe dann auch gleich die Methoden zum Switch aus dem Unifi-Modul ausgebaut. Muss ja nicht doppelt vorhanden sein.
Morgen stelle ich dann beide Module für das Standardupdate bereit.
Moin,
zur Idee, weitere Readings im Modul anzuzeigen (konkret die Temperatur) habe ich erstmal bei den anderen FHEM-Entwicklern nachgefragt (https://forum.fhem.de/index.php/topic,101792.0.html), ob es zu customReadings schon so etwas wie ein Standardattribut vorhanden ist. Mal schauen, was da so kommt.
VG,
Dirk
Dann klinke ich mich hier auch mal mit ein :)
Also neben Temp wäre ein TOTAL Power reading noch nützlich. Pro Port hast du ja schon drin.
Allerdings finde ich im JSON nur "total_max_power":140 und der Wert ist bei meinen beiden Switches identisch. Das kann aber nicht sein. Ich frage mich daher was der Wert 140 aussagt. Evtl wird der Gesamtverbrauch gar nicht ausgegeben und nur im Unifi Controller kumuliert angezeigt.
Moin Dersch,
ich denke es wird noch etwas dauern, da dieses Thema im fhem-Umfeld meiner Meinung nach öfters auftritt und ggf. eine allgemeingültige Lösung sinnvoll ist. Außerdem beginnen bald für mich die Ferien.
Bis dahin könntest du dir ein userreading erstellen oder das Modul lokal editieren.
VG,
Dirk
Klar, danke für deine Mühe!
Hi!
Erstmal danke für das Modul. Ist aktuell geplant, einen Port über das Modul deaktivierbar zu machen, z. B. über das Portprofil? (Gemeint ist nicht die Deaktivierung von PoE).
Patrick
Hallo Patrick,
momentan ist so eine Erweiterung nicht geplant. Ich nehme aber gerne einen Patch entgegen ;)
Welchen Anwendungsfall hast du denn dafür? Evtl. kann man das auch über Funktionen des UnifiClient abbilden.
VG,
Dirk
Hi!
Ich mache mir gerade Gedanken über frei zugängliche Ethernetports, z. B. Bei Outdoor-APs. Ein subootimaler Workaround wäre, beim Disconnect des APs den Port zu deaktivieren.
Ich hoffe, ich finde noch eine vernünftige (d. h. sichere) Lösung, aber bislang bin ich nicht fündig geworden.
Patrick
Von unterwegs gesendet.
Hi,
ich habs mir mal kurz angesehen und dir einen schnellen "Workaround" implementiert, der alte Funktionen des Moduls wiederverwendet (siehe Anhang).
set <name> disablePort <port>
Only visible when Attr portProfileDisableID is set.
Set the PortProfile from Attr portProfileDisableID for <port>.
attr portProfileDisableID
Quick Workaround for special purposes: Must contain the ID off the disable-PortConfig. Then set disablePort can be used.
The ID can be found with get portOverrides.
To enable the port the UnifiController-Software must be used.
get <name> portOverrides
Show more details about the portOverrides of the switch.
Du musst also manuell einen port disablen und dir die ID dann mit get portOverrides ermitteln und im Attribut portProfileDisableID ablegen.
VG,
Dirk
@all: Ist jemand da mit einem Switch ohne POE. Würde die setter der Version gerne einmal vertesten lassen, ob die richtigen Fehlermeldungen kommen.
Hi Wuehler,
Zitat von: Wuehler am 26 Juli 2019, 19:36:50
ich habs mir mal kurz angesehen und dir einen schnellen "Workaround" implementiert, der alte Funktionen des Moduls wiederverwendet (siehe Anhang).
besten Dank für den Fix. Leider funktioniert es bei mir irgendwie nicht.
portProfileDisableID habe ich auf 5a11cb96e4b0e1016534f3a6 gesetzt ("LAN" ist 5a11cb96e4b0e1016534f3a7). Bei set SW_Core disablePort 13 sagt das Log:
Zitat
2019.07.26 21:05:41.106 4: UniFi (Unifi_Write) - executed with Unifi_DeviceRestJson_Send
2019.07.26 21:05:41.106 5: UniFi (Unifi_DeviceRestJson_Send) - executed with {"port_overrides":[...{"portconf_id":"5a11cb96e4b0e1016534f3a7","port_idx":"12","poe_mode":"auto","name":"-frei-"},{"name":"-frei-","portconf_id":"5a11cb96e4b0e1016534f3a6","poe_mode":"auto","port_idx":"13"}...]}.
2019.07.26 21:05:41.207 5: UniFi (Unifi_DeviceCmd_Receive) - executed.
2019.07.26 21:05:41.207 5: UniFi (Unifi_DeviceCmd_Receive) - Failed! - state:'403' - msg:'Failed with HTTP Code 403.'
Patrick
Hi,
"Failed with HTTP Code 403" bedeutet "forbidden". Hat dein User Schreibrechte im UnifiController?
VG,
Dirk
Edit: Ich habe im Anhang zwei posts vorher noch kleinere Schönheitsanpassungen vorgenommen.
Hi!
Zitat von: Wuehler am 26 Juli 2019, 21:22:08
"Failed with HTTP Code 403" bedeutet "forbidden". Hat dein User Schreibrechte im UnifiController?
Sorry. Das wars. Jetzt klappts. Danke!
Patrick
Moin,
habe das feature commited, ist im nächsten Update in der offiziellen Version.
VG,
Dirk
Hallo,
hab' einen 'UniFi Switch 8 POE-60W' und würde gerne den POE Mode eines Ports schalten, bekomme allerdings folgenden Fehler: 'switch has no poe-ports!'
Hatte jetzt das Unifi device auch extra nochmal neu angelegt. Der Switch wurde auch mittels Autocreate neu angelegt, allerdings mit dem STATE ??? Und auch ein get poeState liefert keine Readings.
Jemand eine Idee was ich falsch mache?
Hi. Schaue ich mir heute Abend an. Habe da eine Vermutung.
Ich hatte gerade gestern früh eine neue Version commited und dachte erst, es hängt damit zusammen, da ich evtl. ein reload des Moduls vorm letzten Test vergessen habe. Aber dem ist anscheinend nicht so. Bei mir funktioniert 'set poeMode' (auch mit einem 'UniFi Switch 8 POE-60W').
Evtl. hast du nicht lange genug gewartet. Das Unifi-Modul kommuniziert als einziges mit dem UnifiController, daher muss dieses nach dem autocreate erst noch einen Update-Zyklus durchlaufen, damit das UnifiSwitch-Modul auch Daten bekommt. Darauf weist auch dein fehlender state.
Du kannst ein update erzwingen durch 'set update' im Unifi-Modul.
Danke für's nachschauen, hab' jetzt nochmal selber geschaut woran es liegen könnte und es sind wohl wie so häufig die Berechtigungen. Der User war "nur" Administrator, hab' ihn mal zum Superadmin gemacht und nun funktioniert es! Hab' leider nichts dazu gefunden was die minimalen Rechte sind, gibt's noch eine andere Option, ausser den User zum Supeeradmin zu machen?
Hallo zusammen,
im Unifi Controller wird bei meinem 24 Port Switch auch die Temperatur und der Zustand des Lüfters angezeigt. Ist es möglich die beiden Werte zusätzlich auszulesen und entweder im Switch oder im Controller device anzuzeigen?
Beste Grüße
Torsten
Zitat von: ToKa am 13 April 2020, 10:01:01
im Unifi Controller wird bei meinem 24 Port Switch auch die Temperatur und der Zustand des Lüfters angezeigt. Ist es möglich die beiden Werte zusätzlich auszulesen und entweder im Switch oder im Controller device anzuzeigen?
Diesem Wunsch würde ich mich gerne anschließen und wenn es möglich ist, wäre die Gesamtsumme der PoE-Leistung aller Ports als Reading auch schick.
Grüße
Wolle
Zitat von: ToKa am 13 April 2020, 10:01:01
im Unifi Controller wird bei meinem 24 Port Switch auch die Temperatur und der Zustand des Lüfters angezeigt. Ist es möglich die beiden Werte zusätzlich auszulesen und entweder im Switch oder im Controller device anzuzeigen?
Das ist mir bei meinem 16 Port PoE Switch auch schonmal aufgefallen. Das wäre eine tolle Sache.
Gruß Hoppel
Moin,
im Anhang eine Version mit drei neuen Readings:
- switch_general_temperature
- switch_fan_level
- switch_overheating
Ich hoffe alle switches haben wenigstens die Infos has_fan und has_temperature, so dass es bei niemanden zu einem Problem kommt.
if (defined $apRef->{has_fan} && $apRef->{has_fan}){
readingsBulkUpdate($hash,"switch_fan_level",$apRef->{fan_level});
}
if (defined $apRef->{has_temperature} && $apRef->{has_temperature}){
readingsBulkUpdate($hash,"switch_general_temperature",$apRef->{general_temperature});
readingsBulkUpdate($hash,"switch_overheating",$apRef->{overheating});
}
Bitte Feedback, dann lade ich die Version hoch.
Zum Thema Gesamt-Power gibt es keine Info in den Daten. Das scheint sich die Oberfläche selbst zusammen zu rechnen. Meine Empfehlung daher: userReading für sich erstellen, dass alle einzelnen Ports zusammenrechnet.
Viele Grüße,
Dirk
Zitat von: Wuehler am 07 Mai 2020, 21:02:02
Zum Thema Gesamt-Power gibt es keine Info in den Daten. Das scheint sich die Oberfläche selbst zusammen zu rechnen. Meine Empfehlung daher: userReading für sich erstellen, dass alle einzelnen Ports zusammenrechnet.
Moin Dirk,
das dachte ich mir schon, dass da keine Info von Unifi-Seite dazu kommt. Meine Anregung/Wunsch ging nur in die Richtung diese Berechnung der Gesamtsumme generell im Modul durchzuführen und als Reading anzubieten, damit nicht jeder, der diesen Bedarf hat sich selber ein Userreading anlegen muss und vorher hier immer wieder das selbe gefragt wird.
Aber ok, wahrscheinlich habe ich die Bedarfsgröße nach einem solchen Reading überschätzt.
Ich mach das mit nem Userreading.
Zunächst mal vielen Dank für deine Änderungen.
Edit: Beim US24P250 funktioniert es. Vielen Dank.
Gruß
Wolle
Was würdest du denn mit dem Reading anstellen?
ZitatWas würdest du denn mit dem Reading anstellen?
Ich lass das in mein allgemeines Strommonitoring einfließen.
Hallo Dirk,
danke für die Umsetzung, die für den "UniFi Switch 24" prima funktioniert. Zwei Fehlermeldung habe ich noch im Log mit der neuen Version:
PERL WARNING: Argument "readings" isn't numeric in addition (+) at ./FHEM/74_UnifiSwitch.pm line 164.
PERL WARNING: Use of uninitialized value in split at ./FHEM/74_Unifi.pm line 2421.
Ich habe noch 3 Unifi Switche ohne Temperatursensor. Keine Ahnung, ob das die Fehlermeldung provoziert. Bei allen meiner Unifi Switche gibt es noch den Wert für "Memory Usage". Falls Du noch mal an das Modul musst, könntest Du diesen Wert bitte auch noch implementieren?
Beste Grüße
Torsten
Hallo Dirk,
kannst Du die neue Version des Moduls bitte hochladen.
Gruß
Torsten
Moin,
schaue mir heute die Fehlermeldungen an und lade dann vermutlich auch hoch.
Moin,
Neue Version ist hochgeladen.
Neue Readings:
- cpu
- mem
- general_temperature
- fan_level
- overheating
@Toka: Der Fehler
PERL WARNING: Argument "readings" isn't numeric in addition (+) at ./FHEM/74_UnifiSwitch.pm line 164.
ist darin auch behoben. Vorher ging der Befehl set clear readings nicht.
Viele Grüße,
Dirk
Perfekt und viel Dank
Gruß
Torsten
Hallo,
wäre es möglich, die "Power Cycle" Funktion für PoE Ports aus der Unifi GUI in das Modul zu integrieren? Damit könnte man Systeme, die hängen, aus FHEM heraus reseten.
Gruß,
Reiner
Moin Reiner,
geht das nich mir set poeMode off/on?
Viele Grüße, Dirk
Hallo Dirk,
poeMode sehe ich bei mir nicht in den set Befehlen oder der CommandRef. Vielleicht ist meine Version zu alt? Ich verwende die Version 3.4.0 von 74_Unifi. Wurde set poeMode später eingebaut oder muss ich da 74_UnifiSwitch.pm verwenden? Bisher habe ich nur den Kontroller per define ubnt Unifi <IP> <PORT> <USER> <PASS> angebunden.
Gruß,
Reiner
@reibuehl
Wiki sagt:
Zitat
Das Modul UnifiClient ermöglicht die Steuerung eines Unifi-Controllers durch FHEM. Wenn durch den Unifi-Controller auch ein UnifiSwitch verwaltet wird, so legt das Modul bei aktiviertem autocreate UnifiSwitch-Devices an.
Oh! Die UnifiSwitch Devices hatte ich übersehen ???
Ja, da gibt es poeMode... ich hatte das wohl irgendwie beim Controller erwartet - mein Fehler.
Danke für den Hinweis!
@Wuehler
Ich hätte noch einen Verbesserungsvorschlag für das Modul.
Du kannst ja durch das Attribut portProfileDisableID ein Profil definieren, das man mittels Befehl disablePort aktivieren kann.
Dabei muss man ja nicht zwinged das Profil "disable" angeben. Man kann im Grunde auch den Port damit wieder einschalten.
Mein Vorschlag wäre, dass man mittels Attributen seine bevorzugten Profile anlegen kann, um dann die Möglichkeit zu haben, den Port nicht nur zu deaktivieren, sondern auch in einem Profil seiner Wahl zu aktivieren. (Ohne jedesmal das Attribut ändern zu müssen)
Grund für meine Anfrage... Ich möchte diverse Ports (Die meiner Kinder) am Tag nur für eine gewisse Zeit akivieren.
Vorab danke
Gruß
Rubinho
Moin,
im Anhang eine Version mit neuem setter "portProfile". Da kannst du eine ID mitgeben. Das Ganze habe ich nicht ausprobiert, da es schon ewig her ist, dass ich mich im UnifiController damit beschäftigt habe und ich gerade die Familie nicht mit Experimenten stören möchte. Also probier mal und berichte. Wenn alles funktioniert schau bitte auch mal auf die Doku und mach einen besseren Formulierungsvorschlag, damit auch Dritte verstehen was geht. Wenn man zu viel schreiben müsste kann ich das auch in einen WIKI-Artikel ablegen.
VG,
Dirk
Hallo an alle,
ich hätte noch eine Frage. Ich hatte es in letzter Zeit sehr oft, dass sich die externe IP Adresse meiner UDM pro geändert hat und deswegen jedes Mal ein neues UnifiSwitch Device per autocreate angelegt wurde. Habe nur ich das Problem und habe etwas falsch gemacht oder betrifft das mehr Leute?
Beste Grüße
Andy
Moin,
denke, dass das allen UDM-Besitzern aktuell so geht, wenn sie autocreate auf on haben. Der Code lautet folgendermaßen:
if (defined $h->{type} && (($h->{type} eq "usw") || ($h->{type} eq "udm"))){
my $usw_name="";
if (defined $h->{name}){
$usw_name=makeDeviceName($h->{name});
}else{
$usw_name=makeDeviceName($h->{ip});
}
Dispatch($hash,"UnifiSwitch_".$usw_name.encode_json($h),undef); # Wenn es "UnifiSwitch_".$usw_name noch nicht gibt wird das Device durch autocreate (wenn on) angelegt
}
Bei einer UDM wird es vermutlich keinen Namen geben, oder kann man irgendwo einen eintragen?
Ansonsten mal verbose auf 5 stellen und mir die Logeinträge sende, die mit "UnifiSwitch_Parse - executed" beginnen und kurz danach die IP der UDM anzeigen.
VG,
Dirk
Zitat von: Wuehler am 01 November 2020, 13:06:27
Bei einer UDM wird es vermutlich keinen Namen geben, oder kann man irgendwo einen eintragen?
Ansonsten mal verbose auf 5 stellen und mir die Logeinträge sende, die mit "UnifiSwitch_Parse - executed" beginnen und kurz danach die IP der UDM anzeigen.
Hallo und danke für die schnelle Antwort.
Wäre es da nicht sinnvoll einen Namen per Attr zu übergeben oder einfach den Namen des Unifi Gerätes zu übernehmen?
welchen Teil genau brauchst du aus dem verbose 5 log?:
2020.11.01 14:09:02.417 5: unifi: dispatch UnifiSwitch_78.xx.xx.61{"num_sta":38,"syslog_key":"75afdd02bc06c1a7676beb2a72580572e79a7ceeb7c1fcf388f6715feeeb4554",[... viele Zeichen ...]
2020.11.01 14:09:02.418 5: unifi (UnifiSwitch_Parse) - executed. UnifiSwitch: Adress: 78.xx.xx.61
2020.11.01 14:09:02.419 5: unifi (UnifiSwitch_Parse) - executed. UnifiSwitch: message_json: {"num_sta":38,....[hier kommt eine Nachricht mit seeeeehr vielen Zeichen]
2020.11.01 14:09:02.420 4: unifi (UnifiSwitch_Parse) - return: UNDEFINED UnifiSwitch_78.xx.x.61 UnifiSwitch 78.x.x.61
Beste Grüße
Andy
Alle anderen Geräten kann man im UnifiController einen Namen geben, der UDM anscheinend nicht. Im message_json-Teil des Logs könnte ich sonst mal reinschauen, ob ich etwas passendes finde. Ggf. eine ID. Kannst du mir auch gerne per pm senden.
Man könnte FHEM-Unifi auch für genau eine UDM lauffähig machen, wenn ich bei einer UDM immer udm als Name nehme. Aber irgendwann wird es mal jemanden geben, der zwei UDM in FHEM einbinden möchte. Dann würde es einen Namenskonflikt geben.
Zitat von: Wuehler am 01 November 2020, 14:37:11
Alle anderen Geräten kann man im UnifiController einen Namen geben, der UDM anscheinend nicht. Im message_json-Teil des Logs könnte ich sonst mal reinschauen, ob ich etwas passendes finde. Ggf. eine ID. Kannst du mir auch gerne per pm senden.
Man könnte FHEM-Unifi auch für genau eine UDM lauffähig machen, wenn ich bei einer UDM immer udm als Name nehme. Aber irgendwann wird es mal jemanden geben, der zwei UDM in FHEM einbinden möchte. Dann würde es einen Namenskonflikt geben.
ich glaube ich hab mich falsch ausgedrückt. Das UDM hat ja im FHEM einen Namen. Un das würde ich als Namen vom UnifiSwitch nehmen (wollen)..
Ich hab dir per PN den Logs geschickt. wenn du das anderes brauchst, sag einfach Bescheid.
Danke!
Beste Grüße
Andy
Aus Sicht FHEM besteht die UDM aus zwei FHEM-Devices: UnifiController = Unifi und UnifiSwitch = UnifiSwitch
Kann man zwei UDM zusammen verwenden? Und die zweite über den in die erste integrierten Controller steuern? Oder ist soetwas definitiv ausgeschlossen?
Ich denke, dass ich als Namen ,,udm" + id verwenden kann. Das ist dann allerdings eine nicht abwärtskompatibele Änderung. Da die anderen UDM-User aber vermutlich auch das Problem neuer Devices haben wenn es eine neue externe IP gibt sollte das iO sein.
ich habe mal versucht, das Szenario zu googeln, aber habe nichts dazu gefunden..
Ich persönlich wüsste auch nicht, wieso man so etwas machen sollte.
Ich finde deinen Vorschlaf aus "udm" + id gut! Danke =)
Also ich kann bei der UDM Pro einen Alias für den integrierten Switch im Web UI vergeben. Der wird dann auch in FHEM als Name für das Device hergenommen.
Im Web UI auf Devices, da taucht er Switch unter Wired auf. dann anklicken und rechts auf dem Zahnrad kann ein Alias gesetzt werden.
Wie sieht das bei der UDM (ohne Pro) aus?
Zitat von: kunze am 01 November 2020, 20:45:20
Wie sieht das bei der UDM (ohne Pro) aus?
ich habe tatsächlich auch die UDM Pro und habe nun auch ein Alias vergeben. Damit ist das Problem dann auf jeden Fall behoben. Danke!
Sehr gut. Dann nehme ich dazu einen Hinweis in der CommandRef auf. Trotzdem werde ich beim autocreate eine Anpassung vornehmen und udm + mac als Default nehmen sofern kein Alias gesetzt ist. Die IP führt ja zu Fehlverhalten.
Zitat von: Wuehler am 01 November 2020, 19:41:13
Kann man zwei UDM zusammen verwenden? Und die zweite über den in die erste integrierten Controller steuern? Oder ist soetwas definitiv ausgeschlossen?
Wenn ich die Politik von Ubiquiti verstehe ist die UDM PRO (ebenso wie die UDM) eine Kombinierte Out Of The Box Version für Endnutzer da wir hier schon eine Firewall, Controller, Protect Videosystem, Switch usw.. auf einer Appliance haben.
Es ist nicht vorgesehen mehrere Sites (wie es der Cloud Key kann) zu verwalten, somit schließe ich die Möglichkeit aus.
Aber die Frage wäre ebenso, wozu auch?
Die UDM PRO hat eigentlich alle Schnittstellen die man für fast alle Spielerein benötigt.
Ich für mich bin zur UDM PRO gewechselt, da die Bandbreite der USG PRO 4 bei aktivem Thread Management nur noch bei 250MBit/s liegt. Und es ist erst jetzt im Early Access von UI
das Unifi Next Generation Gateway Pro in den US-Store aufgetaucht, welche genug Durchsatz bieten würde.
Geärgert hab ich mich, dass ich keine eigene VPN-Config da mehr integrieren konnte. Aber das is n anderes Thema.
Mir will es einfach nicht gelingen den POE Modus auf einem Switch zu ändern.
Ich bekomme immer einen 404 (siehe Log).
Controller läuft auf einer UDM-Pro.
2020.11.21 08:43:20 5: Switch_Kueche: set called with poeMode 06 off
2020.11.21 08:43:20 4: Switch_Kueche: set poeMode
2020.11.21 08:43:20 5: Switch_Kueche: get called with ?.
2020.11.21 08:43:21 3: CUL_HM set Waschmaschine_Sw statusRequest noArg
2020.11.21 08:43:21 5: Switch_Kueche: get called with ?.
2020.11.21 08:43:51 5: Switch_Kueche: get called with ?.
2020.11.21 08:43:52 5: Switch_Kueche: get called with ?.
2020.11.21 08:44:03 5: Switch_Kueche: set called with poeMode 6 off
2020.11.21 08:44:03 4: Switch_Kueche: set poeMode
2020.11.21 08:44:03 5: Switch_Kueche: get called with ?.
2020.11.21 08:44:03 5: Switch_Kueche: get called with ?.
2020.11.21 08:45:03 5: Switch_Kueche: get called with ?.
2020.11.21 08:45:04 5: Switch_Kueche: get called with ?.
2020.11.21 08:49:12 5: my_unifi_controller (Unifi_Notify) - executed.
2020.11.21 08:49:12 5: my_unifi_controller: get called with ?.
2020.11.21 08:49:13 5: my_unifi_controller: get called with ?.
2020.11.21 08:49:26 5: my_unifi_controller (Unifi_Notify) - executed.
2020.11.21 08:49:26 5: Switch_Kueche: get called with ?.
2020.11.21 08:49:26 5: Switch_Kueche: get called with ?.
2020.11.21 08:49:39 5: Switch_Kueche: set called with poeMode 06 off
2020.11.21 08:49:39 4: Switch_Kueche: set poeMode
2020.11.21 08:49:39 4: my_unifi_controller (Unifi_Write) - executed with Unifi_DeviceRestJson_Send
2020.11.21 08:49:39 5: my_unifi_controller (Unifi_DeviceRestJson_Send) - executed with {"port_overrides":[{"port_security_mac_address":[],"port_idx":"1","lldpmed_notify_enabled":true,"name":"Downlink","portconf_id":"5c5a764a4c46c513f78472fe"},{"portconf_id":"5c6300569650b8058aaae296","name":"HM-Lan","port_idx":"2"},{"port_idx":"3","port_security_mac_address":[],"portconf_id":"5ed139b9ebb459040e1c3a27"},{"poe_mode":"auto","port_idx":"5","autoneg":true,"name":"AP-Kueche","portconf_id":"5c5a764a4c46c513f78472fe"},{"poe_mode":"auto","port_idx":"6","port_security_mac_address":[],"name":"Cam-Kueche","portconf_id":"5c5a764a4c46c513f7847300"},{"poe_mode":"auto","port_idx":"7","portconf_id":"5c5a764a4c46c513f78472fe"},{"port_idx":"8","poe_mode":"auto","portconf_id":"5c5a764a4c46c513f78472fe"},{"port_idx":6},{"poe_mode":"off"}]}.
2020.11.21 08:49:39 5: Switch_Kueche: get called with ?.
2020.11.21 08:49:39 5: my_unifi_controller (Unifi_DeviceCmd_Receive) - executed.
2020.11.21 08:49:39 5: my_unifi_controller (Unifi_DeviceCmd_Receive) - Failed! - state:'404' - msg:'Failed with HTTP Code 404.'
2020.11.21 08:49:39 5: Switch_Kueche: get called with ?.
2020.11.21 08:49:51 5: Switch_Kueche: set called with poeMode 5 off
2020.11.21 08:49:51 4: Switch_Kueche: set poeMode
2020.11.21 08:49:51 4: my_unifi_controller (Unifi_Write) - executed with Unifi_DeviceRestJson_Send
2020.11.21 08:49:51 5: my_unifi_controller (Unifi_DeviceRestJson_Send) - executed with {"port_overrides":[{"port_security_mac_address":[],"port_idx":"1","lldpmed_notify_enabled":true,"name":"Downlink","portconf_id":"5c5a764a4c46c513f78472fe"},{"portconf_id":"5c6300569650b8058aaae296","name":"HM-Lan","port_idx":"2"},{"port_idx":"3","port_security_mac_address":[],"portconf_id":"5ed139b9ebb459040e1c3a27"},{"poe_mode":"off","port_idx":"5","autoneg":true,"name":"AP-Kueche","portconf_id":"5c5a764a4c46c513f78472fe"},{"poe_mode":"auto","port_idx":"6","port_security_mac_address":[],"name":"Cam-Kueche","portconf_id":"5c5a764a4c46c513f7847300"},{"poe_mode":"auto","port_idx":"7","portconf_id":"5c5a764a4c46c513f78472fe"},{"port_idx":"8","poe_mode":"auto","portconf_id":"5c5a764a4c46c513f78472fe"},{"port_idx":"6"}]}.
2020.11.21 08:49:52 5: Switch_Kueche: get called with ?.
2020.11.21 08:49:52 5: my_unifi_controller (Unifi_DeviceCmd_Receive) - executed.
2020.11.21 08:49:52 5: my_unifi_controller (Unifi_DeviceCmd_Receive) - Failed! - state:'404' - msg:'Failed with HTTP Code 404.'
2020.11.21 08:49:52 5: Switch_Kueche: get called with ?.
2020.11.21 08:50:01 5: Switch_Kueche: set called with poeMode 06 OFF
2020.11.21 08:50:01 4: Switch_Kueche: set poeMode
2020.11.21 08:50:03 5: Switch_Kueche: get called with ?.
2020.11.21 08:50:04 5: Switch_Kueche: get called with ?.
Hi,
hast das das Attribut isUDM auf 1 gesetzt?
Ansonsten wird der API-Pfad nicht angepasst und man bekommt einen 404.
Zitat von: Wuehler am 06 Dezember 2020, 15:50:26
Hi,
hast das das Attribut isUDM auf 1 gesetzt?
Ansonsten wird der API-Pfad nicht angepasst und man bekommt einen 404.
Auf dem Unifi Device, ja. Es wird ja auch alles angezeigt, nur das schalten geht nicht.
Und, der "Switch" auf der UDM zeigt 10 Mbit Verbindung an, auch wenn kein Device conected ist.
Moin,
dann bin ich (ohne UDM) ratlos. Bei mir funktioniert das Ändern des POE-Modes weiterhin. Können andere UDM-User eine Fehlfunktion bestätigen?
Ansonsten ggf. in FHEM mal das Switch-Device löschen und/oder im Unifi-Device ein clear all. Vielleicht gab es ein Problem beim Speichern der ID des Switches.
VG,
Dirk
Zitat von: Wuehler am 15 Dezember 2020, 17:14:31
Ansonsten ggf. in FHEM mal das Switch-Device löschen und/oder im Unifi-Device ein clear all. Vielleicht gab es ein Problem beim Speichern der ID des Switches.
Hat beides nichts geholfen.
Zitat von: Wuehler am 15 Dezember 2020, 17:14:31
Können andere UDM-User eine Fehlfunktion bestätigen?
Moin Dirk,
jo, funktioniert bei mir mit UDM auch nicht. Ist mir bisher nicht aufgefallen, weil ich die Funktion bislang nicht gebraucht habe.
Ich bin gerne bereit dich bei deiner tollen Arbeit zu unterstützen. Ich würde auch etwas spenden; wenn das noch ein paar mehr machen, könntest du dir ja eine UDM zulegen. ;) :D
Gruß
Wolle
LoL. Ich bin zufrieden mit meiner Installation. Musste im Frühjahr allerdings die alten UAPs austauschen. Die hatten noch kein 5 GHz und konnten vier Videokonferenzen parallel nicht verarbeiten.
Aber wir könnten es über TeamViewer und parallele Telko/ Videokonferenz probieren.
Zitat von: Wuehler am 16 Dezember 2020, 20:31:04
Aber wir könnten es über TeamViewer und parallele Telko/ Videokonferenz probieren.
Ich weiß jetzt nicht an wen diese Frage/Anregung gerichtet war. Wenn an mich, dann müssten wir das eventuell auf die Zeit zwischen den Jahren schieben, da ich die nächste Zeit abends nicht viel Zeit habe.
Aber vielleicht kann ja auch Masterfunk hier mitmachen, da er ja das Problem hatte!?
Zitat von: Wolle02 am 17 Dezember 2020, 13:10:18
Aber vielleicht kann ja auch Masterfunk hier mitmachen, da er ja das Problem hatte!?
Kann er ;-)
Zitat von: Wuehler am 06 Dezember 2020, 15:50:26
Hi,
hast das das Attribut isUDM auf 1 gesetzt?
Ansonsten wird der API-Pfad nicht angepasst und man bekommt einen 404.
danke für den Tipp!
Beim Update meines CK2-Plus auf die Firmware Version 2 hat sich ja einiges geändert, u.a. hört der Controller nicht mehr auf Port 8443 sondern 443.
Mit isUDM=1 funktioniert das unifi Modul wieder :)
Ich scheine dasselbe Problem zu haben. Ich nutze den CloudKey Gen 2 und habe seit einem update keinen Zugriff mehr:
Internals:
DEF CloudKey.fritz.box 443 crypt:xxxx crypt:xxxxx 300
FUUID 5e244be7-f33f-1115-db34-394dc6a8906d8bfd
FVERSION 74_Unifi.pm:0.229620/2020-10-13
NAME Unifi
NOTIFYDEV global
NR 255
NTFY_ORDER 50-Unifi
STATE disconnected
TYPE Unifi
UC_VERSION unknown
VERSION 3.5.0
READINGS:
2020-12-29 13:41:48 -UC_blockedClients
2020-12-29 13:41:48 -UC_events 392 (last 24h)
2020-12-29 13:41:48 -UC_newClients
2020-12-29 13:41:48 -UC_unarchived_alerts 0
2020-12-29 14:09:54 state disconnected
accespoints:
alerts_unarchived:
clients:
events:
helper:
password crypt:xxxx
username crypt:xxxxx
hotspot:
vouchers:
httpParams:
header
ignoreredirects 1
loglevel 5
method POST
noshutdown 0
timeout 5
hash:
sslargs:
SSL_verify_mode 0
unifi:
CONNECTED disconnected
eventPeriod 24
interval 300
ucurl https://CloudKey.fritz.box/api/s/default/
udmurl https://CloudKey.fritz.box/proxy/network/api/s/default/
url https://CloudKey.fritz.box/api/s/default/
customClientReadings:
attr_value .:^accesspoint|^essid|^hostname|^last_seen|^snr|^uptime
parts:
0000000_part:
ReadingRegEx ^accesspoint|^essid|^hostname|^last_seen|^snr|^uptime
nameRegEx .
updateDispatch:
wlans:
Attributes:
group intern
isUDM 1
Sieht jemand, was da fehlt? Ich habe isUDM=1 gesetzt und den Port auf 443 geändert. Außerdem bin ich sehr unsicher, was genau User und Passwort ist - ich habe mehrere Versionen versucht. Kann man das auf der Webseite https://<cloudkey>/users/users/admins explizit irgendwo einstellen (ich habe bisher da den "superuser" genommen, aber auch da gibt es lokale Adressen wie auch Adressen mit Emails, etwas verwirrend, was man wann nehmen kann oder soll).
Moin andies,
welche Meldung kommt denn im Log?
Einen eigenen FHEM-User kannst du im Unifi-Controller unter Settings-> Admins anlegen. Je nachdem was du mit FHEM machst, reicht dann auch ein read-only-User. Aus Support-Sicht würde ich das aber nicht empfehlen, da man meistens nicht dran denkt, dass der User keine Rechte hat, wenn man mit dem Unifi-Modul aus FHEM heraus dann doch mal Änderungen in Unifi anstoßen möchte ;).
VG,
Dirk
Zitat von: Wuehler am 30 Dezember 2020, 13:48:17
welche Meldung kommt denn im Log?
Danke für die Hilfe! Ich sehe das hier
2020.12.31 14:39:11 5: Unifi (Unifi_Notify) - executed.
2020.12.31 14:39:17 5: Unifi: get called with showAccount.
2020.12.31 14:39:25 5: Unifi: set called with update
2020.12.31 14:39:25 4: Unifi: set update
2020.12.31 14:39:25 5: Unifi (Unifi_DoUpdate) - executed.
2020.12.31 14:39:25 5: Unifi (Unifi_Login_Send) - executed.
2020.12.31 14:39:25 5: Unifi: get called with ?.
2020.12.31 14:39:25 5: Unifi (Unifi_Login_Receive) - executed.
2020.12.31 14:39:25 5: Unifi (Unifi_Login_Receive) - Login Failed! - state:'error.decode_json' - msg:'malformed JSON string, neither tag, array, object, number, string or atom, at character offset 1 (before "<!doctype html>\n<ht...") at ./FHEM/74_Unifi.pm line 917.
'
2020.12.31 14:39:25 5: Unifi (Unifi_Login_Receive) - Connect/Login to Unifi-Controller failed. Will try again after interval...
Ah, das scheint ein Sonderzeichen im Namen (oder Passwort?) zu sein. Evtl. Klappt es, dies mit einem backslasch (\) zu escapen.
Nein, habe ich nicht. Ich habe mal den Code verändert, um mehr Daten auszugeben:
sub Unifi_Login_Receive($) {
my ($param, $err, $data) = @_;
my ($name,$self,$hash) = ($param->{hash}->{NAME},Unifi_Whoami(),$param->{hash});
Log3 $name, 5, "$name ($self) - executed.";
# Log3 $name, 5, "param code $param->{code}";
# Log3 $name, 5, "data encoded $data";
# Log3 $name, 5, "data decoded ".decode_json($data);
(jetzt auskommentiert) und dann ausgelesen. Beim reload der Datei gab es anscheinend einen Absturz mit Neustart,
2020.12.31 16:32:38 5: Unifi (Unifi_Notify) - executed.
2020.12.31 16:32:38 5: Unifi (Unifi_Notify) - executed.
2020.12.31 16:32:38 1: sduino: DoInit, ESP-Signalduino.fritz.box:23
2020.12.31 16:32:38 5: Unifi: get called with ?.
2020.12.31 16:32:40 5: Unifi (Unifi_Login_Receive) - executed.
2020.12.31 16:32:40 5: param code 200
2020.12.31 16:32:40 5: data encoded {
"unique_id": "3d1dad2fxxxxxxxx",
"first_name": "xx",
"last_name": " ",
"full_name": "xx ",
"email": "xx@xxx.xx",
"email_status": "UNVERIFIED",
"phone": "",
"avatar_relative_path": "",
"status": "ACTIVE",
"employee_number": "",
"create_time": 1609246116,
"extras": {},
"username": "ubnt",
"local_account_exist": true,
"password_revision": 1609247936,
"sso_account": "",
"sso_uuid": "",
"sso_username": "",
"sso_picture": "",
"uid_sso_id": "",
"uid_sso_account": "",
"groups": [
{
"unique_id": "03ffcac8-xxxxxxxxxxx",
"name": "CloudKey",
"up_id": "",
"up_ids": [],
"system_name": "CloudKey",
"create_time": "2020-12-29T12:52:08+01:00"
}
],
"roles": [
{
"unique_id": "530ee3ee-xxxxxxxx",
"name": "Super Administrator",
"system_role": true,
"system_key": "super_administrator",
"level": 2
}
],
"permissions": {
"access.management": [
"admin"
],
"connect.management": [
"admin"
],
"led.management": [
"admin"
],
"network.management": [
"admin"
],
"protect.management": [
"admin"
],
"system.management.location": [
"admin"
],
"system.management.user": [
"admin"
],
"talk.management": [
"admin"
]
},
"scopes": [
"write:protect.viewer",
"write:protect.user",
"write:protect.sensor",
"write:protect.recordingSchedule",
"write:protect.nvr",
"write:protect.light",
"write:protect.group",
"write:protect.camera",
"write:protect.bridge",
"view:user_timezone",
"view:user",
"view:systemlog",
"view:settings",
"view:role",
"view:permission:viewer",
"view:permission:admin",
"view:permission",
"view:notification",
"view:location_policy",
"view:location_device",
"view:location_activity",
"view:location",
"view:holiday_timezone",
"view:holiday",
"view:group",
"view:door_group",
"view:controller:talk",
"view:controller:protect",
"view:controller:network",
"view:controller:led",
"view:controller:connect",
"view:controller:access",
"view:cloud_access",
"view:app:users",
"view:app:settings",
"view:app:locations",
"view:access.visitor",
"view:access.systemlog",
"view:access.settings",
"view:access.schedule",
"view:access.policy",
"view:access.pin_code",
"view:access.nfc_card",
"view:access.face",
"view:access.device",
"view:access.dashboard",
"update:access.device",
"systemlog:user",
"systemlog:system",
"systemlog:location",
"systemlog:access",
"readmedia:protect.camera",
"read:protect.viewer",
"read:protect.user",
"read:protect.sensor",
"read:protect.recordingSchedule",
"read:protect.nvr",
"read:protect.light",
"read:protect.group",
"read:protect.camera",
"read:protect.bridge",
"open:door",
"notify:user",
"notify:location",
"notify:access",
"manage:controller:talk",
"manage:controller:network",
"manage:controller:led",
"manage:controller:connect",
"manage:controller:access",
"edit:user_timezone",
"edit:user",
"edit:systemlog",
"edit:settings",
"edit:role",
"edit:permission:viewer",
"edit:permission:admin",
"edit:notification",
"edit:location_policy",
"edit:location_device",
"edit:location_activity",
"edit:location",
"edit:holiday_timezone",
"edit:holiday",
"edit:group",
"edit:feedback",
"edit:door_group",
"edit:access.visitor",
"edit:access.settings",
"edit:access.schedule",
"edit:access.policy",
"edit:access.pin_code",
"edit:access.nfc_card",
"edit:access.face",
"edit:access.device",
"deletemedia:protect.camera",
"delete:protect.viewer",
"delete:protect.user",
"delete:protect.sensor",
"delete:protect.recordingSchedule",
"delete:protect.nvr",
"delete:protect.light",
"delete:protect.group",
"delete:protect.camera",
"delete:protect.bridge",
"delete:access.device",
"create:protect.viewer",
"create:protect.user",
"create:protect.sensor",
"create:protect.recordingSchedule",
"create:protect.liveview",
"create:protect.light",
"create:protect.group",
"create:protect.camera",
"create:protect.bridge",
"assign:role",
"adopt:access.device"
],
"cloud_access_granted": false,
"update_time": 1609247936,
"avatar": "",
"nfc_token": "",
"nfc_display_id": "",
"nfc_card_type": "",
"nfc_card_status": "",
"id": "3d1dad2f-xxxxxxxxxxxxxx",
"isOwner": false,
"isSuperAdmin": true
}
2020.12.31 16:32:40 5: data decoded HASH(0x77bb820)
2020.12.31 16:32:40 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/74_Unifi.pm line 924.
danach ging es anscheinend durch
2020.12.31 16:32:40 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/74_Unifi.pm line 924.
2020.12.31 16:32:40 5: Unifi (Unifi_Login_Receive) - state=ok
2020.12.31 16:32:40 5: Unifi (Unifi_Login_Receive) - Login successfully! Cookie: TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjc3JmVG9rZW4iOiIwMTlmMDM1OS05ZTJjLTRlOWQtODA3NC1lNTZjOGRkNjEwYzciLCJ1c2VySWQiOiIzZDFkYWQyZi01ODVhLTRiMTAtYjI2Yy1mMjhiMmJiYTc2NDQiLCJyZW1lbWJlck1lIjp0cnVlLCJpc1JlbWVtYmVyZWQiOnRydWUsImlhdCI6MTYwOTQyODc1OSwiZXhwIjoxNjEyMDIwNzU5fQ.WVFVo1EYYr0R0v8iqxAjDkJppHknLAt6GvtZOU2f9cU;
2020.12.31 16:32:40 5: Unifi (Unifi_GetSysinfo_Send) - executed.
2020.12.31 16:32:40 5: Unifi (Unifi_UsergroupRestJson_Send) - executed.
2020.12.31 16:32:41 1: [YAAHM_updater] on device Profil called for this day
2020.12.31 16:32:41 1: PERL WARNING: Use of uninitialized value in string comparison (cmp) at ./FHEM/95_YAAHM.pm line 285.
2020.12.31 16:32:41 5: Unifi (Unifi_UsergroupRestJson_Receive) - executed.
2020.12.31 16:32:41 5: Unifi (Unifi_UsergroupRestJson_Receive) - state:'ok'
2020.12.31 16:32:41 5: Unifi (Unifi_GetSysinfo_Receive) - executed.
2020.12.31 16:32:41 5: Unifi (Unifi_GetSysinfo_Receive) - state:'ok'
2020.12.31 16:32:41 5: Unifi (Unifi_GetSysinfo_Receive) - uc_version: 6.0.43
Hi Wuehler,
danke für das schöne Modul für Unifi-Infrastruktur. Ich habe seit kurzem zwei WLAN-APs von Unifi.
Kannst Du noch ein paar Readings ins Modul bzgl. der Firmware-Versionen einbauen?
Speziell version und upgrade_to_firmware für jeden WLAN-AP?
Dann kann man sehen und triggern, wenn was zu tun ist.
Ich habe das zwar mit get deviceData hinbekommen, aber es ist bestimmt für alle nützlich.
Seit gestern habe ich auch einen Hinweis, das die Version 6.0.45 für den Unifi Network Controller verfügbar ist.
Gibt es diese Info auch in den JSON-Daten? Ich habe nichts gefunden.
Auch hier wäre ein Reading über einen Update nützlich.
//Roger
Hallo Roger,
seit dem letzten Update des Moduls gibt es ein get deviceData. Damit kannst du dir für die APs eigene userreadings anlegen. Ich habe nicht vor, alle möglichen Werte für jeden User als Reading zur Verfügung zu stellen. Das wäre dann eine sehr lange Liste ;)
Müsste ungefähr folgendermaßen aussehen.
am Unifi-Device:
attr Unifi userReadings myUsgMem:-AP-lastUpdate.* {my $json=fhem("get Unifi deviceData usg");;return getUnifiJsonValue($json,"system-stats","mem","");;}
in myUtils:
use JSON qw(decode_json);
...
# Hilfsfunktion für das Anlegen von Userreadings im Unifi-Device
# Nicht vollständig generisch!
# Array-Inhalte können nicht abgefragt werden, dann ggf. spezifische myUtils-Funktion erstellen.
# Oder bei echtem Bedarf so etwas wie Json-Querys nutzen?!
# Beispielaufruf: getUnifiJsonValue($json,"system-stats","mem","")
sub getUnifiJsonValue($$$$){
my ($json,$a,$b,$c) = @_;
my $hash=decode_json($json);
my $obj=$hash->{$a};
$obj=$obj->{$b} if $b ne "";
$obj=$obj->{$c} if $c ne "";
return $obj;
}
Wenn man die echten FHEM- und/oder Perl-Experten fragt bekommt man bestimmt noch eine elegantere Lösung ggf. auch ohne myUtils ;)
Hier gibt es noch das TODO, das Ganze im WIKI zu beschreiben. Das würde ich aber gerne aus einem echten UseCase und funktionierenden übernehmen. Also gerne die Lösung hier dann posten :)
Für update_available des Controllers selbst müsste ich eine Anpassung vornehmen. Grundsätzlich kennt das Modul sogar die Information, allerdings wird die Sys-Info-API nur beim Define/FHEM-Neustart einmalig automatisch aufgerufen, kann aber manuell (oder per at) aktualisiert werden. Ich würde dann eine "get SysData" anbieten und du könntest aus dem at (mit etwas Wartezeit) eine Information senden / Reading updaten).
Viele Grüße,
Dirk
Guten Abend Dirk,
wie ich sage - mit get deviceData habe ich das hinbekommen, wenn auch nicht so elegant wie Du --> ich werde versuchen Deine Lösung zu verstehen und zu übernehmen. Dachte eben nur Firmewareupdates sind für alle wichtig :).
"get SysData" für Informationen vom Controller (wenn auch über at getriggert) wäre toll :D.
//Roger
Guten Morgen,
oh, sorry den einen Satz habe ich überlesen :-[
Kannst auch gerne deine Lösung posten.
Unifi ist so umfangreich, da kann sehr vieles für alle nützlich sein. Andererseits gibt es auch viele, die nur einen kleinen Teil mit Hilfe von FHEM automatisieren wollen. Die würden dann von der Masse an Readings erschlagen.
Man kann theoretisch alles, was über das Unifi-Controller-Frontend geht, auch in das FHEM-Unifi-Modul übernehmen. Problem dabei ist nur, dass alles gepullt werden muss und das dann schon recht viel Last erzeugt. Daher mache ich die Sys-Info Abfrage nicht im normalen Update-Intervall.
Das get sysData schaue ich mir in einer ruhigen Minute an.
Viele Grüße,
Dirk
Guten Morgen,
ich bin vor kurzem mit meiner Unifi Umgebung auf eine UDM-Pro umgezogen.
seit dem kann ich auch den PoE Mode meiner Ports über Fhem nicht mehr setzen.
habe gesehen, ihr habt das hier schon angesprochen.
habt ihr dafür schon eine Lösung gefunden?
mein UniFi Device hat das attr isUDM=1 gesetzt.
meine UniFiSwitch Devices habe ich auch schon gelöscht und über Autocreate neu anlegen lassen.
kann alle Readings sehen nur kann ich den PoEMode der Ports nicht ändern.
in den Logs finde ich keine Fehler - auch mit Verbose=5
defmod UniFi Unifi aaa.bbb.ccc.ddd 443 crypt:xxxxxx crypt:xxxxxxxxxxxxxx 60
attr UniFi DbLogExclude .*
attr UniFi disable 0
attr UniFi event-on-change-reading .*
attr UniFi isUDM 1
attr UniFi room UniFi
defmod US_USPRO_48PoE UnifiSwitch US_USPRO_48PoE
attr US_USPRO_48PoE DbLogExclude .*
attr US_USPRO_48PoE room UnifiSwitch
attr US_USPRO_48PoE verbose 5
set US_USPRO_48PoE poeMode 1 off
set US_USPRO_48PoE poeMode 1 auto
set US_USPRO_48PoE poeMode 1 restart
im Log sehe ich das:
2021.03.15 09:18:06 5: US_USPRO_48PoE: set called with poeMode 1 off
2021.03.15 09:18:06 4: US_USPRO_48PoE: set poeMode
2021.03.15 09:18:10 5: US_USPRO_48PoE: set called with poeMode 1 auto
2021.03.15 09:18:10 4: US_USPRO_48PoE: set poeMode
2021.03.15 09:18:14 5: US_USPRO_48PoE: set called with poeMode 1 restart
2021.03.15 09:18:14 4: US_USPRO_48PoE: set poeMode
in UniFi tut sich leider nichts.
der Benutzer ist ein localAdmin User auf der UniFi Seite.
mit diesem Benutzer kann ich dort einsteigen und direkt in UniFi die Ports ändern.
hättet ihr eine Idee?
Lg
AndaSquared
Wie kann man denn den Autocreate der Switche daektivieren?
ich habe Autocreate normalerweiswe deaktiviert und den UnifiSwitch händisch angelegt.
wollte damit nur sagen, dass ich es gelöscht habe und über Autocreate neu erstellt habe.
wenn hier das attr disable 1 gesetzt ist, dann wird der UnifiSwitch nicht automatisch angelegt:
defmod autocreate autocreate
attr autocreate DbLogExclude .*
attr autocreate disable 1
das hab ich auf 0 gesetzt, meinen händisch angelegten UnifiSwitch gelöscht und er wurde dann über autocreate neu angelegt.
globaler Autocreate ist klar, ich würde es gerne auf Modulebene machen.
Was mir gerade dazu noch aufgefallen ist, man kann nicht bei autocreate ignoreTypes setzten, weil die Namen der Switche "falsch" erzeugt werden.
Wenn schon autocreate, dann bitte so: Switch_xxxx
läuft das bei irgendjemanden mit UDMPro?
ich habe bei mir an Fhem auch KNX angebunden - und habe früher über einen Taster das Ein-/Ausschalten meiner AccessPoints gesteuert.
vielleicht muss ich ja auf UDMPro Seite noch was anpassen?
ev. hat ja jemand von euch mit UDMPro schon was zusammengebracht.
Danke!
lg
Hallo, bei mir klappt es mit dem POE udn der UDM Pro auch leider noch nicht...
Hat noch jemand da sProblem, dass bei mehreren unifi Sites, die UnifiSwitch das falsche IODev haben, wie kann ich das manuell ändern ?
Zitat von: Wuehler am 01 November 2020, 12:32:53
Moin,
im Anhang eine Version mit neuem setter "portProfile". Da kannst du eine ID mitgeben. Das Ganze habe ich nicht ausprobiert, da es schon ewig her ist, dass ich mich im UnifiController damit beschäftigt habe und ich gerade die Familie nicht mit Experimenten stören möchte. Also probier mal und berichte. Wenn alles funktioniert schau bitte auch mal auf die Doku und mach einen besseren Formulierungsvorschlag, damit auch Dritte verstehen was geht. Wenn man zu viel schreiben müsste kann ich das auch in einen WIKI-Artikel ablegen.
VG,
Dirk
Servus,
irgendwie ist das Thema bei mir untergegangen und muss es wieder aufwärmen.
Ich hatte heute mich mal wieder damit beschäftigt ein Portprofil über Fhem zu ändern, allerdings ist mir das nicht gelungen.
Mit dem Setpoint "Portprofile" sollte das ja funktionieren, allerdings gehts bei mir nicht, oder ich stelle mich mal wieder saublöd an.
In der Hilfestellung fehlt mir auch der Hinweis für die Profil ID. Ich dachte die Syntax müsste wie folgt aussehen... "set Unifiswitch Portprofile <Port> <ProfileID>" allerdings kann ich auch die ProfileID weglassen und es wird auch aktzeptiert.
Unter "get Portoverrides" Steht dann hinter Port 3 die ProfilID 3 anstatt die angegebene ID.
Hab ich da was falsch verstanden, oder hat das seit November vorigen Jahres noch niemand getestet?
Gruß
Rubinho
Hi,
mir ist gerade aufgefallen, das mein UAP-IW-HD nicht als Switch angezeigt wird.
Ich würde aber gerne das PoE passthrough über FHEM steuern.
Kennt jemand einen Trick um die UAP-IW-HD als UnifiSwitch anzulegen?
Grüße
Christian
Guten Tag,
ich habe ein kleines Problem bei der Verwendung des Moduls festgestellt. Ich verwende dieses Modul schon seit längerer Zeit und es sieht so aus als, ob es nach Nutzung zumindest bei der Funktion "set <device> poeMode <port> off/auto" zu Darstellungsproblemen und daraus resultierend auch Konfigurationsprobleme in der neuen UI des Controllers kommt. Ich hatte dazu einen Thread (https://community.ui.com/questions/GUI-Problems-New-User-interface-does-not-show-USW-Lite-16-PoE-correctly-was-Aggregating-two-interfa/0a8b5b67-c62c-41eb-a696-4e5ffac5d8e4?page=1) bei Unifi geöffnet, weil ich ursprünglich eigentlich noch auf dem "Legacy UI" war und ich ich hier Probleme mit einer Link Aggregation hatte. Diese konnte man nicht vernünftig über das Legacy GUI einrichten. Nach der Umstellung funktioniert das zwar kurzfristig. Allerdings war das GUI nach einer Zeit für ein einzelnes Gerät nicht mehr nutzbar. Ich habe jetzt festgestellt, dass das neue GUI für ein Gerät nicht mehr nutzbar wird, sobald ich FHEM mittels set einen Port auf einem Gerät habe aus- und einschalten lasse. Das mache ich im Rahmen einiger Automatisierungs-Funktionen, weswegen ich das auch nicht wirklich auf dem Schirm hatte, weil es eigentlich alles immer super funktioniert (und an der Stelle auch ein herzliches Dankeschön für die tolle Arbeit!). Im Legacy UI sieht alles in Ordnung aus. Das spricht eher dafür, dass das Problem eher auf Controller-Seite zu suchen ist. Trotzdem wäre es vielleicht gut, wenn man mal prüfen könnte, ab die API Aufrufe, die hier abgesetzt werden, alles richtig machen.
Gruß
Zitat von: michaelw am 05 Februar 2022, 14:49:01
Guten Tag,
ich habe ein kleines Problem bei der Verwendung des Moduls festgestellt. Ich verwende dieses Modul schon seit längerer Zeit und es sieht so aus als, ob es nach Nutzung zumindest bei der Funktion "set <device> poeMode <port> off/auto" zu Darstellungsproblemen und daraus resultierend auch Konfigurationsprobleme in der neuen UI des Controllers kommt. Ich hatte dazu einen Thread (https://community.ui.com/questions/GUI-Problems-New-User-interface-does-not-show-USW-Lite-16-PoE-correctly-was-Aggregating-two-interfa/0a8b5b67-c62c-41eb-a696-4e5ffac5d8e4?page=1) bei Unifi geöffnet, weil ich ursprünglich eigentlich noch auf dem "Legacy UI" war und ich ich hier Probleme mit einer Link Aggregation hatte. Diese konnte man nicht vernünftig über das Legacy GUI einrichten. Nach der Umstellung funktioniert das zwar kurzfristig. Allerdings war das GUI nach einer Zeit für ein einzelnes Gerät nicht mehr nutzbar. Ich habe jetzt festgestellt, dass das neue GUI für ein Gerät nicht mehr nutzbar wird, sobald ich FHEM mittels set einen Port auf einem Gerät habe aus- und einschalten lasse. Das mache ich im Rahmen einiger Automatisierungs-Funktionen, weswegen ich das auch nicht wirklich auf dem Schirm hatte, weil es eigentlich alles immer super funktioniert (und an der Stelle auch ein herzliches Dankeschön für die tolle Arbeit!). Im Legacy UI sieht alles in Ordnung aus. Das spricht eher dafür, dass das Problem eher auf Controller-Seite zu suchen ist. Trotzdem wäre es vielleicht gut, wenn man mal prüfen könnte, ab die API Aufrufe, die hier abgesetzt werden, alles richtig machen.
Gruß
Kann das gleiche Verhalten bei mir bestätigen.
Bei Unifi sind aktuell beide UIs kaputt. Die "alte" hat deutlich weniger Bugs. Man haut immer neue Features rein, ohne Probleme zu fixen.
Zitat von: michaelw am 05 Februar 2022, 14:49:01
Ich hatte dazu einen Thread (https://community.ui.com/questions/GUI-Problems-New-User-interface-does-not-show-USW-Lite-16-PoE-correctly-was-Aggregating-two-interfa/0a8b5b67-c62c-41eb-a696-4e5ffac5d8e4?page=1) bei Unifi geöffnet...
Hab mich da auch mal "drangehangen"
Ich habe mir mal versucht das anzuschauen. Wenn ich mir über die API die Konfiguration Anfrage, sehe ich beim einem Switch, der mir im neuen GUI noch richtig angezeigt wird, dass die Port IDs in dem port_override, anscheinend als Zahl interpertiert werden:
"port_overrides": [
{
"name": "Bla",
"port_idx": 1,
"port_security_mac_address": [],
"portconf_id": "5c7bb2f54e626b1044276488"
},
Bei einem Gerät, das vom neuen GUI nicht mehr vernünftig angezeigt wird sieht das so aus:
"port_overrides": [
{
"name": "Bla",
"port_idx": "1",
"port_security_mac_address": [],
"portconf_id": "5c7bb2f54e626b1044276488"
},
Das wird dann wohl eher als String interpretiert und könnte dann je nachdem wie sensibel das ganze ist, zu Problemen führen.
Jetzt sieht die JSON-Struktur, die an die API gesendet wird so aus (aus dem Verbose Log von FHEM)
{"portconf_id":"5d61a7093733271d07646090","poe_mode":"auto","port_idx":"7"},
Leider fehlen mir die Fähigkeiten das JSON anzupassen, so dass da statt "port_idx":"7" "port_idx":7 gesendet wird. Könnte das jemand entsprechend modifizieren?
Das ganze Problem scheint beim encode_json liegen und die Werte für port_idx werden als String mit Anführungszeichen kodiert.
Ich habe jetzt für mich in Zeile 2120 der Datei 74_Unifi.pm eine Lösung eingebaut:
$json =~ s/"port_idx":"(\d*)"/"port_idx":$1/g;
Das klappt für mich. Wird aber vermutlich nicht der eleganteste Weg sein. Jedenfalls ist die Anzeige im GUI danach wieder korrekt.
Blöde Frage: Ich hatte die Switche mal gelöscht und hätte sie gern wieder.
Wie werden die denn wieder erstellt? In der Cref steht dass das automatisch passiert.
Gruß
Dan
Hallo Zusammen,
hin und wieder halte ich ausschau nach Freezes in meiner FHEM Installation.
Man kann ja mittlerweile wenn ein Freeze ausgelöst wird den bereich mit Log5 in einem seperatem File sichern.
Heute nacht hatte ich einen treffer -
2022.02.11 02:20:44.457 5: ModbusTCPServer_Parse: received [FB 78 00 00 00 06] 00 01 03 10 00 00
2022.02.11 02:20:44.486 5: https://192.168.1.3:8443/api/s/default/stat/sta: HTTP response code 200
2022.02.11 02:20:44.487 5: UnifiController (Unifi_GetClients_Receive) - executed.
2022.02.11 02:20:44.578 5: UnifiController (Unifi_GetClients_Receive) - state:'ok'
2022.02.11 02:20:44.580 5: UnifiController (Unifi_GetHealth_Send) - executed.
2022.02.11 02:20:44.580 5: IP: 192.168.1.3 -> 192.168.1.3
--- log skips 2.853 secs.
2022.02.11 02:20:47.434 4: AddRQueue [FF 60 00 00 00 06] 00 03 30 C8 00 2D
2022.02.11 02:20:47.434 5: SimpleWrite [FF 60 00 00 00 06] 00 03 30 C8 00 2D
2022.02.11 02:20:47.441 4: AddRQueue [FB 79 00 00 00 06] 00 01 00 18 00 08
2022.02.11 02:20:47.441 5: adding to RQUEUE - 1
Der Bereich vor dem Log skips gibt einen hinweis auf das was blockiert hat -> in diesem Fall wohl der UnifiController...
Die meisten meiner Freezes beziehen sich auf momente wenn z.b. jemand einen Raum mit SVGs aufruft, oder aufwendige abfragen (Room Everything) ans FhemWeb laufen. In diesem Fall aber schlafen alle Bewohner - es findet nichts statt, ausser dem Freeze.
Im Standard Log wird eigentlich immer der WagoController als verursacher ausgegeben -
2022.02.11 02:20:47 1: [Freezemon] myFreezemon: possible freeze starting at 02:20:45, delay is 2.442 possibly caused by: tmr-ModbusTCPServer_HandleReadQueue(WagoController) tmr-ModbusTCPServer_Poll(WagoController) tmr-HttpUtils_TimeoutErr(N/A)
Hier blockiert aber sicher nichts - der Wago ist in diesem Fall nur "leidtragend" -
Der WagoController (ModbusTCPServer) liefert mir die I/O Verbindung im Haus zu Licht/Schalter/Steckdosen Hardware. Dieser arbeitet dann eigentlich nur den während dem Freeze entstandenen Queue ab...
Hat jemand eine Idee was hier vielleicht ein bisschen unrund laufen könnte?
Hallo Zusammen,
ich muss mal wieder nachhaken.
Hat sich schon jemand mit dem "PortProfile" Parameter beschäftigt ?
Da scheint es wohl noch ein Bug zu geben, jedenfalls wird die ProfileID gnadenlos ignoriert und es passiert nix wenn ich den Befehl absetze.
Ich hab mir mal das Module angeschaut, allerdings bin ich ein DAU was das angeht und ich bin nicht durchgestiegen.
Schön wäre es, wenn man die unterschiedlichen Portprofile in den Attributen hinterlegen kann, analog zum portProfileDisableID.
Gruß
Rubinho
Zitat von: Masterfunk am 09 Februar 2022, 09:18:38
Zitat von: michaelw am 05 Februar 2022, 14:49:01
Ich hatte dazu einen Thread (https://community.ui.com/questions/GUI-Problems-New-User-interface-does-not-show-USW-Lite-16-PoE-correctly-was-Aggregating-two-interfa/0a8b5b67-c62c-41eb-a696-4e5ffac5d8e4?page=1) bei Unifi geöffnet...
Hab mich da auch mal "drangehangen"
Nachdem ich jetzt das Problem auch entdeckt habe, habe ich mich mal beteiligt.
Da anscheinend die Popularität der Unifi Familie in der Smarthome Community unverständlicherweise nicht sonderlich hoch ist, zählt jede Stimme. ;)
lg
rubinho
Zitat von: DeeSPe am 10 Februar 2022, 19:47:40
Blöde Frage: Ich hatte die Switche mal gelöscht und hätte sie gern wieder.
Wie werden die denn wieder erstellt? In der Cref steht dass das automatisch passiert.
Gruß
Dan
ich habe das selbe Problem. Hast du oder jemand anders nen Tipp, wie die Witsche wieder eingebunden bekomme? Autocrat funktioniert irgendwie nicht.
Viele Grüße
Ich versteh die Frage irgendwie nicht.
In der CRef steht:
ZitatNormaly this device will be autocreated!
Wenns halt nicht "normaly" funktioniert, dann macht mans halt händisch?
Define steht ja auch in der CRef:
Zitatdefine <name> UnifiSwitch <ip> <nameOfSwitch>
Oder was hab ich jetzt falsch verstanden?
Zitat von: Wolle02 am 13 August 2022, 13:24:54
Oder was hab ich jetzt falsch verstanden?
Ich vermute mal, die Fragesteller haben eine Umgebung mit mehreren/vielen Switchen und suchen eine Möglichkeit, die Devices wieder alle auf einmal anlegen zu lassen um sie nicht alle händisch eingeben zu müssen.
Naja, was ist schon viel. Ich habe in meiner Umgebung vier Switche, damit kann man schon mal einiges abdecken. Bei mir hat das mit dem automatischen anlegen auch geklappt; erst gestern nach einem UDM Update war plötzlich der UDM Switch neu angelegt vorhanden. Aber wenns halt nicht klappt, dann geht wie gezeigt eben auch händisch. Und da sind jetzt auch mehr als vier Switche nicht das Riesenproblem. Keine Ahnung was für Paläste ihr so mit Netzwerk ausstattet :D
eine vielleicht sehr spezielle Frage: ich habe zwei unifi controller bei mir in FHEM angebunden.
Wie bekomme ich UnifiSwitch dazu den richtigen Controller zu nutzen?
Hi
Zitat von: 1of16 am 15 Januar 2023, 13:42:52
eine vielleicht sehr spezielle Frage: ich habe zwei unifi controller bei mir in FHEM angebunden.
Wie bekomme ich UnifiSwitch dazu den richtigen Controller zu nutzen?
Bin mir nicht ganz sicher, ob ich die Frage richtig verstehe, aber möchtest du den Switch an einen von den beiden Controllern binden? Ist das ein Managed Switch? Dann sollte das so funktionieren:
- PuTTY aufrufen und per IP auf den Gerät anmelden
- Anmelden per SSH, Benutzer und Passwort eingeben (im alten Controller Settings-System Settings-DeviceSSH Authentication zu finden)
Folgenden Befehl eingeben:
set-inform http://IPdesControllersneu:8080/inform
Im Unifi Controller das Gerät einbinden
Zitat von: 1of16 am 15 Januar 2023, 13:42:52
eine vielleicht sehr spezielle Frage: ich habe zwei unifi controller bei mir in FHEM angebunden.
Wie bekomme ich UnifiSwitch dazu den richtigen Controller zu nutzen?
Attribut IODev setzen.
@Aeroschmelz ja, hast mich missverstanden. ging mir um fhem
@Ralli das attribut kenne ich, gibt es aber bei dem modul einfach nicht. irgendwie scheint das IODev automatisch ausgewählt zu werden, ich weiß nur nicht wie.
Ok, habe ich nicht bedacht.
Dann könnte es helfen, in der fhem.cfg die Reihenfolge der Definitionen entsprechend zu sortieren. Also erst den einen UnifiController gefolgt von den dazugehörigen Switchen etc. und dann den zweiten UnifiController gefolgt von seinen Switchen zu definieren.