Hallo,
ich möchte gerne meinen Nedap Powerrouter in IP Symcon einbinden.
Leider kommuniziert der Wechselrichter nur direkt mit der Nedap Homepage. Dort bekommt man alles schön angezeigt.
Mit der Einbindung der externen Seite geht es einigermaßen, aber unterwegs auf dem Handy sehe ich halt nichts.
Kennt jemand eine Vorgehensweise, wie ich die Daten bekomme? Vor allem der Batterieladezustand wäre sehr interessant.
Ich habe schon eine Lösung mit openHAB gefunden.
http://knx-user-forum.de/forum/öffentlicher-bereich/knx-eib-forum/35659-nedap-power-router-solaranlage
Das geht doch bestimmt auch mit IP Symcon.
Vielen Dank schon mal
Gruß
Christian
Bayaro
10. Februar 2016 um 17:39
2
Hi!
Jupp, funktioniert auch mit IPS. Wie es funktioniert hast du ja selbst verlinkt
Wo genau ist da jetzt deine Frage bzw. dein Problem?
Soll dir jemand alles fertig schreiben zum Copy&Paste machen?
Anfangen, probieren, lesen, probieren, … und dann bei Problemen wieder nachfragen
Edit: Im Forum gibt es viele Vorlagen/Skripte die von der Basis her dazu passen. Einfach mal schauen
-Chris-
Hallo,
„Paste & Copy“ wäre ja auch zu schön gewesen
Ich habe jetzt ein wenig rumprobiert und es klappt eigentlich so wie ich will, wenn ich die LogFile anpasse.
Knackpunkt ist diese Stelle des Skriptes:
<?
$json = ‚{„logs“:[{„time“:„2016-02-12T16:06:00Z“,„time_received“:null,„battery_state_of_charge“:null},{„time“:„2016-02-12T16:07:00Z“,„time_received“:„2016-02-12T15:06:06Z“,„battery_state_of_charge“:99.0}]}‘;
$obj = json_decode($json);
print $obj->{‚battery_state_of_charge‘};
?>
Das Decodieren wir durch „’{„logs“:[“ zunichte gemacht. Fehlermeldung ist immer „Undefined property“. Leider komme ich hier nicht weiter, um die Werte in ein Array schreiben zu können.
Vielen Dank!
Gruß
Christian
Bayaro
12. Februar 2016 um 17:14
4
Du hast es versucht, also wird dir auch gerne geholfen
Bitteschön:
<?
$json = '{"logs":[{"time":"2016-02-12T16:06:00Z","time_received":null,"battery_state_ of_charge":null},{"time":"2016-02-12T16:07:00Z","time_received":"2016-02-12T15:06:06Z","battery_state_of_charge":99.0}]}';
$obj = json_decode($json,true); // das "true" bewirkt eine Ausgabe als Array, ohne "true" musst du mit "->" arbeiten statt "[ ]"
//Time ausgeben von 0
echo $obj["logs"][0]["time"].PHP_EOL.PHP_EOL;
//time_received ausgeben von 1
echo $obj["logs"][1]["time_received"].PHP_EOL.PHP_EOL;
// Array komplett ausgeben
print_r($obj);
?>
So sieht es mit JSON ohne Array aus:
<?
$json = '{"logs":[{"time":"2016-02-12T16:06:00Z","time_received":null,"battery_state_ of_charge":null},{"time":"2016-02-12T16:07:00Z","time_received":"2016-02-12T15:06:06Z","battery_state_of_charge":99.0}]}';
$obj = json_decode($json);
//Time ausgeben von 0
echo $obj->logs[0]->time;
?>
Grüße,
Chris