String für Client bereit stellen.. aber wie?

Guten Abend,
ich müsste einen String bereitstsellen der von einem Client via HTTP abgeholt und verarbeitet werden soll.

Es geht um eine Laufschrift mit Wemos D1 Mini als Controller. Dieser würde sich an einem Server seine Texte abholen und diese dann weiter verarbeiten und anzeigen.

Hier der Hinweis aus der Doku:

Bereitstellung der Daten

Der Wemos ruft zyklisch die Daten von der URL ab. Die anzuzeigenden Werte sind als plain text, ohne jegliche Formatierung, nur mit einem Semikolon getrennt zu liefern und der gesamte String muss in Anführungszeichen eingeschlossen sein. Die Rückgabe des HTTP-Requests sieht bspw. so aus: „Text1;Text2;Text3;Textn“

Sonderzeichen: Aufgrund der UTF-Zeichencodierung muss das Grad-Zeichen (°) als Dollar ($) übergeben werden. Beispiel: „Luft: 12.5$C“ wird dargestellt als „Luft: 12.5°C“

Hat jemand eine Idee wie ich das ordentlich in Symcon lösen kann?

Danke im voraus!

Der Link zum gesamten Projekt

Webhook auf ein Script und im Script die Daten mit Echo ausgeben, fertig.
Michael

Das ist ja wirklich simpel wenn man es weiss… tss … vielen herzlichen Dank!

Viele Grüße!

Dann musst Du fragen was genau unklar ist. Du erstellst ein Skript in dem Skript gibst Du die Daten die Du zurückgeben willst mit echo aus. Auf das Skript legst Du einen Webhook unter Kerninstanzen -> Webhook und wählst dort das Skript aus, dann ist das Skript von außerhalb über den Webhook erreichbar.

Du solltest auf alle Fälle entweder mit Basic Authentifikation arbeiten ansonsten zumindest ein User und Password per POST übergeben

Beispiel


	$username = "schubbi";
		$password = "dolleswort";
		if(!isset($_SERVER['PHP_AUTH_USER']))
			$_SERVER['PHP_AUTH_USER'] = "";
		if(!isset($_SERVER['PHP_AUTH_PW']))
			$_SERVER['PHP_AUTH_PW'] = "";
			 
		if(($_SERVER['PHP_AUTH_USER'] != $username) || ($_SERVER['PHP_AUTH_PW'] != $password))
			{
			header('WWW-Authenticate: Basic Realm="Plex WebHook"');
			header('HTTP/1.0 401 Unauthorized');
			echo "Authorization required";
			return;
			}


		
			
		//workaround for bug
		if(!isset($_IPS))
			global $_IPS;
		if($_IPS['SENDER'] == "Execute")
			{
			echo "This script cannot be used this way.";
			return;
			} 
$text1 = GetValue(12345);
$text2 = GetValue(23456);
echo $text1.";".$text2."n";

Hallo,

Dann musst Du fragen was genau unklar ist.

Das habe ich doch gemacht und genau die Antwort bekommen die ich brauchte…

Vielen Dank auch für deine Erläuterung bzgl. der Sicherheit und das dafür angehängte Skript… dazu meine Frage: wie übergebe ich dann in der Adresszeile (http://xxx.xxx.xxx.xxx:82/hook/laufschrift) den Benutzer und das Passwort?

Viele Grüße

Benutzername und Passwort werden im Header übergeben, sollte das nicht möglich sein dann kann man auch Alternativ den Benutzernamen und Passwort in der URL mit https übergeben

Sieht dann also z.B. so aus


https://superwilli:ganzdollespasswort@123456.ipmagic.de/hook/matrixdisplay

Also https://<username>:<password>@<webhook>

Hallo,

da ich ja nur eine Adresse aufrufen kann, kann ich (mein verständnis) keinen header übergeben… das würde doch ein script voraus setzen?! ich versuche es mal mit deinem string…

Danke und ich meld mich!

Den Header muss ja IPS senden.
Das geht auch ganz easy mit PHP.

Die Library in deinem ESP kann Authentifizierung, da sind sogar Beispiele in der Library.
Aber SSL kann die glaube ich nicht.
Michael