Hilfe bei komplexer Heitzungssteuerung

Meine alte Heizanlage bestand aus einer Gastherme, einem Thermostat im Wohnzimmer und “dummen” Thermostaten an den Heizkörpern.
Das dies Mist ist, war mir schnell klar. Das Haus hat einen Keller, Erdgeschoss, Obergeschoss und ein Dachzimmer mit Dachterasse, einem schönen großen Raum und zwei Dachböden.
Wenn man jetzt im Wohnzimmer die Terassentüre zum Lüften öffnet, springt der Thermostat an und in den oberen Stockwerken ist Sauna…

Um das zu verbessern, hab ich jetzt Shelly TRVs auf jedem Heizkörper montiert. Da ist aber noch das Problem mit dem Thermostat im Wohnzimmer, der die Therme startet…
Also hab ich jetzt Automatisierungen gebaut, die über einen Shelly Plus 1 die Therme einschalten und den Thermostat abgebaut.
Sobald einer der Thermostate heizen will, wird die Therme aufgedreht und wenn der letzte die Heizung abdreht, wird auch die Therme abgedreht.
Bei 10 Thermostaten ist das schon eine umfangreiche Sammlung an Automationen und komplex ist das Zeug auch.

Natürlich kommt meine Frau um die Ecke und meint, die Heizung macht Vollgas, wenn sie das Fenster öffnet…

Meine Idee für eine Steuerung:
in jedem Zimmer gibt es einen Thermostat an der Heizung, einen Thermometer am anderen Ende des Raumes um die reale Raumtemperatur zu messen und Fensterkontakte an jedem Fenster.
Damit soll erstens eine reale Raumtemperatur gemessen werden, die direkt am Heizkörper nicht wirklich genau ist.
Zusätzlich soll das Zeug deaktiviert werden, wenn das Fenster offen ist.
Das jetzt alles in Automationen für 10 Heizkörper, speziell im Wohnzimmer mit vier Fensterkontakten, zu lösen, wächst sich zu einer Katastrophe aus. Wenn dann noch ein Teil kaputt geht und man in den Automationen dieses Teil überall austauschen muss, ist Wahnsinn…
Zusätzlich kommt bei mir ja noch das Problem mit der Therme, die ja nur heizt, wenn der von mir ersetzte Thermostat aktiviert wird.

Also hätte ich gerne eine Oberfläche, wo ich Raum für Raum Thermostate, Thermometer und Fensterkontakte zusammenführe.
Zusätzlich müsste dann auch noch eben die Therme angesteuert werden, sobald ein Raum wirklich geheizt werden soll.
Ideal und sinnvoll wäre dann noch, wenn man bei Temperaturüberschreitung auch eine Klimaanlage entsprechend anwerfen könnte…

In C# hätte ich das schnell programmiert, aber da fehlt mir der Einstieg. Es gibt ja AddOns, wie z.B. OneDrive Backup, das in C# geschrieben ist.

Wenn es ein solches AddOn gäbe, wäre ich für einen Hinweis extrem dankbar. Unabhängig davon wäre ich für ein kleines Tutorial oder Sample, wie man in C# ein AddOn erstellt, welches im Homeassistant dann laufen könnte. Gefunden hab ich dazu leider noch nichts.

Schau dir mal BetterThermostat an. Ich bin damit sehr zufrieden. Bei einigen hier im Forum scheint es ein paar Probleme zu geben. Aber Versuch macht Kluch.

Mit C# wird etwas schwierig. Python ist bei HA die erste Wahl.

BetterThermostate werde ich mal versuchen, aber was Python betrifft, kann ich mehr Chinesisch als Python :slight_smile:
Ich hab schon C und C++ programmiert, da gab es noch nichtmal die Idee zu Python :slight_smile: (die Idee war 1980 und die erste Version 1991…)
Für mich als jemand, der als Programmierer vorwiegend unter Windows seinen Lebensunterhalt bestreitet, ist C# einfach die logische Folge.
Und z.B. OneDrive Backup ist ja in C# geschrieben und funktioniert tadellos, also möglich ist es, mir fehlt nur mal der Einstieg, also eine kleines Sample, das einen Button anzeigt, mit dem ich was in HA auslösen kann…

Dann sollte es keine soooo große Umstellung sein. Nur an die fehlenden geschweiften Klammern muss man sich gewöhnen. Wenn man vorher bereits beim Code auf Einrückung geachtet hat, hat man das schnell raus, wie Codeblöcke, Funktionen usw. formatiert werden.
Alles andere ist Lernsache und kein Hexenwerk.
C# bzw. Mono kann man machen, muss man aber nicht. Ich vertrete die Ansicht, man nimmt genau die Sprache, die zum Projekt passt und passt nicht das Projekt an die Sprache an.

Ich hab mir jetzt mal testweise einen solchen BetterThermostate angelegt. Sieht mal gut aus, wobei mir aufgefallen ist, dass er die Statusänderung Fenstersensor nur extrem verzögert erkennt. Sollte aber kein grösseres Problem sein.
Was mir aber wieder nicht erspart bleibt, ist die böse Automatisierung um die Therme auf und abzudrehen. Das erspare ich mir nicht.

Immerhin erspart es mir grosse Umstellungen in allen Automatisierungen, wenn ich ein Teil, z.B. Thermometer oder TRV, austausche. Das muss dann nur noch an einer Stelle sein. Von daher: danke für den Tip, ist auf jeden Fall schon eine grosse Hilfe!

grundsätzlich gebe ich Dir ja Recht. Da es aber 99,9% der Dinge, die ich bei HA benötige, schon gibt und dieser BT jetzt auch noch den Großteil meines Problemes löst, ist mir der Aufwand, eine neue Sprache für diese Kleinigkeit zu lernen, einfach zu hoch.
Als ich noch jung war, so ZX81, C64 und Amiga Zeit, hab ich diverse Assembler gelernt, einfach weil es Spaß gemacht hat.
An den Geräten kannst Du aber gut ablesen, dass ich aus dem Alter raus bin, wo man mal eben schnell zum Spaß eine neue Sprache lernt :slight_smile:
C# und .Net halten mich ganz gut auf Trab und Familie hab ich auch :stuck_out_tongue:
Oder um es mit Danny Glovers Worten aus Lethal Wapon zu sagen: I’m too old for this S*** :smiley:

Offtopic:

Hehe, aufm Amiga habe ich auch in Assembler programmiert. Danach kam C, die ersten Gehversuche in Java und PHP dazu noch Perl. Bin jetzt aber wieder bei C und Python. Je nach Notwendigkeit.

Noch so ein Opa hier :smiley:
Hach, das waren noch Zeiten, wo ich richtig Geld mit der Reparatur von diesen Teilen verdient habe…
Nicht so wie heute, wo man kaum mehr was reparieren kann.
Java liebe ich, aber nicht zum Programmieren. Trinken schon, sogar in rauen Mengen.
Was aber generell Programmiersprachen betrifft: die Sprachen zu lernen ist ja idR kein Problem. DIe können eh nichts. Der echte Aufwand ist es sich in die diversen Frameworks einzuarbeiten. .Net z.B. ist extrem mächtig und da die Übersicht zu behalten ist schon eine Herausforderung.
Für solche Anwendungen hast Du aber die bessere Wahl getroffen, ich bin halt in der Windows Ecke unterwegs und da sind Sprachen wie Python und Perl eher eine Randerscheinung. Und Java unter Windows… na ja, da sag ich nicht viel dazu…
Ich verdiene halt mein Geld mit C# und drücke dafür öfter mal auf diese “Buy me a coffee” Buttons, damit auch die Freizeitprogrammierer was davon haben :slight_smile:
…und so wie es bis jetzt aussieht, werde ich das auch bei dem BT Button machen :wink:

Hallo Avril,

ich habe für meine Anzeige “Fenster offen” alle Fensterkontakte in eine Gruppe zusammengefasst.
Das kannst du auch mit den Thermostaten machen.
Sobald ein (1!) Thermostat anspringt geht die Gruppe auf “On”. Damit kannst du direkt den Shelly ansteuern.

Eine zweite Gruppe für die 4 Fenster im Wohnzimmer. 1 Fenster auf - ALLE Thermostate aus.

Mein Problem ist eher, dass ich, wenn eine Thermostat die Heizung abdreht, die Therme nur abdrehen werden darf, wenn auch alle anderen Heizungen abgedreht sind.

Das macht man ja mit einer Gruppe:
Ist ein Thermostat “an”, dann geht die “Gruppe Thermostat” auf “an” und die Therme wird aktiviert.

Das gleiche bei der “Gruppe Fenster”: wenn ein Fenster offen ist, dann geht diese auf offen und die Thermostate im Wohnzimmer werden geschlossen.

Genau diesen Ansatz hab ich auch gewählt.
Leider dürfte aber dieses Better Termostate ziemlich verbuggt sein. Auch das heutige Update auf 1.7 brachte nichts. Manche davon scheinen zu funktionieren, wenn man auf konfigurieren → weiter ->fertig geht, andere bleiben unavailable. Keine Ahnung was das soll, aber das ist mir etwas zu heikel…

1 „Gefällt mir“