Auslesen von Werten aus Danfoss API

Nutzung von XML RPC, Remote Script, JSON RPC, XMLAPI

Moderator: Co-Administratoren

MichaelN
Beiträge: 9561
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: Auslesen von Werten aus Danfoss API

Beitrag von MichaelN » 28.04.2021, 21:10

Du brauchst eine URL. Keine Ahnung was das Addon macht.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Benutzeravatar
Black
Beiträge: 5463
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 418 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

Re: Auslesen von Werten aus Danfoss API

Beitrag von Black » 28.04.2021, 21:39

in den header bekommst du bei wget mit z.b.

Code: Alles auswählen

--header="Accept-Encoding: compress, gzip"
eigene Ausdrücke eingefügt... so müsste es auch mit deinem API key gehen

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

andi4822
Beiträge: 19
Registriert: 24.03.2020, 09:21
Hat sich bedankt: 2 Mal

Re: Auslesen von Werten aus Danfoss API

Beitrag von andi4822 » 29.04.2021, 10:13

Black hat geschrieben:
28.04.2021, 21:39
in den header bekommst du bei wget mit z.b.

Code: Alles auswählen

--header="Accept-Encoding: compress, gzip"
eigene Ausdrücke eingefügt... so müsste es auch mit deinem API key gehen

Black
Ich bin leider zu doof um diesen Befehl mitzuschicken. Wie genau sollte der Code bei mir aussehen? So bekomme ich nur Fehlermeldungen im Script Editor der CCU.

Code: Alles auswählen

string url = "https://external.enspire.danfoss.com/devices";

 
        dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - --header="x-api-key=xxxxxxxxxxxxxxxxxxx" '"#url#"'");
        dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
        string status = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();

      
        WriteLine(status);

MichaelN
Beiträge: 9561
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: Auslesen von Werten aus Danfoss API

Beitrag von MichaelN » 29.04.2021, 10:18

Du kannst nicht wild " und ' mischen. Das muss schon einen SInn ergeben!

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - --header=x-api-key=xxxxxxxxxxxxxxxxxxx '"#url#"'");
vielleicht muss der Header auch gekapselt werden, also evt:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - --header='x-api-key=xxxxxxxxxxxxxxxxxxx' '"#url#"'");
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

andi4822
Beiträge: 19
Registriert: 24.03.2020, 09:21
Hat sich bedankt: 2 Mal

Re: Auslesen von Werten aus Danfoss API

Beitrag von andi4822 » 29.04.2021, 10:35

Danke für die Hilfe. Aber leider bekomm ich noch immer keine Rückmeldung vom Link zurück. Ich glaub ich gebe jetzt auf. 10 Stunden probieren sind genug :)

Benutzeravatar
Black
Beiträge: 5463
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 418 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

Re: Auslesen von Werten aus Danfoss API

Beitrag von Black » 29.04.2021, 10:38

MichaelN hat geschrieben:
29.04.2021, 10:18
Du kannst nicht wild " und ' mischen. Das muss schon einen SInn ergeben!

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - --header=x-api-key=xxxxxxxxxxxxxxxxxxx '"#url#"'");
vielleicht muss der Header auch gekapselt werden, also evt:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - --header='x-api-key=xxxxxxxxxxxxxxxxxxx' '"#url#"'");
ich würds so schreiben.. bin mir net sicher ob serverseitig da nicht ein " erwartet wird

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(^wget -q -O - --header="x-api-key:xxxxxxxxxxxxxxxxxxx" "^#url#^"^);
Zuletzt geändert von Black am 29.04.2021, 18:33, insgesamt 1-mal geändert.
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Fonzo
Beiträge: 6687
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 478 Mal

Re: Auslesen von Werten aus Danfoss API

Beitrag von Fonzo » 29.04.2021, 11:04

andi4822 hat geschrieben:
29.04.2021, 10:35
Ich glaub ich gebe jetzt auf. 10 Stunden probieren sind genug :)
Hast Du es denn mal auf anderem Weg probiert?
Das wäre PHP

Code: Alles auswählen

<?php
 
$curl = curl_init();
 
curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://external.enspire.danfoss.com/devices',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'x-api-key: <API Key>'
  ),
));
 
$response = curl_exec($curl);
 
curl_close($curl);
echo $response;
Ansonsten könntest Du auch probieren ob Du das aus dem NEO Server verschickt bekommst und dort die Antwort gleich auswerten, vielleicht ist das ja einfacher für Dich einzurichten. Zumindest sieht Du wenn Du mal einen anderen Weg zum Test ausprobierst, ob überhaupt was von der CCU3 verschickt wird und ob Du einen sinnvollen Response vom Gerät bekommst.

Benutzeravatar
Black
Beiträge: 5463
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 418 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

Re: Auslesen von Werten aus Danfoss API

Beitrag von Black » 29.04.2021, 11:55

Ich könnte jetzt auch noch eine Lösung in Javascript oder Python oder Pascal oder c #schreiben.. wären alle genauso wenig hilfreich für dich wie eine PHP Lösung.

du hattest da nur einen Dämelsfehler drinne: einen header schreibt man mit nem Doppelpunkt.
es geht mit deiner Api sowohl mit wget als auch mit curl (getestet)

der einfachheithalber hier die wget Lösung
mit deinem testweise zur verfügung gestellten Key bekomme ich auch eine korrekte Antwort (sieht führ mich zumindest nach einem validen JSON aus, musst du nun weitertesten.

ich hab mir aber erlaubt das für system.Exec zu schreiben:

Code: Alles auswählen

string url = "https://external.enspire.danfoss.com/devices";
string stdErr;
string stdOut;

system.Exec(^wget --timeout=2 -q -O - --header="x-api-key:DerVerwendeteApiKey" "^#url#^"^,&stdOut, &stdErr); 
WriteLine (stdOut);  
Gruss Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

andi4822
Beiträge: 19
Registriert: 24.03.2020, 09:21
Hat sich bedankt: 2 Mal

Re: Auslesen von Werten aus Danfoss API

Beitrag von andi4822 » 29.04.2021, 12:03

Black hat geschrieben:
29.04.2021, 11:55
du hattest da nur einen Dämelsfehler drinne: einen header schreibt man mit nem Doppelpunkt.
es geht mit deiner Api sowohl mit wget als auch mit curl (getestet)
Ohh Mann nur eine Kleinigkeit, vielen vielen Dank. Das ist genau das was ich wollte.

Benutzeravatar
Black
Beiträge: 5463
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 418 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

Re: Auslesen von Werten aus Danfoss API

Beitrag von Black » 29.04.2021, 12:07

yup, das berühmte alte Gesetz: kaum macht mans richtig, schon funktioniert es :wink:

vergess das --timeout=2 oder 3 oder so aber nicht, ansonsten legt es dir, wenn die verbindung hängt, die rega aufn rücken.

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“