Anbindung Guntamatic Biostar Pelettheizung

Hallo zusammen,

benötige von einem php-Experten einen Kick wie ich die Daten des Biostar importieren kann.
Die Daten der Guntamatic lese ich mit folgendem Skript aus:

<?

$guntamatic = file('http://192.168.178.31/daqdata.cgi');

print_r($guntamatic);

?>

Die Skriptausgabe sieht da ja schon ganz ordentlich aus:

Array
(
[0] => AUS

[1] =&gt; 10.95

[2] =&gt; 0.00

[3] =&gt; 46.23

[4] =&gt; 41.16

[5] =&gt; 0.00

[6] =&gt; AUS

[7] =&gt; 9.00

usw…

Die Position (Bezeichnung) der einzelnen Daten ist aus der mapping.txt ersichtlich.

Wie bekomme ich die einzelnen Daten bzw. das Array den entsprechenden Variablen zugeordnet?
Mir fehlt da momentan die richtige Vorgehensweise… :confused:

Gruß
TiKlis

mapping.txt (2.49 KB)

dump.txt (477 Bytes)

Habe das jetzt selbst mit Community-Studium hinbekommen :slight_smile:
Einfacher als gedacht, evtl. nicht so php - elegant, aber funktioniert:

<?
$guntamatic = file('http://192.168.178.31/daqdata.cgi');

SetValue(53922 /*[Program\Heizung\Guntamatic\Betrieb]*/, $guntamatic[0]);
SetValue(55774 /*[Program\Heizung\Guntamatic\Programm]*/, $guntamatic[69]);
SetValue(49416 /*[Program\Heizung\Guntamatic\PumpeHP0]*/, $guntamatic[20]);
SetValue(16584 /*[Program\Heizung\Guntamatic\PumpeHK0]*/, $guntamatic[28]);
SetValue(33545 /*[Program\Heizung\Guntamatic\PumpeHK1]*/, $guntamatic[33]);
SetValue(51840 /*[Program\Heizung\Guntamatic\Störung 1]*/, $guntamatic[79]);
SetValue(58472 /*[Program\Heizung\Guntamatic\Störung 2]*/, $guntamatic[80]);

SetValue(23783 /*[Program\Heizung\Guntamatic\Asche]*/, (int)$guntamatic[85]);
SetValue(24313 /*[Program\Heizung\Guntamatic\Servicezeit]*/, (int)$guntamatic[84]);
SetValue(44072 /*[Program\Heizung\Guntamatic\Betriebszeit]*/, (int)$guntamatic[83]);

SetValue(36945 /*[Program\Heizung\Guntamatic\Aussentemperatur]*/, (float)$guntamatic[1]);
SetValue(58100 /*[Program\Heizung\Guntamatic\Kesseltemperatur]*/, (float)$guntamatic[3]);
SetValue(48324 /*[Program\Heizung\Guntamatic\Leistung]*/, (float)$guntamatic[5]);
SetValue(27206 /*[Program\Heizung\Guntamatic\CO2]*/, (float)$guntamatic[8]);
?>

Dank IPS - Community
TiKlis

Cool danke für die Info :slight_smile: Bin nämlich auch am überlegen mir Guntamatic zuzulegen. Darf ich fragen welches Modell du da genau hast?
Und ein Auszug aus deinem WebFront würde mich auch interessieren wie Du das alles dargestellt hast

Danke

Habe seit letztes Jahr September den Biostar 23, bin damit recht zufrieden. Bisher noch keine Störungen, vom Verbrauch kann ich noch nicht viel sagen, da war der letzte Winter nicht gerade repräsentativ.
Laut Messung des Schornsteinfegers liegt der Feinstaubgehalt bei < 0,01 g/m³, hiermit erfüllt dieser bereits die Vorgaben von 2015. Auch moduliert der Brenner stufenlos bis auf 30% runter, dann kann er noch takten. Wirkungsgrad zeigt die Steuerung zwischen 92-97% an…
Ich wollte eigentlich eine Pelettheizung mit Sonnenkollektoren zur Heizungsunterstützung. Nach langem hin, her Rechnen und Empfehlung meines Inst. bin ich dann beim Biostar mit Pufferspeicher und einer 10 kWp PV-Anlage gelandet.
Die Sonnenkollektoren im Preisvergleich der PV-Anlage, das rechnete sich einfach nicht mehr (inkl. Heizungsunterstützung hätte ich 16 m² benötigt).
Bei Überschuss des PV-Stroms (70%-Reglung) verbrate ich diesen mit einem 3 kW Heizstab (2 Stufen á 1,5 kW) in den Pufferspeicher.
So ist der Kessel die letzten beiden Monate max. 1 - 2 mal die Woche für ca. 2 h gelaufen.
Die Biostar-Daten habe ich erstmal nur zur Überwachung im Webfront zusammengestrickt (das muss sicherlich noch aufgehübscht werden). Anbei mal ein paar Bildschirmfotos. Mein Ziel ist das ganze mit den „RS HighChartsPHP“ darzustellen. Auch fehlt noch die Darstellung der PV-Anlage.
Den Kessel, Pumpen und Fußbodenheizung beeinflusse ich „hart“ mit übergeordneten Homematic-Aktoren. Die Regelung wollte ich erst mit einer WAGO darstellen, da ich aber bereits alle Heizkörper mit Homematic-Thermostaten ausgestattet habe, bin ich dabei geblieben (auch des Preises wegen…).

Gruß
TiKlis

Hallo TiKlis,

danke für die ausführliche Beschreibung. Hast mir sehr damit weitergeholfen.

LG
Thiemo

Bekomme auch eine Guntematic, jedoch das BMK. Habe bei guntamatic angefragt ob es eine Interface-Doku gibt. Und ja, es gibt sie!

TAURUS_WEB-Schnittstelle_07-07-14.pdf (291 KB)

Hallo zusammen

Habt Ihr schon gesehen, dass man parameter auch hochladen kann? Ich kann damit Schaltzeiten und Temperaturen steuern.

Hallo over.unity,

das hört sich ja gut an.
Schick doch mal ein Beispielskript wie du das hinbekommen hast.
Glaub ich muss mich auch mal mit JSON beschäftigen.
Lese ich das richtig, dass mir Guntamatic erstmal einen Schlüssel erstellen muss, um
http Befehle zu senden?

Gruß
Timo

Sali Timo

Das mit dem json geht erst nach dem Update. Habe das Update auch noch nicht, aber der Heizungsbauer hat mir das auf Weihnachten versprochen :wink:
Wobei… habe nun schon sehr viel mit dem alten (gleiches wie Eures) gemacht, und ich weiss gar nicht ob ich das alles verwerfen will :rolleyes:

Wenn Du auf Dein Interface zugreifst (direkt nur IP Adresse eingeben), dann kannst Du ja auch Deine Parameter herunterladen. Das sieht in etwa so aus:


++Fehlerdaten++
0;Störung / Fehler quittiert  ;07-11-2014;20:33
1;Pufferspeicher ist geladen NICHT NACHLEGEN  ;07-11-2014;20:32
.
.
.
++Parameterdaten++
HK002;6;0;2;0;0;0;0;Betrieb Pumpe;AUTO;AUS;DAUER;
HK003;9;360;0;0;1320;0;0;0;0;0;300;0;0;1320;0;0;0;0;0;300;0;0;1320;0;0;0;0;0;300;0;0;1320;0;0;0;0;0;300;0;0;1320;0;0;0;0;0;300;0;0;1320;0;0;0;0;0;360;0;0;1320;0;0;0;0;0;0;0;Uhrenprogramm;
HK004;3;22.50;5.00;30.00;0.50;°C;22.00;0;0;0;Solltemperatur Tag Solltemperatur Tag;
HK005;3;16.00;5.00;30.00;0.50;°C;16.00;0;0;0;Solltemperatur Nacht Solltemperatur Nacht;
HK006;6;3;3;3;0;0;0;Raumeinfluss;T  1°C;T  2°C;T  3°C;R   0%;
.
.
.
.
.

Du kannst nun ein solches Paket raus picken und hochladen über

<ip>/parupload.htm

Beispiel:


++Parameterdaten++
HK104;3;22.00;5.00;30.00;0.50;°C;22.00;0;0;0;Solltemperatur Tag Solltemperatur Tag;
++Parameterdaten_End++

Dies verändert bei mir den Sollwert Temperatur. Man kann leider nur die configs hochladen und somit keine direkte Aktion vornehmen. Dabei kannst Du aber mit einem Trick sehr viel machen. Ich z.B. verändere die Heiz-Zeiten (Zeitplan) über diesen upload und kann somit indirekt vieles beeinflussen.

Habe für diesen php hack lange gebraucht, da curl bei diesem Webserver nicht funktioniert. Mein skript ist lediglich ein proof of concept und ich bin gerade an der Umsetzung eines richtigen Interfaces. Möchte alles mittels dem „Wochenplan“ umsetzen. Wenn Du Interesse hast, stelle ich Euch das nach Fertigstellung gerne zur Verfügung. Hier mal vorab meinen Hack zur Orientierung:



	$filename = "param.txt";
	//$file_contents = file_get_contents($filename);
   $file_contents='
++Parameterdaten++
HK104;3;22.00;5.00;30.00;0.50;°C;22.00;0;0;0;Solltemperatur Tag Solltemperatur Tag;
++Parameterdaten_End++';


	
	define('MULTIPART_BOUNDARY', '--------------------------'.microtime(true));
	$header = 'Content-Type: multipart/form-data; boundary='.MULTIPART_BOUNDARY;
	define('FORM_FIELD', 'parFile');

	$content =  "--".MULTIPART_BOUNDARY."
".
	            "Content-Disposition: form-data; name=\"".FORM_FIELD."\"; filename=\"par.par\"
".
	            "Content-Type: application/zip

".
	            $file_contents."
";

	// add some POST fields to the request too: $_POST['foo'] = 'bar'
	$content .= "--".MULTIPART_BOUNDARY."
".
	            "Content-Disposition: form-data; name=\"foo\"

".
	            "bar
";

	// signal end of request (note the trailing "--")
	$content .= "--".MULTIPART_BOUNDARY."--
";
	
	
	$context = stream_context_create(array(
	    'http' => array(
	          'method' => 'POST',
	          'header' => $header,
	          'content' => $content,
	    )
	));

   $result = file_get_contents('http://192.168.1.5/parup.cgi', false, $context);
   $RS=explode("Erfolgreich",$result);
   $RS2=explode("Nicht valide",$RS[1]);
   
	$paramUploadResult = $RS2[0];
	echo $paramUploadResult;


gruss Andi