Seite 2 von 2

Re: Einzelne Marker aus params.json separieren

Verfasst: Di 10. Jul 2018, 16:47
von Simon
Entschuldigt, die etwas (dusselige) Nachfrage.

Wenn ich php nutze, wie kann ich das so einbetten, dass der Air am Ende das versteht?
Also, Marker auf eine extra html webseite legen, so dass ich das wie die Air-Gui einfach auslesen kann?

Muss ich bei php irgendwas beachten? Weil, wie binde ich das in eine html seite ein?

reicht da einfach nur <?php mit Abschluss oder muss ich zuvor noch html mässiges dazudichten?
Ich habe leider maximal rudimentäre html und Co kenntnisse, aber ich kriege ich es nicht gebacken, dass er nen markerstand ausliest. Er zeigt mit leidglich die echo infos an.... ;)

Re: Einzelne Marker aus params.json separieren

Verfasst: Di 10. Jul 2018, 17:05
von paulinchen
Leider verstehe ich Dein Posting nicht so ganz...

Wie man mit php die Marker ausliest, habe ich im Script ja gezeigt.
Willst Du die Marker in einer html-Seite anzeigen? Falls ja, ruf die php-Seite per AJAX auf...

Was willst Du denn genau machen?

Re: Einzelne Marker aus params.json separieren

Verfasst: Di 10. Jul 2018, 18:14
von Dos
@simon
Hast du denn deinen Markerstatus ausgelesen, aus der json?

Zeig doch mal was du bereits hast...

Re: Einzelne Marker aus params.json separieren

Verfasst: Di 10. Jul 2018, 21:14
von Simon
Hi, ihr Zwei.

Ich möchte einfach Paulinchens php Script testen bzw. eben diese in html einfügen, dass ich ähnlich wie bei der normalen Air-Web-Gui mir die Seite per normalen Browser anzeigen lassen kann.
Allerdings habe ich kein Plan, wie das genau funktioniert btw. wie der Air das umsetzt... oder muss ich nen extra Server laufen lassen damit sowas überhaupt geht?

Also, ich will das Script auf den Air hochladen und dann normal via 192.x.x.x/y.htm mir anzeigen lassen bzw. eben auf einer extra Page die Marker anzeigen lassen.... aber wie gehe ich da vor? Ich habe weder auf Sebis Seite noch hier irgendwie verstanden, was ich da konkret machen muss. ;)

Die Temperatursache geht nun via normaler html / javascript wie hier verlinkt
viewtopic.php?f=24&t=2575
wie z.B. würde ich das php Marker script in das Temp-script von Frank2018 implentieren, damit das Ganze dann auch per php läuft? Oder wäre es sinnvoll per html weiterzumachen und die marker wie bei der Tempsensoren auszulesen?

Re: Einzelne Marker aus params.json separieren

Verfasst: Di 10. Jul 2018, 22:22
von Dos
Eine einfache seprate marker Seite basierend auf der Air Logik ist hier beschrieben

viewtopic.php?f=26&t=1491&p=13334&hilit ... ite#p13334


Folge der Beschreibung ( ich habe da dokumentiert was aus der original Datei entfernt werden muss) Ich denke dass wird das einfachste sein um deine Marker darzustellen.

Grundsätzlich lassen sich die json werte, also Marker auch mittel php/ html auslesen und visualisieren. Dafür braucht es dann aber eine server (raspi) mit php support etc.

Re: Einzelne Marker aus params.json separieren

Verfasst: Mi 11. Jul 2018, 11:13
von Simon
Ah okay. Diese Info mit dem extra Server habe ich gebraucht....
Dann versuche ich es mal anders ohne php. ;)

Re: Einzelne Marker aus params.json separieren

Verfasst: Sa 19. Jan 2019, 15:01
von netzkeks
Hallo,

ich nutze seit einiger Zeit die Anwesenheitserkennung von Sebi https://www.schlaue-huette.de/apis-co/f ... -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: Alles auswählen

$anwesendinfo = substr($content3, 34, -137);
nicht mehr und muss lauten:

Code: Alles auswählen

$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

Re: Einzelne Marker aus params.json separieren

Verfasst: Di 2. Apr 2019, 02:55
von Marley
netzkeks hat geschrieben:
Sa 19. Jan 2019, 15:01
Hallo,

ich nutze seit einiger Zeit die Anwesenheitserkennung von Sebi https://www.schlaue-huette.de/apis-co/f ... -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: Alles auswählen

$anwesendinfo = substr($content3, 34, -137);
nicht mehr und muss lauten:

Code: Alles auswählen

$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/lightmana ... 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.

Code: Alles auswählen

<?php

$request2 = file_get_contents("http://ipdeslightmanagers/params.json");
$json2 = json_decode($request2, true);

echo 'Anwesenheit:<br>';
echo $json2['marker state'][23];

?>
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: Alles auswählen

$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

Re: Einzelne Marker aus params.json separieren

Verfasst: Di 2. Apr 2019, 09:06
von Marioir
Ich habe die Marker nochmal in eine Extra Variable gesetzt

Code: Alles auswählen

$request1 = file_get_contents("http://192.168.1.111/params.json");
$json1 = json_decode($request1, true);
$marker = str_split($json1['marker state']);
So kann ich jetzt mit

Code: Alles auswählen

echo 'Status Marker Rollladensteuerung = ';
echo $marker[14] . '<br>';
Mein Marker Status anzeigen lassen

Oder mit einfachen IF Else Abfrage, habe ich je nach Status des Markers ein anderes Bild anzeigen lassen,

Code: Alles auswählen

#Marker Fenster Badezimmer
	if($marker[14] == "0") 
		{
			$bildurl1 = "fensteropen.jpg";
		}
			else 
		{
			$bildurl1 = "fensterclose.jpg";
	 	}

Code: Alles auswählen

<img src="<?php echo $bildurl1; ?>" alt="" border="0" width="200" height="200">
Marker 14 = Marker 15, da immer bei 0 angefangen wird.

Re: Einzelne Marker aus params.json separieren

Verfasst: Mi 3. Apr 2019, 18:19
von netzkeks
Hallo,
danke für die Lösungen. Werde es am Wochenende mal ausprobieren...
Schöne Grüsse
netzkeks