Probleme mit Mähstart seit SD-Karten-Tausch im Alfred - Vor jedem Mähvorgang ist Cassandra Neustart nötig

skippa1978

Active member
Ich musste vor ein paar Tagen für Alfred eine neue SD Karte aufsetzen. Das funktionierte auch prima und ich habe ein Update auf die aktuelle Version von Sunray gemacht.

Leider ist es seitdem so, dass ich Cassandra nach jedem Mähvorgang neu starten muss, um einen weiteren zu starten. Dabei wird die Karte aufgebaut, es gibt aber keinen Map Upload und der Mähvorgang wird nicht gestartet. Cassandra sagt direkt wieder "docked".

Das Log sieht um die Zeit des gewollten Starts so aus:

Code:
2024-10-15 13:06:23    INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0
2024-10-15 13:05:23    INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0
2024-10-15 13:04:23    INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0
2024-10-15 13:03:44    INFO Backend: Route calculation from task done
2024-10-15 13:03:44    INFO Backend: Turning shapely figure: LineString Angle: 52.0
2024-10-15 13:03:44    INFO Coverage path planner (calc lines): No more way to calculate, ending loop
2024-10-15 13:03:43    INFO Coverage path planner (calc lines): Starting loop
2024-10-15 13:03:43    INFO Coverage path planner (lines): Start coverage path planner
2024-10-15 13:03:43    INFO Backend: Create line mask
2024-10-15 13:03:43    INFO Coverage path planner (planing route for cut to edge): Calculation finished
2024-10-15 13:03:43    INFO Backend: Calc route for cutedge
2024-10-15 13:03:43    INFO Backend: Create area to mow
2024-10-15 13:03:43    INFO Backend: Turning shapely figure: Polygon Angle: -52.0
2024-10-15 13:03:43    INFO Backend: Turning shapely figure: Polygon Angle: -52.0
2024-10-15 13:03:43    INFO Backend: Turning shapely figure: Point Angle: -52.0
2024-10-15 13:03:43    INFO Rover start position: (0.21133188607152248, -0.1477230709588758)
2024-10-15 13:03:43    INFO PathPlannerCfg(pattern='lines', width=0.18, angle=52.0, distancetoborder=2, mowarea=True, mowborder=2, mowexclusion=True, mowborderccw=True)
2024-10-15 13:03:43    INFO Backend: Planning route:
2024-10-15 13:03:43    INFO Selection lasso detected. Create a new perimeter with lasso select.
2024-10-15 13:03:43    INFO Check for selection and create a new perimter if there
2024-10-15 13:03:43    INFO Backend: Turning shapely figure: LineString Angle: 52.0
2024-10-15 13:03:43    INFO Coverage path planner (calc lines): No more way to calculate, ending loop
2024-10-15 13:03:42    INFO Coverage path planner (calc lines): Starting loop
2024-10-15 13:03:42    INFO Coverage path planner (lines): Start coverage path planner
2024-10-15 13:03:42    INFO Backend: Create line mask
2024-10-15 13:03:42    INFO Coverage path planner (planing route for cut to edge): Calculation finished
2024-10-15 13:03:42    INFO Backend: Calc route for cutedge
2024-10-15 13:03:42    INFO Backend: Create area to mow
2024-10-15 13:03:42    INFO Backend: Turning shapely figure: Polygon Angle: -52.0
2024-10-15 13:03:42    INFO Backend: Turning shapely figure: Polygon Angle: -52.0
2024-10-15 13:03:42    INFO Backend: Turning shapely figure: Point Angle: -52.0
2024-10-15 13:03:42    INFO Rover start position: (-4.42887503312958, -12.01070722736298)
2024-10-15 13:03:42    INFO PathPlannerCfg(pattern='lines', width=0.18, angle=52.0, distancetoborder=2, mowarea=True, mowborder=2, mowexclusion=True, mowborderccw=True)
2024-10-15 13:03:42    INFO Backend: Planning route:
2024-10-15 13:03:42    INFO Selection lasso detected. Create a new perimeter with lasso select.
2024-10-15 13:03:42    INFO Check for selection and create a new perimter if there
2024-10-15 13:03:42    INFO Backend: Turning shapely figure: LineString Angle: 55.0
2024-10-15 13:03:42    INFO Coverage path planner (calc lines): No more way to calculate, ending loop
2024-10-15 13:03:42    INFO Coverage path planner (calc lines): Starting loop
2024-10-15 13:03:42    INFO Coverage path planner (lines): Start coverage path planner
2024-10-15 13:03:42    INFO Backend: Create line mask
2024-10-15 13:03:42    INFO Coverage path planner (planing route for cut to edge): Calculation finished
2024-10-15 13:03:42    INFO Backend: Calc route for cutedge
2024-10-15 13:03:42    INFO Backend: Create area to mow
2024-10-15 13:03:42    INFO Backend: Turning shapely figure: Polygon Angle: -55.0
2024-10-15 13:03:42    INFO Backend: Turning shapely figure: Polygon Angle: -55.0
2024-10-15 13:03:42    INFO Backend: Turning shapely figure: Point Angle: -55.0
2024-10-15 13:03:42    INFO Rover start position: (-1.3966415736973727, -17.347787975139283)
2024-10-15 13:03:42    INFO PathPlannerCfg(pattern='lines', width=0.18, angle=55.0, distancetoborder=2, mowarea=True, mowborder=2, mowexclusion=True, mowborderccw=True)
2024-10-15 13:03:42    INFO Backend: Planning route:
2024-10-15 13:03:42    INFO Selection lasso detected. Create a new perimeter with lasso select.
2024-10-15 13:03:42    INFO Check for selection and create a new perimter if there
2024-10-15 13:03:42    INFO Backend: Turning shapely figure: LineString Angle: 165.0
2024-10-15 13:03:42    INFO Coverage path planner (calc lines): No more way to calculate, ending loop
2024-10-15 13:03:41    INFO Coverage path planner (calc lines): Starting loop
2024-10-15 13:03:41    INFO Coverage path planner (lines): Start coverage path planner
2024-10-15 13:03:41    INFO Backend: Create line mask
2024-10-15 13:03:41    INFO Coverage path planner (planing route for cut to edge): Calculation finished
2024-10-15 13:03:41    INFO Backend: Calc route for cutedge
2024-10-15 13:03:41    INFO Backend: Create area to mow
2024-10-15 13:03:41    INFO Backend: Turning shapely figure: Polygon Angle: -165.0
2024-10-15 13:03:41    INFO Backend: Turning shapely figure: Polygon Angle: -165.0
2024-10-15 13:03:41    INFO Backend: Turning shapely figure: Point Angle: -165.0
2024-10-15 13:03:41    INFO Rover start position: (9.387650157311965, -19.02311483063617)
2024-10-15 13:03:41    INFO PathPlannerCfg(pattern='lines', width=0.18, angle=165.0, distancetoborder=2, mowarea=True, mowborder=2, mowexclusion=True, mowborderccw=True)
2024-10-15 13:03:41    INFO Backend: Planning route:
2024-10-15 13:03:41    INFO Selection lasso detected. Create a new perimeter with lasso select.
2024-10-15 13:03:41    INFO Check for selection and create a new perimter if there
2024-10-15 13:03:41    INFO Backend: Turning shapely figure: LineString Angle: 80.0
2024-10-15 13:03:41    INFO Coverage path planner (calc lines): No more way to calculate, ending loop
2024-10-15 13:03:40    INFO Coverage path planner (calc lines): Starting loop
2024-10-15 13:03:40    INFO Coverage path planner (lines): Start coverage path planner
2024-10-15 13:03:40    INFO Backend: Create line mask
2024-10-15 13:03:40    INFO Coverage path planner (planing route for cut to edge): Calculation finished
2024-10-15 13:03:40    INFO Backend: Calc route for cutedge
2024-10-15 13:03:40    INFO Backend: Create area to mow
2024-10-15 13:03:40    INFO Backend: Turning shapely figure: Polygon Angle: -80.0
2024-10-15 13:03:40    INFO Backend: Turning shapely figure: Polygon Angle: -80.0
2024-10-15 13:03:40    INFO Backend: Turning shapely figure: Point Angle: -80.0
2024-10-15 13:03:40    INFO Rover start position: [-0.9885148976, -3.3360393392]
2024-10-15 13:03:40    INFO PathPlannerCfg(pattern='lines', width=0.18, angle=80.0, distancetoborder=2, mowarea=True, mowborder=2, mowexclusion=True, mowborderccw=False)
2024-10-15 13:03:40    INFO Backend: Planning route:
2024-10-15 13:03:40    INFO Start poisition is within perimeter
2024-10-15 13:03:40    INFO Calc start position
2024-10-15 13:03:40    INFO Selection lasso detected. Create a new perimeter with lasso select.
2024-10-15 13:03:40    INFO Check for selection and create a new perimter if there
2024-10-15 13:03:40    INFO Start poisition is within perimeter
2024-10-15 13:03:40    INFO Calc start position
2024-10-15 13:03:40    INFO Backend: Create route from task
2024-10-15 13:03:29    ERROR Exception on /_dash-update-component [POST]
2024-10-15 13:03:23    INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0
2024-10-15 13:02:50    ERROR Exception on /_dash-update-component [POST]
2024-10-15 13:02:50    ERROR Exception on /_dash-update-component [POST]
2024-10-15 13:02:23    INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0

Insbesondere diese Meldungen sind offenbar seltsam:

Code:
2024-10-15 13:09:17    INFO TX: t(^'_cLdf


Code:
2024-10-15 13:03:29    ERROR Exception on /_dash-update-component [POST]

Cassandra ist aktuell: 0.131.3

Was kann die Ursache sein?
 
Zuletzt bearbeitet:
2024-10-15 13:09:17 INFO TX: t(^'_cLdf
Die Meldung ist normal, du hast anscheinend versclüsselte Kommunikation in der config.h gewählt

2024-10-15 13:06:23 INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0 2024-10-15 13:05:23 INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0 2024-10-15 13:04:23 INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0 2024-10-15 13:03:44
Aus diesen 3 Zeilen entnehme ich, dass Cassandra läuft, aber keine Kommunikation zum Rover besteht, da muss viel mehr zwischendurch passieren
 
Früher hat CaSSAndRA den Mäher in solchen Fällen als Offline angezeigt. Die Frage ist auch, warum ein Neustart von CaSSAndRA (nicht von Sunray) das Problem behebt. CaSSAndRA habe ich übrigens am selben Tag aktualisiert, an dem auch der SD-Kartenwechsel stattfand. Der von dir herausgehobene Logeintrag kommt häufig vor. Auch wenn eine Kommunikation stattfindet.
 
Früher hat CaSSAndRA den Mäher in solchen Fällen als Offline angezeigt. Die Frage ist auch, warum ein Neustart von CaSSAndRA (nicht von Sunray) das Problem behebt. CaSSAndRA habe ich übrigens am selben Tag aktualisiert, an dem auch der SD-Kartenwechsel stattfand. Der von dir herausgehobene Logeintrag kommt häufig vor. Auch wenn eine Kommunikation stattfindet.
Wechsele auf eine frühere Version, ich habe letzte Zeit eine Menge an der Api geändert, evtl. ist da irgendwo ein Bug

Interessant ist die Stelle bevor diese Zeilen am laufendem band kommen:
2024-10-15 13:06:23 INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0
2024-10-15 13:05:23 INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0
2024-10-15 13:04:23 INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0
 
Ich habe es ggf. gefunden. Um 0 Uhr geht es los. Das Problem liegt im Threading, denke ich. Und wenn ich mir das so ansehe: Ich bekomme auch keine Statistiken mehr. Das war mir bisher noch nicht aufgefallen. Es hat also gar nichts mit dem Mähvorgang zu tun. Das hatte ich tatsächlich auch nur vermutet:

Code:
Oct 16 00:00:02 cassandra python3[1172887]: 2024-10-16 00:00:02 INFO Backend: RX S2,0,0xe1
Oct 16 00:00:02 cassandra python3[1172887]: 2024-10-16 00:00:02 INFO Backend: Cleaning meausered and calced data. Max age: 10 days
Oct 16 00:00:02 cassandra python3[1172887]: Exception in thread connection:
Oct 16 00:00:02 cassandra python3[1172887]: Traceback (most recent call last):
Oct 16 00:00:02 cassandra python3[1172887]:   File "/usr/lib/python3.11/threading.py", line 1038, in _bootstrap_inner
Oct 16 00:00:02 cassandra python3[1172887]:     self.run()
Oct 16 00:00:02 cassandra python3[1172887]:   File "/usr/lib/python3.11/threading.py", line 975, in run
Oct 16 00:00:02 cassandra python3[1172887]:     self._target(*self._args, **self._kwargs)
Oct 16 00:00:02 cassandra python3[1172887]:   File "/home/cassandra/CaSSAndRA/CaSSAndRA/src/backend/backendserver.py", line 128, in connect_http
Oct 16 00:00:02 cassandra python3[1172887]:     data_clean_finished = cleandata.check(data_clean_finished)
Oct 16 00:00:02 cassandra python3[1172887]:                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 16 00:00:02 cassandra python3[1172887]:   File "/home/cassandra/CaSSAndRA/CaSSAndRA/src/backend/data/cleandata.py", line 19, in check
Oct 16 00:00:02 cassandra python3[1172887]:     state = roverdata.state[(roverdata.state['timestamp'] > delta_time)]
Oct 16 00:00:02 cassandra python3[1172887]:                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 16 00:00:02 cassandra python3[1172887]:   File "/home/cassandra/.local/lib/python3.11/site-packages/pandas/core/ops/common.py", line 81, in new_method
Oct 16 00:00:02 cassandra python3[1172887]:     return method(self, other)
Oct 16 00:00:02 cassandra python3[1172887]:            ^^^^^^^^^^^^^^^^^^^
Oct 16 00:00:02 cassandra python3[1172887]:   File "/home/cassandra/.local/lib/python3.11/site-packages/pandas/core/arraylike.py", line 56, in __gt__
Oct 16 00:00:02 cassandra python3[1172887]:     return self._cmp_method(other, operator.gt)
Oct 16 00:00:02 cassandra python3[1172887]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 16 00:00:02 cassandra python3[1172887]:   File "/home/cassandra/.local/lib/python3.11/site-packages/pandas/core/series.py", line 6092, in _cmp_method
Oct 16 00:00:02 cassandra python3[1172887]:     res_values = ops.comparison_op(lvalues, rvalues, op)
Oct 16 00:00:02 cassandra python3[1172887]:                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 16 00:00:02 cassandra python3[1172887]:   File "/home/cassandra/.local/lib/python3.11/site-packages/pandas/core/ops/array_ops.py", line 293, in comparison_op
Oct 16 00:00:02 cassandra python3[1172887]:     res_values = comp_method_OBJECT_ARRAY(op, lvalues, rvalues)
Oct 16 00:00:02 cassandra python3[1172887]:                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 16 00:00:02 cassandra python3[1172887]:   File "/home/cassandra/.local/lib/python3.11/site-packages/pandas/core/ops/array_ops.py", line 82, in comp_method_OBJECT_ARRAY
Oct 16 00:00:02 cassandra python3[1172887]:     result = libops.scalar_compare(x.ravel(), y, op)
Oct 16 00:00:02 cassandra python3[1172887]:              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 16 00:00:02 cassandra python3[1172887]:   File "pandas/_libs/ops.pyx", line 107, in pandas._libs.ops.scalar_compare
Oct 16 00:00:02 cassandra python3[1172887]: TypeError: '>' not supported between instances of 'Timestamp' and 'str'
Oct 16 00:00:12 cassandra python3[1172887]: 2024-10-16 00:00:12 INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0
Oct 16 00:00:12 cassandra python3[1172887]: 2024-10-16 00:00:12 INFO New day, set weekday to: 2
Oct 16 00:00:32 cassandra systemd[1]: Starting dpkg-db-backup.service - Daily dpkg database backup service...
Oct 16 00:00:32 cassandra systemd[1]: Starting logrotate.service - Rotate log files...
Oct 16 00:00:32 cassandra systemd[1]: dpkg-db-backup.service: Deactivated successfully.
Oct 16 00:00:32 cassandra systemd[1]: Finished dpkg-db-backup.service - Daily dpkg database backup service.
Oct 16 00:00:32 cassandra systemd[1]: logrotate.service: Deactivated successfully.
Oct 16 00:00:32 cassandra systemd[1]: Finished logrotate.service - Rotate log files.
Oct 16 00:01:12 cassandra python3[1172887]: 2024-10-16 00:01:12 INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0
Oct 16 00:02:12 cassandra python3[1172887]: 2024-10-16 00:02:12 INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0
 
Zuletzt bearbeitet:
Die 131 Version hat was am timestamp im state DataFrame kaputt gemacht. Wenn dir die Daten egal sind, dann sollte ein simples löschen der state.pickle in dem measure Ordner reichen. Wenn dir die Daten wichtig sind, dann musst du warten bis ich das reproduzieren kann und ggf. das kaputte DataFrame reparieren kann. Ab 132 wird am timestamp vom DataFrame nichts mehr gemacht
 
Die Dateien wurden durch Cassandra inzwischen neu angelegt. Interessant ist, dass im Frontend weiterhin keine Statistiken anzeigt werden (die Charts sind leer) und im Log noch immer regelmäßig folgender Fehler erscheint:

Code:
2024-10-16 09:11:52    ERROR Exception on /_dash-update-component [POST]
 
Leider nichts in den Stats/Charts. Auch Battery ist leer. Die aktuellen Daten im Frontend sind alle da nur die Charts sind leer.

Spaßeshalber habe ich mal auf unverschlüsselte HTTP Kommunikation umgestellt. Keine Änderung und es kommt noch immer ständig dieser Fehler im Log:

Code:
2024-10-16 10:07:04    ERROR Exception on /_dash-update-component [POST]
 
Code:
2024-10-16 10:26:42    INFO RX: S,30.76,-2.84,-1.91,2.45,2,2,0,0.22,0,-1.64,-2.91,0.02,38,-0.00,29,-19633,0.00,-1,0,0xc0
2024-10-16 10:26:42    INFO TX: $7m6nr[su
2024-10-16 10:26:42    INFO Performing get state http-request
2024-10-16 10:26:40    INFO RX: S,30.75,-2.84,-1.91,2.45,2,2,0,0.14,0,-1.64,-2.91,0.02,38,-0.00,29,-19633,0.00,-1,0,0xc0
2024-10-16 10:26:40    INFO TX: $7m6nr[su
2024-10-16 10:26:40    INFO Performing get state http-request
2024-10-16 10:26:39    ERROR Exception on /_dash-update-component [POST]
2024-10-16 10:26:39    ERROR Exception on /_dash-update-component [POST]
2024-10-16 10:26:38    INFO RX: S,30.72,-2.84,-1.91,2.45,2,2,0,0.07,0,-1.64,-2.91,0.02,37,-0.00,29,-19633,0.00,-1,0,0xbe
2024-10-16 10:26:38    INFO TX: $7m6nr[su
2024-10-16 10:26:38    INFO Performing get state http-request
2024-10-16 10:26:36    INFO RX: S,30.73,-2.84,-1.91,2.45,2,2,0,1.00,0,-1.64,-2.91,0.02,37,-0.00,29,-19633,0.00,-1,0,0xb9
2024-10-16 10:26:36    INFO TX: $7m6nr[su
2024-10-16 10:26:36    INFO Performing get state http-request
2024-10-16 10:26:36    INFO Backend: RX S2,0,0xe1
2024-10-16 10:26:35    INFO Backend: TX $7m6tnr[vw
2024-10-16 10:26:35    INFO Performing get obstacles http-request
2024-10-16 10:26:34    INFO RX: S,30.77,-2.84,-1.91,2.45,2,2,0,0.89,0,-1.64,-2.91,0.02,38,-0.00,29,-19633,0.00,-1,0,0xce

Sieht nach gewöhnlichen Meldungen aus. Ich weiß auch nicht, ob es einen Zusammenhang gibt.
 
Das löschen des state.pickle hat bei dir anscheinend nicht funktioniert, in der Datei die du mir geschickt hast sind immer noch defekte timestamps drin. Die ersten Einträge sind vom 01.10, dürfte noch die alte Datei sein.
 
Oben