Temperaturwerte aus einem Pelletkessel der FA. ETA auslesen

Hallo fmac,

kannste da mal ein Raspberry Image zur Verfügung stellen?–
oder Terminalbefehle?..

Gruß Konny

IPS 3.5??

Hallo

Hab das normale debian wheezy
siehe http://www.raspberrypi.org/downloads/

die Installationsanleitung gibts hier:
http://www.ip-symcon.de/forum/threads/24620-Installationsanleitung-(RaspberryPi)

dann hab ich mir ein Seriell-1wire-modul geleistet(bin kein freund von USB obwohl USB-seriell auch geht)
https://www.abelectronics.co.uk/products/3/Raspberry-Pi/26/Com-Pi
1wire läuft über i2c (mit ownet und http://tdressler.net/ipsymcon/ownet_reader.html )
Vielen dank dafür an Thomas Dreßler

Dann wars einiges an Zeit zu investieren, bis die Installation von EAT2IPS durchlief
die serielle Schnittstelle nennt sich auf Linux /dev/ttyAMA0 (das muss man mal wissen)
die Variablen-Profilerstellung braucht auch andere Parameter-Schreibweisen, und noch einige andere Anpassungen
auf Version 3.5

Wenn Yoko kein Problem damit hat kann ich die Script gern hochladen

Muss sagen bin echt schwer begeistert von der IPS version für Linux
mit Linux kannst du fast alles verbrechen.
Hab jetzt auch meine Wetterstation PCE 20 dank „fowsr“ direkt über USB dran
unter Windows hat die Easyweather Software immer Problem gemacht

Und Dank der „CyberDuck“ ist auch ein Zugriff auf das Rapsi Dateisystem kein Problem
noch fehlen einige Module, aber ist eben noch BETA.

Viel Spass damit

Hallo miteinander,

habe mal wieder zeit dieSteuerung zu verbessern.
Jetzt gehts an die Rückmeldungen „MK“ nach Umstellung von EInzelwerten.
Folgendes ist mit aufgefallen:

(Attain)script an ETA-Funktions (mistljo) hat nicht funktioniert, da die Klammer nich mit im COM-String gezählt wurde:

if(substr($COM_String,0,2) =="MK"){  //Einstellwerte

richtig

if(substr($COM_String,0,3) =="{MK"){  //Einstellwerte
 $Index = 256 * ord($COM_String{5}) + ord($COM_String{6});
    $Value = 256 * ord($COM_String{7}) + ord($COM_String{8});
    $Index = sprintf("%03s", $Index); // Auf 3 Stellen auffüllen mit Nullen
    IPS_LogMessage("Heizung Setwert Nr.: $Index"," Wert = : $Value Comstring $COM_String");
    SetValueString(55748 /*[ETA steuern\Eta Einstellung geändert]*/,"Heizung Setwert Nr.: $Index"," Wert = : $Value   Comstring $COM_String");
}

Wie bekomm ich jetzt die brauchbaren Werte?

Gruß Konny

Die Rückmeldung des Ofens ist wie die Steuerungsmeldung:

nur statt MJ eben MK
z.B
transmitted
{MJ"Datenstring"}
hex 7B 4D 4A 05 A4 20 00 25 01 5E 7D
received:
{MK"Datenstring"}

hex 7B 4D 4B 05 A4 20 00 25 01 5E 7D

ab Zeile 280:

/else {
write_error("Warning: Empfange Daten vom Ofen, obwohl die Abfrage ausgeschalten ist,
Einstellungen geändert?",1); // 2= General 1= ETA Alarm
SetValueBoolean(GetObjectID("ETA/Meldungen/ETA Status"),false);
				    
// Ergänzung Konny
	 if(substr($COM_String,0,3) =="{MK"){  //Einstellwerte
	$Index = ord($COM_String{7}); // Knoten der Steuerung
        $Value = (ord($COM_String{8})*256 + ord($COM_String{9}))/10;  // Celsiuswert
    	SetValueString(55748 /*[ETA steuern\Boiler\Eta Einstellung geändert]*/,"Einstellung $Value°"); //Kontrollstring
    	IPS_LogMessage("Heizung","Wert $Value ° empfangen für Knoten $Index"); //Ausgabe Meldungen

	}

Jetzt bräuchte ich noch eine Funktion wo ich auf meine Knotenliste zurückgreifen kann…
Bildschirmfoto 2015-03-27 um 16.06.03.png

Gruß Konny

mistljo,
ist ein bißchen alt. Bzgl.: Temperaturwerte aus einem Pelletkessel der FA. ETA auslesen - Seite 4
da ist anscheinend ein Fehler beim Monitorliste-Auslesen drin.

$MonitorListeEnde = "{MO";
         $MonitorListeEndeBytes = chr(01) . chr(01);
         $MonitorListeEndZeichen = "}";
         //Zusammensetzen
         $Daten = $MonitorListeEnde . $MonitorListeEndeBytes . $MonitorListeEndZeichen;

Das Ende-Senden kann so nicht stimmen. Als Anzahl Nutzbytes wird 1 angegeben (Prüfsumme dann auch 1), allerdings folgen keine Nutzbytes, sondern nur das abschließende }.
Irgendwas stimmt da nicht. Wie kommst du auf {MO#01#01} fürs Ende? Hab ich hier im thread irgendwas übersehen?

Hallo fmac,

kannst du mir mal
SCR_WebInterfaceUebergabe_ETA komplett anzeigen lassen
ich bekomm das nicht hin…

	elseif ($_IPS['VARIABLE']== GetObjectID("ETA/Setup/Einstellungen/Serial Port USB"))
		#elseif ($_IPS['VARIABLE']== GetObjectID("ETA/Setup/Einstellungen/Serial Port COM"))
		{
      	IPS_SetProperty(GetObjectID("ETA_COM_Port"),"Open",false)
			IPS_SetProperty(GetObjectID("ETA_COM_Port"),"Port","ttyUSB0");
			IPS_SetProperty(GetObjectID("ETA_COM_Port"),"Open",true);
			IPS_ApplyChanges(GetObjectID("ETA_COM_Port"));
			SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
		}

ebenso aus SCR_Etafunktion ab zeile 404

function GetObjectID($ObjectsString)
{
$TempParentID = 0;
$ObjectArray = explode("/", $ObjectsString);
foreach($ObjectArray as $TempObjectID){
    $TempParentID = IPS_GetObjectIDByName($TempObjectID,$TempParentID);
    #$TempParentID =37729
	}
return $TempParentID;
}

bekomm ich immer wieder Fehleranzeigen.

und das Neuaufsetzen hat wegen der Befehlsänderungen schon mehrfach nicht geklappt.

Gruß Konny

Hallo

Hab dir alle Scripte angehängt

Archiv.zip (25.1 KB)

Das mit der Schnittstelle hab ich auskommentiert
nach der Installation alles im ETA_COM_PORT manuell einstellen tuts auch

und das ist ab Zeile 44 wenn ich das richtig sehe, sieht bei mir gleich aus

Habs gerade nochmal installiert, bis auf ein paar Warnungen hat es geklappt :wink:

Ein wichtiger Hinweis noch : bei mir läuft die Kommunikation momentan über einen Comserver (W&T)
daher musst du alle diese Zeilen in der SCR_EtaFunctions.ips.php ändern(das nicht benötigte auskommentieren)


//ComPort_SendText($ETA_ComID, $Daten);
      CSCK_SendText($ETA_ComID, $Daten);
/PHP]



Mögen die Bytes mit dir sein :D

Danke fmac,

ich hab’s mal installiert…

  • Deinen Scripts haben leider bei Dir "WebFront Configurator, bei mir leider „WebFront“
  • die Anlage des Prüfsummenordners „Prüfsummenfehler“ ist verwurstelt.(Installscript 303. umlaut ü)
  • Übergabe Übergabe 91-93 WFC_SendNotification(22801 /[Objekt #22801 existiert nicht]/,"->GetObjectID("WebFront…
  • „Grundaten laden oder zurücksetzen“ ebenso geänderter Umlautfehler
  • die Variablen kann ich nicht automatisch erstellen lassen, solange ich nichts über die Schnitstelle bekomme (ttyUSB0)

undefined function:

ComPort_SendText(
COMPort_GetDevices(… SCR_Startup.ips.php on line 10
EC_SetStartupScript( … SCR_ETA_install.ips.php on line 317

Da hab ich leider keine Ahnung und keine Doku…

Wie wurstel ich diese Befehle um? USB_SendText(…)???
oder hier:
RegVar_SendText — IP-Symcon :: Automatisierungssoftware
oder hier:
Migration (V3.2->V3.3) — IP-Symcon :: Automatisierungssoftware
-Neu: COMPort_* heißt jetzt SPRT_* und WWWReader_* heißt jetzt WWW_*
…test


und
Bildschirmfoto 2015-12-22 um 16.10.30.png
…uii

Gibt es einen Unterschied zwischen COMPort_ und ComPort_ ?
Gruß Konny

WebFront darfst du selbst anpassen :slight_smile:

Umlaute…vermutlich einfach nur das Skript neu abspeichern in UTF8. Oder den Text in ein IPS-Skript rein kopieren.

Doku > Befehlsreferenz — IP-Symcon :: Automatisierungssoftware

Grüße,
Chris

Danke,
yes we can…

Rückblickend:

  • WebFront Configurator (-Namen) ändern ist schlecht. (hab’s in den Scripten komplett geändert( WebFront)
  • ComPort_ durch SPRT_ ersetzt.
  • ttyUSB0 (bei mir ttyUSB1) händisch angelegt und im Script stillgelegt.
  • über bestehendes Eta drüber gebügelt (Monitorliste, Parameterliste , Variablen vorhanden).

installationscripts
Archive.zip (20.5 KB)

Gruß Konny

Hallo,

hat sich noch jemand mit der Displaysteuerung und Rückmeldung auseinandergesetzt?

Tastenprinzip:

<?
//__ __ __ __ __ xx __
//7B 49 54 01 31 02 7D {IT.1.} Auf
//7B 49 54 01 31 03 7D {IT.1.} Ab
//7B 49 54 01 31 01 7D {IT.1.} Ja
//7B 49 54 01 31 04 7D {IT.1.} Zurück
//7B 49 54 01 31 00 7D {IT.1.} Ändern

//7B 49 54 01 31 05 7D {IT.1.} Info
//7B 49 54 01 31 07 7D {IT.1.} Entaschen
//7B 49 54 01 31 06 7D {IT.1.} Kessel I/O

//7B 49 49 01 30 30 7D {II.00} Abfrage Aus
//7B 49 49 01 31 31 7D {II.11} Abfrage Ein
$Node = 01;
$Index_LByte = 31;

//SetValue(53351 /*[ETA steuern\Tasten Display\Tasten\AB]*/,1);
$Taste=03; // direkte Eingabe
//Prüfsummenberrechnung
$PS = $Node + $Index_LByte + $Taste;
//$PS = $Node + $Index_LByte + $HighWert + $LowWert;
$PS = $PS & 255;    // Rest aus Division durch 256
//Prüfsummenberechnung Ende

$Daten ="{MT";                  //Startzeichen und Servicekennung
$Daten .= chr(5);              //Anzahl der Nutzdatenbytes
$Daten .= chr($PS);             //Prüfsumme
$Daten .= chr(01);
$Daten .= chr(31);
$Daten .= chr(03);   // TASTE ZURÜCK, direkte Eingabe
$Daten .= "}";

//Tastencode senden
SPRT_SendText(38947 /*[ETA_COM_Port]*/, $Daten);

//Kontrollstring
	SetValueString(12354 /*[ETA steuern\Skripte\ EtaSendDaten]*/,$Daten);
	sleep(0.5); //in sekunden
// Taster rücksetzen
	SetValue(53351 /*[ETA steuern\Tasten Display\Tasten\AB]*/,0);
// Kontroll Notiz
	WFC_SendNotification(37729 /*[WebFront]*/,"AB","",0,1);
?>

Mir fehlen noch die Rückmeldungen und der Handbetrieb.

Gruß Konny

Hallo

Das sieht ja geil aus :slight_smile:

Respekt !!!

…ich wollte noch schnell 2015 die USB-Schnittstelle fixieren (udev).

ttyUSB_Eta statt ttyUSB*.

# Datei: /etc/udev/rules.d/20_ETA.rules
# Gerät EZA mit PL2303 Seriellwandler an USB
SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", SYMLINK+="ttyUSB_ETA" 

Das geht nicht?!
USB-Port.png

hier aus dem Terminal:

ein letzter Tip ?

@fmac … ist nur IPSView…

Guten Rutsch
Konny

Hallo,

wenn keine Meldungen von ETA reinkommen liegt das meistens daran, dass der ttyUSB-Port nicht mehr stimmt, deshalb:
Aktuelles Datum und Zeit der Livedaten prüfen (mit Minutenversatz) und dann Port-ttyUSB umschalten:

<?
// aktuelle Livedaten auslesen, letzter Satz
//String zerlegen da nicht parsebar

	$String1=substr(getValueString(43250 /*[ETA\Meldungen\Live Daten]*/),0,11);
	echo " LiveDaten ETA: $String1 ";
	list ($tag, $monat, $jahr) = explode(" ",$String1);
	//	echo "$tag $monat $jahr 
";

	$String2=substr(getValueString(43250 /*[ETA\Meldungen\Live Daten]*/),11,6);
	echo "$String2 
";
	list ($stunde, $minute) = explode(":",$String2,3);
   //	echo "Stunde: $stunde; Minuten: $minute; Sekunde: $sekunde 
";
	

// AKtuelles Datum und Zeit
		$timestamp = time();
		$datum1 =date("d M Y h:i ",$timestamp); //heute
		echo " Aktuelle Zeit: $datum1 
 
";
		
//Versatz
	$minutenVersatz=getValue(42255 /*[ETA steuern\Datenfluss\Minutenversatz]*/);
	$datum_neu= date("d M Y h:i",$timestamp-60*$minutenVersatz);
	echo "Versatzt: $minutenVersatz  Minuten 
";
	echo "Sollzeit:    $datum_neu 
";

$datum2 = $tag." ".$monat." ".$jahr." ".$stunde.":".$minute ;
echo "Ausgelesen:  $datum2
";

if (($timestamp  = strtotime($datum2)) === false) {
    echo "Die Zeichenkette ($datum2) ist nicht parsebar 
.";
	} else {
    //echo "Kontrolle $datum2 == " . date('d M Y h:i     ', $timestamp);
  	}
  
$ttyUSB=GEtValue(51196 /*[ETA steuern\Datenfluss	tyUSB]*/);
echo "ttyUSB ist $ttyUSB 
";

If ($datum_neu > $datum1)
   	{
   	echo "$datum1 Älter als $datum2 
";
   	//SetValue(51196 /*[ETA steuern\Datenfluss	tyUSB]*/,1);//ttyUSB umschalten
   	
	   
	   	If ($ttyUSB==0)
			{
			SetValueFloat(51196 /*[ETA steuern\Datenfluss	tyUSB]*/,1);
			}
			else
			{
			SetValueFloat(51196 /*[ETA steuern\Datenfluss	tyUSB]*/,0);
			}
		
		}
   	else
		{
   	echo " 
 Meldungen sind aktuell $datum2";
   	
   	}
$ttyUSB=GEtValue(51196 /*[ETA steuern\Datenfluss	tyUSB]*/);
echo "
 ttyUSB ist $ttyUSB 
";

?>

USB umschalten:

<?
// Comports tauschen
// Comport Status
$config1 = IPS_GetConfiguration(38947 /*[ETA_COM_Port]*/);
$config2 = IPS_GetConfiguration(33162 /*[M-Bus_Com_Port]*/);
echo " ETA-Com $config1 
 M-Bus-Com $config2 
";
$ttyUSB=GEtValue(51196 /*[ETA steuern\Datenfluss	tyUSB]*/);
echo "ttyUSB ist $ttyUSB 
";

//ausschalten
SetValue(44980 /*[ETA\Setup\Datenabfrage]*/,0);
IPS_SetProperty ( 38947 /*[ETA_COM_Port]*/, "Open", 0 );
IPS_SetProperty ( 33162 /*[M-Bus_Com_Port]*/, "Open", 0 );
echo "Com-Ports werden ausgeschalten 
";
//ETA auf USB0

switch  ($ttyUSB) {
	case 0:
		IPS_SetProperty ( 38947 /*[ETA_COM_Port]*/, "Port", "/dev/ttyUSB0" );
		IPS_SetProperty ( 33162 /*[M-Bus_Com_Port]*/, "Port", "/dev/ttyUSB1" );
		echo "ETA auf USB0 gestellt 
";
   	break;
	case 1:
		IPS_SetProperty ( 38947 /*[ETA_COM_Port]*/, "Port", "/dev/ttyUSB1" );
		IPS_SetProperty ( 33162 /*[M-Bus_Com_Port]*/, "Port", "/dev/ttyUSB0" );
		echo "ETA auf USB1 gestellt 
";
		break;
	case 2:
		//IPS_SetProperty ( 38947 /*[ETA_COM_Port]*/, "Port", "/dev/ttyUSB1" );
		//IPS_SetProperty ( 33162 /*[M-Bus_Com_Port]*/, "Port", "/dev/ttyUSB0" );
		echo "nicht erlaubt 
";
		break;
}
//Einschalten
IPS_SetProperty ( 38947 /*[ETA_COM_Port]*/, "Open", 1 );
IPS_SetProperty ( 33162 /*[M-Bus_Com_Port]*/, "Open", 1 );
SetValue(44980 /*[ETA\Setup\Datenabfrage]*/,1);
echo "Com-Ports wieder eingeschalten";
?>

ttyUSB als Float mit 0,1,2,3,4 und Text -Profil ttyUSB1,…
Minutenversatz für maximale Zeitverzögerung als Integer
EInstellungen ETA ttyUSB: 19200/8/1/keine

Gruß Konny

Hallo,

nach dem Update auf 4.0 musste ich bei den Skripten einiges anpassen.
Vielen Dank Konny! Deine Skripte für den ETA Ofen waren sehr hilfreich :slight_smile:

Die Daten kommen jetzt auch wieder rein, nur beim Laden der Grunddaten kommt die Meldung (siehe Bild).
Habt Ihr eine Idee, was ich tun muss? Stehe grad auf dem Schlauch!

Vielen Dank!

Gruß

Christian

Hallo zusammen,

ich versuche seit geraumer Zeit erfolglos das Skript für meinen ETA zum laufen zu bringen. Ich nutze IPS 4.1 und einen Raspberry 2. Das Skript hier aus dem Forum zur Grundinstallation bekomme ich noch zum laufen, allerdings bricht mir das laden der Grunddaten jedesmal ab. Siehe dazu auch die Fehlermeldung:

Hab schon einiges Probiert, gerade was die Hardware angeht, aber an der Anbindung der ETA-Steuerung an den Raspi scheint es nicht zu liegen. Die Instanz 15541 ist der Script.Timer für Skript SCR_Cutter. Nachdem die Routine Grunddaten laden mit dem Fehler oben abgelaufen ist, erscheint auch das Skript SCR_COM_String zerlegen als fehlerhaft.

Kann mir hier jemand weiterhelfen? Hatte jemand schon mal ein ähnliches Problem.
Bin ziemlich ratlos.
Besten Dank im Voraus.

Gruß Markus

Nachdem mein Ofen seit langem so läuft,
habe ich es bisher vermieden die Grundaten neu einzulesen.

Nach einem Ansturz hatte ich auch mal ziemliche Mühe dies wieder up to date zu bringen.
Ich habe mit dem Einlesecript sehr lage herumexperimentiert, bis dies wieder klappte:

Darum:
Never change a running system…

Ist auch so lange her, ich kann auch nichts mehr zur Grundinstallation sagen :frowning:
Schau mal Seite 13,14,…

Gruß Konny

Hallo zusammen,

so jetzt hab ich eine 2.te Erweiterung (AEH-23-0) auf den CAN-Bus integriert und möchte die Monitorwerte anpassen.

Can-Bus:

  • Bedienfeld (Endwiederstand)
  • AEH-23-0 (Heizkreiserweiterung 1 mit Knoten 1 auf Platine)
  • Kessel
  • AEH-23-w (Bestehende Heizkreisekreiserweiterung 0 Knoten 0 Bestand)

Der erste Versuch überhaupt etwas neu einzulesen hatte den Verlust des Gesamtsystemes zur Folge, da de Variablen gelöscht wurden…

Jetzt werd ich es mal händisch versuchen ohne das Gesamtsystem neu einzulesen.

Hat jemand einen Tip…

Gruß Konny

Hi,

wenn ich das richtig in der Erinnerung habe, können die halbwegs aktuellen ETAs alle ModbusTCP Master.

Ich werfe euch daher mal was über den Zaun… Anbindung ModbusTCP Master Devices an Symcon:

Howto: Technische Alternative per ModbusTCP über FHEM an Symcon anbinden

Viele Grüße
Predi

Hallo,

ich versuche gerade meinen ETA PE15 30KW auszulesen.
Ich habe alles wie am Thread-Anfang beschrieben durchgeführt und der Kessel scheint auch zu antworten. Zumindest bekomme ich alle 90sec folgende Meldung:

24.12.2017 07:29:24 | Register Variable | <br />
<b>Notice</b>: Undefined variable: IPS_VALUE in <b>/var/lib/symcon/scripts/22803.ips.php</b> on line <b>9</b><br />

Kann es sein das das Empfangs-Skript fehlerhaft ist, da sich mittlerweile einiges in IPS geändert hat?

   <? 
/* 
File     : COM_string_zerlegen.ips.php 
Trigger  : durch Registermodul bei Dateneingang 
dieses Script dient dazu den Datenstring der von der "ETA" Heizung gesendet wird, 
in einzelne Variablen zu zerlegen*/ 

$Anzahl = 20;   // Anzahl der übertragenen Parameter 
$COM_String = $IPS_VALUE; //übernahme des Datenstrings aus dem Registermodul! 
/* ######## Einstellwerte ############## 
Werte die z.b. am Bedienpult der Heizung eingestellt werden, 
werden durch die Heizung mit der Kennung "MK" auf der Schnittstelle ausgegeben. 
Hier werden diese in IPS Variablen abgespeichert.*/ 
if(substr($COM_String,0,2) == "MK") { 
  $Index = 256 * ord($COM_String{5}) + ord($COM_String{6}); 
  $Value = 256 * ord($COM_String{7}) + ord($COM_String{8}); 
  SetValueByName("ETA.Set.$Index", $Value); 
} 
/*######### Fehlermeldungen ########### 
Fehlermeldungen werden durch die Kennung "IM" auf der Schnittstelle ausgegeben 
*/ 
if(substr($COM_String,0,2) == "IM") {     // Fehlermeldungen 
  IPS_LogMessage( "ETA PE 15", substr($COM_String,4) ); 
  // Mail/SMS senden u.s.w 
} 
/*######### Messwerte############ 
Temperaturen und alle anderen Werte werden mit der Kennung "MD" ausgegeben 
Abspeichern der Werte in IPS Variablen*/ 
if (strlen($COM_String) == $Anzahl *5 + 4   //kompletter Datensatz empfangen? 
    AND substr($COM_String,0,2) == "MD")    //Kennung "MD"? 
     { 
    for ($i=01; $i<=$Anzahl; $i++){ 
      $Index = ord($COM_String{$i*5+1}); 
      $Value = 256 * ord($COM_String{$i*5+2}) + ord($COM_String{$i*5+3}); 
      if($Value >= 30000) {                 //Temperatur unter 0 C ? 
        $Value = $Value - 65536; 
      } 
      switch ($Index) { 
        Case 86:    //Pellettsvorrat 
        Case 67:    //Restsauerstoffgehalt im Abgas in % 
        Case 68:    //Gesamtverbrauch 
            $Value = $Value / 100; 
            break; 
        Case 63:    //Behältervorrat 
        Case 19:    //Abgastemperatur 
        Case 20:    //Kesseltemperatur 
        Case 23:    //Kesselvorlauf 
        Case 18:    //Luftschieber 
        Case 21:    //Warmwasser im Boiler 
        Case 22:    //Aussentemperatur 
        Case 24:    // Vorlauf MK0 
            $Value = $Value / 10; 
            break; 
      } 
    SetValueByName("ETA.$Index", $Value); 
  } 
} 

function SetValueByName($Variable,$Wert){ 
    $id = IPS_GetVariableID($Variable); 
   if($id == 0) {                         // wenn Variable fehlt: anlegen 
       if     (is_bool($Wert))   $typ = 0; 
       elseif (is_int($Wert))    $typ = 1; 
       elseif (is_float($Wert))  $typ = 2; 
       elseif (is_string($Wert)) $typ = 3; 
      $id = IPS_CreateVariable($typ); 
      IPS_SetName($id,$Variable); 
      } 
   SetValue($id,$Wert);                   // Ausgabe der Werte 
} 
?> 

Viele Grüße
Torsten