Einzelne Marker aus params.json separieren

mmehlich
Beiträge: 358
Registriert: Mi 24. Feb 2016, 18:47

So 19. Nov 2017, 11:25

Hallo,
das Separieren der einzelnen Blöcke aus der params.json mache ich nach dieser Anleitung:
https://www.schlaue-huette.de/lightmana ... rarbeiten/

Das klappt auch wunderbar. Den Marker-Block (marker state) im Ganzen ansprechen auch kein
Thema. Wie das Ansprechen der einzelnen Marker in der params.htm ablief weiß ich auch.

Ich bekomms aber in der json-Variante nicht gebacken.

Wer hat die entscheidenden 2-3 Code-Zeilen für mich ?

Danke & Gruss
Benutzeravatar
BooosesThaSnipper
Beiträge: 313
Registriert: Mi 24. Feb 2016, 15:10

So 19. Nov 2017, 11:34

Welche Sprache? Bei Bash kann ich helfen....
mmehlich
Beiträge: 358
Registriert: Mi 24. Feb 2016, 18:47

So 19. Nov 2017, 11:38

Das File von Sebi ist ein .php

Gruss
paulinchen
Beiträge: 269
Registriert: Di 28. Feb 2017, 14:15

So 19. Nov 2017, 13:19

Ich nutze dazu Javascript.
Wie das in PHP geht, hat doch Sebi unter

"Lightmanager" - "Air" - "Howtos" - "Params.htm verstehen"

eigentlich gut beschrieben. Was genau fehlt Dir denn noch?
mmehlich
Beiträge: 358
Registriert: Mi 24. Feb 2016, 18:47

So 19. Nov 2017, 13:40

Der Unterschied zwischen der htm und der json ist, dass in Ersterer
alle Parameter (Temperatur, Zeit, Marker) in einem Block liegen,
in der json aber bereits teil-separiert sind ("marker status", ... .
Ich habe halt meine Schwierigkeiten, die Abfrage in der json entsprechend
umzusetzen, da mit php eigentlich keine Erfahrung.

Gruss
paulinchen
Beiträge: 269
Registriert: Di 28. Feb 2017, 14:15

So 19. Nov 2017, 14:02

Also von PHP habe ich echt keine Ahnung.
Ich habe jetzt einfach mal die beiden Scripte von Sebi genommen...

Code: Alles auswählen

<?php
 
$request1 = file_get_contents("http://lightmanagerip/weather.json");
$request2 = file_get_contents("http://lightmanagerip/params.json");
$json1 = json_decode($request1, true);
$json2 = json_decode($request2, true);
 
echo 'Werte eines Oregon Scientific Sensors auf Kanal 2:<br>';
echo $json1['channel2']['temperature'] . '°C';
echo " | ";
echo $json1['channel2']['humidity'] . '%<br><br>';
 
echo 'Markerzustände aus der params.json:<br>';
echo $json2['marker state'];

$markerzeile = $json2['marker state'];

$marker1 = substr($markerzeile, 0, -31); // 1. Marker
$marker2 = substr($markerzeile, 1, -30); // 2. Marker
 
echo $marker1;
echo $marker2;

?>
Ist aber nicht getestet. Gib Bescheid, ob's so schon passt.
mmehlich
Beiträge: 358
Registriert: Mi 24. Feb 2016, 18:47

So 19. Nov 2017, 14:19

So sieht die Ausgabe dann aus:
Screenshot_2017-11-19-14-12-04[1].png
Screenshot_2017-11-19-14-12-04[1].png (28.46 KiB) 4094 mal betrachtet
Gruss
paulinchen
Beiträge: 269
Registriert: Di 28. Feb 2017, 14:15

So 19. Nov 2017, 14:30

hier der 2. Versuch:

Code: Alles auswählen

<?php
 
$request1 = file_get_contents("http://lightmanagerip/weather.json");
$request2 = file_get_contents("http://lightmanagerip/params.json");
$json1 = json_decode($request1, true);
$json2 = json_decode($request2, true);
 
echo 'Werte eines Oregon Scientific Sensors auf Kanal 2:<br>';
echo $json1['channel2']['temperature'] . '°C';
echo " | ";
echo $json1['channel2']['humidity'] . '%<br><br>';
 
echo 'Markerzustände aus der params.json:<br>';
echo $json2['marker state'];

$markerzeile = $json2['marker state'];

$marker1 = substr($markerzeile, 0, 1); // 1. Marker
$marker2 = substr($markerzeile, 1, 1); // 2. Marker

echo '<br> Marker 1:';
echo $marker1;

echo '<br> Marker 2:';
echo $marker2;
 
?>
mmehlich
Beiträge: 358
Registriert: Mi 24. Feb 2016, 18:47

So 19. Nov 2017, 14:38

Top !
1k Dank.

Gruss
paulinchen
Beiträge: 269
Registriert: Di 28. Feb 2017, 14:15

So 19. Nov 2017, 14:56

Gerne.
Freut mich, dass es passt.
Antworten