Tachometer-Anzeige im Designer

Hallo zusammen,

ich würde gerne ein Tachometer-Anzeiger im Designer realisieren.
Hat jemand so etwas schon einmal gemacht, oder eine Idee wie man das am besten machen kann?

Viele Grüsse Johannes

Hallo Johannes,

eine runde Tachometerskala arbeitet im Prinzip wie die „Bahnhofsuhr“.

Schau Dir die zugehörigen Skripte mal genauer an.

Gruß
HJH

… ich habe auch noch ein kleines Skript beizusteuern.
Tacho-Bereich von 0 bis 180 Grad, also Halbkreis.
Achtung: extension = „php_gd2.dll“ in der PHP.ini nicht vergessen!

MST

//(c) by MST 2008
$breite = 48;     	// Pixel
$hoehe = 48;      // Pixel
$zeiger = 24;      // Pixel
$w_max = 256;   	// maximaler Wert
$gr_hi = 100;      // ab diesem Wert wird in ROT gezeichnet
$gr_lo = 50;  	// unter diesem Wert wird in BLAU gezeichnet
// sonst wird in GRÜN gezeichnet
// TEST
$wert = 16; // GetValue(12345 /*[Objekt #12345 exisitert nicht]*/);
$w_alt = GetValue(21589);  // Instanz muss "per Hand" angelegt werden

$im=imagecreate($breite,$hoehe);
$white=imagecolorallocate($im,255,255,255);
imagecolortransparent($im,$white); // Making Image Transparent
$lightblue=imagecolorallocate($im,20,93,233);
$black=imagecolorallocate($im,0,0,0);
$white=imagecolorallocate($im,255,255,255);
$blue=imagecolorallocate($im,128,55,225);
$grau_gruen=imagecolorallocate($im,0,128,128);
$yellow=imagecolorallocate($im,255,255,0);
$rgb_red=imagecolorallocate($im,255,0,0);
$rgb_gruen=imagecolorallocate($im,0,255,0);
$rgb_blau=imagecolorallocate($im,0,0,255);

$x1 = $breite / 2;
$y1 = $hoehe - 24;   // noch OBEN verschieben

for($n=0; $n <= $wert; $n = $n + 1) {   // 0 bis Wert
	$w_phi = $n / $w_max * pi();
	$x2 = ($zeiger * -1 * cos($w_phi)) ;
	$x2 = $x2 + $x1;
	$y2 = ($zeiger * sin($w_phi));
	$y2 = $y1 -$y2;
	if ($n < $gr_lo){
	   $color = $rgb_blau;
	}
	if (($n >= $gr_lo) and ($n <= $gr_hi)){
	   $color = $rgb_gruen;
	}
	if ($n > $gr_hi){
	   $color = $rgb_red;
	}
	
	imageline  ($im, $x1, $y1, $x2, $y2, $color);
}
if ($wert < $w_alt){
	ImageString ($im, 2, 7, 36, "fällt", $rgb_blau);
}
if ($wert == $w_alt){
	ImageString ($im, 2, 7, 36, "gleich", $rgb_gruen);
}
if ($wert > $w_alt){
	ImageString ($im, 2, 7, 36, "steigt", $rgb_red);
}
ImageString ($im, 2, 7, 26, number_format($wert, 1, ".", "." ) . "°C", $grau_gruen);
imagepng($im, IPS_GetKernelDir()."media\	rend_tacho.png");
SetValue(21589, $wert);

trend_tacho.png

nabend !

danke für das skript. es ich echt klasse und im designer für alles mögliche zu gebrauchen. ich hab es für die leistung der pv-anlage und die temperatur im pufferspeicher genommen. sieht schön aus und man kann es recht leicht auch in sachen größe und farbe anpassen. alle werte hab ich bei den farben noch nicht durchschaut aber ich arbeite dran :slight_smile:

happy day und dank, frank

ps: für ips 1 muss es etwas verändert werden.

Super, herzlichen Dank!

Werde das gleich an diesem verregnetem Tag ausprobieren.

Viele Grüsse Johannes

Hallo,

Version 2.
ich will auch das Script zum Laufen bekommen. Leider kommt immer "Call to undefined function image…

Meine PHP.INI sieht wie folgt aus


extension_dir = "c:\IP-Symcon\extensions
extension = "php_gd2.dll"
Die Datei habe ich ins IPS Verzeichnis und zusätzlich ins "extensions" Verzeichnis kopiert. Geht aber beides nicht. Version von pgp_gd2.dll ist 5.1.6.6. Paßt das zusammen mit V2.?

[Edit]
nun habe ich php_gd2.dll Version 5.2.6.6 in das Verzeichnis gelegt, es kommt nun keine Fehlermeldung mehr in den Logfiles, aber immer noch die Meldung, wie oben beschrieben.
Weiß denn keiner Rat?