Mein Projekt CaSSAndRA zur Steuerung des Ardumowers

Bei mir läuft MQTT durchgehend ohne Probleme

Das glaube ich nicht, HA kann bestimmt auch Standard Webhooks over http

....hmmmm - wenn's bei Dir mit der gleichen HW und Parametern funktioniert, sollte es bei mir ja eigentlich auch funktionieren.

(habe intern die Kabel vom ESP Richtung Board verlängert, vielleicht kommt es da zu einem Timing Problem. (Obwohl es mit MQTT, welches für IoT ausgelegt ist nicht passieren sollte,)... Oder es funktioniert nicht am Donnerstag ;-)

Ich bleibe dran und teste - mit einem eingebauten Relais kann ich jederzeit den gesamten Ardumower resetten - ist aber nicht Sinn der Sache. Und notfalls auf HTTP umstellen (da ist die manuelle Steuerung deutlich schlechter und natürlich die Geschwindigkeit).

Noch gebe ich nicht auf...
 
Zuletzt bearbeitet:
Ich möchte Euch von einem Phänomen berichten, das ich nun schon einige Male beobachten konnte, für das ich keine Erklärung habe.
Wenn der Mower im Mähgebiet gebootet wird (neue FW o.Ä.) kann es schon mal vorkommen, dass es einen False Fix gibt. Es wird Fix angezeigt, die Responsezeit ändert sich ab und An, also Mower und Cassandra sind aktiv. zunächst dachte ich, ich warte und beobachte Cassandra, bis sich der Fix korrigiert. Das kann aber dauern.
Also hab ich mal, so zum Spaß sozusagen, parallel die App geöffnet. Auch hier wird der falsche Standpunkt angezeigt. Aber in ca. einer Sekunde springt der Mower an seinen korrekten Standort. Zurück zu Cassandra und - Tataa: Der Mower steht am korrekten Standort.
Das ist wie gesagt nicht nur einmal passiert. Mower starten. Falscher Standort trotz Fix. Warten und Cassandra beobachten. Nix. Viewer starten. Sofortige Korrektur. Zurück zu Cassandra: Ebenfalls korrigiert.
Kennt das Jemand?

Viele Grüße,
Jürgen
 
@EinEinfach Gäbe es die Möglichkeit, über Cassandra das Docken für einen Task optional zu machen?

Hintergrund: Es gibt bei mir eine Fläche, die nicht über einen Pfad für den Mäher zu erreichen ist. Hier trage ich den Mäher hin und lasse ihn dort mähen. Bisher regle ich das über eine eigene Karte für den Bereich und ein virtuelles Dock, das es nicht gibt (das macht zudem anderen Probleme, aber das hatten wir schon). Nun habe ich mal die Karten verbunden und würde gerne den Kartenwechsel sparen und nur noch mit Tasks arbeiten (der Kartenwechsel ist ohnehin mit dem Dialog und der langen Wartezeit extrem nervig). Leider kann ich dem Mäher auf der Fläche aber keinen zuverlässigen Dockpfad bieten. Den Verbindungsweg gibt es schlicht nicht. Da wäre es gut, wenn man einfach für einen bestimmten Task wählen könnte, ob der Mäher am Ende docken oder bspw. den ersten Punkt ansteuern soll. :)
 
Hat Jemand die Kombination Raspberry Pi Zero mit Adafruit Grand Central via UART zum funktionieren gebracht ?
Der Pi läuft super und mit HTTP und dem ESP32 klappt es einwandfrei aber mit Zero am USB des Grand Central oder auch per GPIO an der Buchse angeschlossen wo sonst der ESP32 hängt , wird nicht miteinander kommuniziert.
 
Hallo,
ist es möglich beim GPS (Solution) noch die Meterangabe anzuzeigen? Würde helfen bei "float" und setzen eines Punktes in der Karte besser einzuschätzen, ob es akzeptabel ist.
Diese Größe ist über MQTT nicht verfügbar, da sie erst später in die Software reinkam und niemand hat es im ESP32 nachgezogen. Ich könnte es in Cassandra anzeigen lassen, im MQTT Mode wird diese allerdings immer auf 0 stehen bleiben
 
Ich habe heute Cassandra mal wieder aktualisiert und nun bekomme ich es nicht mehr zum Laufen. Ich habe keine Ahnung, was ich dabei zerschossen haben könnte. Ich habe es sogar komplett neu installiert und dann die App direkt gestartet.
das Log ist folgendes:

Code:
ardumower@mowerraspi:~/CaSSAndRA/CaSSAndRA $ python3 app.py
2023-08-17 15:14:37 DEBUG Backend: rovercfg to read: {'mowspeed_setpoint': 0.4, 'gotospeed_setpoint': 0.6, 'positionmode': 'relative', 'lon': 0, 'lat': 0}
2023-08-17 15:14:37 DEBUG Backend: pahtplannercfg to read: {'pattern': 'lines', 'width': 0.2, 'angle': 0, 'distancetoborder': 1, 'mowarea': 'yes', 'mowborder': 2, 'mowexclusion': 'yes', 'mowborderccw': 'no'}
2023-08-17 15:14:37 DEBUG Backend: pahtplannercfg to read: {'pattern': 'lines', 'width': 0.2, 'angle': 0, 'distancetoborder': 1, 'mowarea': 'yes', 'mowborder': 2, 'mowexclusion': 'yes', 'mowborderccw': 'no'}
2023-08-17 15:14:37 DEBUG Backend: pahtplannercfg to read: {'pattern': 'lines', 'width': 0.2, 'angle': 0, 'distancetoborder': 1, 'mowarea': 'yes', 'mowborder': 2, 'mowexclusion': 'yes', 'mowborderccw': 'no'}
2023-08-17 15:14:37 DEBUG Backend: pahtplannercfg to read: {'pattern': 'lines', 'width': 0.2, 'angle': 0, 'distancetoborder': 1, 'mowarea': 'yes', 'mowborder': 2, 'mowexclusion': 'yes', 'mowborderccw': 'no'}
2023-08-17 15:14:37 DEBUG Backend: 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/'}
2023-08-17 15:14:38 INFO Backend: Starting backend server
2023-08-17 15:14:38 DEBUG absolute_path: /home/ardumower/CaSSAndRA/CaSSAndRA/src/backend
2023-08-17 15:14:38 INFO Backend: Read communication config file
2023-08-17 15:14:38 DEBUG Opening commcfg.json
2023-08-17 15:14:38 DEBUG Path to commcfg.json: /src/data/user/commcfg.json
2023-08-17 15:14:38 DEBUG commcfg.json content: {'USE': 'HTTP', 'MQTT': [{'CLIENT_ID': 'Ardumower'}, {'USERNAME': None}, {'PASSWORD': None}, {'MQTT_SERVER': '192.168.1.1'}, {'PORT': 1883}, {'MOWER_NAME': 'ardumower/Ardumower'}], 'HTTP': [{'IP': 'http://192.168.1.29'}, {'PASSWORD': '123456'}], 'UART': [{'SERPORT': '/dev/ttyACM0'}, {'BAUDRATE': 115200}]}
2023-08-17 15:14:38 INFO Backend: Used connection: HTTP
2023-08-17 15:14:38 DEBUG Checking connection data
2023-08-17 15:14:38 DEBUG Connection data are valid
2023-08-17 15:14:38 INFO Backend: Read saved data
2023-08-17 15:14:38 INFO Backend: State data are loaded successfully
2023-08-17 15:14:38 INFO Backend: Statistics data are loaded successfully
2023-08-17 15:14:38 INFO Backend: Calced data from state are loaded successfully
2023-08-17 15:14:38 INFO Backend: Calced data from stats are loaded successfully
2023-08-17 15:14:38 INFO Backend: Read map data file
2023-08-17 15:14:38 INFO Backend: Saved perimeters are loaded successfully
2023-08-17 15:14:44 INFO Backend: Create networkx edges for perimeter (A* pathfinder)
2023-08-17 15:14:44 DEBUG NetworkX perimeter edges: 106
2023-08-17 15:14:44 INFO Backend: Create networkx edges for exclusions (A* pathfinder)
2023-08-17 15:14:44 DEBUG NetworkX perimeter + exlusion edges: 273
2023-08-17 15:14:44 INFO Backend: Create networkx edges between exclusions and perimeter (A* pathfinder)
2023-08-17 15:15:05 DEBUG NetworkX perimeter + exclusion + perimeter/exclusion edges: 3094
2023-08-17 15:15:05 INFO Backend: Perimeter name is successfully saved in tmp.json
2023-08-17 15:15:05 INFO Backend: Selected perimeter: mein_garten
2023-08-17 15:15:05 INFO Backend: Read tasks data file
2023-08-17 15:15:05 INFO Backend: Failed to load saved tasks from file
2023-08-17 15:15:05 DEBUG File /home/ardumower/CaSSAndRA/CaSSAndRA/src/data/map/tasks.json does not exist
2023-08-17 15:15:05 INFO Backend: Establishing HTTP connection to the rover
2023-08-17 15:15:05 INFO Backend: Try initial HTTP request
2023-08-17 15:15:05 DEBUG Calced checksumme: 0x16
2023-08-17 15:15:05 DEBUG Data to be send: AT+V,0x16
2023-08-17 15:15:05 DEBUG Starting new HTTP connection (1): 192.168.1.29:80
2023-08-17 15:15:07 WARNING Backend: HTTP-Connection to the rover lost or not possible. Trying to reconnect
2023-08-17 15:15:07 DEBUG HTTPConnectionPool(host='192.168.1.29', port=80): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7fafc25df0>, 'Connection to 192.168.1.29 timed out. (connect timeout=2)'))
2023-08-17 15:15:07 INFO Backend: Starting server thread
2023-08-17 15:15:07 INFO Backend: Backend is successfully started
2023-08-17 15:15:09 INFO Backend: Try initial HTTP request
2023-08-17 15:15:09 DEBUG Calced checksumme: 0x16
2023-08-17 15:15:09 DEBUG Data to be send: AT+V,0x16
2023-08-17 15:15:09 DEBUG Starting new HTTP connection (1): 192.168.1.29:80
Dash is running on http://0.0.0.0:8050/

2023-08-17 15:15:09 INFO Dash is running on http://0.0.0.0:8050/

 * Serving Flask app 'app'
 * Debug mode: off
2023-08-17 15:15:09 ERROR Exception on /_dash-update-component [POST]
Traceback (most recent call last):
  File "/home/ardumower/.local/lib/python3.9/site-packages/dash/dash.py", line 1230, in dispatch
    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 "/home/ardumower/.local/lib/python3.9/site-packages/flask/app.py", line 2190, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/ardumower/.local/lib/python3.9/site-packages/flask/app.py", line 1486, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/ardumower/.local/lib/python3.9/site-packages/flask/app.py", line 1484, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/ardumower/.local/lib/python3.9/site-packages/flask/app.py", line 1469, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/home/ardumower/.local/lib/python3.9/site-packages/dash/dash.py", line 1279, in dispatch
    raise KeyError(msg) from missing_callback_function
KeyError: "Callback function not found for output 'modal-info-body.children', perhaps you forgot to prepend the '@'?"
2023-08-17 15:15:09 ERROR Exception on /_dash-update-component [POST]
Traceback (most recent call last):
  File "/home/ardumower/.local/lib/python3.9/site-packages/dash/dash.py", line 1230, in dispatch
    cb = self.callback_map[output]
KeyError: '..state-map.figure...interval.disabled@9c808abcc9bc812598b8db4ac4a08413..'

Der letzte Teil wiederholt sich dann immer.
 
Danke @EinEinfach, die Fehlermeldung ist weg, ich habe aber i. M. den Mäher nicht mehr an, so dass sich CaSSAndRA nicht verbinden kann.
Ich werde es morgen nochmal probieren und gebe Bescheid.
 
@EinEinfach Hm. Jetzt fährt er gar nicht mehr los. Hier ein Log-Auszug

Code:
2023-08-18 18:01:48 INFO Backend: Try initial HTTP request
2023-08-18 18:01:48 DEBUG Calced checksumme: 0x16
2023-08-18 18:01:48 DEBUG Data to be send: AT+V,0x16
2023-08-18 18:01:48 DEBUG Starting new HTTP connection (1): 10.1.1.108:80
2023-08-18 18:01:48 DEBUG http://10.1.1.108:80 "POST / HTTP/1.1" 200 78
2023-08-18 18:01:48 DEBUG Status code: 200
2023-08-18 18:01:48 DEBUG Content: V,Disaster123-Sunray,1.0.305,0,0,Linux,SR,RM18,1.1.14,96:d0:79:2d:9b:88,0x31
2023-08-18 18:01:49 INFO Backend: Performing get state http-request
2023-08-18 18:01:49 DEBUG Calced checksumme: 0x13
2023-08-18 18:01:49 DEBUG Data to be send: AT+S,0x13
2023-08-18 18:01:49 DEBUG Starting new HTTP connection (1): 10.1.1.108:80
2023-08-18 18:01:49 DEBUG http://10.1.1.108:80 "POST / HTTP/1.1" 200 0
2023-08-18 18:01:49 DEBUG Status code: 200
2023-08-18 18:01:49 DEBUG Content:
2023-08-18 18:01:49 WARNING Backend: HTTP request for state delivered implausible string
2023-08-18 18:01:50 INFO Backend: Try initial HTTP request
2023-08-18 18:01:50 DEBUG Calced checksumme: 0x16
2023-08-18 18:01:50 DEBUG Data to be send: AT+V,0x16
2023-08-18 18:01:50 DEBUG Starting new HTTP connection (1): 10.1.1.108:80
2023-08-18 18:01:50 DEBUG http://10.1.1.108:80 "POST / HTTP/1.1" 200 0
2023-08-18 18:01:50 DEBUG Status code: 200
2023-08-18 18:01:50 DEBUG Content:
2023-08-18 18:01:50 WARNING Backend: Http request for props delivered implausible string
2023-08-18 18:01:50 INFO Backend: Try initial HTTP request
2023-08-18 18:01:50 DEBUG Calced checksumme: 0x16
2023-08-18 18:01:50 DEBUG Data to be send: AT+V,0x16
2023-08-18 18:01:50 DEBUG Starting new HTTP connection (1): 10.1.1.108:80
2023-08-18 18:01:50 DEBUG http://10.1.1.108:80 "POST / HTTP/1.1" 200 78
2023-08-18 18:01:50 DEBUG Status code: 200
2023-08-18 18:01:50 DEBUG Content: V,Disaster123-Sunray,1.0.305,0,0,Linux,SR,RM18,1.1.14,96:d0:79:2d:9b:88,0x31
2023-08-18 18:01:51 INFO Backend: Performing get state http-request
2023-08-18 18:01:51 DEBUG Calced checksumme: 0x13
2023-08-18 18:01:51 DEBUG Data to be send: AT+S,0x13
2023-08-18 18:01:51 DEBUG Starting new HTTP connection (1): 10.1.1.108:80
2023-08-18 18:01:51 DEBUG http://10.1.1.108:80 "POST / HTTP/1.1" 200 0
2023-08-18 18:01:51 DEBUG Status code: 200
2023-08-18 18:01:51 DEBUG Content:
2023-08-18 18:01:51 WARNING Backend: HTTP request for state delivered implausible string
2023-08-18 18:01:52 INFO Backend: Try initial HTTP request
2023-08-18 18:01:52 DEBUG Calced checksumme: 0x16
2023-08-18 18:01:52 DEBUG Data to be send: AT+V,0x16
2023-08-18 18:01:52 DEBUG Starting new HTTP connection (1): 10.1.1.108:80
2023-08-18 18:01:52 DEBUG http://10.1.1.108:80 "POST / HTTP/1.1" 200 0
2023-08-18 18:01:52 DEBUG Status code: 200
2023-08-18 18:01:52 DEBUG Content:
2023-08-18 18:01:52 WARNING Backend: Http request for props delivered implausible string
2023-08-18 18:01:52 INFO Backend: Try initial HTTP request
2023-08-18 18:01:52 DEBUG Calced checksumme: 0x16
2023-08-18 18:01:52 DEBUG Data to be send: AT+V,0x16
2023-08-18 18:01:52 DEBUG Starting new HTTP connection (1): 10.1.1.108:80
2023-08-18 18:01:52 DEBUG http://10.1.1.108:80 "POST / HTTP/1.1" 200 78
2023-08-18 18:01:52 DEBUG Status code: 200
2023-08-18 18:01:52 DEBUG Content: V,Disaster123-Sunray,1.0.305,0,0,Linux,SR,RM18,1.1.14,96:d0:79:2d:9b:88,0x31
2023-08-18 18:01:54 INFO Backend: Performing get state http-request
2023-08-18 18:01:54 DEBUG Calced checksumme: 0x13
2023-08-18 18:01:54 DEBUG Data to be send: AT+S,0x13
2023-08-18 18:01:54 DEBUG Starting new HTTP connection (1): 10.1.1.108:80
2023-08-18 18:01:54 DEBUG http://10.1.1.108:80 "POST / HTTP/1.1" 200 86
2023-08-18 18:01:54 DEBUG Status code: 200
2023-08-18 18:01:54 DEBUG Content: S,29.54,-3.08,8.12,-2.42,2,0,0,0.80,17,-1.82,-3.40,0.02,44,0.42,42,-672935,0.04,0x1c
2023-08-18 18:01:54 DEBUG Recieved checksum:0x1c Calced checksum: 0x1c
2023-08-18 18:01:54 DEBUG AT+S string to short, add dummy timetable day of week and timetable hour
2023-08-18 18:01:54 DEBUG Backend: Calc data from state data frame
2023-08-18 18:01:56 INFO Backend: Performing get state http-request
2023-08-18 18:01:56 DEBUG Calced checksumme: 0x13
2023-08-18 18:01:56 DEBUG Data to be send: AT+S,0x13
2023-08-18 18:01:56 DEBUG Starting new HTTP connection (1): 10.1.1.108:80
2023-08-18 18:01:56 DEBUG http://10.1.1.108:80 "POST / HTTP/1.1" 200 86
2023-08-18 18:01:56 DEBUG Status code: 200
2023-08-18 18:01:56 DEBUG Content: S,29.54,-3.08,8.12,-2.42,2,0,0,0.87,17,-1.82,-3.40,0.02,44,0.42,41,-672935,0.04,0x22
2023-08-18 18:01:56 DEBUG Recieved checksum:0x22 Calced checksum: 0x22
2023-08-18 18:01:56 DEBUG AT+S string to short, add dummy timetable day of week and timetable hour
2023-08-18 18:01:56 DEBUG Backend: Calc data from state data frame
2023-08-18 18:01:58 INFO Backend: Performing get state http-request
2023-08-18 18:01:58 DEBUG Calced checksumme: 0x13
2023-08-18 18:01:58 DEBUG Data to be send: AT+S,0x13
2023-08-18 18:01:58 DEBUG Starting new HTTP connection (1): 10.1.1.108:80
2023-08-18 18:01:58 DEBUG http://10.1.1.108:80 "POST / HTTP/1.1" 200 86
2023-08-18 18:01:58 DEBUG Status code: 200
2023-08-18 18:01:58 DEBUG Content: S,29.53,-3.08,8.12,-2.42,2,0,0,0.21,17,-1.82,-3.40,0.02,44,0.43,41,-672935,0.04,0x16
2023-08-18 18:01:58 DEBUG Recieved checksum:0x16 Calced checksum: 0x16
2023-08-18 18:01:58 DEBUG AT+S string to short, add dummy timetable day of week and timetable hour
2023-08-18 18:01:58 DEBUG Backend: Calc data from state data frame
2023-08-18 18:02:00 INFO Backend: Performing get state http-request
2023-08-18 18:02:00 DEBUG Calced checksumme: 0x13
2023-08-18 18:02:00 DEBUG Data to be send: AT+S,0x13
2023-08-18 18:02:00 DEBUG Starting new HTTP connection (1): 10.1.1.108:80
2023-08-18 18:02:00 DEBUG http://10.1.1.108:80 "POST / HTTP/1.1" 200 86
2023-08-18 18:02:00 DEBUG Status code: 200
2023-08-18 18:02:00 DEBUG Content: S,29.53,-3.08,8.11,-2.42,2,0,0,0.34,17,-1.82,-3.40,0.02,44,0.42,41,-672935,0.04,0x18
2023-08-18 18:02:00 DEBUG Recieved checksum:0x18 Calced checksum: 0x18
2023-08-18 18:02:00 DEBUG AT+S string to short, add dummy timetable day of week and timetable hour
2023-08-18 18:02:00 DEBUG Backend: Calc data from state data frame
 
Oben