Nibe KNV S1255 in Symcon einbinden - hat das schon wer gemacht?

Hallo allseits,
habe gerade eine KNV S1255 WP bekommen und baue im haus gerade KNX und IPsymcon auf. Die WP hat eine Schnittstelle und kommuniziert auch mit myuplink.
Ich möchte das Rad nicht neu erfinden - hat schon wer so eine oder ähnliche WP eingebunden?
Wäre für Erfahrungen dankbar.
Danke Walter

Schau mal unter

Nibe

Ich gehe da nicht zum Steuern, sondern nur zum Datenholen rauf. Funktioniert aber gut. Allerdings nicht über ein Modul sondern über Skript.

Vg
Dieter

Danke für die rasche Antwort.
Ja die Website und die App habe ich - dort sehe ich auch die Werte.
Ich bin im skript schreiben gar nicht gut, schaffe es gerade bestehende Skripts anzupassen.
Könntest du so nett sein und mir deines zum anpassen schicken?
Danke
Walter

Im Prinzip auch nur zusammengesucht:

Das Modul SymconTest und dort OAuthStandalone für die Authentifizierung bei dev.myuplink.
Dort habe ich die scopes ergänzt (wurden nicht ausgelesen)


		private function GetProvider() {

			return new \League\OAuth2\Client\Provider\GenericProvider([
				'clientId'                => $this->ReadPropertyString("ClientID"),
				'clientSecret'            => $this->ReadPropertyString("ClientSecret"),
				'redirectUri'             => $this->Register(),
				'urlAuthorize'            => $this->ReadPropertyString("AuthorizeUri"),
				'urlAccessToken'          => $this->ReadPropertyString("TokenUri"),
				'scopes'        		  => $this->ReadPropertyString("Scopes"),
				'urlResourceOwnerDetails' => null,
			]);

Dann hole ich mir alle 2 Minuten die kompl. Daten in das $data Array und decode das auf $json (siehe script).

Jetzt nur noch die für mich wichtigen Daten auf die „Hilfsvariablen“


<?php
$data = OAS_Request(55548,"https://api.myuplink.com/v2/devices/…………………../points");
$json = json_decode($data,true);
//print_r($json); Im Bedarfsfall mal schauen welche Datenpunkte da sind
SetValueFloat(31877,$json[0]["value"]);
SetValueFloat(52278,$json[12]["value"]);
SetValueFloat(11425,$json[3]["value"]);
SetValueFloat(39525,$json[4]["value"]);
SetValueInteger(54465,$json[24]["value"]);
SetValueString(22237,$json[46]["strVal"]);
SetValueInteger(12533,($json[46]["value"]/10));
SetValueString(22444,$json[360]["strVal"]);
SetValueInteger(32008,$json[360]["value"]);
SetValueFloat(40273,$json[10]["value"]);
SetValueFloat(39621,$json[13]["value"]);
SetValueFloat(21085,$json[14]["value"]);
SetValueFloat(18024,$json[11]["value"]);
SetValueInteger(35113,$json[367]["value"]);
SetValueFloat(29254,$json[28]["value"]);
SetValueFloat(45653,$json[34]["value"]);
SetValueInteger(32741,$json[361]["value"]);

Das wars eigentlich schon.

Herzlichen Dank, ich werde es probieren - (wird eine Weile dauern :smirk:).
Danke jedenfalls

Hallo,
ich habe schon vieles auf Grund von diversen Beiträgen in IPSymcon realisieren können :wink:

Jedoch bei diesem Thema komme ich nicht weiter.

Vor allem ist mir unklar, welche URL unter „Authorize“ und „Token“ eingetragen werden muss.
Habe schon vieles probiert jedoch kommt im Modul „OAuthStandalone“ beim registrieren des Token „Request is made from an invalid/unauthorized client“?

@ norden oder walter21031
Kann mir jemand von euch da weiter helfen?

In der Nibe API „Swagger“ sehe ich die Werte der Wärmepumpe schon.
Das Skript von norden ist auch schon soweit an meine Anforderungen angepasst - jedoch klappt eben die Registrierung in der Instanz nicht.

Anbei meine aktuellen Einstellungen →

Besten Dank für eure Hilfe im Voraus :wink:

Moin, so funktioniert es einwandfrei, Swagger ist mehr zum Onlinetest, bzw. Abfrage über WEB.

Hallo, danke schonmal.

Hatte ich so auch schon probiert, jedoch kommt dann immer „invalid_request“.
In der Callback-URL in der MyUplink API wird doch die Redirect-URL „https://…ipmagic.de/hook/oauth/standalone“ eingetragen?

Im SWAGGER steht dafür unter TOKEN „check authorization server configuration“ welche ja nur in der MyUplink API unter APPS zum einstellen gibt?
grafik

Richtig,

auf „dev.myuplink.com“ wird die Redirect Url vom Modul in Callback Url eingetragen. Beim Ausführen des „Register“ Buttons im Modul sollte der Standard Browser aufgehen und nach Bestätigung auf der Website eine positive Rückmeldung erscheinen.

mhmm, habe dann eigentlich alles auch genau so.

Habe jetzt den Client in der MyUplink API unter APPS gelöscht und neu angelegt - gleiches Ergebnis.
Die ClientID und ClientSecret muss passen, denn sobald dort etwas faslches steht kommt bei der TOKEN Registrierung „unauthorized client“ im Browser → passt.

Mir wirft dann eben die Registrierung des TOKEN einen „invalid_request“ zurück (sehe ich auch im SWAGGER) :thinking:

grafik
grafik

Blöd ist halt auch, dass im Modul OAuthStandalone" der DEBUG nichts auswirft?

Habe nun oben auch noch gesehen, dass du SCOPE ergänzt hast - wo bzw. wie wurde dies ergänzt?

Vielen Dank für deine Hilfe :wink:

Hallo, leider kann ich mich erst in ein paar Tagen dazu äußern, bin auf Urlaub. Sehe es midann gleich an

Das ist auch wichtig ohne diese Änderung wird es nicht funktionieren.

Ich habe es im Modul OAuthStandalone in der Module.php wie oben beschrieben ergänzt.

Gruß
Dieter

Genau das warˋs funktioniert nun :ok_hand:

Vielen, vielen Dank für die Unterstützung

Freut mich, so soll es sein

Hätte jetzt noch eine Frage.

Und zwar kann ich nur ca. 1h Daten empfangen? Erst nach einer Neuregisitrierung des Token bekomme ich für 1h wieder Daten?

Hätte aus anderen Beiträgen mitgenommen, dass der Token 1h gültig ist und dann automatisch refreshed wird?

Ist dies bei euch auch so? Oder habe ich da was übersehen :thinking:

Automatisch ging es nicht? Ich schau mal, wie ich es damals gemacht habe.

Ich habe mir die Funktion gebastelt und in der module.php ergänzt.

update.txt (921 Bytes)

Ich rufe diese Funktion alle 30 Minuten über einen Timer auf

danke - da ich bzgl. php nicht sehr geübt bin kannst du mir hierfür eine Vorlage geben?