Jump to content

MQTT-Message(s) bei Betätigung des Tasters


binderth

Recommended Posts

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?

Link zu diesem Kommentar
Share on other sites

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.

Link zu diesem Kommentar
Share on other sites

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...

Link zu diesem Kommentar
Share on other sites

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`?

Link zu diesem Kommentar
Share on other sites

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.

Link zu diesem Kommentar
Share on other sites

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 von binderth
Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...