Warum weist Du url 2x einen Text zu?
Und die 2. Zuweisung ist auch kaputt. " und ' sind String Delimeter, die immer paarweise benötigt werden. Also die stehen nicht willkürlich da, sondern haben synkatische Funktion.
Ich habe leider von deiner API keine Ahnung, aber ich habe Zweifel das da so viele " in den String gehören. Vielleicht findet sich ja noch ein HTTP Experte.
Dein erster Ansatz sollte sein die URL so zusammenzusetzen, das Du die im Browser eintragen kannst und einen sinnvollen Output erhältst.
Dann kannst Du versuchen diese dem Skript beizubringen.
JSON-APIs auswerten
Moderator: Co-Administratoren
-
- Beiträge: 9764
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 707 Mal
- Danksagung erhalten: 1646 Mal
Re: JSON-APIs auswerten
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 +++
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 +++
-
- Beiträge: 240
- Registriert: 24.07.2015, 21:39
- System: Alternative CCU (auf Basis OCCU)
- Danksagung erhalten: 4 Mal
Re: JSON-APIs auswerten
Zunächst vielen Dank für Deine schnelle Rückmeldung. Gute Frage und die Antwort muss wahrscheinlich lauten: weil ich keine Ahnung davon habe. Gehe ich also richtig in der Annahme, dass die zusammengebaute URL nur "string url" zugewiesen werden muss und die Zuweisung von "url" unangetastet bleibe muss, also beispielsweise so:
string url = "https://devapiext.azurewebsites.net/api ... Fu_4PDnA==' --header 'Content-Type: text/plain' --data-raw '{"DeviceRequest":{"Username":"admin_pn@proteus.news","accountID":"2","SecurityStamp":"0bee5f07-919-4ee6-935d-4b7bc5ae63e2","DeviceID":"5155888"}}'";
url = "wget --no-check-certificate --timeout=2 -O - '"#url#"'";
Ich weiß nicht, an welcher Stelle ein " oder ' fehlen sollte, um ein Pärchen zu bilden. Das Ganze hatte ich aus der API-Beschreibung herauskopiert. Dort gibt es aber den expliziten Hinweis aus die korrekten Hochkommas zu achten. Obwohl im darin aufgeführten Beispiel normale Hochkommas (") aufgeführt sind, sind in der Beschreibung andere Hochkommas (“) eingesetzt. Sofern ich “ statt " verwende, kommt zumindest kein Fehler mehr in der Scriptausgabe.
D. h. ich kann eine ganz normale URL zusammenbauen, die ich in die Adresszeile meines Browsers (Firefox) eintrage, absende und dann einen Output bekomme? Die fetten Parameter habe ich soeben noch mal bei meinem Anbieter erfragt, um sicher zu gehen, dass die korrekt sind.
https://devapiext.azurewebsites.net/api ... Fu_4PDnA==' --header 'Content-Type: text/plain' --data-raw'{“DeviceRequest“:{“Username“:“admin_pn@proteus.news“,“accountID“:“2“,"SecurityStamp“:“0bee5f07-c919-4ee6-935d-4b7bc5ae63e2“,“DeviceID“:“5155888“}}'
-
- Beiträge: 9764
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 707 Mal
- Danksagung erhalten: 1646 Mal
Re: JSON-APIs auswerten
Genaumittelhessen hat geschrieben: ↑03.01.2024, 14:13D. h. ich kann eine ganz normale URL zusammenbauen, die ich in die Adresszeile meines Browsers (Firefox) eintrage, absende und dann einen Output bekomme?
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 +++
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 +++
-
- Beiträge: 240
- Registriert: 24.07.2015, 21:39
- System: Alternative CCU (auf Basis OCCU)
- Danksagung erhalten: 4 Mal
Re: JSON-APIs auswerten
Meine vollständigen Nutzerdaten habe ich nun zugesendet bekommen, komme damit aber immer noch nicht weiter. Wie setze ich das nun zunächst als URL zusammen, damit im Browser eine Ausgabe erfolgt?mittelhessen hat geschrieben: ↑03.01.2024, 14:13... eine ganz normale URL zusammenbauen, die ich in die Adresszeile meines Browsers (Firefox) eintrage, absende und dann einen Output bekomme
(xxx=persönliche Daten gekürzt)curl --location 'https://devapiext.azurewebsites.net/api ... PDnA%3D%3D' \
--header 'Postman-Token: <calculated when request is sent>' \
--header 'Content-Type: application/json' \
--data-raw '{"DeviceRequest":{"Username":xxx,"accountID":"xxx","SecurityStamp":"xxx","DeviceID":"xxx"}}'
-
- Beiträge: 240
- Registriert: 24.07.2015, 21:39
- System: Alternative CCU (auf Basis OCCU)
- Danksagung erhalten: 4 Mal
Re: JSON-APIs auswerten
Nach nun 2 Monaten, möchte ich diese Thread noch mal hervor holen. Leider habe ich noch immer keine Möglichkeit gefunden, den von meinem EcoFrog gemessenen Heizölstand in die Homematic einzulesen.
Hat jemand eine Idee, wie ich dies mit den voran beschriebenen Daten bewerkstelligen kann?
Hat jemand eine Idee, wie ich dies mit den voran beschriebenen Daten bewerkstelligen kann?
-
- Beiträge: 9764
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 707 Mal
- Danksagung erhalten: 1646 Mal
Re: JSON-APIs auswerten
V1.12
Da immer mal wieder der Wunsch an mich herangetragen wurde doch bestimmte Systemvariablen mit dem Skript zu befüllen, habe ich nun eine "Übersetzungsfunktion" eingebaut. Siehe Code im Beitrag 1.
Dazu lässt man wie im Beitrag 1 beschrieben am besten erst einmal das Skript in "Skript testen" durchlaufen.
Dann sieht man die vom Skript automatisch generierten SV-Namen.
Am Beispiel der Testdaten:
Will man diese Daten nun in eigene Systemvariablen namens xx_Vorname und xx_Nachname einsetzen, dann baut man die Übersetzungstabelle wie folgt ein:
Diesen Code suchen:
und ergänzen:
In Name_original werden also die automatisch generierten Namen eingetragen, jeweils durch ; getrennt.
In Name_neu werden die eigenen Namen eingetragen; ebenfalls durch ; getrennt und in der gleichen Reihenfolge und Anzahl wie in Name_original.
Im Erfolgsfalle - also der automatische erzeugte Name wird gefunden und der neue ist als SV im System angelegt - wird der Wert eingetragen und im Protokoll (im "Skript testen" Fenster) angezeigt:
Da immer mal wieder der Wunsch an mich herangetragen wurde doch bestimmte Systemvariablen mit dem Skript zu befüllen, habe ich nun eine "Übersetzungsfunktion" eingebaut. Siehe Code im Beitrag 1.
Dazu lässt man wie im Beitrag 1 beschrieben am besten erst einmal das Skript in "Skript testen" durchlaufen.
Dann sieht man die vom Skript automatisch generierten SV-Namen.
Am Beispiel der Testdaten:
Code: Alles auswählen
JSON_Kinder_Vorname1 = 'Patti'
JSON_Kinder_Nachname1 = 'Davis'
Diesen Code suchen:
Code: Alles auswählen
string Name_original = ""; ! durch Semikolon getrennte SV-Namen eintragen wie sie vom Skript ermittelt werden
string Name_neu = ""; ! durch Semikolon getrennte SV-Namen eintragen die stattdessen genutzt werden sollen
Code: Alles auswählen
string Name_original = "JSON_Kinder_Vorname1;JSON_Kinder_Nachname1"; ! durch Semikolon getrennte SV-Namen eintragen wie sie vom Skript ermittelt werden
string Name_neu = "xx_Vorname;xx_Nachname"; ! durch Semikolon getrennte SV-Namen eintragen die stattdessen genutzt werden sollen
In Name_neu werden die eigenen Namen eingetragen; ebenfalls durch ; getrennt und in der gleichen Reihenfolge und Anzahl wie in Name_original.
Im Erfolgsfalle - also der automatische erzeugte Name wird gefunden und der neue ist als SV im System angelegt - wird der Wert eingetragen und im Protokoll (im "Skript testen" Fenster) angezeigt:
Code: Alles auswählen
JSON_Kinder_Vorname1 = 'Patti'
0: JSON_Kinder_Vorname1
=== SV xx_Vorname written (1) ===
JSON_Kinder_Nachname1 = 'Davis'
0: JSON_Kinder_Vorname1
1: JSON_Kinder_Nachname1
=== SV xx_Nachname written (1) ===
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 +++
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 +++