Datenabruf von einer URL aus dem Netzwerk/Internet

Guten Abend,

ich habe bei mir zuhause einen Server mit IOBroker zur Home-Automation laufen.

Dieser gibt bei einem URL-Aufruf einen Wert zurück, welchen ich gerne in mAirList auf einen statischen Textobjekt angezeigt haben möchte.

Ich denke ich muss hier per HTTPGET agieren und ein entsprechendes Script regelmässig laufen lassen. Leider bin ich hier nicht wirklich weiter gekommen.

Andersrum habe ich schon etliche Werte von mAirList in die Datenbank vom IOBroker schicken können.

Würde mich freuen, wenn ich hier eine kleine Hilfestellung bekommen würde.

Ich habe die Lösung selbst hinbekommen.

Danke trotzdem.

procedure OnLoad;	

var
	WERT1: string;
	WERT2: string;
	WERT3: string;

begin
	WERT1:= HTTPGet('http://127.0.0.1:8087/getPlainValue/Wert1?json');
	WERT2:= HTTPGet('http://127.0.0.1:8087/getPlainValue/Wert2?json');
	WERT3:= HTTPGet('http://127.0.0.1:8087/getPlainValue/Wert3?json');
	ExecuteCommand('TEXTOBJEKT1 TEXT Wert1: '+WERT1);
	ExecuteCommand('TEXTOBJEKT2 TEXT Wert2: '+WERT2);
	ExecuteCommand('TEXTOBJEKT3 TEXT Wert3: '+WERT3);
end;

begin
	SLEEP(15000)
end.

Wozu der SLEEP- Befehl?

Ich lasse es als Hintergrund-Skript laufen und dies soll nur alle 15 Sekunden abgefragt werden.

Liege ich hier falsch?

Ja.

var
  WERT1: string;
  WERT2: string;
  WERT3: string;

procedure OnLoad;	
begin
  EnableTimer(15000);
end;

procedure OnTimer;
begin
  WERT1:= HTTPGet('http://127.0.0.1:8087/getPlainValue/Wert1?json');
  WERT2:= HTTPGet('http://127.0.0.1:8087/getPlainValue/Wert2?json');
  WERT3:= HTTPGet('http://127.0.0.1:8087/getPlainValue/Wert3?json');
  ExecuteCommand('TEXTOBJEKT1 TEXT Wert1: '+WERT1);
  ExecuteCommand('TEXTOBJEKT2 TEXT Wert2: '+WERT2);
  ExecuteCommand('TEXTOBJEKT3 TEXT Wert3: '+WERT3);
end;

begin
end.

3 Likes

Vielen Dank für die Korrektur.

Stehe bei den Skripten noch am Anfang.

Einen schönen Sonntag noch.

3 Likes