Seite auswählen

Einfache Modifikation eines Homematic-Temperatursensors als Analogeingang

,
Einfache Modifikation eines Homematic-Temperatursensors als Analogeingang
Print Friendly, PDF & Email
Leider gibt es keinen Homematic-Funksensor mit Analogeingang. Deshalb habe ich einen normalen Funk-Temperatursensor zum Analogeingang umfunktioniert. Wie diese Baubeschreibung zeigt, ist dies sogar ohne Lötarbeit oder Änderungen an der Sensorelektronik möglich!
Das Konzept erlaubt folgende Eingangsspannungsbereiche: 0 bis +10V, 0 bis 3V, 0 bis 5V, -5 bis +5V und -10 bis +10V. Damit sind die typischen Anwendungsbereiche abgedeckt. Der Innenwiderstand der angeschlossenen Sensoren sollte möglichst klein sein <<10kOhm.Die Auslegung wurde für den Einfach-Funksensor HM-WDS30-T-O durchgeführt, aber nach Schaltplan Durchsicht ist dies vermutlich genauso mit dem Funk-Temperaturdifferenzsensor möglich (Man hat dann sogar 2 Analogeingänge verfügbar.)Das folgende Bild zeigt den modifizierten Sensor mit geöffnetem Gehäuse.

schaltschema.jpg

Der NTC-Fühler wird abgeschnitten und mit einem Ohmmeter von den beiden Zuleitungen die Masseleitung ermittelt. Unbedingt diese Masseleitung kennzeichnen, damit später keine negativen Spannungen auf den Eingang des uP kommen. (könnte ihn ggf. zerstören!). Statt dem NTC-Widerstand werden entsprechend dem Schaltplan zwei neue Widerstände hinzugefügt. Die Auslegung der Widerstände ist der Tabelle im Bild zu entnehmen. Zur Darstellung der „krummen“ Widerstandswerte werden Standardwiderstände in Reihe geschaltet. Optional kann eine Schutzdiode als Verpolungsschutz eingefügt werden.

Der gewählte Eingangsspannungbereich wird mit dem vorgeschalteten Widerstands-Netzwerk auf den Spannungsbereich 1,0V bis 2,5V umgesetzt. In diesem Bereich ist die Charakteristik des Funk-Temperatursensors relativ linear, weshalb die Kurve ganz gut durch eine Geradengleichung angenähert werden kann. Der Sensor arbeitet mit dem gewählten Spannungsbereich dann in einem „Temperaturbereich“ von etwa 10 bis 80gradC. Das folgende Bild zeigt die entsprechende Charakteristik:

Temp_sensor_messg.jpg

Die softwareseitige Einbindung erfolgt mit einem Skript, das bei jeder Aktualisierung des Sensorwertes aufgerufen wird:
(Vorher natürlich eine Systemvariable „temp_input“ als Zahl mit Dimension V definieren)

programm0.jpg
HM-Skript   
!Berechnung der Systemvariablen temp_input
        !aus analoger Eingangsspannung am Funk-Temperatur-Sensor!Eingangsspannung 0 bis +10V mit Re =  (1,5+1)kOhm, Rv = (3,9+4,7)kOhm
        !real m = -0.15;
        !real n = 11.56;!Eingangsspannung 0 bis +3V mit Re =  (6,8+1)kOhm, Rv = (1,8+0,82)kOhm
        real m = -0.05;
        real n = 3.49;
 
        !Eingangsspannung 0 bis +5V mit Re =  (3,3+0,22)kOhm, Rv =  (3,3+1)kOhm
        !real m = -0.08;
        !real n = 5.84;
 
        !Eingangsspannung -5 bis +5V mit Re =  (4,7+3,9)kOhm, Rv =  (15)kOhm
        !real m = -0.16;
        !real n = 6.38;
 
        !Eingangsspannung -10V bis +10V mit Re =  (5,6+1)kOhm, Rv =  (15+15)kOhm
        !real m = -0.31;
        !real n = 13.19;
 
        real T = dom.GetObject("BidCos-RF.IEQ0405570:1.TEMPERATURE").Value();
        real temp_inp = n+  T * m;
        dom.GetObject("temp_input").State(temp_inp);

Das Skript berechnet aus den Temperaturwerten die entsprechenden analogen Eingangsspannungen in Abhängigkeit vom gewählten Messbereich.
Im Skript müssen je nach Messbereich die entsprechenden Konstanten m und n aktiviert werden. Im Skript oben ist der Spannungsbereich 0 bis 3V eingeschaltet.
Anmerkung. Natürlich kann man die Kennlinie statt mit dem Skript auch mit CuxD umrechnen.

Erfahrungen mit dieser Lösung.
Sicher kann man diesen Analogeingang nicht mit einem Analogeingang der Wired-Komponenten vergleichen. Die Abtastung erfolgt entsprechend dem ursprünglichen Verwendungszweck nur alle 2 bis 4 Minuten, je nachdem ob sich der Messwert geändert hat und ob eine Aktualisierung notwendig ist. Aber für die Messung langsam veränderlicher Größen wie Temperaturen, Feuchtigkeiten, Wasserstände usw. ist diese Abtastrate kein Problem.
Die Genauigkeit ist sicher nicht allzu hoch, aber für die meisten Anwendungszwecke sicher ausreichend. Wer Lust hat, kann das System sicher noch weiter verbessern, z.B. genauere Kennlinien-Berechnung etc.

Anmerkung zum Thema Genauigkeit: Bei dem unveränderten Temperatursensor wird der interne multipliziernde A/D-Wandler mit der gleichen Spannung (nahezu Batteriespannung) betrieben wie der Spannungsteiler mit dem NTC. Dadurch ist die Temperaturanzeige nahezu unabhängig von der Batteriespannung! Wenn aber wie in diesem Fall beispielsweise die am Analogeingang angebotene Spannung konstant bleibt und die Batteriespannung z.B. sinkt, dann wird eine höhere Eingangsspannung erkannt. Lange Rede kurzer Sinn: Bei höheren Anforderungen an Genauigkeit sollte die Versorgungsspannung für den Funk-Temperatursensor möglichst auf 3V stabilisiert gehalten werden.

Viel Spass bei eigenen Versuchen mit diesem Sensor.
Ich übernehme natürlich keinerlei Haftung ….

Haftungs- und Sicherheitshinweise

Beim Nachbau müssen natürlich alle wichtigen einschlägigen Sicherheitsvorschriften für den Umgang mit gefährlichen Spannungen  eingehalten werden. Fundierte theoretische und praktische Fachkenntnisse der Elektrotechnik und für den Umgang mit gefährlichen Spannungen sind unverzichtbar!!

Durch eine unsachgemäße Installation gefährden Sie ihr Leben und das Leben ihrer Mitmenschen! Darüberhinaus riskieren Sie erhebliche Sachschäden , welche durch Brand etc. hervorgerufen werden können ! Für alle Personen- und Sachschäden durch falsche Installation etc. ist nicht der Hersteller sondern nur der Betreiber verantwortlich.

Ich verweise hier unbedingt auf  die  „Sicherheitshinweise und Haftungsausschluss„-Seite dieses Blogs.

Fähigkeiten

Gepostet am

19. Dezember 2013

3 Kommentare

  1. Diese idee ist natürlich perfekt. So wie ich verstehe, kann man damit Spannungen messen? Wenn ja, wie genau funktioniert das für 11V – 15V und 35V – 45V ? Wäre nett für Info. Grüße Hans-Jürgen

  2. Spannungsmesser mit DiffTemp Sensor Homematic.
    Duscha am 21. Februar 2017 um 18:15
    Tut mir leid, mein erster Kommentar war falsch, es funktioniert gut.

    mfg

  3. Betr.: Spannungsmesser mit DiffTemp Sensor Homematic.

    Die Hardware nach vorgegebener Modifikation funktioniert und ein Äquivalent des Spgs Wertes wird angezeigt.
    Leider funktioniert das Script bzw. das Programm nicht. Fehlerprüfung = ok
    Die Systemvariable temp_input wird nicht versorgt.

    !Berechnung der Systemvariablen temp_input
    !aus analoger Eingangsspannung am Funk-Temperatur-Sensor
    !Eingangsspannung 0V bis +20V mit Re = (2,2)kOhm, Rv = (22||47+47)kOhm
    real m = -0.31;
    real n = 23.12;
    real T = dom.GetObject(„BidCos-RF.NEQ0535040:1.TEMPERATURE“).Value();
    real temp_inp = n + T * m;
    dom.GetObject(„temp_input“).State(temp_inp);
    mfg

Kommentar absenden

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Translate »