Mein Projekt CaSSAndRA zur Steuerung des Ardumowers

Diese Sache könnte man vllt fixen, indem man sagt... Immer wenn ein Fahrbefehl kommt in der comm.cpp, die OP in idle zu ändern. Das wäre vllt der Totschlag workaround. Das würde den Error OP dann einschließen. Also alle Operationen. Danach muss man halt wieder auf start drücken, sollte auch eigentlich so sein.
coole Idee. Das probiere ich aus.
 
Moin,
ok, Cassandra läuft soweit ... sieht eigentlich auch alles schick aus, nur die Verbindung zum Rover will nicht klappen.

2024-06-01 10:42:00 ERROR Backend: Failed to write state data to data frame

Unterm Strich speichert Cassandra die IP des Rovers nicht. Habe ich irgendwelche Pfadangaben vermurkst?
 
jupp, so siehts auch aus bei mir.
Trotzdem keine Verbindung. Ping zum Mäher geht und Sunray App geht auch.

Wird für den Rover und/oder ESP32 ein bestimmter FW-Stand gebraucht?
 
219 habe ich nie getestet, ab 230 muss es funktionieren

P.S. Die Verbindung klappt, die obere Meldung hat eine andere Bedeutung
 
hmm, ok. Dann könnte es an der alten FW liegen. Ist halt auch schon locker 2 - 3 Jahre alt. Sind auch viele Änderungen drinnen, u.a. auch von @Mr. Tree, die nie wirklich in die offizielle FW Einzug gehalten haben. War für mich aber die stabilste FW und er fährt ja auch heute noch sehr gut damit.
ja gut, da muss ich mal schauen was ich da so mache ...
 
Ok, es hat sich nichts im State string zwischen 219 und 230 geändert.

Ich brauche von dir Log Ausgabe von Cassandra in DEBUG Modus

Starte die App wie folgt:
./app.py --app_log_level DEBUG

Und dann einen Ausschnitt wo state delivered implausible string
 
Habe ich gemacht. Von "state delivered implausible string" habe ich nichts gefunden.

/home/pi/CaSSAndRA/CaSSAndRA/./app.py:170: DeprecationWarning: setDaemon() is de precated, set the daemon attribute instead
dash_thread.setDaemon(True)
2024-06-01 18:40:16 INFO Backend: Starting backend server
2024-06-01 18:40:16 DEBUG Backend: Using /home/pi/.cassandra for config and data storage
2024-06-01 18:40:16 INFO Backend: Read communication config file
2024-06-01 18:40:16 DEBUG Backend: commcfg to read: {'USE': 'HTTP', 'MQTT': [{'C LIENT_ID': 'CaSSAndRA'}, {'USERNAME': None}, {'PASSWORD': None}, {'MQTT_SERVER': '192.168.1.1'}, {'PORT': 1883}, {'MOWER_NAME': 'ardumower/Ardumower'}], 'HTTP': [{'IP': 'http://192.168.0.128'}, {'PASSWORD': '123456'}], 'UART': [{'SERPORT': '/dev/ttyACM0'}, {'BAUDRATE': 115200}], 'API': None, 'MQTT_API': [{'CLIENT_ID': 'CaSSAndRA_api'}, {'USERNAME': ''}, {'PASSWORD': ''}, {'MQTT_SERVER': '192.168.1 .1'}, {'PORT': 1883}, {'API_SERVER_NAME': 'myCaSSAndRA'}], 'MESSAGE_SERVICE': No ne, 'TELEGRAM': [{'TOKEN': None}, {'CHAT_ID': None}], 'PUSHOVER': [{'TOKEN': Non e}, {'USER': None}]}
2024-06-01 18:40:16 DEBUG rovercfg to read: {'mowspeed_setpoint': 0.25, 'gotospe ed_setpoint': 0.3, 'positionmode': 'relative', 'lon': 0, 'lat': 0, 'fix_timeout' : 60}
2024-06-01 18:40:16 DEBUG pahtplannercfg to read: {'pattern': 'lines', 'width': 0.18, 'angle': 0, 'distancetoborder': 2, 'mowarea': True, 'mowborder': 0, 'mowex clusion': True, 'mowborderccw': True}
2024-06-01 18:40:16 DEBUG pahtplannercfg to read: {'pattern': 'lines', 'width': 0.18, 'angle': 0, 'distancetoborder': 2, 'mowarea': True, 'mowborder': 0, 'mowex clusion': True, 'mowborderccw': True}
2024-06-01 18:40:16 DEBUG pahtplannercfg to read: {'pattern': 'lines', 'width': 0.18, 'angle': 0, 'distancetoborder': 2, 'mowarea': True, 'mowborder': 0, 'mowex clusion': True, 'mowborderccw': True}
2024-06-01 18:40:16 DEBUG pahtplannercfg to read: {'pattern': 'lines', 'width': 0.18, 'angle': 0, 'distancetoborder': 2, 'mowarea': True, 'mowborder': 0, 'mowex clusion': True, 'mowborderccw': True}
2024-06-01 18:40:16 DEBUG pahtplannercfg to read: {'pattern': 'lines', 'width': 0.18, 'angle': 0, 'distancetoborder': 2, 'mowarea': True, 'mowborder': 0, 'mowex clusion': True, 'mowborderccw': True}
2024-06-01 18:40:16 DEBUG appcfg to read: {'datamaxage': 30, 'time_to_offline': 30, 'voltage_to_soc': [{'V': 22, 'SoC': 0}, {'V': 28, 'SoC': 100}], 'current_thd _charge': -0.03, 'rover_picture': 'ardumower/', 'obstacles_amount': 20, 'light_m ode': True, 'rover_picture_size': 130}
2024-06-01 18:40:16 DEBUG Backend: schedulecfg to read: {'use_schedule': False, 'time_range': [{'monday': [12, 12]}, {'tuesday': [12, 12]}, {'wednesday': [12, 1 2]}, {'thursday': [12, 12]}, {'friday': [12, 12]}, {'saturday': [12, 12]}, {'sun day': [12, 12]}], 'tasks': [{'monday': []}, {'tuesday': []}, {'wednesday': []}, {'thursday': []}, {'friday': []}, {'saturday': []}, {'sunday': []}]}
2024-06-01 18:40:16 INFO Backend: Read saved data
2024-06-01 18:40:16 INFO Backend: State data are loaded successfully
2024-06-01 18:40:16 INFO Backend: Statistics data are loaded successfully
2024-06-01 18:40:16 INFO Backend: Statistics data are loaded successfully
2024-06-01 18:40:16 INFO Backend: Calced data from state are loaded successfully
2024-06-01 18:40:16 INFO Backend: Calced data from stats are loaded successfully
2024-06-01 18:40:16 INFO Backend: Read map data file
2024-06-01 18:40:16 INFO Backend: Saved perimeters are loaded successfully
2024-06-01 18:40:16 INFO Backend: No perimeter selected, go ahead without select ion
2024-06-01 18:40:16 INFO Backend: Read tasks data file
2024-06-01 18:40:16 INFO Backend: Failed to load saved tasks from file
2024-06-01 18:40:16 DEBUG File /home/pi/.cassandra/map/tasks.json does not exist
2024-06-01 18:40:16 DEBUG No tasks to load
2024-06-01 18:40:16 DEBUG No tasks to load
2024-06-01 18:40:16 DEBUG No tasks to load
2024-06-01 18:40:16 DEBUG No tasks to load
2024-06-01 18:40:16 DEBUG No tasks to load
2024-06-01 18:40:16 DEBUG No tasks to load
2024-06-01 18:40:16 DEBUG No tasks to load
2024-06-01 18:40:16 INFO Selected connection HTTP
2024-06-01 18:40:16 INFO Connecting...
2024-06-01 18:40:16 DEBUG Calced checksumme: 0x16
2024-06-01 18:40:16 DEBUG Data to be send: AT+V,0x16
2024-06-01 18:40:16 INFO TX: AT+V,0x16
2024-06-01 18:40:16 DEBUG Starting new HTTP connection (1): 192.168.0.128:80
2024-06-01 18:40:17 DEBUG http://192.168.0.128:80 "POST / HTTP/1.1" 200 40
2024-06-01 18:40:17 DEBUG Status code: 200
2024-06-01 18:40:17 INFO RX: V,Ardumower Sunray,1.0.219 SE,0,0,0xcf

2024-06-01 18:40:17 INFO Starting connection thread
2024-06-01 18:40:17 INFO Backend is successfully started
2024-06-01 18:40:17 INFO Starting thread for data storage
2024-06-01 18:40:17 INFO Starting schedule thread
2024-06-01 18:40:17 INFO Schedule: active: False, job started: False, job finish ed: False, start failed cnt: 0
2024-06-01 18:40:19 INFO Performing get state http-request
2024-06-01 18:40:19 DEBUG Calced checksumme: 0x13
2024-06-01 18:40:19 DEBUG Data to be send: AT+S,0x13
2024-06-01 18:40:19 INFO TX: AT+S,0x13
2024-06-01 18:40:19 DEBUG Starting new HTTP connection (1): 192.168.0.128:80
Dash is running on http://0.0.0.0:8050/

2024-06-01 18:40:19 INFO Dash is running on http://0.0.0.0:8050/

* Serving Flask app 'app'
* Debug mode: off
2024-06-01 18:40:19 ERROR Exception on /_dash-update-component [POST]
Traceback (most recent call last):
File "/usr/local/lib/python3.11/dist-packages/dash/dash.py", line 1255, in dis patch
cb = self.callback_map[output]
~~~~~~~~~~~~~~~~~^^^^^^^^
KeyError: '..button-home.disabled...button-mow-all.disabled...button-shortcut-se lect.disabled...button-goto.disabled...button-cancel.disabled..'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/flask/app.py", line 2525, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/flask/app.py", line 1822, in full_dispatc h_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/flask/app.py", line 1820, in full_dispatc h_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/flask/app.py", line 1796, in dispatch_req uest
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/dash/dash.py", line 1306, in dis patch
raise KeyError(msg) from missing_callback_function
KeyError: "Callback function not found for output '..button-home.disabled...butt on-mow-all.disabled...button-shortcut-select.disabled...button-goto.disabled...b utton-cancel.disabled..', perhaps you forgot to prepend the '@'?"
2024-06-01 18:40:19 ERROR Exception on /_dash-update-component [POST]
Traceback (most recent call last):
File "/usr/local/lib/python3.11/dist-packages/dash/dash.py", line 1255, in dis patch
cb = self.callback_map[output]
~~~~~~~~~~~~~~~~~^^^^^^^^
KeyError: 'speedsetpoint-offcanvas.children'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/flask/app.py", line 2525, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/flask/app.py", line 1822, in full_dispatc h_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/flask/app.py", line 1820, in full_dispatc h_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/flask/app.py", line 1796, in dispatch_req uest
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/dash/dash.py", line 1306, in dis patch
raise KeyError(msg) from missing_callback_function
KeyError: "Callback function not found for output 'speedsetpoint-offcanvas.child ren', perhaps you forgot to prepend the '@'?"
2024-06-01 18:40:19 ERROR Exception on /_dash-update-component [POST]
Traceback (most recent call last):
File "/usr/local/lib/python3.11/dist-packages/dash/dash.py", line 1255, in dis patch
cb = self.callback_map[output]
~~~~~~~~~~~~~~~~~^^^^^^^^
KeyError: 'state-string.children'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/flask/app.py", line 2525, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/flask/app.py", line 1822, in full_dispatc h_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/flask/app.py", line 1820, in full_dispatc h_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/flask/app.py", line 1796, in dispatch_req uest
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/dash/dash.py", line 1306, in dis patch
raise KeyError(msg) from missing_callback_function
KeyError: "Callback function not found for output 'state-string.children', perha ps you forgot to prepend the '@'?"
2024-06-01 18:40:19 ERROR Exception on /_dash-update-component [POST]
Traceback (most recent call last):
File "/usr/local/lib/python3.11/dist-packages/dash/dash.py", line 1255, in dis patch
cb = self.callback_map[output]
~~~~~~~~~~~~~~~~~^^^^^^^^
KeyError: 'modal-info-body.children'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/flask/app.py", line 2525, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/flask/app.py", line 1822, in full_dispatc h_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/flask/app.py", line 1820, in full_dispatc h_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/flask/app.py", line 1796, in dispatch_req uest
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/dash/dash.py", line 1306, in dis patch
raise KeyError(msg) from missing_callback_function
KeyError: "Callback function not found for output 'modal-info-body.children', pe rhaps you forgot to prepend the '@'?"
2024-06-01 18:40:19 ERROR Exception on /_dash-update-component [POST]
Traceback (most recent call last):
File "/usr/local/lib/python3.11/dist-packages/dash/dash.py", line 1255, in dis patch
cb = self.callback_map[output]
~~~~~~~~~~~~~~~~~^^^^^^^^
KeyError: 'modal-error-map-upload.is_open'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/flask/app.py", line 2525, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/flask/app.py", line 1822, in full_dispatc h_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/flask/app.py", line 1820, in full_dispatc h_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/flask/app.py", line 1796, in dispatch_req uest
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/dash/dash.py", line 1306, in dis patch
raise KeyError(msg) from missing_callback_function
KeyError: "Callback function not found for output 'modal-error-map-upload.is_ope n', perhaps you forgot to prepend the '@'?"
2024-06-01 18:40:20 DEBUG http://192.168.0.128:80 "POST / HTTP/1.1" 200 151
2024-06-01 18:40:20 DEBUG Status code: 200
2024-06-01 18:40:20 INFO RX: S,24.66,-5.58,-11.81,2.04,2,0,248,0.13,0,-12.80,-1. 89,0.02,38,0.05,38,-40326,-2.09,33.75,0.01,0.01,0.02,0.00,0.00,0.02,0.02,-0.23,0 .02,0.01,0.00,0x2d
 
Lustig ist, Cassandra scheint doch irgendwie den Mover zu finden.
Läuft Cassandra wird die komplette Karte com Ardumover durcheinander gebracht bzw. GPS haut auch nicht mehr hin.
 
Spitze, ich kann meine Mäher jetzt auf der Karte erkennen. Vielen Dank.

Gibt es eigentlich eine Möglichkeit über Cassandra nur Sunray neu zu starten? Ich sehe da nur die Möglichkeit den Backen Server mit zu starten, dann sind aber der Mähfortschritt und die Map weg.
 
Oben