Den Füllstand einer Zisterne zu überwachen, klingt einfach? Ist es eigentlich auch: ein Ultraschallsensor und gut. Nein – das kann funktionieren, muss aber nicht. Genauso ist es mit ToF-Sensoren. In meinem Fall war alles Murks: Die Sensoren fielen aus oder lieferten sporadisch Quatsch.
So bin ich nach einigem Suchen auf den QDY30A in der RS485-Version gestoßen. Standardmäßig liefert er direkt über eine Adresse die Druckhöhe in Millimetern – abhängig von der jeweiligen Variante.
Tasmota unterstützt den Sensor nicht von Haus aus. Kompiliert man Tasmota aber mit der Option
#define USE_MODBUS_BRIDGE, kann man den Sensor anschließend entweder über MQTT oder mit einer Rule abfragen.
Vorab den Modbus über die Konsole konfigurieren:ModbusSerialConfig 8N1
ModbusBaudrate 9600
Die Rule dazu:
Rule1
ON System#Boot DO RuleTimer1 5 ENDON
ON Rules#Timer=1 DO backlog RuleTimer1 5; ModbusSend {"deviceAddress":1, "functionCode": 3, "startAddress": 4, "type":"int16", "count": 1} ENDON
ON ModbusReceived#Values[1]>20 Do power1 1 ENDON
ON ModbusReceived#Values[1]<10 Do power1 0 ENDON
ON ModbusReceived#Values[1] DO backlog var1 %value%; event senddistance ENDON
ON event#senddistance DO backlog SCALE1 %var1%, 0, 1000, 0, 100; event pubdata ENDON
ON event#pubdata DO publish tele/sonoff/SENSOR %var1% ENDON
Diese Rule ist für einen Sensor ausgelegt, der eine Tiefe von 1 m misst. Sie muss entsprechend an den eigenen Sensor angepasst werden.
Hier das Schaltschema des Sensors:

Dazu braucht es noch eine RS485-TTL-Platine. Diese wird in meinem Fall mit TX und RX an TX und RX des Sonoff Basic angeschlossen. GND ist klar, VCC kommt an die 3,3-V-Versorgung. Bei einem ESP ist es wichtig, VCC an 3,3 V anzuschließen, da sonst die TTL-Pegel nicht stimmen.

Außerdem braucht man einen Buck-Boost-Konverter, da der ESP, Sonoff oder was auch immer nur 3,3 beziehungsweise 5 V liefert, der Sensor aber 24 V benötigt. Dieser wird an 3,3/5 V und GND angeschlossen. Bevor man den Sensor anschließt, den Booster noch auf 24 V einstellen.

Hier noch das Modbus-Protokoll:

Schreibe einen Kommentar