JSON-APIs auswerten
Moderator: Co-Administratoren
Re: JSON-APIs auswerten
Das Schreiben in eine Systemvariable funktioniert einwandfrei.
Jetzt würde ich gerne in CUxD Gerät schreiben, damit ich die Messwerte meiner OpenDTU auch in einem Diagramm anzeigen lassen kann. Was für eine Art CuxD-Gerät solte ich dafür am besten anlegen?
(Oder falls man doch eine Systemvariable in einem Diagramm abbilden kann - vielleicht habe ich nur übersehen wie das geht?)
Grüße
Stefan
Jetzt würde ich gerne in CUxD Gerät schreiben, damit ich die Messwerte meiner OpenDTU auch in einem Diagramm anzeigen lassen kann. Was für eine Art CuxD-Gerät solte ich dafür am besten anlegen?
(Oder falls man doch eine Systemvariable in einem Diagramm abbilden kann - vielleicht habe ich nur übersehen wie das geht?)
Grüße
Stefan
- Baxxy
- Beiträge: 10933
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 617 Mal
- Danksagung erhalten: 2253 Mal
Re: JSON-APIs auswerten
Wenn du den CCU-Historian nutzt kannst du alles aufzeichnen und brauchst keine extra Geräte dafür.
SysVars über die interne Diagrammfunktion geht nicht (und wird es auch wohl nie).
Um was für Daten der OpenDTU geht es genau?
SysVars über die interne Diagrammfunktion geht nicht (und wird es auch wohl nie).
Um was für Daten der OpenDTU geht es genau?
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
Re: JSON-APIs auswerten
dein skript funktioniert super. besteht die Möglichkeit die Daten auch mit 3 Kommastellen auszugeben? 12345,123
-
- Beiträge: 9737
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 705 Mal
- Danksagung erhalten: 1643 Mal
Re: JSON-APIs auswerten
Mir ist gerade nicht bewusst, dass ich da eine Rundung eingebaut habe. Sicher, daß die Daten mit mehr Nachkommastellen geliefert werden?
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 +++
- Baxxy
- Beiträge: 10933
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 617 Mal
- Danksagung erhalten: 2253 Mal
Re: JSON-APIs auswerten
Der Output folgt dem Input:
Vielleicht durch die SysVars verwundert da diese immer nur max 2 Nachkommastellen in der WebUI anzeigen.
Code: Alles auswählen
------------------------------- Scriptausgabe -------------------------------
=== HTTP-Request OK === {
"Nachkommastellen": "1234.5678",
}
=== nach Replace === ' "Nachkommastellen": "1234.5678",}'
=== nach Aufbereitung === ' Nachkommastellen: 1234.5678,}'
=== Output V1.11 ===
JSON_Nachkommastellen = '1234.5678'
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
- Henke
- Beiträge: 1535
- Registriert: 27.06.2022, 20:51
- System: CCU
- Hat sich bedankt: 142 Mal
- Danksagung erhalten: 309 Mal
Re: JSON-APIs auswerten
Eine alternative Idee JSON Daten zu erlangen.
Dürfte kompatibel zur Original CCU und Rasberymatic sein.
Dürfte kompatibel zur Original CCU und Rasberymatic sein.
Code: Alles auswählen
string json = '
{
"Vorname": "Ronald",
"Nachname": "Reagan",
"Geburtsdatum": "1911-02-06",
"Nationalitaet": "US-amerikanisch",
"Partei":
{
"Name": "Republican Party",
"Synonyme": ["Republikaner", "Grand Old Party", "GOP"],
"Hauptsitz": "Washington/D.C.",
"Gründungsdatum": "1854-03-20",
"Gründungsort": "Ripon"
},
"Amt": "US-Präsident",
"Hobbys": ["Reiten", "Golfen", "Lesen"],
"verheiratet": true,
"Kinder": [
{
"Vorname": "Michael",
"Nachname": "Reagan" },
{
"Vorname": "Patti",
"Nachname": "Davis" },
{
"Vorname": "Ron",
"Nachname": "Reagon" }]
}';
string stdout; string stderr;
system.Exec( "node -e 'console.log( " # json # ".Vorname );'",&stdout,&stderr);
if (stderr) { Write(stderr); quit; }
WriteLine( "Vorname: " + stdout);
system.Exec( "node -e 'console.log( " # json # ".Kinder[1].Nachname );'",&stdout,&stderr);
if (stderr) { Write(stderr); quit; }
WriteLine( "Nachname des 2. Kindes: " + stdout);
-
- Beiträge: 9737
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 705 Mal
- Danksagung erhalten: 1643 Mal
Re: JSON-APIs auswerten
Das ist erstaunlich einfach.
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: 6775
- Registriert: 22.05.2012, 08:40
- System: CCU
- Hat sich bedankt: 25 Mal
- Danksagung erhalten: 495 Mal
Re: JSON-APIs auswerten
Ich persönlich hatte nie den Eindruck, dass es Dir darum geht, es möglichst einfach zu haben, wenn Du für Deinen Ansatz extra CUxD nachträglich installieren musst.
JSON kann man im einfachsten Fall auf einer CCU3 auch mit JSON.parse auslesen und aus dem Array dann mit find das Objekt der Wahl finden.
Beispiel:
Code: Alles auswählen
var url = 'https://dummyjson.com/products';
// Benutze das HTTP- oder HTTPS-Modul je nach URL.
var httpx = (url.indexOf('https://') === 0) ? require('https') : require('http');
var req = httpx.get(url, function(response) {
console.log('Antwort erhalten.', response.statusCode);
var responseData = '';
response.on('data', function(chunk) {
responseData += chunk;
});
response.on('end', function() {
var jsonData = JSON.parse(responseData);
const product = jsonData.products.find(item => item.id === 6);
console.log('Title:', product.title);
console.log('Description:', product.description);
});
});
req.on('error', function(err) {
console.error(err);
});
- Black
- Beiträge: 5508
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 427 Mal
- Danksagung erhalten: 1088 Mal
- Kontaktdaten:
Re: JSON-APIs auswerten
Da war er wieder, der verzweifelt gesuchte Advertising Nagel von unserem Fonzo für sein Produktplacement.
Wenn man für die Problemstellung für eine JSon Auswertung eins nicht braucht, dann ist es deine expliziete Werbelösung.
Ausserdem heisst das Unterforum: "Projektvorstellungen" und nicht "Fonzo´s erfolgreich gekaperte Threads für sein Produktplacement"
Nix für ungut, war halt wie immer deine übliche Werbenummer,
Black
DIe Kosten und Bloatwarefreien Lösungsansätze dazu haben @MichaelN und @Henke ja schon geschrieben
Die Lösung von @Henke funktioniert natürlich auch, wenn man ein Bloatwarefreies System hat, da Node seitens EQ3 installiert ist und auch nach Entfernung nicht benötigter Software selbstredend funktional ist.
Wenn man für die Problemstellung für eine JSon Auswertung eins nicht braucht, dann ist es deine expliziete Werbelösung.
Ausserdem heisst das Unterforum: "Projektvorstellungen" und nicht "Fonzo´s erfolgreich gekaperte Threads für sein Produktplacement"
Nix für ungut, war halt wie immer deine übliche Werbenummer,
Black
DIe Kosten und Bloatwarefreien Lösungsansätze dazu haben @MichaelN und @Henke ja schon geschrieben
Die Lösung von @Henke funktioniert natürlich auch, wenn man ein Bloatwarefreies System hat, da Node seitens EQ3 installiert ist und auch nach Entfernung nicht benötigter Software selbstredend funktional ist.
Zuletzt geändert von Black am 25.06.2023, 10:44, 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
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