binderth Geschrieben December 19, 2022 at 07:26 Geschrieben December 19, 2022 at 07:26 Hi there, ich verwende die WARP2 (aktuelle Firmware 2.0.11) und frage mich, ob es bei Betätigung des Tasters eine weitere Reaktion in den MQTT-Messages gibt, außer `/evse/start` bzw. `/evse/stop`? Ich hätte gern das "Ich habe den Knopf gedrückt"-Event abgefangen für meine smarthome-Steuerung. hintergrund: Ich möchte die Wallbox mit evcc.io soweit "smart" machen, dass ein Druck auf die Taste ein sofortiges Laden (ohne Beschränkung) ermöglicht. Aktuell steuert evcc den Ladevorgang und ein Start-Befehl an der Box wird dann ignoriert. Eine Auswertung eines MQTT-Payloads wäre hier dann super. PS: Gibt es irgendwo eine Modbus-Docu? oder ist hier ein "Ich habe den Knopf gedrückt"-Event abfragbar? Zitieren
rtrbt Geschrieben December 19, 2022 at 09:30 Geschrieben December 19, 2022 at 09:30 Du suchst evse/button_state. Darin bekommst du den letzten Zeitpunkt an dem der Knopf gedrückt und losgelassen wurde, und den aktuellen Zustand (also gedrückt/nicht gedrückt). Damit du keinen Knopfdruck verpasst solltest du am besten den Befehl für sofortiges Laden rausschicken, wenn die button_press_time sich ändert. Wenn du naiv auf button_pressed guckst, kann es passieren, dass ein Knopfdruck verloren geht wenn du schnell genug drückst. 2 hours ago, binderth said: PS: Gibt es irgendwo eine Modbus-Docu? oder ist hier ein "Ich habe den Knopf gedrückt"-Event abfragbar? Modbus-Doku gibt es im Moment im Webinterface selbst und in der Anleitung. Auf der API-Seite auf warp-charger.com fehlt sie im Moment noch. 1 Zitieren
binderth Geschrieben December 19, 2022 at 09:32 Autor Geschrieben December 19, 2022 at 09:32 vor 2 Stunden schrieb binderth: Ich hätte gern das "Ich habe den Knopf gedrückt"-Event abgefangen für meine smarthome-Steuerung. Ich antworte mir mal (halb) selbst. Nach einer Suche konnte ich auf `/evse/button_state` was erkennen: 08:38:56 {"button_press_time":1796502678,"button_release_time":1636009891,"button_pressed":true} 08:38:58 {"button_press_time":1796502678,"button_release_time":1636009891,"button_pressed":false} 08:39:00 {"button_press_time":1796502678,"button_release_time":1796504834,"button_pressed":false} Problem: der Zeitstempel liegt paar Jahre in der Zukunft und ist auch nicht mit heutigem Datum? NTP ist eingestellt, die WARP2 hat auch entsprechend die richtige Uhrzeit im Log und alles... Zitieren
binderth Geschrieben December 19, 2022 at 09:36 Autor Geschrieben December 19, 2022 at 09:36 vor 3 Minuten schrieb rtrbt: Damit du keinen Knopfdruck verpasst solltest du am besten den Befehl für sofortiges Laden rausschicken, wenn die button_press_time sich ändert. hmm. wenn das ms seit Start der Box sind und diese sich aber nach 50 Tagen auf 0 zurücksetzt, ist es schwierig. Dann muss ich den letzten Zustand speichern. Kann denn nicht ein UNIX-Timestamp mitgeschickt werden bei `button_press_time`? Zitieren
rtrbt Geschrieben December 19, 2022 at 10:08 Geschrieben December 19, 2022 at 10:08 28 minutes ago, binderth said: Kann denn nicht ein UNIX-Timestamp mitgeschickt werden bei `button_press_time`? Das solltest du eigentlich nicht brauchen: Die einzige Prüfung die du machen musst ist "ist der neue Wert ungleich dem alten", was das für Zahlen sind ist dann egal. Damit ist auch der Überlauf behandelt. Wenn den alten Wert zu speichern anstrengend ist, kannst du aber auch auf button_pressed prüfen. Das kann aber wie gesagt je nach Timing mal einen Knopfdruck übersehen. Den Timestamp an der Stelle mitzuschicken ist eher kompliziert, weil die Daten direkt vom Ladecontroller durchgereicht werden. Zitieren
binderth Geschrieben December 19, 2022 at 10:38 Autor Geschrieben December 19, 2022 at 10:38 (bearbeitet) vor 30 Minuten schrieb rtrbt: Das solltest du eigentlich nicht brauchen: Die einzige Prüfung die du machen musst ist "ist der neue Wert ungleich dem alten", was das für Zahlen sind ist dann egal. Damit ist auch der Überlauf behandelt. naja, hätte dann stateless geprüft, ob der Zeitstempel innerhalb eines Zeitraums X Sekunden (müsste man prüfen) zum aktuellen Zeitstempel erfolgt ist. vor 30 Minuten schrieb rtrbt: Den Timestamp an der Stelle mitzuschicken ist eher kompliziert, weil die Daten direkt vom Ladecontroller durchgereicht werden. ok, verstehe, wenn der Aufwand höher ist. Aus Anwendersicht wäre es dennoch besser, einen Zeitstempel zu bekommen, der absolut ist und nicht relativ zu unbeeinflussbaren Events? 😀 bearbeitet December 19, 2022 at 10:39 von binderth Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.