Zugriff auf den Ordner habe ich. Aber das System selbst läuft nicht mehr.
Booten lässt es sich auch nicht mehr. Aber lesen kann ich die Dateien (SD Karten leser)
Sonst wäre ich auch nicht an die "alte Objects.json" gekommen.
NEWS
Website auslesen/JSON parsen
-
Hallo zusammen,
eine Frage die schon 100. mal gefragt wurde. Aber ich drehe mich im Kreis und brauche ein paar Denkanstöße.
Ich möchte den Rheinpegel in meiner InfluxDB loggen und in Grafana darstellen. Wie mache ich das am besten?
Telegraf für die InfluxDB?
Blockly Skript?
Parser Adapter?Die Pegelstände werden über eine REST-API bereitgestellt:
{
"timestamp": "2021-02-18T15:45:00+01:00",
"value": 519.0,
"trend": -1,
"stateMnwMhw": "normal",
"stateNswHsw": "normal"
}Alle 8 h würde ich gerne den aktuellen Wert abgreifen und irgendwie in einen Datenpunkt bekommen. Ich habe es mit dem Perser Adapter versucht, aber da Scheiter ich (glaube ich) am RegEx Eintrag. Der Datenpunkt bleibt einfach leer wenn ich bei RegEx z. B. value eingebe.
Vielen Dank!
-
@lanig-iro sagte in Website auslesen/JSON parsen:
Die Pegelstände werden über eine REST-API bereitgestellt:
https://www.pegelonline.wsv.de -
@homoran Danke, den Adapter habe ich schonmal getestet.
Ich hatte die Meldung
instance system.adapter.pegelonline.0 already running with pid 15881
Irgendwann habe ich ihn zum laufen bekommen, aber er hat mir keinen Wert angezeigt.Deswegen wollte ich, quasi "learning by doing", mich ein bisschen mit der Thematik auseinander setzen. Aber ich sehe da den Wald vor lauter Bäumen nicht mehr.
Es gibt ja zu genüge Beiträge für den Parser Adapter um html Seiten zu parsen. Aber ich bekomme das nicht auf meine JSON übertragen.
-
Mir ist gerade aufgefallen, dass ich pegelonline und nicht pegelalarm als Adapter laufen hatte.
Also Pegelalarm draufgeschmissen:
(5157) Terminated (NO_ERROR): Without reasonTut es leider auch nicht.
-
@ianig-iro
Dann nochmal auf ein neues:@lanig-iro sagte in Website auslesen/JSON parsen:
{
"timestamp": "2021-02-18T15:45:00+01:00",
"value": 519.0,
"trend": -1,
"stateMnwMhw": "normal",
"stateNswHsw": "normal"
}wenn die Antwort immer kommt, ist es ein einfaches json, dass man einfach auswerten kann
Wo liegt dieser "Text" bei idr?
-
@homoran Der "Text", also die JSON ist vom Aufbau immer identisch und wird hier bereitgestellt:
-
@ianig-iro sagte in Website auslesen/JSON parsen:
wird hier bereitgestellt:
Also hast du sie noch nicht lokal auf deinem Rechner?
Ich versuche mal was
EDIT1:
für den parser:
ue":\s+([\d\.]+)
Edit2:
Blockly:Satt des debug Baustein natürlich ein "aktualisiere" Block für deinen selbst erstellten Datenpunkt
-
@homoran Es kann so einfach sein, wenn man weiß was man tut
Besten Dank, es funktioniert mi Blockly super!
Mit dem Parser muss ich noch rumexperimentieren. -
Hi,
ich hab mal auf die schnelle was zusammen geschrieben, funktioniert hier:// Pegelonline script by ilovegym66 // var request = require('request'); var url = 'https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations/Mainz/W/currentmeasurement.json'; var timestamp; var trend; var value; var stateMnwMhw; var stateNswHsw; var idtimestamp = '0_userdata.0.Pegelonline.Mainz.timestamp'; var idtrend = '0_userdata.0.Pegelonline.Mainz.trend'; var idvalue = '0_userdata.0.Pegelonline.Mainz.value'; var idstateMnwMhw = '0_userdata.0.Pegelonline.Mainz.stateMnwMhw'; var idstateNswHsw = '0_userdata.0.Pegelonline.Mainz.stateNswHsw'; createState('0_userdata.0.Pegelonline.Mainz.timestamp', { name: 'timestamp', }); createState('0_userdata.0.Pegelonline.Mainz.value', { name: 'value', }); createState('0_userdata.0.Pegelonline.Mainz.trend', { name: 'trend', }); createState('0_userdata.0.Pegelonline.Mainz.stateMnwMhw', { name: 'stateMnwMhw', }); createState('0_userdata.0.Pegelonline.Mainz.stateNswHsw', { name: 'stateNswHsw', }); function PegelMainz() { request(url, function ( err, state, body){ if (err) { log("Fehler aufgetreten: " + err); } else { var obj = JSON.parse(body); timestamp = obj.timestamp; value = obj.value; trend = obj.trend; stateMnwMhw = obj.stateMnwMhw; stateNswHsw = obj.stateNswHsw; setState(idtimestamp, timestamp); setState(idtrend, trend); setState(idvalue, value); setState(idstateMnwMhw, stateMnwMhw); setState(idstateNswHsw, stateNswHsw); } }); } schedule('*/21 * * * *', PegelMainz);
-
@ilovegym Danke, das werde ich aus Interesse auch nochmal testen
-
@ianig-iro Gern geschehen, läuft bei mir, hab für jede Station/Ort ein Script, einfach den Ortsnamen ( hier Mainz ) austauschen, geht mit der funktion "change all Occurences" am einfachsten
Support us
Suggested Topics
-
SOLVED /viewtopic.php Nicht Gefunden
Off Topic • • Negalein