Python Script DS18B20 zu Xively.com

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hi@all!

    Ich habe anhand dieser Anleitung einen Temperatursensor an meinen Pi angeschlossen, welcher die aktuelle Temperatur automatisch an xively.com übermittelt:
    https://sites.google.com/site/deralexnt…-to-cosm-xively

    Das Python Script lasse ich mit "supervisor" starten. In dessen Config-File hab ich "autostart" und "autorestart" eingestellt.
    Das Script lässt sich auch durch "supervisor" steuern. Wenn das Script ca. einen Tag läuft, tritt immer irgendein Fehler auf und es werden keine Daten mehr an xively.com übermittelt. "supervisor" meldet aber immer noch den Status "running".

    Was kann ich an dem Script ändern, damit es sich bei einem Fehler beendet um von "supervisor" neu gestartet zu werden?

  • So. Ich hatte "Glück". Der Fehler ist jetzt wieder etwas früher aufgetreten. In der Log steht folgendes:

    Traceback (most recent call last):
    File "/home/pi/scripts/temperatur2xively.py", line 49, in <module>
    pac = eeml.Pachube(API_URL, API_KEY)
    NameError: name 'API_KEY' is not defined

    Komisch, dass der Fehler erst kommt wenn es schon länger läuft. Vielleicht hängt es aber auch mit der 3G-Verbindung des Pi zusammen.
    Der ist nämlich mit UMTSKeeper über ein UMTS-Modem verbunden. Vielleicht wird das Script durch ein aussetzen der Verbindung gestört und läuft dann nicht mehr richtig.

    Ich Noob weiß schon nicht mehr weiter. Bastle schon sein fast einem Jahr an dem Ding ;)


  • Wen es ein sporadischer Fehler zu sein scheint, solltest du ihn mit try... except fangen und behandeln.

    könntest du mir das erklären. bin in python nur bauernschlau.

    meinst du direkt in:
    pac = eeml.Pachube(API_URL, API_KEY)

    oder einfach gleich nach while true?


    sehr seltsam. kopier doch mal die API_KEY zeile von oben direkt als ersten Befehl in deinem While True. Mir ein rätsel warum er die variable wegschmeisst

    meinst du direkt in:
    pac = eeml.Pachube(API_URL, API_KEY)

    oder einfach gleich nach while true?

    Einmal editiert, zuletzt von moarli (12. Oktober 2013 um 22:06)


  • [code=php]
    while True:
    API_KEY ="laberlabersuelz"
    # open up your cosm feed
    pac = eeml.Pachube(API_URL, API_KEY)

    #send celsius data[/php]

    Direkt darüber

    ok danke. test ich mal.

    kannst du mir auch sagen warum ein shell script, das ich mit crontab -e
    angelegt habe einfach nicht funktioniert?

    danke schonmal!


  • schau mal in

    Code
    /var/log/syslog


    ob du dort irgendwelche Fehlermeldungen findest.

    Oct 12 15:41:01 hauspi /USR/SBIN/CRON[27611]: (pi) CMD (/home/pi/cam/webcamrun.sh >> /var/log/crontab_output.log 2>&1)
    Oct 12 15:41:01 hauspi /USR/SBIN/CRON[27610]: (pi) MAIL (mailed 1 byte of output; but got status 0x00ff, #012)

    Einmal editiert, zuletzt von moarli (13. Oktober 2013 um 00:08)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!