Skip to content

Cassandra MQTT API mit Statemachine #102

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
marvin78 opened this issue Oct 21, 2023 · 3 comments
Open

Cassandra MQTT API mit Statemachine #102

marvin78 opened this issue Oct 21, 2023 · 3 comments

Comments

@marvin78
Copy link

marvin78 commented Oct 21, 2023

Ich versuche über die API gewisse Vorgänge, wie das Laden einer Map, dann Auswahl von bestimmten Tasks in der Map und danach das Starten des Mähvorgangs zu beschleunigen. Dabei macht die Reihenfolge der Events einige Probleme. Beispiel:

2023-10-21 11:36:44.672 MQTT2_DEVICE CaSSAndRA maps_loaded
2023-10-21 11:36:45.145 MQTT2_DEVICE CaSSAndRA busy
2023-10-21 11:36:51.027 MQTT2_DEVICE CaSSAndRA ready
2023-10-21 11:36:51.040 MQTT2_DEVICE CaSSAndRA robot_target_y: -3.16
2023-10-21 11:36:51.040 MQTT2_DEVICE CaSSAndRA robot_position_y: -2.36
2023-10-21 11:36:51.040 MQTT2_DEVICE CaSSAndRA robot_position_x: -3.45
2023-10-21 11:36:51.054 MQTT2_DEVICE CaSSAndRA maps_loaded: 01_Hauptgarten
2023-10-21 11:36:51.066 MQTT2_DEVICE CaSSAndRA tasks_available_2: 02_hinter_dem_Haus_45
2023-10-21 11:36:51.066 MQTT2_DEVICE CaSSAndRA tasks_available_1: 01_ohne_hinter_dem_Haus_52
2023-10-21 11:36:51.066 MQTT2_DEVICE CaSSAndRA tasks_available_3: 03_hinter_dem_Haus_80

Das sind die Events, die bei einem Mapwechsel kommen. Insbesondere die 3. Zeile mit dem Event "ready" macht Probleme. Ready dürfte nur kommen, wenn der Vorgang abgeschlossen ist danach kommen ja erst die anderen Events für maps_loaded und tasks_available. Das ist für Automatisierungen problematisch. Ready dürfte erst ganz am Schluss kommen und bis dahin müsste der state "busy" bleiben. Ließe sich das so umsetzen, dass ready wirklich nur kommt, wenn ein gestarteter Vorgang beendet wurde?

Am besten wäre dann, wenn ein weiterer Parameter gesendet würde, der sowas heißt, wie "map_loaded" oder "tasks_loaded" um die beiden ready Events in einer Statemachine auch unterscheiden zu können.

@EinEinfach
Copy link
Owner

Das Zielbild ist eigentlich (das funktioniert natürlich noch nicht) dass du aus User Perspektive nichts machen musst. Du schiebst alle Kommandos hinterher weg und Cassandra regelt das für dich. Das einzige worauf du nur achten solltest, dass Cassandra nicht offline ist.

@EinEinfach
Copy link
Owner

Du kannst schon heute alles hinter her wegschicken. Nur nach Maps load solltest du einen Delay einbauen. Je nach Größe der Karte und Anzahl der Exclusionen mal mehr mal weniger. Aber die Zeit kennst du, wenn du die map umschaltest in Cassandra ist das die Zeit bis das Fenster mit der Bestätigung verschwindet

@marvin78
Copy link
Author

Zeit ist nicht nötig. Wäre mir auch zu unsicher. Die Statemachine kann schon jetzt auf das Event reagieren. Das klappt schon. Eindeutiger Events wären mir etwas lieber, aber wenn du sagst, dass CaSSAndRA das bald alles abfängt, bin ich schon zufrieden.

Im übrigen verschwindet das Fenster, zumindest bei mir, nicht. Ich muss mit ok bestätigen. Und auch das Auswahlfenster für Maps muss ich mobil noch wegklicken.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants