Einen String aus ips als HTML abrufbar machen

Hallo

Ist es möglich einen String aus IPS bereit zu stellen, und diesen
Per html zur Verfügung zu stellen , so das er von einer anderen Software
aus lesbar ist ?
Ich brauche nur den nackten string , ohne alles…

Gruss Andreas

Leg ein PHP-Skript ins User Verzeichniss. Darin Getvalue(id)…

ja, ist möglich.
Man könnte z.B. den String in einem File ablegen, wo er von der anderen Software ausgelesen werden kann…

Hallo

Das hört sich doch schon gut an, wenn ich so eine datei habe, komme ich dann schon weiter.

wie ist den der weg , so eine datei aus einem string zu erstellen , habe auf die schnelle nic gefunden.

Gruss Andreas

Moin…

schau Dir das Thema mal an.

http://www.ip-symcon.de/forum/f7/message-log-fenster-ip-symcon-designer-894/

Nicht erschrecken wegen des Datum des Themas. Bei funzt das Script… habe IPS V2.4

Ganz unten im Script ist der Part der Dich interessieren dürfte!

Gruß,

Peter

Ja, aber IPS_GetValue(ID)

ist der einfachste weg…

Hi Andreas,

das ginge z.B. so:


// Standard-Dateiname .....
	$Filename = IPS_GetKernelDir() . "webfront\user\Highcharts\Wetterdaten_12Monate_$Script_ID.htm";  	// Filename mit Script-ID versehen

	// schreiben der htm-Datei
	$handle = fopen($Filename,"w");
	fwrite($handle, $content);
	fclose($handle);

Da ich nicht weiß wie „firm“ der Andreas mit dem ganzen scripten ist, wäre es vielleicht besser das Script vollständig zu machen:

// Standard-Dateiname ..... 
    $Filename = "###Pfad wo die Datei liegen soll###" . "###Dateiname.Dateiendung###";      // Filename mit Script-ID versehen 

    // schreiben der Datei 
    $handle = fopen($Filename,"w"); 
   $content = IPS_GetValue(###ID deiner Variablen###);
    fwrite($handle, $content); 
    fclose($handle);

Jetzt tauschst du noch die drei Stellen aus gegen das was du benötigst, z.B.:
###Pfad wo die Datei liegen soll### gegen C:
###Dateiname.Dateiendung### gegen Datei.txt
###ID deiner Variablen### gegen 123456

Dann sollte es gehen (habs aber nicht laufen lassen)

Hallo

Habs ausprobiert , aber so ganz haut es noch nicht hin:


// Standard-Dateiname .....
    $Filename = "D:\Programme\apache\htdocs" . "test.html";      // Filename mit Script-ID versehen
    // schreiben der Datei
    $handle = fopen($Filename,"w");
   $content = GetValue(51422);
    fwrite($handle, $content);
    fclose($handle);

Das lauft zwar ohne Fehlermeldung, aber die Datei wird nicht geschrieben.

Das hier :


  // Standard-Dateiname .....
    $Filename = "D:\Programme\apache\htdocs" . "test.html";      // Filename mit Script-ID versehen
    // schreiben der Datei
    $handle = fopen($Filename,"w");
   $content = IPS_GetValue(51422);
    fwrite($handle, $content);
    fclose($handle);

Erzeugt den Fehler:
29.04.2012 15:20:10.074 | 0 | DEBUG | ExecuteThreadID #9 | Skriptausführung (Text) - Länge: 279 ~ Absender: Ereignis #36610, Zeit Ereignis
29.04.2012 15:20:10.079 | 0 | ERROR | ExecuteThreadID #9 | [Kein(e)] =
Fatal error: Call to undefined function IPS_GetValue() in - on line 5

29.04.2012 15:20:10.079 | 0 | DEBUG | ExecuteThreadID #9 | Ausgeführt, Resultat: 0, Erfolgreich: False, Zeit: 4 ms

Irgend eine Kleinigkeit ist bestimmt noch falsch, klar ich bin php Anfänger.
Was mache ich noch falsch?

Gruss Andreas

schau dir das nochmal an:


// Standard-Dateiname ..... 
    $Filename = IPS_GetKernelDir() . "webfront\user\Highcharts\Wetterdaten_12Monate_$Script_ID.htm";

und versuch’s doch erstmal im IPS-Verzeichnis. evtl. Fehlen Berechtigungen auf D:\

und dieser Befehl hier ist mir nicht bekannt: IPS_GetValue(51422), IPS scheinbar auch nicht:rolleyes:

Hi Andreas,

vielleicht noch einige Erläuterungen (bevor mein Posting wieder „verunstaltet“ wird ;))

$content muss den String beinhalten, den Du in die datei schreiben willst.
entweder holst D den String aus einer bestehenden variable mit


$content = getValueString(51422);

oder Du weist den Inhalt direkt zu:


$content = 'Dieser Text wird in das File geschrieben';

Hallo

So langsam verändern sich die Fehlermeldungen, ich habe nun mal das versucht:

//   $Filename = "D:\Programme\apache\htdocs\" . "test.html";
   $Filename = "D:" . "test.html";
  // $content = getValueString(51422);
   $content = 'Dieser Text wird in das File geschrieben';
    fwrite($Filename, $content);
    fclose($Filename);

das ergibt dann das:
29.04.2012 16:45:10.001 | 0 | DEBUG | ExecuteThreadID #9 | Skriptausführung (Text) - Länge: 254 ~ Absender: Ereignis #36610, Zeit Ereignis
29.04.2012 16:45:10.003 | 0 | MESSAGE | ExecuteThreadID #9 | [Kein(e)] =
Warning: fwrite() expects parameter 1 to be resource, string given in - on line 5

Warning: fclose() expects parameter 1 to be resource, string given in - on line 6

29.04.2012 16:45:10.004 | 0 | DEBUG | ExecuteThreadID #9 | Ausgeführt, Resultat: 1, Erfolgreich: True, Zeit: 2 ms

Ich habe auch d: und d:\ versucht , aber das hatte dann schon fehler in der ersten zeile verursacht. an Schreibrechten liegt es nicht , auf D: sind alle rechte vorhanden.
Irgendwie will der fwrite wohl andere parameter haben.

Gruss Andreas

so wird aus Dir kein guter Guttenberg-Scripter! Du musst schon richtig abschreiben!

Das:


   $Filename = 'C:	est.html';
   $content = 'Dieser Text wird in das File geschrieben';
   $handle = fopen($Filename,"w");
    fwrite($handle, $content);
    fclose($handle);

funktioniert. Aber bei mir nur auf C:. Auf D:\ fehlen die Rechte, es kommt zu einer fehlermeldung (bei mir ist das so gewollt)

Hallo

Habs gerade hin bekommen, noch ohne deinen letzten beitrag :wink:


  $daten = getValueString(51422);
  $dateihandle = fopen("D:\\Programme\\apache\\htdocs\\index.html","w");
  fwrite($dateihandle, $daten);

Gruss Andreas

…und das fclose($dateihandle); nicht vergessen!

Hallo

Ob ich wirklich mal gut werde, keine Ahnung, Trotzdem freue ich mich
das ich das geschafft habe.

aber nun wird es erst noch richtig nett, nun muss ich aus den daten in IPS ein
passenden String basteln. Die gesamte index.html will ich nun mit einen Script
zusammensetzen.
Du kannst mich ja jetzt schon mal bemitleiden :wink:

Gruss Andreas

na dann haste hier schon mal ein Anschauungs-Beispiel:


// html-Kopf
$content   = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       		"http://www.w3.org/TR/html4/loose.dtd">
				<html>
				<head>
				<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
				
				<title>RS.Wetter +++ Statistik-Daten 12 Monate (gleitend)+++</title>
				<script type="text/JavaScript">
				<!--
				function timedRefresh(timeoutPeriod) {
					setTimeout("location.reload(true);",timeoutPeriod);
				}
				//   -->
				</script>
				</head>
				<body onload="JavaScript:timedRefresh(5*60*1000)">
				';


// Den Anfang der Tabelle definieren
$content .= '<table style="text-align: left; width: 100%; background-color: rgb(240,240,240);font-family: Arial; font-size: 11px; color: rgb(51, 51, 51);" border="0" cellpadding="4" cellspacing="1"><tbody>';

// Die erste Zeile (Überschriften)
$content .= '<tr>

…ich bin grad bei 2000 Zeilen…:smiley:

Hallo

Nett, genau das passende Beispiel :slight_smile:

kann es sein , das wenn man das fclose($dateihandle);
ein paar mal vergessen hatte , das ips dann beim runterfahren hängt ?
wenn ja , ist mir das gerade passiert :slight_smile:
Hab das noch zugefügt, und wollte das sicherheitshalber mal neu starten …

nun hängt der dienst schon ein paar min…

Gruss Andreas

deswegen schrieb ich ja: nicht vergessen!
fclose Datei schließen - PHP-Grundlagen - PHP-Tutorial - Dateisystem

Hallo

Lauft wieder…
Wo in HH werden den deine Wetterdaten aufgezeichnet, ich habe auch welche, in 21035.

Gruss Andreas