Manchmal funktioniert eine technische Lösung genau so, wie man sich das vorgestellt hat. Und trotzdem ist sie am Ende nicht die richtige. Willkommen in meinem Smart Home.
Vor Kurzem habe ich hier im Blog beschrieben, wie sich der Kamstrup flowIQ 2200 mit einem ESP8266, einem optischen IR-Lesekopf und Tasmota auslesen lässt. Das Ganze funktionierte erstaunlich gut. Zählerstand abfragen, Batterierestlaufzeit auslesen, Werte per MQTT ins Smart Home übertragen. Alles lokal, ohne Cloud und ohne die freundliche Unterstützung meines Wasserversorgers.
Eigentlich perfekt. Eigentlich. Denn nach ungefähr eineinhalb Tagen habe ich das Experiment wieder beendet. Nicht, weil etwas nicht funktioniert hätte, sondern weil mir eine ganz bestimmte Frage keine Ruhe gelassen hat: Wie lange macht die Batterie des Wasserzählers das eigentlich mit?
Wenn eine funktionierende Lösung trotzdem Bauchschmerzen macht
Der Kamstrup flowIQ 2200 ist ein batteriebetriebener Wasserzähler. Seine Energieversorgung ist darauf ausgelegt, über viele Jahre zuverlässig zu funktionieren. Schließlich möchte niemand regelmäßig seinen Wasserversorger anrufen müssen, weil der digitale Wasserzähler plötzlich keine Lust mehr hat.
Für meine Tasmota-Lösung hatte ich die optische Schnittstelle alle 120 Sekunden angesprochen. Dabei wurden sowohl der aktuelle Zählerstand als auch die geschätzte verbleibende Batterielaufzeit abgefragt. Das hat funktioniert und in meinen ungefähr eineinhalb Tagen Testbetrieb konnte ich jedenfalls keine Probleme feststellen. Allerdings ist da ein kleiner Unterschied zwischen „funktioniert eineinhalb Tage“ und „funktioniert die nächsten zehn oder fünfzehn Jahre“.
Jede aktive Kommunikation benötigt Energie. Und während es meinem ESP8266 ziemlich egal ist, wie oft er über die serielle Schnittstelle irgendwelche Daten verschickt, sieht das beim Wasserzähler etwas anders aus. Der hängt schließlich nicht am Netzteil, sondern an seiner internen Batterie. Wie stark die regelmäßigen IR-Abfragen die tatsächliche Batterielebensdauer beeinflussen, kann ich nicht zuverlässig beziffern. Vielleicht wäre der zusätzliche Verbrauch kaum relevant gewesen, vielleicht hätte ich dem Zähler damit aber auch einen Teil seiner vorgesehenen Lebensdauer genommen. Und genau dieses „Vielleicht“ hat mich gestört.
Die Sache mit der schlafenden Schnittstelle
In den Kommentaren zu meinem ursprünglichen Beitrag kam außerdem eine interessante Frage auf: Schaltet der Kamstrup seine optische Schnittstelle nach einiger Zeit automatisch ab? Offenbar gibt es entsprechende Erfahrungen mit bestimmten Geräten, bei denen die Schnittstelle nach einer gewissen Zeit nicht mehr auf Abfragen reagieren soll. Ich hatte zuvor Hinweise gefunden, dass sich dieses Verhalten möglicherweise durch ausreichend kurze Abfrageintervalle vermeiden lässt. Auch unterschiedliche Modellvarianten des flowIQ 2200 könnten dabei eine Rolle spielen.
Bei meinem eigenen Test ist die Schnittstelle jedenfalls nicht eingeschlafen. Allerdings lief das Ganze, wie gesagt, nur ungefähr eineinhalb Tage, sodass ich daraus keine belastbare Aussage zum Dauerbetrieb ableiten kann. Und wenn man sich das einmal überlegt, wird die Sache ohnehin etwas merkwürdig: Da versucht man möglicherweise, eine Schnittstelle durch regelmäßige Kommunikation wachzuhalten, während man gleichzeitig hofft, dass genau diese Kommunikation die Batterie nicht nennenswert belastet. Technisch interessant ist das auf jeden Fall, eine Lösung, bei der ich nachts besonders ruhig schlafe, aber eher nicht.
Warum nicht einfach den Zähler fotografieren?
Irgendwann kam dann die eigentlich naheliegende Frage auf: Warum muss ich überhaupt mit dem Wasserzähler kommunizieren? Der aktuelle Zählerstand steht doch schließlich direkt auf seinem Display. Statt den Wasserzähler alle zwei Minuten per Infrarot nach seinem Verbrauch zu fragen, könnte ich doch einfach das ablesen, was er ohnehin anzeigt.

Und damit sind wir bei AI on the Edge Device. Das Open-Source-Projekt verfolgt einen ziemlich cleveren Ansatz: Eine kleine Kamera („ESP32Cam“) fotografiert die Anzeige eines Zählers und anschließend wird der angezeigte Wert direkt auf einem Mikrocontroller mithilfe einer Bilderkennung ausgewertet. Das funktioniert beispielsweise mit Wasserzählern, Stromzählern oder anderen Messgeräten, deren Werte auf einem Display oder Zählwerk sichtbar sind. Man macht also im Grunde genau das, was man früher selbst gemacht hat: auf den Zähler schauen und den Wert ablesen. Nur eben automatisch und ohne dafür jedes Mal mit einer Taschenlampe in den Keller zu laufen.
AI on the Edge statt aktiver IR-Kommunikation
Der entscheidende Unterschied zu meiner ursprünglichen Tasmota-Lösung ist die Art, wie die Daten erfasst werden. Bei Tasmota habe ich den Kamstrup aktiv über seine optische Schnittstelle angesprochen. Der Wasserzähler musste die Anfrage verarbeiten und eine entsprechende Antwort liefern. Bei AI on the Edge wird dagegen die ohnehin vorhandene Anzeige optisch erfasst. Der Wasserzähler muss dazu keine zusätzlichen Datentelegramme erzeugen oder irgendwelche Register auslesen, denn die eigentliche Arbeit übernimmt die externe Hardware.
Natürlich benötigt auch diese Lösung Strom. Kamera, Mikrocontroller und Bilderkennung laufen schließlich nicht mit Luft und Liebe. Allerdings stammt diese Energie nicht aus der internen Batterie des Wasserzählers. Der Wasserzähler wird damit nicht mehr aktiv ausgelesen, sondern lediglich beobachtet. Und genau das ist für mich der entscheidende Vorteil.
Eine wichtige Einschränkung gibt es dabei allerdings: Auch ein elektronisches Display benötigt natürlich Energie und nicht jedes Display zeigt seinen Wert dauerhaft an. Entscheidend ist deshalb, dass der Zählerstand ohne zusätzliche Aktivierung durch die externe Hardware sichtbar und zuverlässig fotografierbar ist. Es geht mir also nicht darum, dass die neue Lösung überhaupt keinen Strom verbraucht, sondern darum, die Energieversorgung des Wasserzählers möglichst in Ruhe zu lassen.
Funktioniert das auch mit einem digitalen Wasserzähler?
AI on the Edge ist ursprünglich vor allem für die optische Erfassung von Zählerständen bekannt, beispielsweise von klassischen mechanischen Wasserzählern mit Zahlenrollen. Der Kamstrup flowIQ 2200 besitzt dagegen eine digitale Anzeige, aber das grundsätzliche Prinzip bleibt gleich: Die Kamera nimmt ein Bild auf und die Bilderkennung versucht, daraus den angezeigten Zahlenwert zu ermitteln.

Bei mir funktioniert das inzwischen sehr gut. Der Zählerstand lässt sich auf diese Weise erfassen, ohne dass ich die optische Kommunikationsschnittstelle des Kamstrup verwenden muss. Für mein Smart Home ist schließlich nicht entscheidend, auf welchem technischen Weg die Zahl ermittelt wird. Entscheidend ist, dass ich einen zuverlässigen Zählerstand erhalte, den ich anschließend weiterverarbeiten kann.
Die Bilderkennung ist dabei natürlich nicht grundsätzlich unfehlbar. Schlechte Beleuchtung, Reflexionen, eine ungünstige Kameraposition oder Veränderungen an der Anzeige können zu fehlerhaften Erkennungen führen. Aber das sind Probleme, die ich an meiner eigenen Hardware beheben kann, und das ist mir deutlich lieber, als über die mögliche Restlebensdauer einer fest verbauten Zählerbatterie nachzudenken.
Und was wird jetzt aus meiner Tasmota-Anleitung?
Die bleibt selbstverständlich online, denn die ursprüngliche Lösung funktioniert. Wer einen Kamstrup flowIQ 2200 über die optische Schnittstelle auslesen möchte, findet dort weiterhin die notwendigen Informationen zur Verkabelung, zur Kommunikation und zum Tasmota-Skript. Ich möchte damit lediglich eine wichtige Ergänzung zu meinem ursprünglichen Beitrag liefern: Nur weil sich etwas technisch umsetzen lässt, bedeutet das nicht automatisch, dass es auch die beste Lösung für den dauerhaften Betrieb ist.
Wie stark regelmäßige Abfragen über die optische Schnittstelle die Batterielebensdauer tatsächlich beeinflussen, weiß ich nicht. Und ich möchte auch nicht behaupten, dass mein ursprünglicher Ansatz die Batterie zwangsläufig vorzeitig entladen hätte. Mir persönlich war das Risiko beziehungsweise die Unsicherheit aber schlicht zu groß, zumal es inzwischen eine Alternative gibt, die für meinen Anwendungsfall sehr gut funktioniert.
Fazit: Manchmal ist weniger Kommunikation mehr
Mein kleiner Ausflug in die Kamstrup-Kommunikation war trotzdem alles andere als umsonst. Im Gegenteil: Ich habe einiges über das KMP-Protokoll, die optische Schnittstelle und die Verarbeitung der Messwerte mit Tasmota gelernt. Und ganz nebenbei gezeigt, dass sich der Zähler auch ohne den vom Wasserversorger verweigerten AES-Schlüssel auslesen lässt. Das war durchaus befriedigend.
Für den dauerhaften Betrieb habe ich mich nun aber für AI on the Edge entschieden. Keine regelmäßigen IR-Abfragen mehr, kein Versuch, eine Schnittstelle dauerhaft wachzuhalten und vor allem keine zusätzlichen aktiven Kommunikationsvorgänge, die möglicherweise an der Batterie meines Wasserzählers zehren. Stattdessen schaut eine Kamera auf das Display und überlässt dem Wasserzähler ansonsten seine Ruhe.
Manchmal ist die einfachere Lösung eben nicht diejenige mit dem interessanteren Protokoll, sondern diejenige, die einfach nur hinschaut.
Weiterführende Links:

Schreibe einen Kommentar