unter ganz bestimmten Umständen verschwinden 1W-Sensorordner

  • Hallo,
    seit mehreren Wochen kämpfe ich mit einem Phänomen, das ich noch nicht mal einordnen kann, ob es ein Hardware- oder Software-Problem ist oder ob ich schlicht zu viel vom RasPi B verlange.
    Ich stelle hier die Frage ein, weil es sich um die 1W-Temperatur-Ordner unter /sys/bus/1w/devices/... handelt.

    Aber der Reihe nach.
    Seit einem viertel Jahr betreibe ich erfolgreich einen RasPi Modell B zur Temperaturüberwachung meiner Heizung und weiterer Räume. Die GPIOs habe ich in Anlehnung des Tutorials von Raspeprojekt aktiviert. Es sind aktuell 8 Sensoren, 5 Sensoren Heizung (ca. 3m Kabellänge vom RasPi entfernt, dann sternförmig verlegt) und von dort aus 3 weitere Sensoren, max. 8m entfernt. Den Widerstand habe ich auf 3K3 Ohm reduziert.
    Außerdem läuft das Skript zum Hoch- und Runterfahren des RasPis.
    Funktioniert einwandfrei.
    Die Datenerfassung erfolgt nach einer Idee von Martin Kompf, also mit RRD-Tool sowie LightTPD.

    Da der RasPi eigentlich gnadenlos unterfordert ist und weil er ohnehin im Schaltschrank untergebracht ist, möchte ich ihn um die Strommessung ergänzen.
    Dazu habe ich mich für das Projekt PiEM Feraris Stromzähler entschieden, allerdings mit dem gekauften Gesamtprojekt von TGD-Consulting

    Nun habe ich ein Problem, wenn ich parallel zu meiner Temperaturmessung die Strommessung aufrufe. Der Entwickler hat sich auch schon sehr um mein Problem gekümmert, aber irgendwie sind wir nun doch am Ende...

    Sein Projekt besteht im Grunde aus 2 in ROBOL geschriebenen Teilen, eines zur Datenerfassung und Aufbereitung sowie ein Webserver, der bei Aufruf GNUPlot-Grafiken erzeugt und anzeigt.

    Und hier beginnt das Problem. Beide Bausteine werden beim Booten gestartet und laufen einwandfrei im Hintergrund. Die Datenerfassung meiner Temperaturen und des Stromzählerstandes läuft ohne Probleme.

    Erst wenn ich den Webserver der Strommessung mittels http://IP-adresse:8080 aufrufe, verschwinden nach 1...2 Minuten einige Sensorordner unter /sys/bus/1w/devices/...
    Nicht alle, aber einige. Das Problem kann nur mittels Neustart beseitigt werden.

    Beim Entwickler läuft auch Strom- und Temperaturmessung parallel. Allerdings nicht so vielen Sensoren. Und bei mir klappt es auch mit 4 Sensoren, nicht aber mit 8 Sensoren. Ich habe bereits den Widerstand auf 2K1 Ohm reduziert. Noch weniger traue ich mich nicht.

    Es gibt noch einen Unterschied, den der Entwickler entdeckt hat, den wir nicht deuten können. Bei mir im dmesg-Log steht Folgendes:

    Code
    [ 5.473795] Driver for 1-wire Dallas network protocol.
    [ 5.627729] w1-gpio onewire@0: gpio pin 4, external pullup pin -1, parasitic power 0
    [ 5.782649] w1_add_master_device: set_pullup requires write_byte or touch_bit, disabling


    Bei ihm steht nur

    Code
    [ 5.489771] Driver for 1-wire Dallas network protocol.
    [ 5.658567] w1-gpio onewire@0: gpio pin 4, gpio pullup pin -2
    [ 5.777608] w1_add_master_device: set_pullup requires write_byte or touch_bit, disabling

    Könnte das von Bedeutung sein?
    Oder ist das Modell 1B schlicht überfordert und könnte Modell 2 hardwaremäßig leistungsfähiger sein?

    EDIT:
    Ich möchte noch was zur Verkabelung der Sensoren sagen. Die Sensoren sind zum Großteil mittels CAT7-Kabel verbunden, wobei DATA und GND ein Kabelpaar sind und die 5V der Strang eines anderen Paares. Die Kabel sind relativ massiv und auch massiv ummantelt.

    Viele Grüße
    DocAdams

    1x RaspberryPi 2, 1x RaspberryPi 3, 1x OpenELEC, 1x RaspberryPi 4 mit ioBroker ,

    Einmal editiert, zuletzt von docadams (5. März 2015 um 11:48)

  • unter ganz bestimmten Umständen verschwinden 1W-Sensorordner? Schau mal ob du hier fündig wirst!

  • Hallo docadams,
    ich hab da einen ganz bestimmten Verdacht...

    auf meinem System "spinnen" die DS18B20 komplett wenn gleichzeitig beim Auslesen der Sensoren irgendeine andere GPIO Tätigkeit (interrupt oder crontab) vor sich geht. Ich vermute dass das Timing des 1wire Protokols aus den Fugen gerät und daher einige Sensoren (bei mir zeitweise) "verschwinden". In meinem Fall ist es der I2C Bus der stört.

    Kann es sein dass dein Webserver irgendeine GPIO Aktion ausführt während die 1wire Sensoren ausgelesen werden, oder etwa in genau dem Moment extreme System Resourcen benötigt?

    Was mich wundert ist dass der Zustand nicht reparabel ist, bei mir tauchen die Sensoren irgendwann dann wieder auf. Vielleicht hilft es die 1wire module neu zu laden?

  • Hallo zuammen,

    was 'nurazur' sagt - ähnliches Verhalten kann ich auch bestätigen. Mir ist aufgefallen, daß der ds18b20 ab und zu 128° (bei Zimmertemp.) liefert, wenn gleichzeitig Sound abgespielt wird.
    Aber die Sensoren arbeiten weiter und dann auch wieder richtig, bei Dir werden sie ja regelrecht ausgehängt. Vielleicht doch irgendeine Störstrahlung, da bleibt wohl nur, es mit einzelnen Sensoren der Reihe nach durchzuspielen.

    Die Unterschiede im dmesg Log kann ich mir eigentlich nur dadurch erklären, daß ihr beide nicht dieselbe Kernelversion habt.

    Gruß, mmi

  • Hallo und vielen Dank für eure Anteilnahme.

    So wie ich die Software verstanden habe, greift dieser Server eigentlich nur auf eine Textdatei der Art:

    Code
    6-Mar-2015/0:00:49 108120.1833 136
    6-Mar-2015/0:05:48 108120.1916 101
    6-Mar-2015/0:08:48 108120.2 167
    6-Mar-2015/0:12:17 108120.2083 144
    6-Mar-2015/0:18:15 108120.2166 84
    ...


    zu, erzeugt mit GNUPlot Grafiken (z.B. die angehängte current.png) für diverse Zeitintervalle und packt diese in ansehnliche HTML-Seiten. Das hat nichts direkt mit GPIOs zu tun.

    Ich hänge mal eine TXT-Datei an, in der ich eine Reihe Messungen erfasst habe, die ich kurz nach Aufruf des Webservers und folgendem Verschwinden der Sensorordner aufgenommen habe. Bitte entschuldigt die Datenmenge, aber ich stochere im Nebel rum.

    Inzwischen habe ich ja das Image völlig neu erstellt, die Skripte und Datenbanken allerdings übernommen. Trotzdem gleiches Verhalten. Also Module neu laden brachte leider nichts. Die Erfassung kann ja tagelang erfolgen. Erst nach Aufruf des Webservers verschwinden die Ordner. Das kann kein Zufall sein.

    Wie bei mmi, wo der Sound ja eigentlich auch nichts mit den Sensoren zu tun hat, scheint es auch bei mir zu sein.

    Es ist korrekt, der Autor und ich haben unterschiedliche Kernel. Ich habe den aktuelleren.

    Nur mal am Rande: Gibt es eine Möglichkeit, 2 GPIOs für 1W zu definieren, um die Sensoren aufzuteilen?


  • Nur mal am Rande: Gibt es eine Möglichkeit, 2 GPIOs für 1W zu definieren, um die Sensoren aufzuteilen?

    Nein, das w1-therm Kernelmodul ist nur für ein gpio ausgelegt.

    Mein Problem mit dem gleichzeitigen Sound ist so erklärbar, daß für die w1 Routine das timing nicht mehr stimmt. Bei Deinem Problem ist es sehr wahrscheinlich eine andere Ursache.

    Du könntest auch mal einen alten Kernel (z.B. 3.12) probieren. Nachdem der device tree noch recht neu und eigentlich noch in der Testphase ist, sicher einen Versuch wert.

    Gruß, mmi

  • Zitat

    Nein, das w1-therm Kernelmodul ist nur für ein gpio ausgelegt.


    OK, wäre auch zu schön gewesen ;)

    Geht es auch anders rum, der Rest bleibt und nur der Kernel wird nach alt geupdatet? Oder suche ich falsch?

    Viele Grüße
    DocAdams

    1x RaspberryPi 2, 1x RaspberryPi 3, 1x OpenELEC, 1x RaspberryPi 4 mit ioBroker ,


  • Geht es auch anders rum, der Rest bleibt und nur der Kernel wird nach alt geupdatet? Oder suche ich falsch?

    Ja, das geht. Kernel in /boot tauschen, aber nicht vergessen, dann auch in /lib/modules die dazu passenden Module einzuspielen.

Jetzt mitmachen!

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