Beleuchtungsstärke messen mit FS20-Hausautomatisierung

Zu einer elektronisch gesteuerten Beleuchtung gehört in der Regel die Messung des verfügbaren Tageslichtes. Ich beschränkte mich beim FS20-System auf die Messung mit einem einzelnen Sensor. Aufwändigere Installationen haben einen pro Himmelsrichtung. Von ELV gibt es für diese Aufgabe den Dämmerungssender FS20 SD. Wie der Regensensor FS20 SR, der Bodenfeuchte-Sensor FS20 BF und viele andere sendet er nur Daten, wenn sich der Zustand ändert, also typischerweise zweimal am Tag. Da FS20 recht unzuverlässig ist, reicht das nicht, um wirklich zu wissen, ob es draußen hell oder dunkel ist. Man könnte ja einen Datensatz verpasst haben. Außerdem muss man die Schwellen am Sensor eingeben, was funktioniert, aber nicht besonders komfortabel ist.

Ich habe den Temperatur-Sensor HMS 100 T zu einem Beleuchtungsstärke-Messgerät umgebaut. Er sendet alle fünf Minuten einen Messwert. Da er nichts empfängt und nicht konfiguriert werden kann, ist der Betrieb sehr einfach. Batterien einlegen und fertig.

Empfangen kann man ihn wie alle HMS-Geräte nicht mit den üblichen Aktoren wie z.B. Dimmern. Eine Zentrale muss die Helligkeit empfangen und auswerten. Bei mir ist es der CUL-Adapter von Busware an einem Rechner (Raspberry Pi oder Atom-PC) mit CUL_FS20 unter node.js.

Der Sensor sendet einen Datensatz, der mit H beginnt. Normalerweise senden die FS20-Sensoren etwas mit F am Anfang, und das erwarten auch die Aktoren. Daten mit H sind Messwerte. So ein Datensatz sieht z.B. so aus:

H1403017104000D

Das H heißt, dass ein Messwert folgt. Die nächsten vier Zeichen sind die Adresse. Sie unterscheiden sich damit von den üblichen FS20-Adressen, die vier Zeichen Hauscode und zwei Zeichen Adresse senden. Dazu kommt, dass der Sensor beim Stromverlust seine Adresse vergisst. Nach dem Batteriewechsel muss sich die Zentrale an eine neue Adresse gewöhnen. Die letzten zwei Zeichen sind die Checksumme. Es bleiben acht Zeichen für Nutzdaten.

H8F97012103001D
H = prefix
 8F97: device address (changes after battery loss)
     0: status bits
      1: 1=on (seems useless)
       21 3: Temperatur
         0 00: Feuchtigkeit
             1D: checksum

Die Status-Bits sind unter anderem 0=OK, 2=leer, 4=replaced, 8=negative Temperatur. Man sieht, dass die Adresse erst 1403 ist und später 8F97. Keine Ahnung, wie man mehrere Sensoren auseinanderhalten soll. Anscheinend muss man bei jedem Batteriewechsel in der Zentrale die neue Adresse eingeben.

Bei der Temperatur ist erst die zweite, dann die dritte und dann die erste Dezimalstelle angegeben, wobei die dritte eine Nachkommastelle ist. Im Beispiel haben wir 32.1°C. Bei der Feuchte ist erst die dritte, dann die erste und dann die zweite Stelle angegeben, wieder mit einer Nachkommastelle.

Weitere Informationen zu den Daten der HMS-Sensoren befinden sich im FHEM-Projekt in der Datei FHEM/12_HMS.pl.

Umbau zum Beleuchtungsstärke-Messgerät

Ich habe einfach den Heißleiter vom Kabel abgeknipst und statt dessen verschiedene feste Widerstände angeschlossen. Die gesendeten Temperaturen schrieb ich als Kiloohm/Gradcelsius-Paare, in folgende Datei „Temperatur über Widerstand“:

47.8,  4.5
20.2,  12
4.8,   22.5
-4.4,  33.3
-27.6, 99
-33.2, 132
-40.4, 270

Mit folgendem Gnuplot-Script erhielt ich daraus einen Graphen:

set output './Temperatur über Widerstand.png'
set terminal png size 900,600
set datafile separator ","
set ylabel "R/kΩ"
set xlabel "Temp/°C von HMS 100 T gemessen"
set logscale y
set xtics "10"
plot 'Temperatur über Widerstand' w lp

Nun ersetzte ich die Messwiderstände mit dem Fotowiderstand

A1060 und 2,2kΩ Reihenwiderstand. Damit wird die Helligkeit in einem Bereich von -40,4°C bis ca. 60°C dargestellt. In dunklen Situationen löst der Sensor sehr hoch auf. Leichte Dämmerung bringt das Signal von -40°C auf -20°C. Durch den Reihenwiderstand fehlt diese Dynamik allerdings im oberen Bereich. Direkte Besonnung lässt sich nur schwer erkennen. Ist dies gewünscht, sollte vor den Photowiderstand ein Filter gesetzt werden.

Leave a Comment