Paradigma Systa / Emsystech SystaInterface

Hallo Community

Gibt es eventuell schon jemanden der dieses Interface an seiner Heizung über IPS betreibt?

Sofern sich niemand findet hoffe ich auf Unterstützung bei der Erstellung einer möglichen Kommunikation über IPS. Dazu habe ich mich schon mit Herrn Steppuhn von der Fa. Emsystech in Verbindung gesetzt, der mir einen Code zur Verfügung stellte. Jedoch wurde dieser im Jahr 2008 geschrieben und ich bin mir net sicher ob er jetzt noch mit IPS umsetzbar ist.

Hier mal der Code:


<?
//------------------------------------------------------------------------------
//                                  _            _
//                                 | |          | |
//      ___ _ __ ___  ___ _   _ ___| |_ ___  ___| |__
//     / _ \ '_ ` _ \/ __| | | / __| __/ _ \/ __| '_ \.
//    |  __/ | | | | \__ \ |_| \__ \ ||  __/ (__| | | |
//     \___|_| |_| |_|___/\__, |___/\__\___|\___|_| |_|
//                         __/ |
//                        |___/    Engineering
//
// Filename:    SystaInterface
// Description: Skript zur Kommunikation mit SystaInterface
//              Es wird zyklisch ein kompletter Datensatz abgefragt und
//              als IPS Variablen zur weiteren Verwendung zur Verfügung
//              gestellt.
//
// Author:      Martin Steppuhn   (www.emsystech.com)
// History:     16.03.2008 Initial version
//------------------------------------------------------------------------------
 
function SystaSetValueInteger8($name ="",$data,$offset)
{
   SetValueInteger($name, ord($data{$offset}));
}
 
function SystaSetValueInteger16($name ="",$data,$offset)
{
   SetValueInteger($name, (ord($data{$offset+1})*256)  +  (ord($data{$offset})) );
}
 
function SystaSetValueInteger32($name ="",$data,$offset)
{
   SetValueInteger($name, (ord($data{$offset+2})*65536)+ (ord($data{$offset+1})*256)  +  (ord($data{$offset})) );
}
 
function SystaSetValueFloat($name ="",$data,$offset)
{
   SetValueFloat($name, (ord($data{$offset+1})*256)  +  (ord($data{$offset})) );
}
 
function Systa2IPS($s)
{
   // Zeit
   SystaSetValueInteger8("SystaMinute",$s,3);
   SystaSetValueInteger8("SystaHour",$s,4);
   SystaSetValueInteger8("SystaDay",$s,5);
   SystaSetValueInteger8("SystaMonth",$s,6);
   SystaSetValueInteger16("SystaYear",$s,7);
 
   // Systemwerte
   SystaSetValueFloat("SystaTA",$s,9);
   SystaSetValueFloat("SystaTI",$s,11);
   SystaSetValueFloat("SystaTWO",$s,13);
   SystaSetValueFloat("SystaTPO",$s,15);
   SystaSetValueFloat("SystaTPU",$s,17);
   SystaSetValueFloat("SystaTV1",$s,19);
   SystaSetValueFloat("SystaTR1",$s,21);
   SystaSetValueFloat("SystaTV2",$s,23);
   SystaSetValueFloat("SystaTR2",$s,25);
   SystaSetValueFloat("SystaTK",$s,27);
   SystaSetValueInteger8("SystaPK",$s,29);
   SystaSetValueInteger8("SystaPHK1",$s,30);
   SystaSetValueInteger8("SystaPHK2",$s,31);
   SystaSetValueInteger32("SystaKesselstarts",$s,34);
   SystaSetValueInteger32("SystaKessellaufzeit",$s,38);
 
   // Sollwerte
   SystaSetValueFloat("SystaTWOS",$s,42);
   SystaSetValueFloat("SystaRT1S",$s,44);
   SystaSetValueFloat("SystaTV1S",$s,46);
   SystaSetValueFloat("SystaRT2S",$s,48);
   SystaSetValueFloat("SystaTV2S",$s,50);
 
   // Solar
   SystaSetValueFloat("SystaTSA",$s,52);
   SystaSetValueFloat("SystaTSE",$s,54);
   SystaSetValueFloat("SystaTWU",$s,56);
   SystaSetValueInteger8("SystaPSO",$s,58);
   SystaSetValueInteger32("SystaSolarTagesgewinn",$s,59);
   SystaSetValueInteger32("SystaSolarErtrag",$s,63);
   SystaSetValueInteger8("SystaSolarStatus",$s,67);
 
   // Störung
   SystaSetValueInteger8("SystaStoerungFuehler",$s,68);
   SystaSetValueInteger8("SystaStoerungKessel",$s,69);
   SystaSetValueInteger8("SystaStoerungSolar",$s,70);
}
 

$ID = 24093;            // ID für Serielle Schnittstelle
$Command = chr(36);     // $Command = String für Polling
$Command .="DAT\r";     // (dummerweise verwendet PHP auch das $ Zeichen)
 
SetValueString("SystaReceiveBuffer","");     // Puffer löschen
ComPort_SendText($ID, $Command);               // Kommando senden
IPS_Sleep(50);                               // kurz warten
$ReceiveString = GetValueString("SystaReceiveBuffer");
 

if(ord($ReceiveString{0}) == 0x7E)     // Auf Startbyte prüfen
{
   // printf("Startbyte ok
");
   if(strlen($ReceiveString) != (ord($ReceiveString{1}) + 4))  // Länge ok ?
   {
      // printf("Länge ok
");
      // Prüfsumme berechnen
 
      $Checksum = 0;
      for ($i=1; $i&lt;(ord($ReceiveString{1})+3); $i++)
      {
         $Checksum += ord($ReceiveString{$i});
      }
      if(($Checksum & 0xFF) == 0)
      {
         // printf("Prüfsumme ok
");
         Systa2IPS($ReceiveString);
      }
      else
      {
         // printf("ERROR: Prüfsumme
");
      }
   }
   else
   {
      // printf("ERROR: Falsche Framelänge
");
   }
}
else
{
   // printf("ERROR: Ungültiges Startbyte
");
}
 

?&gt;

Auch ist mir momentan noch nicht ganz klar, wie und wo ich welche Variable (bzw. heute ja eher die Reg_Variable) erstellen muss um eine Kommunikation mit dem Com Port und dem oben geposteten Script zu erreichen.

Es grüßt Euch der Lange Lang

Huhu, und Frohes Neue Jahr.
Leider ist mein kleines BUS Auslesegerät für die SystaInterface Schnittstelle defekt gegangen.
Hiermit konnte ich Daten loggen aus meiner ParagimaAnlage mit der AquaSysta Steuerung.
Martin Steppuhn von emsystech sieht keine Möglichtkeit über ihn, mein kl. Gerät wiederflott zukriegen oder auszutauschen. Wer kann mir Tipps geben um eine Solaranlage weiter in IPS abzubilden,
Es ist ein 2 DrahtBus mit 30 Volt und bis zu 5 Volt aufmodellierte Signale oder so ähnlich, bin nicht vom Fach, hatte ich irgentwo gelesen .
Welche Hartware und Software bräuchte ich ?

es gibt von Paradigma das SystaService-LAN mit Netzwerkschnittstelle, damit kann man dann direkt über Modbus auslesen - geht zu mindest bei der Aqua-Anlage

Hast Du noch eine Systacomfort Regelung dran ? bei den neueren (ca. 8 (?) Jahre ist da auch eine LAN Schnittstelle integriert, da kommt man dann auch an die weiteren Werte der Heizungsanlage (bei den neueren Softwareversionen )

Habe jetzt die AquaSysta Steuerung rausgeworfen.
Nur wegen der Garantie (Einfrieren bei Frost, der Solaranlage) hatte ich die Steuerung noch dran.
Messe und steuere jetzt die Solaranlage mittels UVR 1611.
Danke für s mitlesen und Gedanken machen.