MAX! Temperatur-Scanner

Aus FHEMWiki

Der MAX! Temperatur-Scanner ist ein Perl-Skript, das die kontinuierliche Temperatur-Aufzeichnung von MAX-Thermostaten ermöglicht.

Features

  • kontinuierliche Erfassung von Temperatur und Ventil-Position
  • Berücksichtigung der System-Ressourcen (dutycycle, credits)
  • derzeit wird nur CUL unterstützt (Lösung für CUBE geplant)
  • gleichberechtigte zeitliche Bearbeitung der Thermostate (Round-Robin-Prinzip)
  • Ermittlung der optimalen Scan-Rate über die Anzahl der eingebundenen Thermostate

Zielsetzung des WIKI-Artikels

Hier werden Fragen und Erkenntnisse zum Thema dargestellt, da der Forums-Eintrag für viele Anwender nicht mehr überschaubar ist.

Der Artikel wird sukzessive erweitert.

Aktuelle Version

Im Anhang zu folgendem Forumsbeitrag MaxScan Version 1.04c

Voraussetzungen

  • derzeit nur mit CUL möglich
  • Deaktivierung des Thermostat-internen Zeitschaltprogrammes


Man muss dafür sorgen, dass das Automatik-Programm im Thermostat selbst praktisch inaktiv ist.
Dies erreicht man durch Reduzierung der Schaltpunkte auf ein Minimum. (also 1 Schaltpunkt um 00.00 Uhr).
Um 00:05 Uhr wir dann vom Heating_Control nochmals sicherheitshalber der für diese Zeit gewünschte Sollwert festgelegt.


set HT_ZIMMER03 weekProfile Mon 15 Tue 15 Wed 15 Thu 15 Fri 15 Sat 15 Sun 15

Inbetriebnahme

  • aktuell freigegebene Version von 99_UtilsMaxScan.pm in das Verzeichnis /opt/fhem/FHEM kopieren.
  • Bei den Thermostaten, die gescannt werden sollen, das Attribut scanTemp setzen via
attr VT_HW scanTemp 1
  • das Wochenprogramm im Thermostat selbst praktisch löschen via
set VT_HW weekProfile Mon 15 Tue 15 Wed 15 Thu 15 Fri 15 Sat 15 Sun 15 
  • auf keinen Fall das Attribut keepAuto setzen
  • wenn der Scanner in Zusammenhang mit HeatingControl (Wochenschaltprogramm) eingesetzt werden soll (was Sinn macht), dann ist das Setzen der Solltemperatur über MaxScan_SetTemp zu realisieren
define HC_FOR_VT_HW Heating_Control VT_HW 23:00|eco 12345|04:00|comfort {MaxScan_SetTemp("@","%");;}
  • FHEM neu starten

Mechanismen

Das Problem

Der Hersteller der MAX-Thermostate hat diese so konzipiert, dass die gemessene Temperatur und Ventilstellung nur übertragen werden, wenn sich Folgendes ändert:

  • die Ventilstellung
  • die Betriebsart (mode: auto,manu,temporary,boost)


Es kann der Fall eintreten, dass über Stunden keine Temperatur an FHEM übertragen wird.

Der Lösungsansatz

Die vorliegende Skript verfolgt den Ansatz die Betriebsart des Thermostats regelmässig umzuschalten via

AUTO ==> MANU
<Wartezeit mindestens 3 Minuten>
MANU ==> AUTO

Dies veranlasst das Thermostat regelmässig die gewünschten Werte an FHEM (den gepaarten Transceiver) zu senden.

Allerdings: Die Umschaltung des Modes kann nur zusammen mit der Angabe des Sollwertes erfolgen.

Ergebnis

ohne Scanner

ohne Scanner

mit Scanner

mit Scanner

Ressourcen

Die Sendezeit jedes Teilnehmers ist auf 1% begrenzt.

Konkret bedeutet dies, dass ein CUL ca. 33 Telegramme pro Stunde senden kann. Der MAX-Scanner darf nicht alle Ressourcen für sich beanspruchen, sondern sieht seine Aufgabe als nachrangig.

Erst wenn mehr als 300 Credits (von max. 900 möglichen) zur Verfügung stehen, wird das Skript aktiv.

Fragen und Antworten

Sollwert am Thermostat wird manuell verstellt

Manchmal wird der manuell am Thermostat geänderte Sollwert überschrieben


Wenn der Sollwert manuell am Thermostat verändert wird, kann es bis zu 3 Minuten dauern, bis dieser an FHEM gemeldet wird. Wenn der Scanner in dieser Wartezeit aktiv wird, wird er den soeben geänderten Sollwert überschreiben.

Wenn HeatingControl (Zeitschaltprogramm von FHEM) oder das thermostat-interne Zeitschaltprogramm aktiv ist, kann es ebenfalls zum Überschreiben des Sollwerts kommen.


Ausblick

Scanner als Modul ausführen

  • Scanner wird nicht mehr als Skript, sondern als Modul ausgeführt.
  • pro Thermostat ist dann eine Definition in fhem.cfg vorzunehmen.
  • Wochenprofil als Attribut
  • automatischer Abgleich des Wochenprofils mit dem Thermostat
  • Fensterkontakt zuordnen