HSX SG 0.4

Diese Software hat am 06.11.2016 die seit demAnfang Oktober 2016 im Heizungskeller laufende Software HSX SG 0.3 abgelöst

Nomenklatur : SG im Namen HSX SG deutet auf ein ScriptGUI Programm hin.

Hardware : Raspi mit PiFace, USB zu 1Wire Interface (LinkUSB)

Betriebssystem : PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)", Version: March 2016, Release date: 2016-03-18, Kernel version:4.1

node.js : v0.10.29

CCU.IO : 1.0.52

OWFS : /usr/lib/owfs/owfs version: 3.1p1, libow version: 3.1p1

owfs.js (CCU.IO Adapter) : 0.3.6

Highcharts : 1.1.4

ScriptGUI : 0.70.1

DashUI : 0.9beta120

SlimUI : 1.0.0

Adapter : owfs, rpi

Basisfunktionalität :

  • benutzt Raspi B, PiFace und per USB (LinkUSB) angeschlossene 1Wire Temperatur-Sensoren
  • Die 2 PiFace Relais und 2 weitere externe 5 Volt Niedervolt-Relais steuern über kaskadierte 12 Volt 220V-Relais die Aktoren (Brenner und 3 Pumpen)
  • 4 ScriptGUI Steuerungs-Programme ; heizen (zeitgesteuertes Heizen), taster (manuelle Betätigung), mittel (Mittelwert Aussentemperatur), zaehler (Erfassen der Laufzeit von Brenner und Pumpen)
  • Reine Steuerung möglich, Anpassung der Heiz-Zeiten per Web-Interface und (natürlich) auch per Programmierung in ScriptGUI
  • Optionales ScriptGUI Modul regeln : berechnet und steuert den täglichen Wärmebedarf anhand der Temperatur-Vorwahl und des am Vortag gemessenen Heizfaktors der Heizung. Demnächst wird eventuell auch die mittlere Aussentemperatur direkt in der Berechnung berücksichtigt. Die gestrige mittlere Außentemperatur steckt jetzt schon im Heizfaktor.
  • Heizfaktor = ( letzte-Brennerlaufzeit - 30 ) [Minuten] / (gestrige Max_Temp - Min_Temp) [Grad]
  • Brennerlaufzeit_Vorwahl = (Vorwahl_Temp - Min_Temp) * Heizfaktor
    • Warmwasseranforderung mit DashUI Web-Bedienmasken, insbesondere auf dem Smartphone/Tablett
    • Schnelle, schlanke SlimUI Web-Bedienmaske für alle Funktionen auf Smartphone/Tablett/PC
  • CCU.IO Adapter : Raspi und OWFS
  • Protokollierung und Auswertung aller Temperaturen und Schaltzyklen per Highcharts
  • Voller Zugriff über das Internet per VPN

Beschreibung : Diese Regelung funktioniert auch als reine Heizungssteuerung. Der Regelbaustein ist optional, da dieser (noch) sehr individuell ist. Die Anpassung an schwankende Außentemperaturen durch manuelle Eingriffe und Umprogrammierung ist natürlich jederzeit möglich.

DashUI und SlimUI

Es gibt zwei WEB-Masken :

    • e1 DashUI : Anforderung von warmem Wasser, Anzeige der Temperatur des warmen Wassers ("Glühbirne")
    • e2 SlimUI (nur HTML) : Volle-Info über alle Temperaturen, Einstellung von Regelparametern und direkte Kontrolle über die Relais

Die DashUI Maske ist nicht als gesonderte Datei gespeichert, sondern in der Datei /opt/ccu.io/datastore/dashui-views.json als Subprogramm enthalten. Neben dem eingebauten grafischen Editor ist diese auch editierbar mit jedem JSON Editor, z.B. per Chrome Erweiterung JSON, oder unter DashUI. Die folgenden Screenshots stammen von einem smarten iPhone. Sie sehen aus wie mühsam programmierte Apps, sind aber nur einfache Links auf dem Homescreen.

e1 :

Die Glühbirne ist als Datenpunkt mit WWanfo verbunden, die Temperaturen zeigen die Warmwasser- und Kesseltemperatur an.

SlimUI Maske e2 (iPhone Screenshot) :

Zusätzlich werden die Laufzeit in Minuten, Temperaturen und Regelparameter angezeigt :

(Bestimme Heizfaktor/Heizdauer)

( ) Regelung scharf

SlimUI Masken sind sehr schlank. Der Aufruf klappt mobil auch mit der Verbindung "E" (Weniger als "3G") ohne Probleme. Das Datum bei jedem Datenpunkt zeigt an, wann dieser Datenpunkt zuletzt einen neuen Wert zugewiesen bekommen hat. Mehr bunter Schnick-Schnack per HTML5 und CSS ist natürlich möglich.

Bei Hinzufügen zum Home-Bildschirms eines iPhone gibt es etwas zu beachten, solange noch an der Maske editiert wird. Der Aufruf für Safari auf dem Home-Bildschirm sollte dann so aussehen : http://hsx01:8080/slimui/e2.htm?reload . Ohne "?reload" werden Änderungen an der Maske im Cache nicht aktualisiert. Es erscheinen alte, schon längst nicht mehr existente Masken. Leider funktioniert "?reload" auch nicht immer. Eventuell muß man zwischendrin in der .htm Datei die Zeile

<meta name="apple-mobile-web-app-capable" content="yes">

mal kurz ersetzen durch

<meta name="apple-mobile-web-app-capable" content="no">

und dann die Seite ein paar Mal mit Safari aufrufen. Nur "Verlauf und Websitedaten löschen" in der Safari Einstellung reicht irgendwie nicht. Wie exakt man den Cache am einfachsten löschen kann, ist noch nicht ganz klar. Es gibt im Netz sehr viel zu dem Thema

"How can I clear the cache of an IOS Web App on the Homescreen?". Viel Spaß beim Stöbern, ;-) .

ScriptGUI Darstellung

heizen.prg : Heizen und Warmwasser Bereitung. Regelmäßig, und per Smartphone/Webbrowser Anforderung. Brenner und Pumpen laufen definierte Zeitspannen

taster.prg : Die Tasten auf dem PiFace des Raspis toggeln die Aggregate

mittel.prg : bildet einen Temperatur-Mittelwert. Es mag wesentlich elegantere Methoden geben, :-)

Alle 72 Minuten wird ein Temperaturwert gespeichert, sodaß über den Tag 20 Werte vorliegen.

Mit dem Mittelwert kann jetzt gearbeitet werden. Eine Division gibt es leider nicht als fertigen Funktionsblock. Der Mittelwert wird dadurch sehr viel handlicher, dass er in einem EXPERT Baustein durch 20 geteilt wird. In den Expert-Baustein kann per JS dividiert werden; es muß nur eine Zeile rein : "out1=in1/20;" . Das Ergebnis sieht dann so aus :

zaehler.prg : erfasst die Laufzeiten von Brenner und Pumpen. Das kann zwar auch aus den Log-Dateien ermittelt werden. So ist das Ganze aber viel komfortabler :

regeln.prg : besorgt die Regelung

Abschalten bei Erreichen der Zieltemperatur : Sobald eine bestimmte Temperatur im Wohnzimmer erreicht ist, wird der Brenner abgeschaltet und die Pumpen laufen noch etwas nach. Das funktioniert einmal pro Tag. Um Mitternacht wird die Abschaltung wieder "scharf" gestellt. Wird diese Automatik nicht gewünscht, wird die "Solltemp" auf einen unrealistisch hohen Wert eingestellt. Diese Code-Schnipsel sind dafür in "heizen.prg" integriert :

Highcharts :

So verhalten sich die Temperaturen der Heizung in Abhängigkeit von der Brennerlaufzeit (PIFACEOUT.OUT0, unterste Kurve). Ausgeblendet sind die Schaltzeiten der Pumpen (OUT1, OUT4, OUT5), die für das "Gewackel" der Kurven verantwortlich sind.

Algorithmus :

Das Studium der Verbräuche im folgenden Diagramm führt zu richtigem Einsatz von Heizenergie. t_BRc ist die durch 10 geteilte Brennerlaufzeit (BR) in Minuten pro Tag. Entsprechend geben t_xxc die Laufzeiten der 3 Pumpen pro Tag an. Der mittlere Sinus zeigt die Wohnzimmertemperatur. Das Maximum der Wohnzimmertemperatur ist abends so gegen 17:00 h, wie gewünscht. Der Temperaturanstieg im Wohnzimmer ist im Wesentlichen abhängig von der mittleren Aussentemperatur und der Laufzeit des Brenners. Die große Schwankung von t_HKc ist auf eine sehr schwankende Benutzung der Heizkörper (HK) im 1.Obergeschoß zurückzuführen.

Langzeitverhalten :

Download der Programme :

Alle nötigen Programme sind bei github abgelegt :

Noch das SG02 : https://github.com/Ekkib/hsxspec/tree/master/hsx_sg_02