netzkeks post_id=16575 time=1547906518 user_id=124 schrieb:Hallo,
ich nutze seit einiger Zeit die Anwesenheitserkennung von Sebi https://www.schlaue-huette.de/apis-co/fr...-fritzbox/ und
diese funktioniert sehr gut.
Jedoch ist mir jetzt aufgefallen das in der params.html bei Minus Grad ein "-" vor der Temperatur gesetzt wird und
somit die Länge des Strings sich verändert.
In dem Fall passt der Eintrag im Skript:
Code:
$anwesendinfo = substr($content3, 34, -137);
nicht mehr und muss lauten:
Code:
$anwesendinfo = substr($content3, 34, -138);
Meine Frage, kann ich das Problem irgendwie mit der params.htm beheben oder
muss ich die params.json dafür auslesen?
Wenn es nur mit der params.json funktioniert, könnte mir ein User behilflich sein und
mir schreiben wie ich das Skript dahingehend verändern muss, dass der Marker 35
für die Anwesenheit freigestellt wird, danke?
Schöne Grüsse
netzkeks
Moin,
ich habe gerade selber als blutiger PHP Anfänger ein wenig mit dem Skript rumprobiert und habe eine Lösung gefunden um das Anwesenheitsscript für die params.json anzupassen .
Als erstes habe ich den Beispielcode von:
https://www.schlaue-huette.de/lightmanag...rarbeiten/ genutzt und etwas angepasst um die richtige Nummer meines Markers zu heraus zu finden - Bei mir ist es Nr. 24.
Im Code Selber ist der Marker allerdings Nr. 23 da der erste Marker hier wahrscheinlich die Nr. 0 ist.
Bei dir sollte dann theoretisch funktionieren, wenn die 23 durch eine 34 ersetzt wird.
Durch das Aufrufen/Aktualisieren des Skripts via Browser und Touch-Toggle des Markers sollte der Status dann von 0 auf 1 Wechseln.
Marker einschalten --> Wert wechselt auf 1 - Marker ausschalten --> Wert wechselt auf 0.
Sollte dies nicht der Fall sein heißt es Trial & Error die 23 solange durch mögliche Zahlen zu ersetzen bis die Statusänderung des Markers entsprechend im Browser zu sehen ist.(IP des Lightmanagers eintragen nicht vergessen, sonst passiert gar nichts)
Danach wird das eigentliche Anwesenheits-Skript angepasst:
Code:
$context3 = file_get_contents("http://ipdeslightmanagers/params.json");
$content3 = json_decode($context3, true);
$anwesendinfo = $content3['marker state'][23];
Die 23 muss natürlich wieder durch die Zahl des eigenen Markers ersetzt werden damit es funktioniert.(IP des Lightmanagers nicht vergessen)
Das sollte alles an nötigen Anpassungen sein, ich hoffe das hilft dir weiter
Gruß
Marley