Heizungsregler

Entwurf Heizungsregler/FHT.

Wer will, kann testen. Ist aber alles Handarbeit.

Benötigt wird JP-Graph und die php_gd2.dll, diese ist im Zip-Ordner enthalten.
Im JP-Graph muss die jpgraph_led.php ersetzt werden.

[ol]
[li]Kategorie anlegen .FHTsLedanzeigeWebfront[/li][li]Script ReglerBüroWebfront und SetzenTemperaturBüro anlegen(Namen sind frei wählbar)[/li][li]2 Variablen EingangReglerBüro(String) und Temperaturvorgabe(Float) anlegen[/li][li]Eigene Seite im Webfront erstellen und mit FhtsLeds.php verknüpfen.[/li][li]FhtsLeds.php und Fhts.php nach webfront/user kopieren.[/li][li]Einen Ordner für die Bilder erstellen in webfront/user. Ledimg.[/li][li]Variablen IDs in Fhts.php anpassen[/li][li]Variablen IDs in ReglerBüroWebfront und SetzenTemperaturBüro anpassen.[/li][li]Triggervariablen hinzufügen.[/li][li]Pfade zu JP-Graph und Bildordner in ReglerBüroWebfront anpassen.[/li][/ol]
Variablen werden sofort nach Änderung in IPS übernommen ohne das die Seite neu geladen wird. Zur Anzeige der dann aktuellen Daten muss sie bis jetzt noch per Hand neu geladen werden.
Farben der LED-Anzeige kann man verändern, per Hand im Script.
Ich hoffe das ich nichts vergessen habe.:rolleyes:

Wichtig! Die Formatierung Script ReglerBüroWebfront muss erhalten bleiben, ansonsten gibt es Müll in der Anzeige!!!

Bei Unklarheiten fragen.

Script ReglerBüroWebfront.

<?

// Imagepfad zum abspeichern der Bilder
$img = "C:\IP-Symcon\webfront\user\Ledimg\\";// anpassen
// Pfad zur JpGraph Bib
$jpgraphpfad = "C:\IP-Symcon\webfront\DUGTool\JpGraph Bib";// anpassen
require_once($jpgraphpfad."\jpgraph.php");
require_once($jpgraphpfad."\jpgraph_led.php");

$Daten = GetValue(16758 /*[.FHTs Ledanzeige Webfront\EingangReglerBüro]*/);

switch($Daten)
{
   case "Hand":
   FHT_SetMode(25638 /*[Obergeschoss\Büro\Heizungsregler Büro]*/, 1);
   break;
   case "Auto":
   FHT_SetMode(25638 /*[Obergeschoss\Büro\Heizungsregler Büro]*/, 0);
   break;
}
// Daten für LED-Anzeige verarbeiten
$Temp = GetValue(44652 /*[Obergeschoss\Büro\Heizungsregler Büro\Temperatur]*/);
if($Temp <= 9.9)
{
    $Temp = number_format($Temp, 1, ".", ".")." °C    ";
}
else
{
    $Temp = number_format($Temp, 1, ".", ".")." °C   ";
}
$Tempsoll = GetValue(18448 /*[Obergeschoss\Büro\Heizungsregler Büro\Soll Temperatur]*/);
if($Tempsoll == 5.5)
{
    $Tempsoll = "off".'       ';
}
elseif(($Tempsoll >= 5.5) and ($Tempsoll <= 9.9))
{
   $Tempsoll = number_format($Tempsoll, 1, ".", ".")." °C    ";
}
else
{
    $Tempsoll = number_format($Tempsoll, 1, ".", ".")." °C   ";
}
$Venpos = GetValue(14783 /*[Obergeschoss\Büro\Heizungsregler Büro\Ventilposition]*/);
if($Venpos <= 9)
{
    $Venpos .=" %   ";
}
else
{
    $Venpos .=" %  ";
}
$Status = GetValue(47063 /*[Obergeschoss\Büro\Heizungsregler Büro\Target Mode (Pending)]*/);
if($Status == 1)
{
    $Status = "Hand".'  ';
}
else
{
    $Status = "Auto".'  ';
}
$Batterie = GetValue(24094 /*[Obergeschoss\Büro\Heizungsregler Büro\Batteriezustand]*/);
if($Batterie == 0)
{
    $Batterie = '^'; // Batterie OK
}
else
{
    $Batterie = '\\'; // Batterie leer
}
$Fenster = GetValue(10339 /*[Obergeschoss\Büro\Heizungsregler Büro\Fenster]*/);
if($Fenster == 0)
{
    $Fenster = '\''.'~'; // Fenster zu
}
else
{
    $Fenster = '*'.'"'; // Fenster auf
}
// Bilder erstellen im LED Look
$led  = new DigitalLED74(1);
$led->StrokeNumber('Status '.$Status.'Batterie '.$Batterie, LEDC_GOLDENROD, $img.FhtBueroZeile1.".png");
$led->StrokeNumber('Temp Soll'.'    '.$Tempsoll, LEDC_GOLDENROD, $img.FhtBueroZeile2.".png");
$led->StrokeNumber('Temp Ist'.'     '.$Temp, LEDC_GOLDENROD, $img.FhtBueroZeile3.".png");
$led->StrokeNumber('Venpos '.$Venpos.'Fenster '.$Fenster, LEDC_GOLDENROD, $img.FhtBueroZeile4.".png");

Dateizuweisung png hinzugefügt. Hatte ich vergessen.

css für IE hinzugefügt.

In der Webseite diese Zeile ersetzen.

    <div class="LedZeilen"><img src="./Ledimg/FhtBueroZeile1.png"/><br><img src="./Ledimg/FhtBueroZeile2.png"/><br><img src="./Ledimg/FhtBueroZeile3.png"/><br><img src="./Ledimg/FhtBueroZeile4.png"/></div>    

Heizungsregler4.png

Heizungsregler.zip (406 KB)

Hallo!

Booooaaaahh!:smiley:

Gruß
Egon

Wirst du uns da ein schönes webfront bundel schnüren ?? Mit steuer scripten…
Das währe toll.

Das wäre super. Meine Frau wäre begeistert und ich könnte den 15" Touch aus dem Schrank holen den meine Frau noch nicht gesehen hat. :smiley:

Grüße Mirco

Update mit allem :slight_smile:

Hallo Rainer,

da ziehe ich wieder einmal den Hut vor deiner Leistung.

Nicht nur die Funktionalität, nein auch das Design ist echt der Hammer.

Weiter so.

Hallo Werner,

danke für die Blumen :smiley: werd mir Mühe geben.

Das war jetzt der erste Schritt mit dojo. Funktionieren tut es einwandfrei nur der Code ist noch ein bischen holprig. Kann nur besser werden :wink:

Rainer,

bevor ich mich in DoJo weiter einarbeite warte ich auf das Update von IPS. In dem soll ja die Anzeige jeder beliebigen Variable in den originalen Webfrontseiten möglich sein. Ich denke das paresy an den Variablenprofilen arbeitet, somit hätte sich die eine oder andere userdefinierte Seite erledigt.

Wenn dann noch die FHTs im Webfront sauber einstellbar sind dann ist es perfekt. Trotzdem werde ich noch eine oder 2 userdefinierte haben in denen dann auch DoJo seine Aufgabe tut.

Hallo Rainer,
danke für dieses Modul, habe es installiert und funzt super.
Habe noch eine Frage. Ich möchte gerne in der oberen Zeile von Webfront den Button Heizung einblenden und dann unten die einzelnen Zimmer mit den Regler einblenden.
Wie bekomme ich die Button in die untere Zeile von Webfront eingeblendet ?

Cu uwe

Hallo Uwe,

das ist kein Modul! einfach nur eine eigene Seite.

Ich möchte gerne in der oberen Zeile von Webfront den Button Heizung einblenden

Wie meinst Du das? Der Button mit Beschriftung kommt doch automatisch. Du kannst dem Button ein Icon zuweisen.

Wie bekomme ich die Button in die untere Zeile von Webfront eingeblendet ?

Gar nicht, da es eine eigene Seite ist.
Eventuell habe ich dich auch komplett falsch verstanden :confused:

Die Leiste unten kann man nur mit einem eigenen WebFront-Modul füllen. Sowas will nur außer mir keiner schreiben, obwohl JavaScript eine so schöne Sprache ist.

Hallo Rainer, Horst,
Danke für die Antworten. Schade das es so nicht geht, aber vielleicht gibt es bald ein Modul.
Das wäre bestimmt für viele wünschenwert.
Aber nochmals an Rainer ein dickes Lob für das super Design des Heizungsreglers.

cu uwe

Hallo Rainer,

probiere mich gerade an deuínem Projekt. Hänge gerade bei dem Punkt „Triggervariablen hinzufügen“.
Wie mache ich das?

Und „Pfade zu JP-Graph und Bildordner in ReglerBüroWebfront anpassen.“ anpassen klar aber wo bekomme ich die her?

Grüße Mirco

Hallo Mirco,

JP-Graph sofern noch nicht vorhanden musst Du dann runterladen und installieren.

Triggervariablen hinzufügen".
Wie mache ich das?

Ereignis hinzufügen :confused: sollte doch aus den Bildern ersichtlich sein.

Hmmm… sieht jetzt so aus

Schmeiss diesen scheiss IE zum Fenster raus.

Allerdings fehlt da auch noch einiges. Bildordner hast Du angelegt und die Datei ersetzt.

Ich hab hier noch eine neuere Version vom Regler mit kleinen Anpassungen im Code.

ja

nö. Verstehe ich nicht. Was soll ich wie oder durch was ersetzen?

expl.PNG

Im JP-Graph muss die jpgraph_led.php ersetzt werden.
Diese in JPGraph suchen und ersetzen.

OK verstanden und erledigt. Sieht noch genauso aus.

Ist vieleicht an den angepassten Scripten was falsch.

<?

// Imagepfad zum abspeichern der Bilder
$img = "C:\Programme\IP-Symcon\webfront\user\Ledimg\\";// anpassen
// Pfad zur JpGraph Bib
$jpgraphpfad = "C:\Programme\IP-Symcon\webfront\user\jpgraph";// anpassen
require_once($jpgraphpfad."\jpgraph.php");
require_once($jpgraphpfad."\jpgraph_led.php");

$Daten = GetValue(27243 /*[Temperaturen\Schlafzimmer\Target Temperature (Pending)]*/);

switch($Daten)
{
   case "Hand":
   FHT_SetMode(48261 /*[Temperaturen\Schlafzimmer]*/, 1);
   break;
   case "Auto":
   FHT_SetMode(48261 /*[Temperaturen\Schlafzimmer]*/, 0);
   break;
}
// Daten für LED-Anzeige verarbeiten
$Temp = GetValue(13616 /*[Temperaturen\Schlafzimmer\Temperature]*/);
if($Temp <= 9.9)
{
    $Temp = number_format($Temp, 1, ".", ".")." °C    ";
}
else
{
    $Temp = number_format($Temp, 1, ".", ".")." °C   ";
}
$Tempsoll = GetValue(42372 /*[Temperaturen\Schlafzimmer\Target Temperature]*/);
if($Tempsoll == 5.5)
{
    $Tempsoll = "off".'       ';
}
elseif(($Tempsoll >= 5.5) and ($Tempsoll <= 9.9))
{
   $Tempsoll = number_format($Tempsoll, 1, ".", ".")." °C    ";
}
else
{
    $Tempsoll = number_format($Tempsoll, 1, ".", ".")." °C   ";
}
$Venpos = GetValue(20250 /*[Temperaturen\Schlafzimmer\Position]*/);
if($Venpos <= 9)
{
    $Venpos .=" %   ";
}
else
{
    $Venpos .=" %  ";
}
$Status = GetValue(14275 /*[Temperaturen\Schlafzimmer\Target Mode (Pending)]*/);
if($Status == 1)
{
    $Status = "Hand".'  ';
}
else
{
    $Status = "Auto".'   ';
}
$Batterie = GetValue(52380 /*[Temperaturen\Schlafzimmer\Low Battery]*/);
if($Batterie == 0)
{
    $Batterie = '^'; // Batterie OK
}
else
{
    $Batterie = '\\'; // Batterie leer
}
$Fenster = GetValue(29486 /*[Temperaturen\Schlafzimmer\Window Open]*/);
if($Fenster == 0)
{
    $Fenster = '\''.'~'; // Fenster zu
}
else
{
    $Fenster = '*'.'"'; // Fenster auf
}
// Bilder erstellen im LED Look
$led  = new DigitalLED74(1);
$led->StrokeNumber('Status '.$Status.'Batterie '.$Batterie, LEDC_GOLDENROD, $img.FhtBueroZeile1);
$led->StrokeNumber('Temp Soll'.'    '.$Tempsoll, LEDC_GOLDENROD, $img.FhtBueroZeile2);
$led->StrokeNumber('Temp Ist'.'     '.$Temp, LEDC_GOLDENROD, $img.FhtBueroZeile3);
$led->StrokeNumber('Venpos '.$Venpos.'Fenster '.$Fenster, LEDC_GOLDENROD, $img.FhtBueroZeile4);

?>
<?
$Temp = GetValue(12954 /*[.FHTsLedanzeigeWebfront 	emperaturvorgabe_schlafzimmer]*/);
FHT_SetTemperature(48261 /*[Temperaturen\Schlafzimmer]*/, $Temp);

?>

Ich lade gleich neu hoch…Mom noch.