FHEM – Homematic Heizkörperthermostat mit externem Temperatursensor peeren

Homematic Heizkörperthermostat HM-CC-RT-DN

Vor einiger Zeit habe ich angefangen unser Haus “smart” zu machen. Für die Automatisierung habe ich mich für das Projekt FHEM entschieden welches auf einem kleinen Raspberry Pi 3 werkelt und daher ohne Hersteller-Clouds klar kommt. FHEM arbeitet mit sehr vielen Hersteller-Protokollen zusammen und ist umfangreich editierbar. Allerdings setzt es einen gewissen Grad an Programmierkenntnissen voraus. Und manchmal findet man die Lösung für seine Probleme nicht immer sofort sondern über mehrere Quellen verteilt.
So erging es mir z.B. als ich meine Homematic Funk-Heizkörperthermostate HM-CC-RT-DN nachträglich mit externen Temperatursensoren verbinden wollte. Die Homematic-Sensoren lassen sich zwar unabhängig von FHEM mit den Thermostaten peeren, kosten aber ne Menge. Und da XIAOMI seine Aquara Sensoren für sehr schmales Geld anbietet stand für mich schnell fest: die sollen es werden.
Die nun folgende Prozedur funktioniert aber auch mit anderen externen Sensoren so lang sie in der Lage sind ihre Werte an FHEM zu übermitteln.

XIAOMI Aqara SensorEin Blick ins FHEM-Wiki verspricht: kinderleicht. *hust*
Dort wird das Peering nur “husch-husch” beschrieben. Allerdings gibt es ein paar Klippen zu umschiffen bis alles so läuft wie gewünscht. Nachdem ich über mehrere Quellen mir alle Informationen zusammen getragen habe schreibe ich sie hier mal nieder. In erster Linie für mich für weitere Sensoren, aber vielleicht hilft es dem ein oder anderen ebenfalls.

zum peeren mit externen Sensoren muss man sich in FHEM ein virtuelles Homematic-Device (in meinem Fall fürs Wohnzimmer) anlegen. den Teil <Homematic-Id> ersetzt man durch eine beliebige, 6stellige Zahl die in Zukunft als eigenständige “Adresse” des Device dient.

define Wohnzimmer_virt_Temperatur CUL_HM <Homematic-Id>

Dem Device einen virtuellen Kanal hinzufügen:

set Wohnzimmer_virt_Temperatur virtual 1

Da das kein virtueller Knopf sondern ein Sensor ist benennen wir das mal um:

rename Wohnzimmer_virt_Temperatur_Btn1 Wohnzimmer_virt_Temperatur_Sensor1

Ich füge das Device nun dem Raum “Heizung” hinzu (ist aber nicht erforderlich)

attr Wohnzimmer_virt_Temperatur_Sensor1 room Heizung

Das Device muss nun noch wissen mit wem es die Daten kommuniziert, in meinem Fall ist das ein nanoCUL

attr Wohnzimmer_virt_Temperatur IODev nanoCUL

Das Attribut “expert” bitte löschen.

deleteattr expert

Nun wird das virtuelle Device mit meinem Thermostat gepeert. Bei den Thermostaten macht man dies über den Kanal 01 Weather

set Wohnzimmer_virt_Temperatur_Sensor1 peerChan 0 Wohnzimmer_Heizung_Weather single set

 

Bevor man nun weiter macht sollte man (nein, man muss) dringend warten bis das Peering abgeschlossen ist. Man erkennt es daran dass im Status des Thermostat CMDs_done steht und mit dem Befehl

set hm peerXref

das Peering in beide Richtungen eingetragen ist. das sieht dann so aus:

 

 

Sollte das Peering in beide Richtungen nicht abgeschlossen sein dann den letzten Schritt

set Wohnzimmer_virt_Temperatur_Sensor1 peerChan 0 Wohnzimmer_Heizung_Weather single set

so lang wiederholen bis beide Richtungen zu sehen sind.
Im Grunde genommen kann man nun schon überprüfen ob Daten vom virtuellen Device ans Thermostat übermittelt werden.
Mit

set Wohnzimmer_virt_Temperatur_Sensor1 virtTemp 30

sollte nach kurzer Zeit in FHEM beim Thermostat im Weather-Channel bei state  nach kurzer Zeit die 30 angekommen sein.

Gut, nun müssen wir aber noch die Werte vom XIAOMI (oder anderem) Sensor automatisiert zum Thermostat bekommen.
Das macht man per “at”
In meinem Fall sieht das so aus:

define at_Wohnzimmer_virt_Temperatur at +*00:05 { my $T=(ReadingsVal("Sensor_Wohnzimmer","temperature",20.0));; fhem "set Wohnzimmer_virt_Temperatur_Sensor1 virtTemp $T";;}

Damit wird alle 5 Minuten der gemessene Temperaturwert vom “Sensor_Wohnzimmer” (mein XIAOMI Aqara) an das virtuelle Device (welches wir gerade erstellt haben) übergeben und schlussendlich dank Peering ans Thermostat übergeben.
Ich verschiebe nun noch das at in den Raum “Zeitschaltuhren”

attr at_Wohnzimmer_virt_Temperatur room Zeitschaltuhren

 

Der Übersichtlichkeit wegen nun noch mal alle Schritte ohne Erklärung und mit verkürzten Namen nacheinander:

define wz_vTemp CUL_HM&nbsp;<Homematic-Id>
set&nbsp;wz_vTemp virtual 1
rename&nbsp;wz_vTemp_Btnl&nbsp;wz_vTemp_Sensor1
attr&nbsp;wz_vTemp_Sensor1 room Heizung
attr&nbsp;wz_vTemp IODev nanoCUL&nbsp;
deleteattr expert
set&nbsp;wz_vTemp_Sensor1 peerChan 0 WZ_Heizung_Weather single set
define at_wz_vTemp at +*00:05 { my $T=(ReadingsVal("Sensor_WZ","temperature",20.0));; fhem "set wz_vTemp_Sensor1 virtTemp $T";;}
attr at_wz_vTemp room Zeitschaltuhren

Nun sollte alles laufen.

Anet A8 – mein neues Spielzeug

Mein Schätzelein

Schon seit einiger Zeit beschäftigte ich mich mit dem Thema 3D-Druck. Aber bisher war immer nur Gucken und Stöbern angesagt, solche Geräte sind zum “Herumspielen” einfach zu teuer. Dann entdeckte ich am Black Friday 2016 dass Gearbest der Anet A8 (Ein Prusa I3-Clone) massiv im Preis gefallen war: unter 150 Dollar! Ok, das ist zum Basteln akzeptabel! Und da Gearbest über “Germany Priority Line” versendet entfallen zum einen die Einfuhrumsatzsteuer (bereits inkl) und die Versandzeit liegt bei etwa 2 Wochen.

Nun mus man aber wissen dass da ein Bausatz kommt. Nix mit “Auspacken, Einschalten, Geht” (Halt, das war doch mal ein Werbeslagan…). Man muss das echt große Puzzle anhand einer fiesen Anleitung aus chinesischer Hand zusammenbauen. Aber: man bekommt das hin. Ich habe mir etwas Zeit gelassen und 3 Tage später stand das Schätzelein fertig auf dem Schreibtisch. Die ersten Probedrucke waren schon echt super. Was mir aber sehr gefällt ist dass es eine große Fan-Community drumherum gibt und man sich auch viele der Verbesserungsteile wie Rahmen und Zubehör für den Drucker selber ausdrucken kann was die Druckergebnisse deutlich erhöht.

Eine nicht ganz ernst zu nehmende Warnung sei aber gesagt: Preislich wird es nicht bei der Anschaffung für den Drucker bleiben. Einige Teile wie z.B. Kugellager für die Filamentspulen, Gleitlager, besseres Netzteil, Ersatzdüsen usw. werden dazu kommen. Aber jedes Upgrade verbessert die Qualität. Auf die Ersatzteile gehe ich später ein.

Was aber unbedingt zu erwähnen ist:
Die chinesischen Hersteller haben es in Sachen Elektrik nicht ganz genau und man liest immer wieder von Verschmorungen bis hin zu Bränden. Das habe auch ich schon gesehen und man muss da zwingend an einigen Stellen nachbessern, sonst raucht einem ratzfatz die Bude ab. Dazu gehören u.a. Adernendhülsen, bessere Schraubklemmen, Power-Mosfets oder SSR und ein vernünftiges Netzteil. Das verhindert zwar immer noch keinen Brand, aber es gibt einem mehr Ruhe. Denn was da an Strömen fließt und welche Temperaturen herschen ist nicht zu unterschätzen und sollte nicht auf die leichte Schulter genommen werden.

Was habe ich nun alles schon geändert?

in der Ecke werkelt ein Raspberry Pi

Angefangen bei den Adernendhülsen, die Schraubklemmen habe ich bei mir weg gelassen weil ich sowohl fürs Heizbett als auch den Extruder die Mosfets eingesetzt habe. Dann kann man die Klemmen auf dem Mainboard belassen. Da ich mit dem Original-Netzteil angefangen habe kam noch ein Netzschalter dazu. Die passende Abdeckung kann man drucken. Für den Austausch liegt hier aber schon ein Servernetzteil herum welches man 1a dafür umbauen kann. Dazu schreibe ich in einem anderen Artikel mehr. Sucht einfach bei ebay nach dem HP DSP-600, das gibt es in gebraucht schon ab 15,-.
Als nächstes habe ich einen Raspberry Pi 3 hinzugefügt. Der ist nicht zwingend erforderlich, der Drucker kann auch von der SD-Karte aus drucken, aber auf dem Raspberry läuft bei mir die Software Octoprint zur komfortablen Verwaltung des Druckers nebst einer Webcam so dass ich auch vom Sofa aus bequem schauen kann was der Drucker macht. Zusätzlich kann die Software die gesamte Elektrik per Funk nach dem Druck ausschalten (Steckdose & Funkmodul f. Raspberry).
Außerdem habe ich einen Autolevelsensor verbaut. Der erleichtert zwar das Ausleveln des Heizbettes ungemein, aber dazu muss man zwingend die Firmware auf dem Mainboard neu flashen. Dabei ist allerhand zu beachten. Ich verweise dazu auf die deutschsprachige Facebook-Gruppe, dort findet man alles dafür benötigte und alle Fragen werden i.d.R. kompetent und freundlich beantwortet. Trotzdem zu meiner Konstruktion: durch das Glasbett benötigte ich einen kapazitiven Sensor, wer mit BlueTape arbeitet braucht einen anderen.

Dank Schrank herrscht Ruhe

Damit ich meine Ruhe habe (ja, der rappelt schon ein wenig) habe ich den Drucker in einen STUVA Schrank von Ikea eingebaut. Für den gibt es ne passende Glastür und Ruhe ist. Und um noch ein wenig mehr Ruhe zu haben steht der Drucker auf ner Dämmmatte.
Es gibt diverse Bauanleitungen wie man sich aus 3 Ikea LACK Tischen und allerhand Plexiglas einen Schrank bauen kann, aber schlussendlich ist das genauso teuer wie mit STUVA und man hat deutlich mehr Aufwand.
Zu guter Letzt habe ich noch die minderwertigen Kugellager gegen IGUS Gleitlager ausgetauscht, damit flutschten die X & Y-Achse und man muss nix ölen. Achtung, für X und Y benötigt man insgesamt 7 Stück.

Das Filament wird von oben zugeführt

Auf dem Heizbett liegt bei mir eine Glasplatte die ich aus einem billigen Bilderrahmen zurecht geschnitten habe. Die meisten schwören auf BlueTape oder Borsilikat, aber ich habe mit dem billigen Bilderrahmen bisher immer gute Erfahrungen gemacht.

Es gibt noch viiiele Dinge die man verändern könnte, aber mir langt das bisher.
Gut, was ich mir noch zusätzlich auf Halde gelegt habe sind ein paar Düsen und Extruderröhrchen. Naja, und halt Filament in einigen Farben. Ich habe mit dem PLA-Filament von eSun angefangen. Das ist vom Preis her ganz ok und liefert mir bisher gute Ergebnisse.

Zum Schluss liste ich noch mal die Teile auf die ich mir als Verbesserungen gedruckt habe. Auch da gibt es noch viel mehr, aber eins nach dem anderen. 😉

Ich werde diese Liste die Tage noch erweitern weil einiges von mir konstruiert wurde und noch nicht bei Thingiverse verfügbar ist.

Was gibt es noch anzuklicken?

Auch diese Liste werde ich die Tage noch erweitern.