CaSSAndRA API

Ok. Man kann bisher nicht über die Api erkennen, welcher Task aktuell abgearbeitet wird und welcher der nächste ist (bei mir sind es immer mehrere). Könnte man das einbauen? Die Frage ist eben, wie man sonst über die HA bspw. die Geschwindigkeit pro Task mitgeben soll!? Ich vernute ja, es geht nicht, da Cassandra das nur über Umwege weiß.

Mir wäre das aktuell nicht wert, alle Tasks (ich habe mehr als 100) neu zu bauen. Mow-Speed verstellen ist schön aber so wichtig nicht.
 
Zuletzt bearbeitet:
Nachdem ich die % eingestellt habe bekomme ich per API kein Resume hin. Er fängt dann den Task immer wieder von vorne an. Welchen Befehl müsste ich da nehmen?
 
Einen hätte ich noch ;)
Wäre es möglich per API den GPS Status abzufragen und ggf. einen GPS Reset durchzuführen?
Hab doch manchmal das Problem, dass er sich unter Bäumen im Float verirrt und erst nach einem GPS Reset wieder Fix bekommt.
 
I would like to say this API and Cassandra is for me making the difference between having a reliable robot and a rather cumbersome project.
It allows to circumvent remaining software issues (resume automatically after "fake" obstacle errors, easily schedule which parts of the lawn to be cut, reboot on demand, ... ). It's not all resolved yet but at least it can function for a few days in a row without babysitting :).

For my personal case, knowing the type of error which gets reported (obstacle, overload, ...) would also be nice but I can live what is available :).

Thanks a lot for all the effort.
 
Wäre es möglich einen erneuten Upload der Map per API auszulösen?
Mein Mäher bleibt immer noch manchmal stehen und resettet sich. Da ich keine SD Card benutze (hat auch oft zum Reset geführt) ist dann die Karte auf dem Grand Central weg. Dann wäre es schön die aktuelle Karte einfach wieder hochzuladen,.den Fortschritt zu setzen und weiter zu machen. Könnte man dann alles schön über Homeassistent/Nodered abarbeiten.
 
@EinEinfach Ich bekomme es nicht hin, die Koordinaten zu holen. Ich setze, wie bei den anderen Kommandos auch

Code:
{"coords":{"command":"update", "value":["current map"]}}

auf das topic api_cmd ab und bekomme keinerlei Rückmeldung. Keinen Fehler aber auch kein coords topic. Mache ich ggf. etwas falsch oder ist da noch ein Bug?

Falls ich was falsch mache, sollte ggf. ein Fehler (error-topic!?) zurückkommen, damit ich das behandeln kann.

Im Log sehe ich im Übrigen nur:

INFO Got message over api: {"coords": {"command": "update", "value": ["current map"]}}

Dann kommt dazu weiter nichts.

Version: 0.126.1
 
Zuletzt bearbeitet:
Ich habe es anhand des Codes herausgefunden: Value ist nicht "current map" sondern "currentMap" (das ist auch sinnvoller). Das ist aber oben falsch dokumentiert.
 
Achtung ab der neuen Version ändern sich die Befehle für Mähparameter und Selection, siehe ersten Post

Attention up current Version the commands for mow parameters and selection have been changed (see first post)
 
Hallo,

ich möchte diese Saison endlich auch die neue API nutzen. Leider funktioniert Sie bei mir nicht zuverlässig - habe es im letzten Jahr versucht sie zuverlässig im Dauerbetrieb laufen zu haben...

Problem: Die API funktioniert nach Neustart von CaSSAndRA eine gewisse Zeit, d.h. im MQTT explorer beispielsweise kommen keine Aktualisierungen mehr an (mal nach 10, mal nach 30 mal nach 40 Minuten). Es hilft nur ein Neustart, dann kommen die Daten wieder für eine gewisse Zeit.

Ardumower sendet weiterhin normal MQTT Daten und ist 100% zuverlässig.

Warum steigt die API aus und sendet nicht mehr weiter - irgendwelche Ideen.

Pyton 3.11
Aktuelleste CaSSAndRA
MQTT user und Passwort für ardumower und API gleich, habe es aber auch schon mit verschiedenen versucht - gleiches Ergebniss...

Beste Dank
 
Hallo nochmal...

Ich habe jetzt zumindest eine Auffälligkeit entdeckt, an dem die Cassandra API aussteigt. Dies passiert auch dann, wenn der Ardumower ausgeschaltet ist und Cassandra auf dem Raspi4 alleine läuft. Wie gesagt - mal nach 1 Stunde, mal nach ein paar Minuten. Anbei die Logs.

Irgendeine Idee?


Ab 11:23 ist die API ausgestiegen, der normale Ardumower MQTT läuft normal weiter...
2025-05-03 11:23:14 INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0
2025-05-03 11:23:25 ERROR Could not create api robot payload.
2025-05-03 11:23:25 ERROR Object of type int64 is not JSON serializable
2025-05-03 11:24:14 INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0

und hier genauso:
2025-05-01 10:13:18 INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0
2025-05-01 10:13:29 ERROR Could not create api robot payload.
2025-05-01 10:13:29 ERROR Object of type int64 is not JSON serializable
2025-05-01 10:14:17 INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0
 
@Ghost hast Du schon eine Ursache gefunden?
Bei mir steigt die Api auch irgendwann aus, laut Mqtt-Explorer kommen aber weiter die Daten an.
Allerdings schreibt bei mir die aktuellste Cassandra-Version immer wieder einen Fehler in der Console. Starte ich Cassandra neu ist der Mäher sofort wieder verbunden. Allerdings habe ich z.B. keine Anzeige der Batteriestatistic in Cassandra über Mqtt, was über http aber geht.


File "/home/wally/.local/lib/python3.10/site-packages/dash/_callback.py", line 442, in add_context
output_value = func(*func_args, **func_kwargs) # %% callback invoked %%
File "/home/wally/ardumower/CaSSAndRA/CaSSAndRA/src/components/state/charts.py", line 250, in update_charts
timerange_delta = timerange_state[1]-timerange_state[0]
TypeError: unsupported operand type(s) for -: 'NoneType' and 'NoneType'
2025-05-31 07:38:55 ERROR Exception on /_dash-update-component [POST]
Traceback (most recent call last):
File "/home/wally/.local/lib/python3.10/site-packages/flask/app.py", line 1473, in wsgi_app
response = self.full_dispatch_request()
File "/home/wally/.local/lib/python3.10/site-packages/flask/app.py", line 882, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/wally/.local/lib/python3.10/site-packages/flask/app.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
File "/home/wally/.local/lib/python3.10/site-packages/flask/app.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
File "/home/wally/.local/lib/python3.10/site-packages/dash/dash.py", line 1310, in dispatch
ctx.run(
File "/home/wally/.local/lib/python3.10/site-packages/dash/_callback.py", line 442, in add_context
output_value = func(*func_args, **func_kwargs) # %% callback invoked %%
File "/home/wally/ardumower/CaSSAndRA/CaSSAndRA/src/components/state/charts.py", line 250, in update_charts
timerange_delta = timerange_state[1]-timerange_state[0]
TypeError: unsupported operand type(s) for -: 'NoneType' and 'NoneType'
 
@Ghost hast Du schon eine Ursache gefunden?
Bei mir steigt die Api auch irgendwann aus, laut Mqtt-Explorer kommen aber weiter die Daten an.
Allerdings schreibt bei mir die aktuellste Cassandra-Version immer wieder einen Fehler in der Console. Starte ich Cassandra neu ist der Mäher sofort wieder verbunden. Allerdings habe ich z.B. keine Anzeige der Batteriestatistic in Cassandra über Mqtt, was über http aber geht.


File "/home/wally/.local/lib/python3.10/site-packages/dash/_callback.py", line 442, in add_context
output_value = func(*func_args, **func_kwargs) # %% callback invoked %%
File "/home/wally/ardumower/CaSSAndRA/CaSSAndRA/src/components/state/charts.py", line 250, in update_charts
timerange_delta = timerange_state[1]-timerange_state[0]
TypeError: unsupported operand type(s) for -: 'NoneType' and 'NoneType'
2025-05-31 07:38:55 ERROR Exception on /_dash-update-component [POST]
Traceback (most recent call last):
File "/home/wally/.local/lib/python3.10/site-packages/flask/app.py", line 1473, in wsgi_app
response = self.full_dispatch_request()
File "/home/wally/.local/lib/python3.10/site-packages/flask/app.py", line 882, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/wally/.local/lib/python3.10/site-packages/flask/app.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
File "/home/wally/.local/lib/python3.10/site-packages/flask/app.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
File "/home/wally/.local/lib/python3.10/site-packages/dash/dash.py", line 1310, in dispatch
ctx.run(
File "/home/wally/.local/lib/python3.10/site-packages/dash/_callback.py", line 442, in add_context
output_value = func(*func_args, **func_kwargs) # %% callback invoked %%
File "/home/wally/ardumower/CaSSAndRA/CaSSAndRA/src/components/state/charts.py", line 250, in update_charts
timerange_delta = timerange_state[1]-timerange_state[0]
TypeError: unsupported operand type(s) for -: 'NoneType' and 'NoneType'
Das API steigt aus Problem habe ich immer noch. Wie geschildert steigt die API nach einer beliebigen Zeit nach Neustart von Cassandra aus - typischerweise zwischen Minuten bis 2-3 Stunden. Danach kommen auch im MQTT Explorer keine API Daten mehr an:

Ab 11:23 ist die API ausgestiegen, der normale Ardumower MQTT läuft normal weiter...
2025-05-03 11:23:14 INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0
2025-05-03 11:23:25 ERROR Could not create api robot payload.
2025-05-03 11:23:25 ERROR Object of type int64 is not JSON serializable
2025-05-03 11:24:14 INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0

Weiterhin kann ich aber den Ardumower über Cassandra mit MQTT steuern. Dies funktioniert zu 100% zuverlässig. Eine Beobachtung ist, wenn Ardumower nicht verbunden ist, die API tendenziell deutlich länger läuft (mehrere Stunden), bis auch irgendwann die API nichts mehr sendet.
 
Oben