• Du musst dich registrieren, bevor du Beiträge verfassen kannst. Klicke auf Jetzt registrieren!, um den Registrierungsprozess zu starten. Registrierte User surfen werbefrei, können Suchen durchführen und sehen die volle Darstellung des Forums mit vielen anderen Unterforen!!!

Supportthread zum WLAN-Thermometer mit dem Raspberry Pi

Ich bin den zwei Auffälligkeiten an meinem Thermo auf die Spur gekommen:
  1. Der Piezo piept manchmal ohne für mich ersichtlichen Grund:
    Ursache war, dass ich nur die ersten vier ADC Kanäle beschaltet hatte und damit der Eingang undefiniert in der Luft rum hing. Dadurch wurden manchmal Werte gemessen, die dann wieder zu Alarmen bei den im GUI nicht sichtbaren Eingängen führten. Ich habe mir erst mal so beholfen, dass ich für den Rosensteinfühler in wlt_2_com.py als Rn 0 eingetragen habe und die nicht beschalteten Eingänge als Rostenstein konfiguriert habe. Damit tritt immer sicher bei den Eingängen einen Division bei Zero Exception auf, die wird gefangen und die Temperatur auf 999.9 gesetzt und damit in der restlichen Verarbeitung ignoriert. Vielleicht könnten man einen Fühlertyp "Keiner" einführen ... .
  2. wlt_2_lcd_204.py stürzt immer wieder mal ab und dann wird das Display nicht mehr aktualisiert. Es kommt zu "Index out of Bounds"-Exceptions beim der Ausgabe beim Zugriff auf temps[] oder pits[]. Ich vermute der Prozess liest die Dateien während sie von wlt_2_comp.py oder wlt_2_pitmaster.py geschrieben werden und dann sind die Arrays unvollständig gefüllt. Einfacher Patch wäre ein try/catch Block um die lcd_string-Aufrufe. Schöner wäre wenn die Prozesse sich im IO synchronsieren würden.
Gruß
MaddBBQ

P.S.: hier die auftreten Exceptions:
Traceback (most recent call last):
File "/usr/sbin/wlt_2_lcd_204.py", line 274, in <module>
notifier.process_events()
File "/usr/lib/python2.7/dist-packages/pyinotify.py", line 1297, in process_events
self._default_proc_fun(revent)
File "/usr/lib/python2.7/dist-packages/pyinotify.py", line 939, in __call__
return _ProcessEvent.__call__(self, event)
File "/usr/lib/python2.7/dist-packages/pyinotify.py", line 664, in __call__
return meth(event)
File "/usr/sbin/wlt_2_lcd_204.py", line 52, in process_IN_CLOSE_WRITE
show_values()
File "/usr/sbin/wlt_2_lcd_204.py", line 200, in show_values
lcd_string('Pit: S:' + str("%.0f" % float(pits[1])) + ' I:' + str("%.0f" % float(pits[2])) + ' ' + pits[3],2)
IndexError: list index out of range

Traceback (most recent call last):
File "/usr/sbin/wlt_2_lcd_204.py", line 274, in <module>
notifier.process_events()
File "/usr/lib/python2.7/dist-packages/pyinotify.py", line 1297, in process_events
self._default_proc_fun(revent)
File "/usr/lib/python2.7/dist-packages/pyinotify.py", line 939, in __call__
return _ProcessEvent.__call__(self, event)
File "/usr/lib/python2.7/dist-packages/pyinotify.py", line 664, in __call__
return meth(event)
File "/usr/sbin/wlt_2_lcd_204.py", line 52, in process_IN_CLOSE_WRITE
show_values()
File "/usr/sbin/wlt_2_lcd_204.py", line 189, in show_values
lcd_string('C1:' + str_len(temps[1],sLen,' ') + chr(0xdf) + 'C2:' + str_len(temps[2],sLen,' ') + chr(0xdf),2)
IndexError: list index out of range
 
Wegen der sporadischen Fehlmessungen, ändere mal Zeile 338 in der wlt_2_comp.py wie folgt:

Code:
 if (Wert > 30) and (Sensornummer_typ[kanal]!='KTYPE'): #sinvoller Wertebereich

Das hat bei mir geholfen.

Grüßle und Tschöh!

Armin
 
Ich bin den zwei Auffälligkeiten an meinem Thermo auf die Spur gekommen:
  1. Der Piezo piept manchmal ohne für mich ersichtlichen Grund:
    Ursache war, dass ich nur die ersten vier ADC Kanäle beschaltet hatte und damit der Eingang undefiniert in der Luft rum hing. Dadurch wurden manchmal Werte gemessen, die dann wieder zu Alarmen bei den im GUI nicht sichtbaren Eingängen führten. Ich habe mir erst mal so beholfen, dass ich für den Rosensteinfühler in wlt_2_com.py als Rn 0 eingetragen habe und die nicht beschalteten Eingänge als Rostenstein konfiguriert habe. Damit tritt immer sicher bei den Eingängen einen Division bei Zero Exception auf, die wird gefangen und die Temperatur auf 999.9 gesetzt und damit in der restlichen Verarbeitung ignoriert. Vielleicht könnten man einen Fühlertyp "Keiner" einführen ... .
  2. wlt_2_lcd_204.py stürzt immer wieder mal ab und dann wird das Display nicht mehr aktualisiert. Es kommt zu "Index out of Bounds"-Exceptions beim der Ausgabe beim Zugriff auf temps[] oder pits[]. Ich vermute der Prozess liest die Dateien während sie von wlt_2_comp.py oder wlt_2_pitmaster.py geschrieben werden und dann sind die Arrays unvollständig gefüllt. Einfacher Patch wäre ein try/catch Block um die lcd_string-Aufrufe. Schöner wäre wenn die Prozesse sich im IO synchronsieren würden.

Hallo MadBBQ,

Vielen dank für deinen Bericht und ich werde mir das genauer ansehen.
Ich überlege in Zukunft überhaupt die Übergabe der Daten (temp und pit) über FIFO Dateien zu machen, damit sollte genau so ein Fehler nie wieder vorkommen...

LG

Joe

PS: ich lerne noch....
 
Ich hab endlich alles in ein Gehäuse gestopft. Leider sind jetzt die Anschlüsse bzw Stecker für den Piezo zu hoch, da muss ich noch mal ran.

Beim starten des RasPi zeigt das Display die zwei "Start Banner" an und bleibt beim zweiten dann stehen. WLANThermoDIS läuft. Wer den startet ist mir nicht klar (aber egal).
Ursache scheint, dass der WLANThermo Service selbst nicht (mehr) läuft obwohl er in /etc/rc2.d verlinkt ist. Wenn ich den Service von Hand starte läufts (inkl. Anzeige am Display).
WLANThermoPIT wird auch nicht gestartet, ist aber auch in /etc/rc2.d nicht eingetragen; also nachvollziehbar.
WLANThermoWD läuft auch; ist auch über /etc/rc2.d velinkt.

Warum läuft der Hauptservice nicht bzw. nicht mehr? Hat jemand einen Tip?

Gruß

MadBBQ
 
Hallo,

Starte den Dienst mal auf der Konsole mit

python /usr/sbin/wlt_2_compy.py

Auch gibt es ein log unter
/var/log/Wlanthermo...
 
ReHi,

Danke für die Tipps.
Wie gesagt, manuell gestartet läuft es.

In der Version von wlt_2_comp.py die ich habe ist kein logging im Code; also auch nichts im Logfile.

Gruß
MadBBQ
 
Hallo,
finde euer WLAN Thermometer eine klasse Idee, würde mir gern auch eines bauen, aber da habe ich noch eine Frage.

Ist es auch möglich, einen anderen Temperatursensor zu verwenden?
(Reichelt: LM 335 TO92, www.reichelt.de/LM-335-TO92/3/index.html?&ACTION=3&LA=446&ARTICLE=10469)

Sind sonst noch weitere Änderungen nötig, wenn ein anderer Sensor verwendet wird?

Will mein Thermometer zur Messung der Außen und Innen Temperatur nutzen, nicht zum Grillen.

Hoffe ihr könnt mir trotzdem eine Antwort geben. ;-)
 
Hallo Marcel,

danke für den Doppelpost...

Ich kann dir für alle Anwendungen außer zum Grillen nur raten dir folgendes anzusehen:
  • fhem
  • 1-wire
Es gibt für den Raspberry PI Erweiterungsboards in UK oder bei busware.de oder 1-Wire USB Adapter und die 1-Wire Fühler bekommst du bei dx.com mit 90cm Kabel und einem Messbereich von -50 bis +125 Grad C um EUR 3,80 / Stück Versandkostenfrei.

Ich habe hier in diesem Thread schon mal jemanden eine Antwort auf genau so eine Frage geschrieben .

http://www.grillsportverein.de/forum/search/520524/?q=fhem&t=post&o=date&c[thread]=181768
 
So ich hab ne Weile gebraucht bis alles zusammen ist. Jetzt aber fangen die Probleme an:
- Das Pi lässt mich nicht mehr einloggen. Weder mit Pi, root noch mit wlanthermo. Auf der console viele Fehlermeldungen und das nur, weil ich versehentlich die Spannungszufuhr unterbrochen habe? Alles neu aufsetzen?
- Das Thermometer mit 2 Maverick Sensoren ausgestattet und eingeschaltet. (Konfig natürlich korrekt eingestellt). Aber die zwei messen in kochendem Wasser 130Grad. Häh wie das? Und als das Wasser kälter wird steigt die Temperatur an. Habe die Pfostenleiste gegen Die Widerstände getauscht. Muss ich die Klinkenstecker andersrum anschließen?..


DANKE FÜR NEN TIP
911er
 
Hi 911er,
Da hat´s dir anscheinend das Dateisystem auf der SD-Card zerschossen. Da hilft wahrscheinlich nur formartieren und aus einer Sicherungskopie neu aufspielen.
Falls du keine zur Hand hast könnte ich dir meine zur Verfügung stellen. Da ist auch schon die Softwareänderung berücksichtigt, die beim Vertauschen der Widerstände und der Pfostenleiste benötigt wird.
Oder du guckst hier: http://www.grillsportverein.de/forum/bookmarks/?type=post&id=1785273

Lg
 
Leider kam ich nicht mal mehr dazu ne Sicherung zu erstellen.
Das mit der wlt_2_comp.py hatte ich heute Nacht noch gefunden.
Wenn Du aber schon nen Image hast, was ich direkt auf die Karte ziehen könnte würde ich das gerne warnehmen.



DANKE
Uwe
 
Hi Uwe,
wollte dir gerade eine PN schicken mit dem Downloadlink für´s Image. Leider geht das bei mir anscheinend noch nicht. Kannst du mich evtl. per PN kontaktieren?
Übringens wird´s eine 16GB Karte brauchen um mein Image aufzuspielen.

Lg
 
Hi Armin,

gesagt, getan. Aber jetzt macht es ganz was verrücktes:
Es schreibt das Display voll mit folgenden Meldungen, bis es nach 30 Sekunden afhört.
Dann geht nichts mehr.

Nochmal aufsetzen?

DANKE
Uwe


Warning: file_get_contents(/var/www/tmp/display/current.temp): failed to open stream: No such file or directory in /var/www/control/new_log_file.php on line 20

Warning: file_get_contents(/var/www/tmp/display/current.temp): failed to open stream: No such file or directory in /var/www/control/new_log_file.php on line 22
........


Warning: file_get_contents(/var/www/tmp/display/current.temp): failed to open stream: No such file or directory in /var/www/control/new_log_file.php on line 22

Warning: file_get_contents(/var/www/tmp/display/current.temp): failed to open stream: No such file or directory in /var/www/control/new_log_file.php on line 22

Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/control/new_log_file.php on line 22





@mooskopp52
Einfacher wird es glaube ich, wenn Du die Softwarekomplettinstallation fährst:

http://wlanthermo.com/index.php/bauanleitung/software

Da bsit Du in 20 Minuten wieder up-to-date. Patch nicht vergessen!

Grüßle und Tschöh!

Armin
 
Löschen und neu einspielen?
Muss ich das wlanthermo stoppen bevor ich die Datei reinkopiere? Gibts dafür ein Script?

Danke Danke Danke
Sobald das läuft geht es an das Display.

Gruß
UWE
 
Ich vermute dass der dienst jetzt falscheBerechtigungen hat...

Gib mal in der Kommandozeile

service WLANThermo start

ein und schau mal ob es dann Funktioniert ;-)

Derweil gibt es noch kein neues script mit der Hardwareänderung... Aber du könntest das alte einfach nochmal darüber Installieren und schaun ob es Funktioniert (Die Temp-Werte sind dann sicher Falsch) und wenn das geht probierst du einfach das kopieren nochmal und vorher beendest du den Dienst mit

service WLANThermo stop

Probier aber bevor du was machst den dienst zu starten. Vl kommt ja eine Fehlermeldung...

Lg
 
Bin ich der einzige bei dem der WLANThermo Service nach einem Reboot nicht läuft?

Ich habe inzwischen die Ursache gefunden, nachdem ich wlt_2_comp.py mit Log-Ausgaben vollgestopft habe:
2014-02-15 15:49:21,097 - WLANthermoCOMP - ERROR - Something went wrong!
Traceback (most recent call last):
File "/usr/sbin/wlt_2_comp.py", line 432, in <module>
fcsv = open(current_temp,'w')
IOError: [Errno 2] No such file or directory: '/var/www/tmp/display/current.temp'

Die Zeilennummer stimmt nicht mit dem Original-Code überein, da ich ja etlich Zeilen für Logging eingefügt habe.
Bei mir wird WLANThermo Service (also usr/sbin/wlt_2_comp.py) vom initd gestartet. Ist das richtig so oder sollte der Prozess von irgendwas anderem gestartet werden?
Offensichtlich ist das Directory /var/www/tmp/display noch nicht da. Da /var/www/temp im tmpfs/Ramdisk liegt ist es nach einen Reboot erst mal nicht da. Ich hab gesehen, dass es der WLANThermoDIS Service (also wlt_2_lcd_204.py) erzeugt wird. Ich habe aber immer noch nicht herausgefunden wie/von wem WLANThermoDIS gestartet wird.
Bei mir scheint jedefalls derWLANThermo Service vor dem WLANThermoDIS Service zu starten bzw. in das Directory schreiben zu wollen.

Ich hab jetzt mal großzügig einen try/except in wlt_2_comp.py eingefügt, er einfach die Exception ignoriert. Nicht ganz so das gelbe vom Ei, aber jetzt kommt das Ding nach einen Rebbot wenigstens alleine zum laufen.

Hat jemand einen Tip was mir falsch lief/läuft? Wie wird normalerweise denn sichergestellt, dass /var/www/tmp/display existiert bevor wlt_2_comp.py das erste mal dort einen Datei schreiben will?

Gruß

MadBBQ
 
Kleine Fotoserie wie mein WLANThermo von innen und außen inzwischen aussieht.
Aufgebaut auf einer HumblePi (und ja hinterher ist man immer schlauer; die Lötpunkte unter dem ADC hätte man vermeiden können.)
Und Gehäusebasteln ist auch nicht wirklich meine Stärke.

Gruß
MadBBQ

IMG_2593.JPG


IMG_2597.JPG


IMG_2598.JPG


IMG_2600.JPG


IMG_2604.JPG


IMG_2610.JPG


IMG_2611.JPG
 

Anhänge

  • IMG_2593.JPG
    IMG_2593.JPG
    208,8 KB · Aufrufe: 647
  • IMG_2597.JPG
    IMG_2597.JPG
    243,7 KB · Aufrufe: 570
  • IMG_2598.JPG
    IMG_2598.JPG
    235,7 KB · Aufrufe: 571
  • IMG_2600.JPG
    IMG_2600.JPG
    198,3 KB · Aufrufe: 570
  • IMG_2604.JPG
    IMG_2604.JPG
    145,4 KB · Aufrufe: 556
  • IMG_2610.JPG
    IMG_2610.JPG
    180,2 KB · Aufrufe: 594
  • IMG_2611.JPG
    IMG_2611.JPG
    198 KB · Aufrufe: 618
Die Dienste verwaltet der Wachhund ;-)

service WLANThermoWD start

Vl läuft der nicht?
Hast du eventuell eine alte config in "var/www/config/" verwendet?
Ich hatte mal ähnliche Probleme und hab mir dann eine neue Speicherkarte besorgt. Hatte es zwar kurz wieder hingebogen mit neu aufsetzen aber 2Wochen später das selbe wieder....
Mit der neuen Sandisk gabs bisher keine Probleme mehr.
Vl hilft dir das ja.

Lg
 
Zurück
Oben Unten