{"id":1265,"date":"2026-07-09T22:17:49","date_gmt":"2026-07-09T20:17:49","guid":{"rendered":"https:\/\/www.coremind.ch\/wordpress\/?p=1265"},"modified":"2026-07-09T22:17:49","modified_gmt":"2026-07-09T20:17:49","slug":"generic-thermostat-klima-aus-schalter-und-sensor","status":"publish","type":"post","link":"https:\/\/www.coremind.ch\/wordpress\/generic-thermostat-klima-aus-schalter-und-sensor\/","title":{"rendered":"Generic Thermostat: Klima aus Schalter und Sensor"},"content":{"rendered":"<p>Nicht jedes Heizger\u00e4t spricht mit Home Assistant. Der alte Elektro-Heizl\u00fcfter im G\u00e4stezimmer, die Infrarotplatte im Atelier, der Handtuchradiator im Bad \u2013 oft h\u00e4ngen sie schlicht an einer smarten Steckdose und lassen sich nur ein- und ausschalten. Was fehlt, ist ein Thermostat: die Logik, die anhand einer gemessenen Temperatur selbst entscheidet, wann geschaltet wird. Genau das liefert die eingebaute Integration <code>generic_thermostat<\/code>. Sie verwandelt einen simplen Schalter plus einen Temperatursensor in eine vollwertige <code>climate<\/code>-Entit\u00e4t \u2013 mit Zieltemperatur, Karte im Dashboard und Sprachsteuerung.<\/p>\n<h2>Die Idee dahinter<\/h2>\n<p>Ein <code>generic_thermostat<\/code> braucht zwei Zutaten, die Sie vermutlich schon haben: eine schaltbare Entit\u00e4t f\u00fcr das Heizger\u00e4t (zum Beispiel eine <code>switch<\/code>-Steckdose) und einen <code>sensor<\/code>, der die Raumtemperatur liefert. Home Assistant \u00fcbernimmt die Regelung: F\u00e4llt die gemessene Temperatur unter die Zielmarke, wird der Schalter eingeschaltet; ist es warm genug, schaltet er wieder ab. Das Ergebnis ist eine Thermostatkarte, wie man sie von teuren Smart-Heizungen kennt \u2013 nur aus Bauteilen, die Sie schon besitzen.<\/p>\n<h2>Schritt f\u00fcr Schritt zur climate-Entit\u00e4t<\/h2>\n<p>Die Konfiguration erfolgt in der <code>configuration.yaml<\/code>. Ein minimales Beispiel f\u00fcr das G\u00e4stezimmer sieht so aus:<\/p>\n<pre><code>\nclimate:\n  - platform: generic_thermostat\n    name: Gaestezimmer Heizung\n    heater: switch.steckdose_gaestezimmer\n    target_sensor: sensor.gaestezimmer_temperatur\n    min_temp: 12\n    max_temp: 24\n    target_temp: 20\n    cold_tolerance: 0.3\n    hot_tolerance: 0.3\n    min_cycle_duration:\n      minutes: 5\n    initial_hvac_mode: \"off\"\n<\/code><\/pre>\n<p>Die beiden Toleranzen sind der Kern der Sache. <code>cold_tolerance: 0.3<\/code> bedeutet: Erst wenn die Temperatur 0,3 Grad unter das Ziel f\u00e4llt, schaltet die Heizung ein. <code>hot_tolerance: 0.3<\/code> sorgt daf\u00fcr, dass sie erst 0,3 Grad \u00fcber dem Ziel abschaltet. Dieses Hysterese-Fenster verhindert, dass der Schalter im Sekundentakt klappert, sobald die Temperatur um den Zielwert pendelt.<\/p>\n<p>Mindestens ebenso wichtig ist <code>min_cycle_duration<\/code>. Sie erzwingt, dass zwischen zwei Schaltvorg\u00e4ngen eine Mindestzeit liegt \u2013 hier f\u00fcnf Minuten. Das schont sowohl ein Relais in der Steckdose als auch das Heizger\u00e4t selbst, das h\u00e4ufiges Takten nicht mag. Nach einem Neustart von Home Assistant sorgt <code>initial_hvac_mode: \"off\"<\/code> daf\u00fcr, dass die Heizung nicht ungewollt anl\u00e4uft.<\/p>\n<h2>Sicherheit zuerst: der Watchdog gegen tote Sensoren<\/h2>\n<p>Ein Elektroheizer, der \u00fcber eine Steckdose geregelt wird, verlangt Sorgfalt. Was passiert, wenn der Funk-Temperatursensor die Batterie verliert und keine Werte mehr liefert? Der <code>generic_thermostat<\/code> kennt daf\u00fcr einen Schutz: Mit <code>keep_alive<\/code> sendet er den Schaltbefehl regelm\u00e4ssig erneut, und Sie k\u00f6nnen definieren, dass bei fehlenden Sensordaten sicherheitshalber abgeschaltet wird.<\/p>\n<pre><code>\n    keep_alive:\n      minutes: 3\n<\/code><\/pre>\n<p>Kombinieren Sie das mit einer Automation, die Alarm schl\u00e4gt, wenn der Sensor auf <code>unavailable<\/code> f\u00e4llt. W\u00e4hlen Sie das Heizger\u00e4t ausserdem so, dass es einen eigenen \u00dcberhitzungsschutz besitzt \u2013 die Software ist ein Komfort-Regler, kein Ersatz f\u00fcr die Ger\u00e4tesicherheit.<\/p>\n<h2>Auch im Sommer n\u00fctzlich: K\u00fchlen statt Heizen<\/h2>\n<p>Der <code>generic_thermostat<\/code> kann die Logik umdrehen. Setzen Sie <code>ac_mode: true<\/code>, steuert dieselbe Integration statt einer Heizung ein k\u00fchlendes Ger\u00e4t \u2013 etwa einen Ventilator oder ein mobiles Klimager\u00e4t an einer smarten Steckdose. Jetzt schaltet der Schalter ein, wenn es zu <em>warm<\/em> wird, und ab, sobald die Zieltemperatur unterschritten ist. So wird aus demselben Bauprinzip im Hochsommer ein simpler Raum-K\u00fchler: Der Ventilator im Arbeitszimmer l\u00e4uft nur dann, wenn er wirklich gebraucht wird, statt stundenlang ins Leere zu blasen. Toleranzen und Mindestlaufzeit gelten dabei genauso \u2013 gerade bei einem Kompressor-Klimager\u00e4t ist die erzwungene Pause zwischen den Schaltzyklen wichtig.<\/p>\n<h2>Sinnvoll erg\u00e4nzen: Zeitplan und Pr\u00e4senz<\/h2>\n<p>Ein fixer Zielwert ist erst der Anfang. Richtig praktisch wird die Sache, wenn die Zieltemperatur dem Alltag folgt: morgens warm im Bad, tags\u00fcber abgesenkt, abends wieder behaglich. Statt das mit unz\u00e4hligen Automationen zu erschlagen, koppeln Sie die <code>climate<\/code>-Entit\u00e4t an einen Wochenplan, wie ihn der Beitrag zum <a href=\"https:\/\/www.coremind.ch\/wordpress\/schedule-helfer-in-ha-wochenplan-ohne-yaml\/\">Schedule-Helfer f\u00fcr den Wochenplan ohne YAML<\/a> beschreibt. Eine Automation liest den aktiven Zeitblock und setzt per <code>climate.set_temperature<\/code> den passenden Sollwert.<\/p>\n<pre><code>\nautomation:\n  - alias: Gaestezimmer Nachtabsenkung\n    triggers:\n      - trigger: time\n        at: \"22:00:00\"\n    actions:\n      - action: climate.set_temperature\n        target:\n          entity_id: climate.gaestezimmer_heizung\n        data:\n          temperature: 16\n<\/code><\/pre>\n<h2>Fazit<\/h2>\n<p>Der <code>generic_thermostat<\/code> ist eines der untersch\u00e4tzten Bordmittel von Home Assistant. Er kostet nichts, braucht keine Cloud und macht aus einem dummen Schalter plus Sensor ein regelbares Zimmerklima \u2013 inklusive Thermostatkarte, Sprachbefehl und Anbindung an Zeitpl\u00e4ne. Wichtig sind nur saubere Toleranzen, eine erzwungene Mindestlaufzeit und ein Gedanke an die Sicherheit, wenn ein echtes Heizger\u00e4t im Spiel ist.<\/p>\n<p>Beginnen Sie klein: Suchen Sie ein Zimmer mit einer schaltbaren Heizquelle und einem vorhandenen Temperatursensor, legen Sie den <code>generic_thermostat<\/code> mit vorsichtigen Toleranzen an und beobachten Sie im Verlauf ein paar Tage, wie sauber er die Zieltemperatur h\u00e4lt \u2013 bevor Sie Zeitplan und Pr\u00e4senzlogik erg\u00e4nzen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nicht jedes Heizger\u00e4t spricht mit Home Assistant. Der alte Elektro-Heizl\u00fcfter im G\u00e4stezimmer, die Infrarotplatte im Atelier, der Handtuchradiator im Bad \u2013 oft h\u00e4ngen sie schlicht an einer smarten Steckdose und lassen sich nur ein- und ausschalten. Was fehlt, ist ein Thermostat: die Logik, die anhand einer gemessenen Temperatur selbst entscheidet, wann geschaltet wird. Genau das &#8230; <a title=\"Generic Thermostat: Klima aus Schalter und Sensor\" class=\"read-more\" href=\"https:\/\/www.coremind.ch\/wordpress\/generic-thermostat-klima-aus-schalter-und-sensor\/\" aria-label=\"Mehr Informationen \u00fcber Generic Thermostat: Klima aus Schalter und Sensor\">Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-1265","post","type-post","status-publish","format-standard","hentry","category-ha"],"_links":{"self":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/1265","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/comments?post=1265"}],"version-history":[{"count":1,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/1265\/revisions"}],"predecessor-version":[{"id":1269,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/1265\/revisions\/1269"}],"wp:attachment":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/media?parent=1265"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/categories?post=1265"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/tags?post=1265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}