Hallo Freunde und Nutzer des BSB_LAN-Adapters,
ich habe nun eine An- und Einbindung von MAX!-Thermostaten an BSB_LAN ohne FHEM am laufen.
Das bedeutet:
Es werden die Soll/Isttemperaturen von (sinnvollerweise, weil diese alle ca.
30 Sekunden edit: 3 Minuten (nachgemessen

) zyklisch ohne weiteres Dazutun die Soll/Istwertinfos senden) Wandthermostaten ausgewertet. Daraus erfolgt eine Soll- und Istwertberechnung und die entsprechenden Temperaturen werden an die Therme gesendet.
Als Sollwert wird der Parameter 710 Komfortsollwert HK1 vorgegeben und als Raumistwert der Parameter 10000-Raumtemperatur HK1 an die Therme gesendet.
Werden aufgrund von Ausfall etc. unplausible Werte ermittelt oder werden Werte ausserhalb festlegbarer Grenzen ermittelt erfolgt keine Weiterleitung an die Therme.
Stattdessen wird ein festlegbarer Soll"not"wert an die Therme gesendet. Gleichzeitig wird als Fehlermerker der Parameter 1010 (Sollwert Heizkreis 2) auf 23 Grad gesetzt (ich habe keinen Heizkreis 2 und diese Änderung bewirkt nix an der Therme) und die Power-LED am Cube wird auf blinken geschaltet (Normalbetrieb dauernd ein).
Diesen Fehlermerker werte ich mit meinem Arduino Raumgerät "light" aus.
Ist der gesetzt erscheint im Display die Fehlermeldung "MAX!-Fehler" und der Raumistwert wird vom Sensor des Arduino-Raumgerätes an die Therme gesendet.
Das Arduino-Raumgerät ist dann die Fallback-Lösung falls die MAX!-Komponenten nicht mehr wollen oder können.
Wie man MAX!-Komponenten an BSB_LAN bekommt ist im Handbuch gut dokumentiert. Man braucht halt einen umgeflashten Cube (Parallelbetrieb mit original Cube ist möglich).
Die eigentliche Auswertelogik zur Ermittlung der Soll/Ist-Temperatur aus den Temperaturinfos der Thermostate ist von freetz hier
https://forum.fhem.de/index.php/topic,60900.0.html beschrieben. Genauso erfolgt im beigefügten Code die Auswertung und Ermittlung Soll/Ist-Temperatur auch.
Ich habe es mir bei der Erstellung des ArduinoCodes ein bisschen leichter gemacht und eine zusätzliche Library "Array.h" eingebunden, damit wird die Array-Auswertung in C++ (Arduinosprache) ein bisschen einfacher.
Die Einbindung und Quelle Ist in der Kommentierung (in der Kommentierung in der custom.h) erläutert.
Ebenfalls ist am Anfang des Codes in der custom.h die Anzahl der in der config.h definierten (und mit BSB_LAN verbundenen) MAX!-Komponenten einzutragen.
Die Arraydefinition in BSB_LAN lässt derzeit maximal 20 MAX!-Komponenten zu.
Im Bereich der Variablendefinition werden nach persönlichem Gusto ggf. die Grenzwerte angepasst.
Beim Programm für das Raumgerät sind die IP-Adressen im sketch anzupassen.
Die Zeiten und Temperaturen sind nun in den Programmen der Thermostate vorgegeben.
Das ist ok, nur morgens etwas unkomfortabel, weil diese Zeiten halt Schaltzeiten und keine Zielzeiten (dann soll es xx-Grad warm sein) sind.
Meine Therme könnte automatisch unter Berücksichtigung eines Aufheizgradienten die Schaltzeit vorverlegen um dann zielgenau die Räume warm zu haben.
Das können die Thermostate so nicht.
Aber wenn man nun folgendes macht:
Die Therme z.B. von 0:00Uhr bis 05:30 in Absenkbetrieb, gleichzeitig kann man unter Parameter 790 die maximale Vorverlegungszeit auf z.B. 1 Stunde stellen.
Die Thermostaten werden dann so gestellt, dass sie ab 04:30 an sein sollten.
So wird dann an die Therme bereits ein entsprechender KomfortSollwert gesendet (aber da sie noch im Absenkmodus ist, wird dieser nicht sofort umgesetzt) aufgrund dem die Therme dann passend rechnet und zu passendem Zeitpunkt anfängt zu heizen, so dass die Räume morgens zur Zielzeit warm sind.
Das klappt ganz gut bisher.
Anbei der Code für die custom.h BSB_LAN sowie für ein Arduino-Raumgerät"light" in der oben beschriebenen Variante.
Wie gehabt ist der Adapter über das heimische Netzwerk oder von ausserhalb über z.B VPN zu erreichen.
Benutzt man zusätzlich noch einen originalen Cube kann man über den zusammen mit der entsprechenden Software ebenfalls im Heimnetzwerk zugreifen.
Mit MAX!-Remote als APP braucht man auch keinen Zugang über ein Portal, es bleibt komplett ohne Portallösung wenn man Portallösungen nicht mag

Also, der Adapter kann eine ganze Menge. Traut Euch!

Viele Grüße
Andreas