OneWire Temperatur Sensoren für die Homematic CCU (Raspberry)

Wer seine Heizung über die Homematic steuern will braucht zur optimalen Steuerung auch einige Temperatur Werte.  Zimmer Temperaturen liefern die Homematic heizungs thermostate. Für aussen kann ein KS 300 FS20 Wetterstation genutzt werden der über den CUL und CUXD ausgelesen wird. Damit lassen sich schon mal einiges anfangen. Wie das Ganze zu steuern ist habe schon mal im Artikel Heizungs-Umwälzpumpen nach Bedarf steuern beschrieben.

In der letzten Heizperiode habe ich aber noch mehr Möglichkeiten gefunden die Pumpen und die Heizung weiter zu optimieren.  In den Statistiken habe immer wieder festgestellt das die Umwälzpumpe angeht und der Rücklauf des Wassers genau so warm ist wie der Vorlauf. Was zu bedeuten hat, das der Boden keine Wärme mehr aufnehmen kann. Um das zu messen werden diverse Temperatur Senoren an der Heizung benötigt um den Vorlauf und Rücklauf zu messen. Auch Statisk Fetischisen Interessieren sich gerne für diese Werte.

Temperatur Sensoren sind sehr teuer für die Homematic. Alternative kann man mit einem PT100 Temperatur Sensor und einem 0-10 Wandler die Temperatur messen.

Das habe ich schon mal im Artikel Homematic Temperatur Messung PT100 beschrieben, was aber immer noch pro Sensor mit ca 25 € zu buche schlägt und einmalig 95€ für das Homematic Modul.

Jetzt habe ich mit OneWire Temperatur Sensoren  (DS18D20) und einem Raspberry und etwas Software ein System entwickelt um die Sensoren auszulesen und an die Homematic zu übertragen.

Zum Aufbau:

Das OneWire System ist ein BUS System, was bedeutet das alle Sensoren an den gleichen Kabel  hängen. Der Raspberry kann OneWire Sensoren auslesen. Diese Werte werden in einem Perl Script im Intervall ausgelesen werden und dann via XML API an die Homematic übertragen.

Der Raspberry ist in einem Hutschienen Gehäuse montiert. Die Pins des GPIO Anschluss für die OneWire Sensoren  habe ich auf einen RJ 45 Stecker herausgeführt.

Raspberry mit OneWire Verkabelung vor dem Einbau
Raspberry mit OneWire Verkabelung vor dem Einbau

Die Belegung kann frei gewählt werden, muss aber dann für ALLE Sensoren gleich sein. Es gibt auch Sensoren mit RJ45 Stecker, wenn man keine Lust hat wie ich diese anzulöten. Ich habe mir die günstigen mit offenen Kabel ende gekauft. Ein Krimpen der Kabelenden ging nicht, da die Adern zu dick sind. Also habe ich ein Patchkabel zerschnitten und die Kabel angelötet und mit Schrumpfschlauch isoliert.

Meine Belegung auf dem Panel  ist:

  1. frei
  2. +3,3 V
  3. Masse
  4. +5 V
  5. frei
  6. Data
  7. frei
  8. frei

Die Sensoren haben folgende Belegung:

Rot: 3,3 V – 5 V Spannungsversorgung

Schwarz: Masse

Gelb: Data

Die Sensoren werden wie folgt verbunden:

Gelb (Data) -> PIN 6 (Data)

Rot (5V) -> Pin 4 (5V)

Schwarz (Masse)-> PIN 3 (Masse)

Patch Panel mit PullUp Wiederstand
Patch Panel mit PullUp Wiederstand

Die Sensoren laufen auch mit 3,3 V , aber es kommt zu Problemen beim Auslesen, wenn zu viele Sensoren am BUS hängen, das gleiche auch wenn der Data Eingang als Stromversorgung genutzt wird (2 Draht Anbindung). Der Data Anschluss braucht dann noch einen Pull UP Wiederstand an 3,3V. Das habe ich auf dem Patchpanel mit angebaut.  Auch alle Pins die ich benötige habe ich auf dem Panel zu einem BUS dann verbunden.

RJ 45 Panel für OneWire Temperatur Sensoren als BUS
RJ 45 Panel für OneWire Temperatur Sensoren als BUS

Jetzt braucht nur noch mit einem normalen RJ45 Patschkabel der BUS vom PI Hutschienen Gehäuse zum Panel geführt werden. Wenn ein Panel nicht ausreicht, kann das mit einem weiteren Panel und einem Kabel  wie beim Netzwerkswitch erweitert werden.

Der Raspberry Data Port ist frei wählbar. Ich habe den GPIO Port 4 genommen. Masse, 5V und 3,3V sind je nach Raspberry unterschiedlich. Im Internet wird man aber schnell fündig.

Das Script stelle ich dann das nächste mal vor. Läuft ohne Fehler seit ca 2 Monaten mit 8 Temepratur Sensoren. Für ungeduldige ist es bei GitHup verfügbar. Es wird noch eine neue Version geben mit mehr Funktionen. Die Sensor Werte werden dann per Script in die Homematic CCU XML Schnittstelle geschrieben. Dazu werden Variablen angelegt. Diese können dann in Programmen abgefragt werden.

Genaue Beschreibung und wie es weitergeht hier –>

Hier noch mal alle Bilder:

3 Gedanken zu „OneWire Temperatur Sensoren für die Homematic CCU (Raspberry)“

  1. Hallo Ulrich,

    die Lösung gefällt mir. Habe auch seit einigen Wochen die Homematic Raspberry Lösung laufen. Aktiv habe ich über Funk Rauchmelder, optische Türsensoren, Wandtermostate, Heizkörpertermostte und 4-Kanal Aktoren. 5 Kreise der Fussbodenheizung im Erdgeschoss werden über 4-Knal Aktoren und 24V Stellantriebe angesteuert. Die Möglichkeit mit ELV Mittel Temperaturen, z.B: für Vor-und Rücklauf der einzelnen FB-Kreise zu messen, sind mit jedoch zu aufwendig bzw. auch zu teuer. Habe noch zwei RPi 1 die ich schon mal im Testversuch mit 10 x DS18B20 auf 30m Kabel verteilt im Einsatz hatte. Die Anbindung an die Homematic wäre für mich jetzt eine schöne Lösung. Bin gespannt wie du es softwaremässig gelöst hast.
    werde vorab schon mal die auf GitHub veröffentlichte Lösung einbinden.
    Grüsse
    Gerd

Kommentar verfassen