elueckel / Unifi-Toolbox

Modul for Symcon integrating UniFi Network devices
2 stars 2 forks source link

Extending Unifi Internet Controller to activate/deactivate PortForwarding #70

Open Brovning opened 1 year ago

Brovning commented 1 year ago

Hallo @elueckel ,

ich bin gerade am überlegen, ob ich den Unifi Internet Controller erweitere, um vorhandene User-defined PortForwarding Rules zu aktivieren und zu deaktivieren.

Bspw.: public function ActivatePortForwardRule(int $ruleId)

und public function DeactivatePortForwardRule(int $ruleId)

Warum das Ganze: Weil ich dieses Feature gerade benötige und sowie so implementieren würde. Daher die Überlegung, ob ich es gleich in der Unifi-Toolbox umsetze.

Was hältst du davon?

elueckel commented 1 year ago

Klar - als rein 😁Am 23.01.2023 um 20:37 schrieb Brovning @.***>: Hallo @elueckel , ich bin gerade am überlegen, ob ich den Unifi Internet Controller erweitere, um vorhandene User-defined PortForwarding Rules zu aktivieren und zu deaktivieren. Bspw.: public function ActivatePortForwardRule(int $ruleId) und public function DeactivatePortForwardRule(int $ruleId) Warum das Ganze: Weil ich dieses Feature gerade benötige und sowie so implementieren würde. Daher die Überlegung, ob ich es gleich in der Unifi-Toolbox umsetze. Was hältst du davon?

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

Brovning commented 1 year ago

Ok, dann lege ich Morgen mal los.

Brovning commented 1 year ago

Hallo @elueckel ,

die erste Version ist online, jedoch noch nicht vollständig funktionsfähig:

ABER: Da ein GET-Befehl verwendet wird, erhält man nur die Details zur $ruleID per print_f() ausgegeben.

Man müsste per PUT Befehl das enable setzen. Das habe ich aber noch nicht hinbekommen. Im Internet habe ich folgendes gefunden:

This may apply to other configurations, but initial testing shows that port forward rules can be enabled/disabled using PUT against the endpoint /api/s/{site}/rest/portforward/{rule-id} with a body such as:

      {
          "enabled": true
      }

Hast du eine Idee, wie das per PUT funktioniert?

elueckel commented 1 year ago

Hi, Ich weis das ich bei dem Device Blocker auch sehr lange gebastelt habe … schau evtl. mal da (wobei ich nicht weis ob das hier geht?

Am 24.01.2023 um 20:39 schrieb Brovning @.***>:

Hallo @elueckel https://github.com/elueckel ,

die erste Version ist online, jedoch noch nicht vollständig funktionsfähig:

UIC_GetPortForwardRules() ließt die vorhandenen PortForwarding Rules aus. Diese Funktion kann auch per Modul-Instanz (Button unten rechts) getriggert werden, damit man die korrekte Rule-ID bequem per GUI ermitteln kann.

UIC_ActivatePortForwardRule(string $ruleId) sollte mit der zuvor ermittelten Rule-ID die jeweilige Port-Forwarding Rule aktivieren

ABER: Da ein GET-Befehl verwendet wird, erhält man nur die Details zur $ruleID per print_f() ausgegeben.

Man müsste per PUT Befehl das enable setzen. Das habe ich aber noch nicht hinbekommen. Im Internet habe ich folgendes gefunden:

This may apply to other configurations, but initial testing shows that port forward rules can be enabled/disabled using PUT against the endpoint /api/s/{site}/rest/portforward/{rule-id} with a body such as:

  {
      "enabled": true
  }

Hast du eine Idee, wie das per PUT funktioniert?

— Reply to this email directly, view it on GitHub https://github.com/elueckel/Unifi-Toolbox/issues/70#issuecomment-1402490614, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHI57O2EXUZT6B23AVAARPLWUAVVTANCNFSM6AAAAAAUEHO6AY. You are receiving this because you were mentioned.

Brovning commented 1 year ago

Jetzt konnte ich den Befehl absenden und er wurde auch ausgeführt bzw. es wurde irgendetwas ausgeführt... Auf der Unifi Konfigurationsseite erhalte ich nur noch folgende Meldung: image

Arg...

Brovning commented 1 year ago

Ein Neustart der DM hat das Problem behoben.

Habe meinen aktuellen Stand mal eingecheckt. Laut Response wird der Befehl erfolgreich ausgeführt, jedoch ist die PortForward Rule laut GUI nicht aktiviert... image

Brovning commented 1 year ago

Nach ausführen des PUT Befehls, wird trotz Angabe der rule-ID immer eine neue Port-Forwarding Rule erstellt. Das wäre jetzt kein Problem, wenn es eine Möglichkeit gäbe eine Rule auch wieder zu löschen, aber leider habe ich hierzu keinen Befehl gefunden...

Der Home-Assistant bekommt es scheinbar hin eine vorhandene PortForwarding Rule zu editieren: https://community.home-assistant.io/t/automating-unifi-port-forwarding-based-upon-presence-detection/168185/21

elueckel commented 1 year ago

Ich glaube ich hatte bei dem Modul zum Blocken was ähnliches und musste nochmal etwas lesen. Das ist leider eine lange Zeit her …

Am 26.01.2023 um 17:18 schrieb Brovning @.***>:

Nach ausführen des PUT Befehls, wird trotz Angabe der rule-ID immer eine neue Port-Forwarding Rule erstellt. Das wäre jetzt kein Problem, wenn es eine Möglichkeit gäbe eine Rule auch wieder zu löschen, aber leider habe ich hierzu keinen Befehl gefunden...

Der Home-Assistent bekommt es scheinbar hin: https://community.home-assistant.io/t/automating-unifi-port-forwarding-based-upon-presence-detection/168185/21

— Reply to this email directly, view it on GitHub https://github.com/elueckel/Unifi-Toolbox/issues/70#issuecomment-1405255185, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHI57OZSHV6SKJZPE7QB2DTWUKPURANCNFSM6AAAAAAUEHO6AY. You are receiving this because you were mentioned.

Brovning commented 1 year ago

Du meinst das Cookie und den X_CSRF_Token? Das habe ich bereits.

elueckel commented 1 year ago

Leider habe ich da auch keine Idee … ich habe auch gerade nochmal im Code geschaut.

Eine Idee wäre sich nochmal von Art of Wifi inspirieren zu lassen Art-of-WiFi/UniFi-API-client: A PHP API client class to interact with Ubiquiti's UniFi Controller API (github.com)

Von: Brovning Gesendet: Donnerstag, 26. Januar 2023 19:51 An: elueckel/Unifi-Toolbox Cc: elueckel; Mention Betreff: Re: [elueckel/Unifi-Toolbox] Extending Unifi Internet Controller toactivate/deactivate PortForwarding (Issue #70)

Du meinst das Cookie und den X_CSRF_Token? Das habe ich bereits. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

Brovning commented 1 year ago

Bei denen habe ich auch soeben gepostet. Einer hatte bereits die gleiche Frage wie das geht. Aktuell bei denen auch nicht implementiert... https://github.com/Art-of-WiFi/UniFi-API-client/discussions/175

Und der Link zum Unifi-Forum: https://community.ui.com/questions/Activation-deactivation-of-PortForwarding-rules-in-UDM-via-curl-PHP/c321e5da-f2aa-4925-b94b-f1d04bd342c8

Mal sehen, ob irgendwo Feedback kommt.

Brovning commented 1 year ago

Hm... Genau so mache ich es: https://community.ui.com/questions/Open-Close-ports-remotely/82c52f62-0e0e-45fe-9c5a-3d4cb71aaf54?page=1

Schnittcher commented 8 months ago

Gibt es hierzu schon etwas neues?

Grüße, Kai

Schnittcher commented 8 months ago

Ich konnte das Problem lösen, ich schicke einen PR.

Grüße, Kai

Brovning commented 8 months ago

Hello @elueckel, siehe PullRequest:

76 Fix für Portweiterleitungen bug

Review habe ich bereits gemacht. Du kannst gerne einen Cross-Check machen und bitte führe du im Anschluss den Merge aus.