Autor Thema: Füllstandsüberwachung mit FHEM  (Gelesen 2445 mal)

Offline housekeeper

  • Full Member
  • ***
  • Beiträge: 162
    • http://Nein
Füllstandsüberwachung mit FHEM
« am: 12 Mai 2013, 11:57:24 »
Vor einiger Zeit habe ich mich entschlossen, unseren Öltank aus der Ferne zu überwachen. Dabei hatte ich weniger den Ölverbrauch, als vielmehr die frühzeitige Entdeckung eines Lecks im Auge.

Nach Durchsicht der über Google erreichbaren Möglichkeiten, habe ich mich zum Erwerb einer ProJET LevelJET - WL ( WL wie wireless ) entschieden.

Das Gerät besteht aus drei Teilen, einem Ultraschall-Sensor, einer Auswerteeinheit mit Netzteil und Sender sowie einer Anzeigeeinheit mit Netzteil und Empfänger.

Obwohl das Teil im 868 MHz Band arbeitet, ist es mit meinen Mitteln ( CUL ) nicht auszuwerten, da ProJET beschlossen hat, das Rad neu zu erfinden, und ein geheimes, proprietäres Verfahren einsetzt.

Allerdings stellt die Anzeigeeinheit über eine 6-polige RJ12 Buchse eine RS232-Schnittstelle mit TTL-Pegel bereit. Mit Hilfe eines geeigneten Kabels und eines RS232 zu USB Wandlers läßt sich das Datentelegramm an eine Fritz!Box oder sonstige Hardware übermitteln.

Die Auswertung und Anzeige in FHEM habe ich hier beschrieben.

Da die Auswertung mit Perl auf der Fritz!Box (für mich) zu instabilen Verhältnissen geführt hat, habe ich mich entschieden, das Ganze in ein Shell-Skript auszulagern, das von FHEM gestartet wird und im Hintergrund läuft.

Allerdings stößt die Umwandlung von Binärdaten in Hex schnell an die Grenzen der von AVM gelieferten Busybox ( kein hexdump ), so daß ich bei der Gelegenheit ein wenig "gefreetzt", und mir eine Standalone Vollversion der Busybox ( Fritz!Box 7390 !! ) gebaut habe.

In FHEM habe ich ein Dummy-Gerät angelegt

define LevelJet dummy

das von dem Skript in Abständen gesetzt wird. Gestartet wird das Skript über ein notify Gerät

define initialReadLevelJet notify global:INITIALIZED ". ./bin/fhem-readleveljet"

Da FHEM Shell-Skripte automatisch im Hintergrund ablaufen läßt, habe ich hier die Shell include Funktion (".") verwendet.

Das Skript hängt unten an, die Busybox auch. Stückliste ist im Skript integriert.

Das Ganze funktioniert natürlich auch für Wasser oder andere Flüssigkeiten.

Viel Erfolg!

housekeeper