Mein Projekt CaSSAndRA zur Steuerung des Ardumowers

Hm. Was soll der Broker damit zu tun haben? Mosquitto ist ja nicht irgendein Broker.

Installiere doch mal MQTT Explorer auf deinem PC und verbinde dich mit deinem MQTT Server (Broker). Dann kannst du genau sehen, was rein kommt, und wie lange es reinkommt und ausschließen, dass ggf. der Broker oder der Empfänger das Problem ist.
Den MQTT explorer auf Windows nehme ich die ganze Zeit zum Testen und zu schauen was passiert... Aktuell ist der Ardumower online, er funktioniert wie er soll - die API ist wie immer nach einiger Zeit offline...

1719558479667.png
 
Im mqtt Explorer kannst du schauen, unter History, wann offline gesetzt wurde. Dann entsprechenden Zeitpunkt im Log von Cassandra suchen
 
schaue ich mal nach - aktuell ist er schon nach ca. 2 Minuten nach Start offline (nur die API), die normale Ardumower funktioniert weiterhin....

1719558992560.png
 
Hab nun auch mal wieder Zeit zum Testen. Jedoch reagiert Cassandra nicht bei dem was ich sende. ich wollte mal mit Stop und Dock anfangen aber es tut sich nichts..

1719578812837.png

was mach ich falsch?

Wie kann man Cassandra sagen einfach zu starten ohne Angabe von Zone? zB wenn man eine Zone noch nicht beendet, im Dock steht und nun aus dem Dock losfahren möchte um den Rest zu mähen?
 
Das Log sagt mir nichts:1719581414365.png

Code:
2024-06-28 15:26:41 INFO Performing get state http-request
2024-06-28 15:26:41 INFO TX: gzQyRV?WY
2024-06-28 15:26:42 INFO RX: S,26.87,1.34,-0.26,-0.93,2,2,0,0.53,0,3.30,-0.87,0.02,38,-1.05,38,158831,0.00,-1,0,0xa1

2024-06-28 15:26:44 INFO Performing get state http-request
2024-06-28 15:26:44 INFO TX: gzQyRV?WY
2024-06-28 15:26:47 INFO RX: S,26.88,1.34,-0.26,-0.93,2,2,0,0.48,0,3.30,-0.87,0.02,38,-1.06,38,158831,0.00,-1,0,0xa7

2024-06-28 15:26:48 INFO Performing get obstacles http-request
2024-06-28 15:26:48 INFO Backend: TX gzQyXRV?Z[
2024-06-28 15:26:48 INFO Backend: RX S2,0,0xe1

2024-06-28 15:26:49 INFO Performing get state http-request
2024-06-28 15:26:49 INFO TX: gzQyRV?WY
2024-06-28 15:26:50 INFO RX: S,26.88,1.34,-0.26,-0.93,2,2,0,0.69,0,3.30,-0.87,0.02,38,-1.06,38,158831,0.00,-1,0,0xaa

2024-06-28 15:26:52 INFO Performing get state http-request
2024-06-28 15:26:52 INFO TX: gzQyRV?WY
2024-06-28 15:26:53 INFO RX: S,26.89,1.34,-0.26,-0.93,2,2,0,0.69,0,3.30,-0.87,0.02,38,-1.07,38,158831,0.00,-1,0,0xac

2024-06-28 15:26:55 INFO Performing get state http-request
2024-06-28 15:26:55 INFO TX: gzQyRV?WY
2024-06-28 15:26:56 INFO RX: S,26.85,1.34,-0.26,-0.93,2,2,0,0.66,0,3.30,-0.87,0.02,38,-1.03,38,158831,0.00,-1,0,0xa1

2024-06-28 15:26:58 INFO Performing get state http-request
2024-06-28 15:26:58 INFO TX: gzQyRV?WY
2024-06-28 15:26:59 INFO RX: S,26.88,1.35,-0.26,-0.93,2,2,0,0.73,0,3.30,-0.87,0.02,38,-1.04,37,158831,0.00,-1,0,0xa3

2024-06-28 15:26:59 INFO Performing get obstacles http-request
2024-06-28 15:26:59 INFO Backend: TX gzQyXRV?Z[
2024-06-28 15:27:00 INFO Backend: RX S2,0,0xe1

2024-06-28 15:27:01 INFO Performing get stats http-request
2024-06-28 15:27:01 INFO TX: gzQzRV?WZ
2024-06-28 15:27:02 INFO RX: T,4710,2713,742,572,112,6,11.86,1.45,0,998.00,998.00,5,0,0.02,1024,58,9,12,195723,4,20,0,0,3,0,0x2d

2024-06-28 15:27:02 INFO Performing get state http-request
2024-06-28 15:27:02 INFO TX: gzQyRV?WY
2024-06-28 15:27:03 INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0
2024-06-28 15:27:04 INFO RX: S,26.89,1.35,-0.27,-0.93,2,2,0,0.34,0,3.30,-0.87,0.02,38,-1.04,38,158831,0.00,-1,0,0xa3

2024-06-28 15:27:06 INFO Performing get state http-request
2024-06-28 15:27:06 INFO TX: gzQyRV?WY
2024-06-28 15:27:07 INFO RX: S,26.87,1.35,-0.26,-0.93,2,2,0,0.25,0,3.30,-0.87,0.02,38,-1.05,38,158831,0.00,-1,0,0xa1

2024-06-28 15:27:09 INFO Performing get state http-request
2024-06-28 15:27:09 INFO TX: gzQyRV?WY
2024-06-28 15:27:10 INFO RX: S,26.89,1.35,-0.26,-0.93,2,2,0,0.37,0,3.30,-0.87,0.02,38,-1.05,38,158831,0.00,-1,0,0xa6

2024-06-28 15:27:11 INFO Performing get obstacles http-request
2024-06-28 15:27:11 INFO Backend: TX gzQyXRV?Z[
2024-06-28 15:27:12 INFO Backend: RX S2,0,0xe1

2024-06-28 15:27:12 INFO Performing get state http-request
2024-06-28 15:27:12 INFO TX: gzQyRV?WY
2024-06-28 15:27:13 INFO RX: S,26.87,1.35,-0.27,-0.93,2,2,0,0.34,0,3.30,-0.87,0.02,38,-1.03,38,158831,0.00,-1,0,0xa0

2024-06-28 15:27:15 INFO Performing get state http-request
2024-06-28 15:27:15 INFO TX: gzQyRV?WY
2024-06-28 15:27:16 INFO RX: S,26.89,1.35,-0.27,-0.93,2,2,0,0.44,0,3.30,-0.87,0.02,38,-1.06,38,158831,0.00,-1,0,0xa6

2024-06-28 15:27:18 INFO Performing get state http-request
2024-06-28 15:27:18 INFO TX: gzQyRV?WY
2024-06-28 15:27:19 INFO RX: S,26.87,1.35,-0.27,-0.93,2,2,0,0.45,0,3.30,-0.87,0.02,39,-1.04,38,158831,0.00,-1,0,0xa4

2024-06-28 15:27:21 INFO Performing get state http-request
2024-06-28 15:27:21 INFO TX: gzQyRV?WY
2024-06-28 15:27:22 INFO RX: S,26.88,1.35,-0.27,-0.93,2,2,0,0.54,0,3.30,-0.87,0.02,39,-1.05,39,158831,0.00,-1,0,0xa7

2024-06-28 15:27:23 INFO Performing get obstacles http-request
2024-06-28 15:27:23 INFO Backend: TX gzQyXRV?Z[
2024-06-28 15:27:23 INFO Backend: RX S2,0,0xe1

2024-06-28 15:27:24 INFO Performing get state http-request
2024-06-28 15:27:24 INFO TX: gzQyRV?WY
2024-06-28 15:27:27 INFO RX: S,26.87,1.35,-0.27,-0.93,2,2,0,0.65,0,3.30,-0.87,0.02,39,-1.04,39,158831,0.00,-1,0,0xa7

2024-06-28 15:27:29 INFO Performing get state http-request
2024-06-28 15:27:29 INFO TX: gzQyRV?WY
2024-06-28 15:27:30 INFO RX: S,26.89,1.35,-0.27,-0.93,2,2,0,0.64,0,3.30,-0.87,0.02,39,-1.05,39,158831,0.00,-1,0,0xa9

2024-06-28 15:27:32 INFO Performing get state http-request
2024-06-28 15:27:32 INFO TX: gzQyRV?WY
2024-06-28 15:27:33 INFO RX: S,26.89,1.35,-0.27,-0.93,2,2,0,0.61,0,3.30,-0.87,0.02,39,-1.06,39,158831,0.00,-1,0,0xa7

2024-06-28 15:27:34 INFO Performing get obstacles http-request
2024-06-28 15:27:34 INFO Backend: TX gzQyXRV?Z[
2024-06-28 15:27:35 INFO Backend: RX S2,0,0xe1

2024-06-28 15:27:36 INFO Performing get state http-request
2024-06-28 15:27:36 INFO TX: gzQyRV?WY
2024-06-28 15:27:36 INFO RX: S,26.88,1.35,-0.27,-0.93,2,2,0,0.79,0,3.30,-0.87,0.02,39,-1.05,39,158831,0.00,-1,0,0xae

2024-06-28 15:27:39 INFO Performing get state http-request
2024-06-28 15:27:39 INFO TX: gzQyRV?WY
2024-06-28 15:27:40 INFO RX: S,26.90,1.35,-0.27,-0.93,2,2,0,0.26,0,3.30,-0.87,0.02,39,-1.07,39,158831,0.00,-1,0,0xa1

2024-06-28 15:27:42 INFO Performing get state http-request
2024-06-28 15:27:42 INFO TX: gzQyRV?WY
2024-06-28 15:27:43 INFO RX: S,26.90,1.35,-0.27,-0.93,2,2,0,0.81,0,3.30,-0.87,0.02,39,-1.06,39,158831,0.00,-1,0,0xa1

2024-06-28 15:27:46 INFO Performing get state http-request
2024-06-28 15:27:46 INFO TX: gzQyRV?WY
2024-06-28 15:27:46 INFO RX: S,26.88,1.35,-0.27,-0.93,2,2,0,0.92,0,3.30,-0.87,0.02,39,-1.06,39,158831,0.00,-1,0,0xaa

2024-06-28 15:27:47 INFO Performing get obstacles http-request
2024-06-28 15:27:47 INFO Backend: TX gzQyXRV?Z[
2024-06-28 15:27:47 INFO Backend: RX S2,0,0xe1

2024-06-28 15:27:49 INFO Performing get state http-request
2024-06-28 15:27:49 INFO TX: gzQyRV?WY
2024-06-28 15:27:49 INFO RX: S,26.89,1.34,-0.27,-0.93,2,2,0,0.00,0,3.30,-0.87,0.02,39,-1.07,39,158831,0.00,-1,0,0xa0

2,2,0,0.65,0,3.30,-0.87,0.02,39,-1.04,39,158831,0.00,-1,0,0xa7

2024-06-28 15:27:52 INFO Performing get state http-request
2024-06-28 15:27:52 INFO TX: gzQyRV?WY
2024-06-28 15:27:52 INFO RX: S,26.87,1.35,-0.27,-0.93,2,2,0,0.97,0,3.30,-0.87,0.02,39,-1.06,39,158831,0.00,-1,0,0xae
 
@EinEinfach Könntest Du vielleicht mal einen Systembefehl "shutdown -h 0" mit einbauen?
Beispielsweise könntest Du einen Konfigurationsparamter hinzufügen, über den man einstellen kann, ob der raspberry mit runtergefahren werden soll oder nicht. Ist dieser auf true, könnte dann beim Ausschaltbefehlbefehl für den Rasenmäher nach kurzer Wartezeit zur Sicherstellung, dass der Befehl an den Rasenmäher abgesetzt ist, auch der Raspberry heruntergefahren werden.
Oder das Herunterfahren der Raspberry per eigenen Button einleiten.

Hintergrund: Ich schalte den Rasenmäher nach getaner Arbeit immer ab (erst runterfahren, dann Notaus) und stelle ihn in den Keller. Da der Raspberry bei mir gerade im Haus läuft und nur für Rasenmäherdienste, gehe ich anschließend in eine Konsole und fahre diesen runter. Wenn ich den über die CASSANDRA-Oberfläche runterfahren könnte, könnte ich mir diesen Schritt sparen.

Im Voraus schon einmal Danke!
 
Sehr gute Idee!
Der Abschaltbutton fehlt mir auch.
Ich muss immernoch die Sunray App starten, und dann "SWITCH-OFF ROBOT" anklicken um Alfred auszuschalten.
Nach dem runterfahren schalte ich ihn dann per Hauptschalter aus.

Warum, und was dann anders ist kann man hier nachlesen:
 
Den Switch-Off-Robot gibt es doch schon in Cassandra. Also beim Ardumower macht er zumindest das gleiche wie in der Sunray-App.
Ich hätte hier nur gern noch zusätzlich einen Betriebssystembefehl mit eingebunden, um den Raspberry, auf dem Cassandra läuft, auch hierüber herunterfahren zu können.
 
So, gestern habe ich Cassandra mal mit Alfred ausprobiert, damit funktioniert es sehr gut.
Der Ardumover bekomme ich ums verrecken nicht vernünftig in Cassandra rein. Irgendwas muss bei der Datenübermittlung bzw. den Daten ansich vom Ardumover zu Cassandra nicht passen bzw. irgendwelche Daten sind für Cassandra nicht plausibel.

Wo kann ich noch suchen bzw. an welchem Rädchen kann ich noch drehen?

2024-07-08 09:50:49ERROR Backend: Failed to write obstacles data to data frame
2024-07-08 09:50:49INFO Backend: RX S,25.28,-4.71,4.57,1.68,0,0,0,28.67,0,0.00,0.00,1.71,31,0.04,0,-200357,0.00,22.01,0.01,0.01,0.02,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0x7b
2024-07-08 09:50:49INFO Backend: TX AT+S2,0x45
2024-07-08 09:50:49INFO Performing get obstacles http-request
2024-07-08 09:50:49ERROR Backend: Failed to write state data to data frame
2024-07-08 09:50:49INFO RX: S,25.28,-4.71,4.57,1.68,0,0,0,28.05,0,0.00,0.00,1.71,31,0.04,0,-200357,0.00,22.01,0.01,0.01,0.02,0.00,0.00,0.00,0.02,0.00,0.00,0.00,0.00,0x75
2024-07-08 09:50:48INFO TX: AT+S,0x13
2024-07-08 09:50:48INFO Performing get state http-request
2024-07-08 09:50:46ERROR Backend: Failed to write state data to data frame
2024-07-08 09:50:46INFO RX: S,25.28,-4.71,4.57,1.68,0,0,0,25.05,0,0.00,0.00,1.72,31,0.04,0,-200357,0.00,22.01,0.01,0.01,0.02,0.00,0.00,0.02,0.01,0.00,0.02,0.00,0.00,0x76
2024-07-08 09:50:45INFO TX: AT+S,0x13
2024-07-08 09:50:45INFO Performing get state http-request
2024-07-08 09:50:43ERROR Backend: Failed to write state data to data frame
2024-07-08 09:50:43INFO RX: S,25.28,-4.71,4.57,1.67,0,0,0,22.11,0,0.00,0.00,1.73,32,0.03,0,-200357,0.00,22.01,0.01,0.01,0.02,0.00,0.00,0.01,0.01,0.00,0.01,0.00,0.00,0x6e
2024-07-08 09:50:42INFO TX: AT+S,0x13
2024-07-08 09:50:42INFO Performing get state http-request
2024-07-08 09:50:40INFO RX: P,0x50
2024-07-08 09:50:40INFO TX AT+P,1,13.55614,52.480127,0x27
2024-07-08 09:50:40ERROR Backend: Failed to write state data to data frame
2024-07-08 09:50:40INFO RX: S,25.28,-4.71,4.57,1.56,0,0,0,19.34,0,0.00,0.00,1.73,32,0.03,0,-200357,0.00,22.01,0.01,0.01,0.02,0.00,0.00,0.01,0.00,0.00,0.01,0.00,0.00,0x76
2024-07-08 09:50:39INFO TX: AT+S,0x13
2024-07-08 09:50:39INFO Performing get state http-request
2024-07-08 09:50:37INFO Schedule: active: False, job started: False, job finished: False, start failed cnt: 0
2024-07-08 09:50:37INFO Starting schedule thread
2024-07-08 09:50:37INFO Starting thread for data storage
2024-07-08 09:50:37INFO Backend is successfully started
2024-07-08 09:50:37INFO Starting connection thread
2024-07-08 09:50:37INFO RX: V,Ardumower Sunray,1.0.219 SE,0,0,0xcf
2024-07-08 09:50:37INFO TX: AT+V,0x16
2024-07-08 09:50:37INFO Connecting...
2024-07-08 09:50:37INFO Selected connection HTTP
2024-07-08 09:50:37INFO Backend: Saved tasks parameters are loaded successfully
2024-07-08 09:50:37INFO Backend: Saved tasks are loaded successfully
2024-07-08 09:50:37INFO Backend: Read tasks data file
2024-07-08 09:50:37INFO Backend: Selected perimeter: Grundstück mit Einfahrt
2024-07-08 09:50:37INFO Backend: Perimeter name is successfully saved in tmp.json
2024-07-08 09:50:37INFO No search wire found.
2024-07-08 09:50:37INFO Create networkx edges for search wire (A* pathfinder)
2024-07-08 09:50:32INFO Create networkx edges between exclusions and perimeter (A* pathfinder)
2024-07-08 09:50:32INFO Create networkx edges for exclusions (A* pathfinder)
2024-07-08 09:50:25INFO Create networkx edges for perimeter (A* pathfinder)
2024-07-08 09:50:21INFO Backend: Saved perimeters are loaded successfully
2024-07-08 09:50:21INFO Backend: Read map data file
2024-07-08 09:50:21INFO Backend: Calced data from stats are loaded successfully
2024-07-08 09:50:21INFO Backend: Calced data from state are loaded successfully
2024-07-08 09:50:21INFO Backend: Statistics data are loaded successfully
2024-07-08 09:50:21INFO Backend: Statistics data are loaded successfully
2024-07-08 09:50:21INFO Backend: State data are loaded successfully
2024-07-08 09:50:21INFO Backend: Read saved data
2024-07-08 09:50:21INFO Backend: Read communication config file
2024-07-08 09:50:21INFO Backend: Starting backend server
 
Naja, du hast anscheinend die 219 SE drauf... Bei mir gab es mal ein problem, die durch die Versionsnummer mit Buchstaben nach z.b 219 kommen. Das hatte bei Cassandra zu Datenwurst geführt. Du siehst das ja schon am ,0,0,0xcf geh also mal in die robot.h und lösche alles hinter der Versionsnummer ....Ansonsten, um sicherzugehen, mach mal ein orig sunray rauf...
 
Die Verbindung
Wo kann ich noch suchen bzw. an welchem Rädchen kann ich noch drehen?
die Verbindung klappt schon laut deinem Log, zumindest teilweise. Wie Mr. Tee schon angemerkt hat deine Sunray Version ist ziemlich alt, mit der habe ich es nicht gestestet. 230 sollte eigentlich funktionieren, wenn du nicht zu viel auf einmal ändern willst
 
Naja, du hast anscheinend die 219 SE drauf... Bei mir gab es mal ein problem, die durch die Versionsnummer mit Buchstaben nach z.b 219 kommen. Das hatte bei Cassandra zu Datenwurst geführt. Du siehst das ja schon am ,0,0,0xcf geh also mal in die robot.h und lösche alles hinter der Versionsnummer ....Ansonsten, um sicherzugehen, mach mal ein orig sunray rauf...
ja, ist eine ziemlich alte Version, aber sehr gut :D
In der Version sind viele Änderungen von dir und Sven drinnen, die fährt hier seit über 2 Jahren ohne jegliche Probleme.
Die Versionsnummer kann ich ja in der robot.h ändern, das probiere ich gleich mal aus.

Den ESP32 habe ich auch schon mit einem Update beglückt, dachte, daran könnte es auch noch liegen. Da habe ich leider falsch gedacht.
 
Zuletzt bearbeitet:
Oben