ioBroker MAX! Heizungssteuerung

Dieser Beitrag beschreibt die Einbindung von MAX! Heizkörperthermostaten und Zubehör in ioBroker.

Hierfür wird der MAX! Cube LAN Gateway benötigt. Zur Anbindung an ioBroker nutzen wir den Adapter Max! Cube.

Hinweis

Die MAX! Serie wurde leider vom Hersteller 2023 eingestellt und die zugehörige Cloud wird nicht weiter betrieben.
Die hier gezeigte Lösung arbeitet unabhängig von externen Diensten rein lokal und funktioniert damit auch weiterhin noch völlig problemlos. 🙂

Inhalt

Installation des Adapters

Die Installation des Adapters Max! Cube erfolgt wie gewohnt über die Adminoberfläche von ioBroker.

Im Anschluss an die Installation öffnet sich die Konfigurationsseite der Adapterinstanz. Auf dieser tragen wir die IP-Adresse oder den Hostnamen des MAX! Cube ein und bestätigen mit Speichern und Schließen.

Einstellungen vom Max! Cube Adapter

Nun sollte die Adapterinstanz starten und eine Verbindung zum MAX! Cube herstellen, was wie üblich am grünen Statussymbol in der Liste der Adapterinstanzen zu sehen ist.

Objekte des MAX! Cube Adapters

Bei erfolgreicher Verbindung mit dem MAX! Cube werden von dem Adapter automatisch alle im Cube bekannten Thermostate und Sensoren unter maxcube.0.devices.* sowie einige allgemeine Informationen unter maxcube.0.info.* angelegt.

Auszug aus dem Objektbaum

Sollte bei einem Gerät error auf true gesetzt sein, so hilft oftmals ein Neustart des MAX! Cube.

Die unter temp enthaltene Temperatur stellt die am Thermostat gemessene ist-Temperatur dar.

Wichtig

Bei den Heizkörperthermostaten wird die ist-Temperatur immer nur bei einer Änderung (Modus, Ventilstand, …) übertragen und kann unter Umständen auch mal fälschlicherweise 0 °C betragen. Dies hängt mit dem Cube und der Kommunikation zwischen dem Cube und den Thermostaten zusammen und ist kein Fehler des Adapters.

Einbindung in VIS

Anzeige in VIS

Für die Einbindung in VIS empfehle ich den Adapter Hochwertige Widgets (vis-hqwidgets) zu installieren. Dieser bietet unter anderem ein schönes Widget für die Innentemperatur, über welches sich die aktuelle Temperatur, die Solltemperatur, der Ventilstand und gegebenenfalls eine Batteriewarnung ablesen lassen. Zudem ist es über das Widget möglich die Solltemperatur anzupassen.

Für die Umschaltung des Modus bietet sich beispielsweise das Widget Zustände steuern als Typ radio an.

Moduswechsel bei manueller Solltemperaturänderung

Hinweis

Wenn sich ein Thermostat im Automatikmodus befindet und über ioBroker die Solltemperatur geändert wird, dann versetzt der Adapter das Thermostat automatisch in den manuellen Modus.

Dieses Verhalten finde ich eher unpraktisch, da man damit bei jeder manuellen Änderung auch wieder daran denken muss, das Thermostat anschließend zurück in den Automatikmodus zu schalten.

Damit der Modus nach einer manuellen Änderung der Solltemperatur wieder auf Auto gestellt wird, habe ich ein kleines Skript erstellt. In ioBroker eingebunden stellt dieses Skript dann kurz nach der Änderung wieder auf den Automatikmodus zurück, sofern dieser vorher aktiv war. Die zuvor manuell eingestellte Solltemperatur bleibt dabei bis zur nächsten automatischen Anpassung erhalten.

ioBroker Skript zum Wiederherstellen des Automatikmodus
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/**
* ioBroker Skript zum automatischen Zurücksetzen des Modus von MAX! Thermostaten
* auf Auto, wenn die Solltemperatur im Auto-Modus geändert wurde.
*
* Dies ist erforderlich, da die Thermostate durch den Max! Cube Adapter bei einer
* manuellen Änderung der Solltemperatur immer in den manuellen Modus versetzt werden.
* Dieses Skript erkennt diese Änderung und setzt den Modus zurück auf Auto.
*
* Copyright (c) 2019-2024 Peter Müller (https://crycode.de)
*/

/**
* Liste an Thermostaten, die ignoriert werden sollen.
* Dies können z.B. Wandthermostate sein, da diese zusammen mit dem zugehörigen
* Heizkörperthermostat arbeiten.
*/
const thermostatIgnore = [
'thermostat_18abcd'
];

// Auflistung aller Thermostate holen
const devices = $('maxcube.0.devices.thermostat_*.mode');

// Alle Thermostate durchgehen
devices.each((id) => {
id = id.replace(/\.mode$/, '');

// Prüfen ob das aktuelle Thermostat ignoriert werden soll
const rfId = id.split('.')[3];
if (thermostatIgnore.indexOf(rfId) !== -1) return;

log('setup mode switch back for ' + id);

// Handler für einen Moduswechsel anlegen
on({ id: id + '.mode', change: 'ne' }, (obj) => {
// AUTO(0) -> MANUAL(1) ?
if (obj.newState.val === 1 && obj.oldState.val === 0) {
// Letzte Sollwertänderung laden und Zeitpunkt prüfen
getState(id + '.setpoint', (err, state) => {
// Wechsel des Modus innerhalb von 10 Sekunden nach dem Wechsel des Sollwerts?
if (state.ts > obj.newState.ts - 10000) {
// Modus zurück auf Auto setzen
log('switching ' + id + ' back to auto mode');
setState(id + '.mode', 0);
}
});
}
});
});

Das Skript kann direkt so übernommen werden. Lediglich die IDs der ignorierenden Thermostate müssen gegebenenfalls angepasst werden.

Die grundlegende Verwendung von Skripten habe ich im Beitrag ioBroker Skripte beschrieben.