Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extending Unifi Internet Controller to activate/deactivate PortForwarding #70

Open
Brovning opened this issue Jan 23, 2023 · 15 comments
Open
Assignees
Labels
enhancement New feature or request

Comments

@Brovning
Copy link
Collaborator

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?

@Brovning Brovning added the enhancement New feature or request label Jan 23, 2023
@Brovning Brovning self-assigned this Jan 23, 2023
@elueckel
Copy link
Owner

elueckel commented Jan 23, 2023 via email

@Brovning
Copy link
Collaborator Author

Ok, dann lege ich Morgen mal los.

Brovning added a commit that referenced this issue Jan 24, 2023
…rwarding

#70 Extending Unifi Internet Controller to activate/deactivate PortForwarding
@Brovning
Copy link
Collaborator Author

Hallo @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?

@elueckel
Copy link
Owner

elueckel commented Jan 25, 2023 via email

@Brovning
Copy link
Collaborator Author

Brovning commented Jan 25, 2023

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
Copy link
Collaborator Author

Brovning commented Jan 25, 2023

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
Copy link
Collaborator Author

Brovning commented Jan 26, 2023

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
Copy link
Owner

elueckel commented Jan 26, 2023 via email

@Brovning
Copy link
Collaborator Author

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

@elueckel
Copy link
Owner

elueckel commented Jan 26, 2023 via email

@Brovning
Copy link
Collaborator Author

Bei denen habe ich auch soeben gepostet.
Einer hatte bereits die gleiche Frage wie das geht. Aktuell bei denen auch nicht implementiert...
Art-of-WiFi/UniFi-API-client#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
Copy link
Collaborator Author

@Schnittcher
Copy link
Contributor

Gibt es hierzu schon etwas neues?

Grüße,
Kai

@Schnittcher
Copy link
Contributor

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

Grüße,
Kai

@Brovning
Copy link
Collaborator Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants