iobroker-community-adapters / ioBroker.unifi

ioBroker.unifi is an ioBroker adapter for your UniFi network devices.
MIT License
74 stars 24 forks source link

Clients blocken/sperren #84

Closed JHD47804 closed 1 year ago

JHD47804 commented 4 years ago

Über Controller kann man Clients(PC/Handy/usw) den Zugriff auf Internet blocken/sperren. Es wäre super, dass man die Funktion auch in ioBroker implementieren könnte. Der Controller verfügt nicht über eine Kindersicherung und die Option WLAN zu sperren wegen ein Client(andere müssen dann leiden) ist nicht Sin der Sache.

nob0dy80 commented 4 years ago

Das wäre tatsächlich mal eine sehr nützliche Sache für Personen mit Kindern.

Bark33p3r commented 3 years ago

mach ein 2. Wifi auf mit Zeitbegrenzung.

Kannst noch eine Whitelist im bestehenden machen um die Kinder zu blocken.

Läuft bei mir mittlerweile über den Radius mit VLAN Zuordnung

JHD47804 commented 3 years ago

@mgernhard Das habe ich schon längst gemacht. Meine Kids haben ein WLAN, dann Gast, Eltern und Geräte WLAn, jeder mit jewels VLAN getrennt. Sollte nur ein Client bzw. Nutzer von z.B. Kids-Wlan (warum auch immer) gesperrt werden, dann müssen andere (Kids-WLAN) darunter leiden. Ich kann natürlich "zu Fuß" gehen über Controller, dann fragt sich, wozu habe ich dann überhaupt Smarthome, wenn ich es manuell machen muss. Es wäre sehr, sehr super, wenn die Funktion baldsmöglich implementiert werden könnte. Ich bin bereit auch zu helfen, was ich kann(auch finanziell, wenn es notwendig ist). Nur programieren oder Adapter fertigen, dass kann ich leider nicht. Sonst hätte ich längst selbst gemacht ;-) Hier an der Stelle nochmals meine Bitte an die Entwickler @braindead1oder @jens-maus: wenn es möglich ist die Funktion baldmöglich einzubauen. Wie gesagt, ich bin bereit zu Unterstützen. Danke ;-)

braindead1 commented 3 years ago

@JHD47804 Mein Sohn ist aus dem Alter raus, dass wir ihm Internet sperren, deshalb weiß ich ehrlich gesagt gar nicht, wie das im Controller genau läuft. :-)

Für das reine blocken des Internetzugangs wird eine Firewall Regel und eine Gruppe benötigt. Es müsste dann im Adapter die Möglichkeit geben einen Client in diese Gruppe zu packen. Das Bedarf auf der einen Seite, dass die User wissen, was sie tun (Firewall Regel und Gruppe erstellen) und auf der anderen Seite wahrscheinlich größeren Konfigurationsaufwand im Adapter. Da ich keinen Support übernehmen werde für das Erstellen der Firewall Regel und der Gruppe, wird es diese Lösung von mir im Adapter nicht geben.

node-unifi ist die Basis für diesen Adapter. Ich habe gesehen, dass es damit möglich ist Clients zu blocken und auch wieder zu entblocken. Damit wird dem Client der Zugang zum Netzwerk (und damit Internet) geblockt. Das ließe ich wahrscheinlich recht einfach implementieren. Ist das evtl. sogar das, was Du momentan händisch im Controller machst?

JHD47804 commented 3 years ago

@braindead1 Ja, genau das mache ich im Controller händisch und das reicht vollkommen (über node-unifi). Hier noch eine Screeshorts(falls es klappt) von Controller, wo die Funktion "versteckt" ist als Info: grafik

Nochmals vielen Dank für deine Mühe ;-)

braindead1 commented 3 years ago

@JHD47804 Ich habe mir das Ganze vorhin schon mal angesehen. Dummerweise werden geblockte Clients in der Antwort des Clients nicht markiert. Stattdessen sind sie einfach nicht mehr vorhanden in der Antwort. Um den Status eines Clients (geblockt / nicht geblockt) im ioBroker anzuzeigen muss ich also zusätzliche Logik einbauen, ähnlich wie bei is_online. Grundsätzlich sollte es aber klappen.

JHD47804 commented 3 years ago

@braindead1 "Stattdessen sind sie einfach nicht mehr vorhanden in der Antwort." - du meinst is_online als false? Im Moment kann man im iobroker nicht sehen, das der Client geblockt ist. Ich nehme an, wenn man den Status sehen kann, kann man dann auch über Iobroker steuern bzw. blocken/entblocken.

nob0dy80 commented 3 years ago

Ich verweise mal auf https://flows.nodered.org/node/node-red-contrib-unifi blockClient : Block Client { command: "blockClient", mac: "client MAC address" } unblockClient : Unblock Client { command: "unblockClient", mac: "client MAC address" }

volkerrichert commented 3 years ago

Ich habe das auch über nodered gemacht, wie @nob0dy80. Aber ab und an scheint das GW das nicht mitzubekommen. Dann können die Geräte sich zwar mit dem WLAN verbinden, aber IPv4 scheint blockiert. IPV6 ging aber idR. Ich stoße inzwischen leicht verzögert ein reprovisioning der GW an. Dann ist alles wieder sauber. Gibt auch ein Issue dazu bei UBI, aber noch keine Lösung.

Tratonis commented 3 years ago

Man kann den Clients eine andere Usergroup zuordnen, dabei erfolgt keine Provisionierung der Geräte und der Client verschwindet nicht. Die Usergroup sollte geringen up- und Downstream haben, das kommt dann einem Blocking gleich. @braindead1 kann man das implementieren? siehe auch https://forum.fhem.de/index.php?topic=99864.0

nob0dy80 commented 3 years ago

@Tratonis jetzt mal ehrlich: das ist eine absolut unsaubere lösung.

Screambear commented 3 years ago

@Tratonis Genauso mache ich das auch! Jedes unserer Kinder hat eine eigene Usergroup. Entweder setze ich dort die Streamrate runter oder wenn ich nur ein einzelnes Gerät blockieren will habe ich eine Usergroup mit dieser niedrigen Streamrate angelegt und das Gerät wandert darein.

@nob0dy80 das mag unsauber sein, hat aber noch den "Vorteil" die Geräte merken nicht das sie offline sind. Nur der User merkt das irgendwie nichts mehr so richtig funktioniert.

Also wäre ich auch sehr angetan wenn man Clients, Usergroups zuweisen kann. Oder Usergroups die Up und Downstreamraten einstellen könnte. Im FHEM Device ist dies möglich gewesen.

Sascha-iob commented 3 years ago

Möchte mich mal anschließen @braindead1 , eine Option, dass man einzelne Clients sperrt, einer anderen Gruppe ohne Durchsatz oder sowas umsetzten könnte, wäre der Killer. Das suchen viele denke ich.... Auf Knopfdruck schnell mal den Junior vom Klo holen, ohne in der Unifi App ewig rumfummeln zu müssen... klasse. Bist Du mit der Idee inzwischen weiter gekommen?

Sascha-iob commented 3 years ago

@braindead1 Hallo, ich bin immer noch dran interessiert. Könntest Du mich oder besser @DutchmanNL kurz kontaktieren für die Lösung dieses Problems? Vielen Danke vorab!!

anwa commented 3 years ago

Hallo @Sascha-iob Ich habe das mal umgesetzt:

0001-Add-Client-blockunblock.zip

Dazu müssen Objekte angelegt werden:

Screenshot_20210504_143806

Das ist alles noch etwas umständlich und die site ist fest auf default gesetzt. War einfach mal ne Stunde rumgespielt. Kenn mich mit Java/Node und dem unifi Adapter nicht wirklich aus. Konnte mich aber ein bisschen einarbeiten, da ich die js-controller Fehler gefixed habe.

Es gibt auch eine Abfrage der geblockten Clients in der node-unifi API, wäre sicher hilfreich diese auch mit auszulesen.

Wenn Interesse daran besteht, könnte ich das noch etwas abrunden und wenn mein PR eingepflegt wurde kann ich das dann hochladen.

Gibt's denn spezielle Wünsche wie das umgesetzt werden soll?

Sascha-iob commented 3 years ago

Hallo @Sascha-iob Ich habe das mal umgesetzt:

0001-Add-Client-blockunblock.zip

Dazu müssen Objekte angelegt werden:

Screenshot_20210504_143806

Das ist alles noch etwas umständlich und die site ist fest auf default gesetzt. War einfach mal ne Stunde rumgespielt. Kenn mich mit Java/Node und dem unifi Adapter nicht wirklich aus. Konnte mich aber ein bisschen einarbeiten, da ich die js-controller Fehler gefixed habe.

Es gibt auch eine Abfrage der geblockten Clients in der node-unifi API, wäre sicher hilfreich diese auch mit auszulesen.

Wenn Interesse daran besteht, könnte ich das noch etwas abrunden und wenn mein PR eingepflegt wurde kann ich das dann hochladen.

Gibt's denn spezielle Wünsche wie das umgesetzt werden soll?

Hallo @anwa Danke fürs Umsetzen. Ich habe natürlich grosses Interesse dran. Aber ich habe das Gefühl, das geht über meinen Wissenshorizont....

Ich habe verstanden, ich benötige extra Datenpunkte, die ich per Hand an dem korrekten Ort selbst anlegen muss...? Wo muss der Code dann hin? Import in den JS Ordner? Sorry, ich blick nicht so Recht was zu tun ist um das mal zu testen ;-)

Viele Grüsse Sascha

Sascha-iob commented 3 years ago

@Tratonis Genauso mache ich das auch! Jedes unserer Kinder hat eine eigene Usergroup. Entweder setze ich dort die Streamrate runter oder wenn ich nur ein einzelnes Gerät blockieren will habe ich eine Usergroup mit dieser niedrigen Streamrate angelegt und das Gerät wandert darein.

@nob0dy80 das mag unsauber sein, hat aber noch den "Vorteil" die Geräte merken nicht das sie offline sind. Nur der User merkt das irgendwie nichts mehr so richtig funktioniert.

Also wäre ich auch sehr angetan wenn man Clients, Usergroups zuweisen kann. Oder Usergroups die Up und Downstreamraten einstellen könnte. Im FHEM Device ist dies möglich gewesen.

Das wäre wirklich eine klasse Lösung....

jens-maus commented 3 years ago

Wenn Interesse daran besteht, könnte ich das noch etwas abrunden und wenn mein PR eingepflegt wurde kann ich das dann hochladen.

Ich seh noch gar kein PR. Wenn du das also integriert haben willst solltest du dich erst einmal an einen entsprechenden PR setzen und dann kann man darauf bassierend diskutieren bzw. dieser analysieren und dann ggf. mergen wenn er das adäquat umsetzt was du da vorhast.

alho175 commented 3 years ago

Ich wäre auch sehr daran interessiert. Ich weiß, das es in Openhab auch geht, aber ioBroker sagt mir insgesammt mehr zu.

Grüße

Alain

anwa commented 3 years ago

@jens-maus ich meinte den PR wegen den Datentypen. Der ist ja mittlerweile ein gepflegt. Auf meine Nachricht vom 8.5. hast du leider nicht mehr geantwortet. Und wie ich in meinen Post geschrieben habe kenn ich mich mit dem Adapter nicht so gut aus. Ich hatte auf deine Hilfe gehofft. Z.b. zum anlegen von Datenpunkten. Ich hatte Lust zu testen ob das umsetzbar ist, das habe ich geschafft. Leider fehlt mir momentan die Zeit mich damit zu beschäftigen, da ich das selbst auch gar nicht benötige. Ich wollte das aber trotzdem teilen.

JHD47804 commented 2 years ago

@Tratonis Genauso mache ich das auch! Jedes unserer Kinder hat eine eigene Usergroup. Entweder setze ich dort die Streamrate runter oder wenn ich nur ein einzelnes Gerät blockieren will habe ich eine Usergroup mit dieser niedrigen Streamrate angelegt und das Gerät wandert darein.

@nob0dy80 das mag unsauber sein, hat aber noch den "Vorteil" die Geräte merken nicht das sie offline sind. Nur der User merkt das irgendwie nichts mehr so richtig funktioniert.

Also wäre ich auch sehr angetan wenn man Clients, Usergroups zuweisen kann. Oder Usergroups die Up und Downstreamraten einstellen könnte. Im FHEM Device ist dies möglich gewesen.

JHD47804 commented 2 years ago

Ich greife hier das Thema nochmal auf und ich bin immer noch interresiert an "Clients blocken/sperren". Auch am Clienst andere Usergroup zuweisen.

@Tratonis Genauso mache ich das auch! Jedes unserer Kinder hat eine eigene Usergroup. Entweder setze ich dort die Streamrate runter oder wenn ich nur ein einzelnes Gerät blockieren will habe ich eine Usergroup mit dieser niedrigen Streamrate angelegt und das Gerät wandert darein.

@nob0dy80 das mag unsauber sein, hat aber noch den "Vorteil" die Geräte merken nicht das sie offline sind. Nur der User merkt das irgendwie nichts mehr so richtig funktioniert.

Also wäre ich auch sehr angetan wenn man Clients, Usergroups zuweisen kann. Oder Usergroups die Up und Downstreamraten einstellen könnte. Im FHEM Device ist dies möglich gewesen.

Sorry, Leute habe ausversaehen geschloßen, bin aber immer noch interessiert an "Clienst blocken/sperren" sowie auch an anderen Usergroup zuweisen. Wie habt ihr das gelöst? Kann mir bitte das Befehl/Code posten? Ich wäre sehr dankbar.

slimline33 commented 2 years ago

Ich wäre da auch interessiert. Das mit dem wifi schedule funktioniert zwar aber das führt dazu das alle aktiven wifis kurzzeitig deaktiviert werden...

slimline33 commented 2 years ago

Also ich bin nach wie vor daran interessiert aber leider zu doof so etwas selber zu implementieren 🤪 es wäre schön einen User per Datenpunkt in eine andere Gruppe zu schieben 😅😬

slimline33 commented 2 years ago

Gibt es was neues diesbezüglich? 😬 Oder einen anderen workaround jemand eine Idee?

volkerrichert commented 2 years ago

Ich nutze den Umweg über node Red dafür. Das funktionierte aber nur mit nachgelagerter Provisionierung.Kann aber erst Anfang August nachsehen 

slimline33 commented 2 years ago

Die Provisionierung lässt sich ja vermeiden indem man die User in eine alternative Gruppe mit reduzierter Bandbreite steckt. Machst du das über nodered?

SGhoktar commented 2 years ago

Ich mache es auch einfach über nodered im iobroker. Keine extra Benutzer und auch keine extra provisionierung. Läuft bei mir ein halbes Jahr ohne Problem sehr stabil.

Screambear commented 2 years ago

kann mir jemand dazu infos geben? oder sagen wo ich infos dazu finde? habe noch null erfahrungen mit nodered

Am Fr., 15. Juli 2022 um 12:23 Uhr schrieb SGhoktar < @.***>:

Ich mache es auch einfach über nodered im iobroker. Keine extra Benutzer und auch keine extra provisionierung. Läuft bei mir ein halbes Jahr ohne Problem sehr stabil.

— Reply to this email directly, view it on GitHub https://github.com/iobroker-community-adapters/ioBroker.unifi/issues/84#issuecomment-1185403959, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASO5NBXYX7CNEWDSCC5CMNLVUE3ZBANCNFSM4OCFR2FA . You are receiving this because you commented.Message ID: @.*** com>

slimline33 commented 2 years ago

Geht mir genau so 😬 null Erfahrung mit node red aber das Feature wäre es mir wert mich da rein zu fuchsen.

austrogaucho commented 2 years ago

hier ist der "Node" der das alles kann:

https://github.com/Isaksson/node-red-contrib-unifi

den Rest googeln oder sich anderweitig schlau machen..,

Scrounger commented 1 year ago

implemented in #652