NEWS
[gelöst] Frage zu RegEx
-
Hallo, mein Fehler: Warum poste ich auch nicht gleich die ganze Ausgabe.
Nur die Abfrage auf "temp" ist wohl zuwenig, weil der Kanal des Temperaturfühlers wichtig ist.
{"temp_unit":"celsius","pit":{"enabled":false},"pit2":{"enabled":false},"cpu_load":37.494065146011,"cpu_temp":41.2,"channel":{"0":{"temp":22.45,"color":"green","state":"ok","temp_min":-20,"temp_max":200,"name":"Garraum","alert":false,"show":true},"1":{"temp":0,"color":"red","state":"er","temp_min":-20,"temp_max":92,"name":"Kerntemperatur","alert":false,"show":true},"2":{"temp":0,"color":"blue","state":"er","temp_min":-20,"temp_max":200,"name":"Kanal2","alert":false,"show":true},"3":{"temp":0,"color":"olive","state":"er","temp_min":-20,"temp_max":200,"name":"Kanal3","alert":false,"show":true},"4":{"temp":0,"color":"magenta","state":"er","temp_min":-20,"temp_max":200,"name":"Kanal4","alert":false,"show":true},"5":{"temp":0,"color":"yellow","state":"er","temp_min":-20,"temp_max":200,"name":"Kanal5","alert":false,"show":true},"6":{"temp":0,"color":"violet","state":"er","temp_min":-20,"temp_max":200,"name":"Kanal6","alert":false,"show":true},"7":{"temp":0,"color":"purple","state":"er","temp_min":-20,"temp_max":200,"name":"Kanal7","alert":false,"show":true},"8":{"temp":0,"color":"dark-violet","state":"er","temp_min":-20,"temp_max":200,"name":"Kanal8","alert":false,"show":true},"9":{"temp":0,"color":"seagreen","state":"er","temp_min":-20,"temp_max":200,"name":"Kanal9","alert":false,"show":true}},"timestamp":"2018-03-17T12:35:26+01:00"}Lg Günther
-
Noch einmal vorsichtig nachgefragt… wäre es per Javascript nicht einfacher?
Wenn man das JSON eingelesen hat, kann per Javascript so z.B. der Channel ausgelesen werden:
var myJson = {"temp_unit":"celsius","pit":{"enabled":false},"pit2":{"enabled":false},"cpu_load":37.494065146011,"cpu_temp":41.2,"channel":{"0":{"temp":22.45,"color":"green","state":"ok","temp_min":-20,"temp_max":200,"name":"Garraum","alert":false,"show":true},"1":{"temp":0,"color":"red","state":"er","temp_min":-20,"temp_max":92,"name":"Kerntemperatur","alert":false,"show":true},"2":{"temp":0,"color":"blue","state":"er","temp_min":-20,"temp_max":200,"name":"Kanal2","alert":false,"show":true},"3":{"temp":0,"color":"olive","state":"er","temp_min":-20,"temp_max":200,"name":"Kanal3","alert":false,"show":true},"4":{"temp":0,"color":"magenta","state":"er","temp_min":-20,"temp_max":200,"name":"Kanal4","alert":false,"show":true},"5":{"temp":0,"color":"yellow","state":"er","temp_min":-20,"temp_max":200,"name":"Kanal5","alert":false,"show":true},"6":{"temp":0,"color":"violet","state":"er","temp_min":-20,"temp_max":200,"name":"Kanal6","alert":false,"show":true},"7":{"temp":0,"color":"purple","state":"er","temp_min":-20,"temp_max":200,"name":"Kanal7","alert":false,"show":true},"8":{"temp":0,"color":"dark-violet","state":"er","temp_min":-20,"temp_max":200,"name":"Kanal8","alert":false,"show":true},"9":{"temp":0,"color":"seagreen","state":"er","temp_min":-20,"temp_max":200,"name":"Kanal9","alert":false,"show":true}},"timestamp":"2018-03-17T12:35:26+01:00"}; var channel = 7; var temp_min = myJson.channel[channel].temp_min; var temp_max = myJson.channel[channel].temp_max; log("channel: " + channel.toString()); log ("temp_min:" + temp_min.toString()); log ("temp_min:" + temp_max.toString());Ergebnis, für den Channel 7:
12:50:31.272 [info] javascript.1 script.js.test: channel: 7 12:50:31.272 [info] javascript.1 script.js.test: temp_min:-20 12:50:31.272 [info] javascript.1 script.js.test: temp_min:200Ein Adapter wäre schön, der Webseiten ausliest und in einen Datenpunkt speichert. :)
Dann könnte man sich den Teil im Skript sparen.
Mit und ohne Anmeldung, POST/GET, usw.
-
Ein Adapter wäre schön, der Webseiten ausliest und in einen Datenpunkt speichert. `
und genau das macht doch der parser-Adapter :?:Gruß
Rainer
-
Dann nimm mal als regex:
emp":([^,]+)für jeden Kanal eine Zeile und als num dann jeweils 0,1,2,3… auswählen

Gruß
Rainer
-
Hallo Ruhr70,
nichts spricht gegen die Verwendung des Javascript Adapters. Außer evt. das ich kein Javascript kann und ich es mit Blockly auch nicht geschafft habe. Deshalb wollte ich es mal mit dem RegEx Adapter versuchen.
Hallo Rainer,
werde ich mal versuchen. Danke erstmal.
Lg
Günther
-
Ein Adapter wäre schön, der Webseiten ausliest und in einen Datenpunkt speichert.
und genau das macht doch der parser-Adapter :?:Eigentlich nicht. Er liest die Webseite ein und dann müsstest Du alle einzelnen Werte in einen Datenpunkt speichern.
Aber eigentlich auch doch…
Wenn man als regex /.+/g verwendet, müsste das gesamte JSON in ein Datenpunkt geschrieben werden.
Dann kann dieses per Skript weiterverarbeitet werden.
-
Wenn man als regex /.+/g verwendet, müsste das gesamte JSON in ein Datenpunkt geschrieben werden. `
Genau!Ich weiß nur nicht wie gross der Inhalt des States werden darf.
Gruß
Rainer
-
Ich nochmal.
vielen Dank für die Hilfe.
Es hat nun wunderbar geklappt.
Unten das Ergebnis unserer gemeinsamen Bemühungen. Der Temperaturverlauf meines Pulled Porks welches ich gerade in den Ofen geschoben habe.
Nun dauert es noch ca. 18 Stunden, dann ist es fertig. Und ich habe eine Klasse Linie.
:-)
Lg
Günther

-
Nun dauert es noch ca. 18 Stunden, dann ist es fertig. `
Wir sehen uns dann morgen :lol:
Gruß
Rainer
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden