Datentransfer zur OpenSenseMap klappt nicht

Meine SenseBox sendet seit Tagen keine Daten mehr zur Map. Nach frustrierender, erfolgloser Fehlersuche in Soft- und Hardware und Austausch diverser Komponenten incl. des Boards vermute ich stark, dass die OpenSenseMap die Übernahme von Sensordaten einfach verweigert. Ist mein Zugang irgendwie gesperrt?

Zumindest zeigt auch der Output des von der OpenSenseMap generierten Scripts das folgende an:

bee1 spi enable...done
xbee1 power on...done
Attempting to connect to SSID: ****
Waiting 10 seconds for connection...done.

Scanning...
BME680 found.
1 sensors found.

Initializing sensors...
Initializing sensors done!
Starting loop in 3 seconds.
Starting new measurement...
Submit values
connecting...
connecting...
connection failed. Restarting System.

Was nun?

Jetzt habe ich doch noch etwas gefunden: meine neue Wifi-Bee hat die Firmware 19.6.1. Nach Downgrade auf 19.5.4 funktioniert nun die Datenübergabe an die Sensebox wieder.

Gibt es dafür eine Erklärung?

Als neuer Nutzer kann ich nur 2 links posten.
Im u. a. code habe ich bei den Serveradressen deshalb org durch xxx ersetzt.

Hallo zusammen,
meine Sensebox will spontan nicht mehr mit dem sensemap-server kommunizieren.
Der MCU-Test ergibt zwar, dass die firmware des WiFi-Bees nicht zu den Bibliotheken passt, der Verbindungsaufbau zum server funktioniert aber problemlos.
Wie auch woanders angegeben ist ein update auf die aktuelle firmware nicht zu empfehlen.
Angeblich funktioniert nur die Version 19.5.4 problemlos.
Der Verbindungstest scheint das zu bestätigen.

Der Code im Test-Sketch ruft den server wie folgt auf
–> char server[] = „internet-test.testing.opensensemap.xxx“;
–> (client.connect(server, 80))

Im Sketch für den Dateiupload heißt es
–> const char server[] PROGMEM = „opensensemap.xxx“;
–> connected = client.connect(_server, 8000);
auch die Alternative
–> const char server[] PROGMEM = „ingress.opensensemap.xxx“;
–> connected = client.connect(_server, 80);

führt immer wieder zu „connection failed. Restarting System“

edu.books.sensebox empfiehlt die o. g. upload-Alternativen

Der Hinweis auf die Funktion postObservation() verwirrt mich etwas.
Die kann ich nämlich im Sketch nicht finden. Stattdessen ändere ich den Port in
‚connected = client.connect(_server, 8000);‘

Ist das richtig?
Hat jemand eine andere Idee?

Da muss das neue Zertifikat der Opensensemap-Seite in die WiFi-Bee geladen werden. Siehe hier.

Der Test ergibt folgendes:

Test WINC1500
OK - Detected
18:22:56.396 -> Firmware installed: 19.5.4
18:22:56.396 -> Latest firmware: 19.6.1

Lt. workaround ist 19.5.2 ausreichend.
Ist das noch aktuell?
Oder sollte ich auf 19.6.1. hochziehen?

Vielleicht hatte ich nicht deutlich gesagt, dass die Box seit der Erstinstallation (27.12.) bis zum 10. Januar problemlos funktioniert hat. Ab 18:10 Uhr war dann Ende der Übertragung.

Okay, ich bleibe mal erst bei 19.5.4

Beim Verbindungstest aus dem Updater kommt ‚Programmer not responding‘.
Da muss ich dann wohl erst einmal ran.

Meine SenseBox funkt wieder Daten an den Mapserver!
Danke für die Hilfe!

Folgendes Problem hat den Zertifikat Upload behindert:

USB-Verbindung linux zu SenseBox MCU

Jedesmal wenn die SenseBox MCU neu startet (CPU restart), kappt linux die USB Verbindung an ttyACM*.
Dann geht das Wechselspiel los und mit ls -l /dev/ttyACM* muss im terminal geprüft werden, ob *=0 oder =1, also ob ttyACM0 oder ttyACM1 gerade aktiv ist.
Der gerade aktive Kanal muss dann in der Arduino IDE (Werkzeuge - Port) aktualisiert und aktiviert werden.
Die Rechte hat root auch wieder eingeschränkt. Das behebt man im terminal wie folgt: sudo chmod 666 /dev/ttyACM
.

Beim Hochladen des Sketchs kommt es vor, dass das USB-Interface wieder auf rootrechte zurückgeschraubt oder komplett deaktiviert wird. Also, alles wieder prüfen und ggf. auf ttyACM1 wechseln und auch mit chmod 666 wieder lese/schreibRechte einstellen.

Nach dem Hochladen des Sketchs hängt sich die MCU manchmal als Laufwerk ein (hängt vom sketch ab).
Dadurch wird die Kommunikation mit dem USB-Interface natürlich wieder unterbrochen. Also das Laufwerk-MCU im Dateimanager aushängen, noch mal mit ls -l /dev/ttyACM* prüfen, ob die Berechtigungen noch passen und dann den seriellen Monitor starten.

Diese Problem lässt sich wahrscheinlich mit einem daemon lösen oder dadurch, dass man die Arduino IDE mit root-Rechten startet. Windows user sind da klar im Vorteil :wink: