1wire-Ordner schneller löschen lassen

  • Hallo,
    wenn man Sensoren an den 1wire-Bus anschließt, werden in sehr kurzer Zeit entsprechende Ordner unter /sys/bus/w1/ angelegt.
    Umgedreht verschwinden diese Ordner wieder, wenn man den Sensor entfernt.


    Das nutze ich bei meiner Rollladensteuerung zur Kontrolle aus. Ich habe in den Rollladenpanzer zwei Magnete und in den Rollladenkasten zwei Reedkontakte eingebaut, die jeweils einen DS2401 als Adressgeber ansteuern. So erkenne ich den konkreten Ist-Zustand des Rollos und wenn es nachts Abweichungen von Soll-Zustand geben sollte, wird Alarm ausgelöst.


    Das funktioniert ganz gut, hat aber einen Haken. Die Ordner verschwinden erst ca. 90 Sekunden nach der Trennung des Kontakts.
    Kann man den RasPi dazu bringen, die Ordner von nicht mehr vorhandenen Sensoren schneller zu löschen?
    Ein einfaches "sudo rm /sys/bus/..." ist leider verboten.

    Viele Grüße
    DocAdams

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

    Edited once, last by docadams ().

  • Hallo docadams,
    Warum möchtest du unbedingt 1wire benutzen?
    Du könntest auch direkt die Reedkontakte an deine GPIO's anschließen.


    Ich würde außerdem Python nutzen.


    Grüße


    Leo

    Wenn's qualmt und stinkt hast du was falsch gemacht :D

  • Du meinst sicher die Lösung, alle ZU-Kontakte bzw. alle AUF-Kontakte in Reihe schalten und das dann an jeweils einen GPIO?


    OK, nachts ist es tatsächlich egal, durch -welches- Fenster der Einbrecher kommt ;) Da muss nur Alarm geschlagen werden.
    Tagsüber sollen aber manchmal die Rolllädan-Zustände unterschiedlich sein. Z.B. wegen unterschiedlicher Sonneneinstrahlung. Und da will ich konkret wissen, wie der momentane Zustand jedes einzelnen Fensters ist.
    Es war also eine bewusste Entscheidung für den Mehraufwand mit den Adressgebern usw. .

    Viele Grüße
    DocAdams

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

  • Ich kenne die Umgebung und deinen Kenntnisstand nicht.


    Mit 3 Adern (3 voneinander isolierte Kupferdrähte) kannst du beide Sensoren Parallel an den Pi bringen.
    Jetzt lässt sich doch anhand dessen welcher GPIO Pin seinen Pegel auf HIGH oder LOW geändert hat genau unterscheiden welcher Kontakt offen
    oder geschlossen ist.


    Oder hast du nur zwei Adern am Fenster?

    Wenn's qualmt und stinkt hast du was falsch gemacht :D

  • Ich habe derzeit 3 Fenster, an denen jeweils ein Temperatursensor und die beiden Reedkontakte hängen. Außerdem werden jeweils 2 Relais zur RollladenSteuerung kabelgebunden an die GPIOs angeschlossen.
    So gehen langsam die GPIOs aus. Und ich möchte die Kontrolle (Temperatur und Reedkontakte) auf ein weiteres Zimmer ausweiten.
    Also, ich denke, 1wire ist für mich schon die optimale Lösung, denke ich mal.

    Viele Grüße
    DocAdams

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

  • Ok bei der Menge macht das Sinn.
    dann würde ich trotzdem versuchen per Python mehr Performance raus zu holen (falls Python 1wire unterstützt)

    Wenn's qualmt und stinkt hast du was falsch gemacht :D


  • dann würde ich trotzdem versuchen per Python mehr Performance raus zu holen


    Das Löschen der 1w-Ordner, und darum geht es mir nach wie vor, macht ja der Raspi selber, wenn der entsprechende Sensor weg ist. Was hat das mit einer Programmiersprache zu tun?
    Ich hätte nur gern, dass das Verschwinden der Ordner etwas schneller ginge.

    Viele Grüße
    DocAdams

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

  • ... oder den (mittlerweile nicht mehr vorhandenen) Sensor auslesen, es müsste dann ja eine entsprechende Fehlermeldung geben !?


    Gruß, mmi

  • Du kannst statt nach Ordnern zu schauen (da?/nicht da?) Den Sensor in Python auslesen (siehe mmi) <- deshalb Python.


    Würde mir den Quatsch mit den Ordnern nicht geben.

    Wenn's qualmt und stinkt hast du was falsch gemacht :D

  • Ich habe nach langem Tauziehen den DS2406 für einen annehmbaren Preis und vor allem als TO-92 bekommen und ihn ganz frisch in den Shop gestellt. Das ist ein 1-wire Sensor, der Schaltzustände erkennen aber auch auslösen kann. Vielleicht wäre das eine Alternative.


  • was war Unisnn :s ... das mit dem Entladen?


    Nee....
    Meine Kritik an dem vom raspiprojekt vorgeschlagenem Sensor ist Unsinn gewesen.
    Ich habe den PIO des DS2406 übersehen, bzw. im ersten Anlauf nicht richtig verstanden.
    Das Bauteil ist nicht gerade billig, sollte aber den Anforderungen besser entsprechen, als die DS2401 es tun.


    Die DS2406 würden den von mir vorgeschlagenen dirty Hack überflüssig machen.


  • Nee....
    Meine Kritik an dem vom raspiprojekt vorgeschlagenem Sensor ist Unsinn gewesen.


    Wie, Du kritisierst mich? :cool:
    Konnte leider die Kritik nicht mehr lesen, warst zu schnell. Die Teile sind leider im Einkauf schon recht teuer aber für bestimmte Anwendungen gar nicht schlecht. Eigentlich hätte der Schaltkreis ja sogar 2 I/Os aber durch das TO-92 Gehäuse fällt einer weg. Die SMD-Variante habe ich aber extra nicht geordert, weil das für einen Bastler kaum möglich ist, da was zu machen. Evtl. bringe ich damit ein kleines Breakout. Interessant ist so ein Zweikanalschalter allemal.

  • Hallo und vielen Dank für eure Antworten.
    Ich hatte zu Beginn meiner Experimente mich an das Tut von Raspiprojekt mitgehalten, das Ganze also mit

    Code
    modprobe w1-gpio pullup=1

    aktiviert. Ohne eine Ahnung, was mal daraus werden wird. Ist also alles "historisch gewachsen".
    Dann kam die Idee, zu prüfen, ob die Rollos tatsächlich runter gefahren sind. Bei Kontakt erscheinen die Ordner ja auch schnell. Und erst viel später kann die Idee, damit auch nachts überprüfen zu lassen, ob die Rollos auch unten bleiben. Oder ob sich jemand daran zu schaffen macht und der Kontakt öffnet und damit der Ordner wieder verschwindet. Am Experimentiertisch war mir nicht die Konsequenz bewusst, dass dies wesentlich länger dauert.
    OK, ich glaub zwar nicht, dass jemals einer einsteigen wird, aber es ist schön zu wissen, dass wir noch mehr Abwehrmaßnahmen haben... Allerdings wird es eben erst nach 2 Minuten laut.
    Ich habe inzwischen einiges verbaut und der Rest wartet nur noch, verbaut zu werden. Ich muss also mit der genannten Hardware auskommen.


    Quote

    ich fürchte, da müsstest Du das 1Wire Modul umstricken.
    Da wird vermutlich eine gewisse Latenzzeit mit reinspielen,


    So in die Richtung hatte ich auch gedacht. Naiv wie ich nun mal bin, habe ich mich im Ordner /sys/module/w1_gpio/ umgesehen. Allerdings trifft das Sprichwort mit der Kuh und dem neuen Tor recht gut zu ;) Aber vermutlich liege ich auch völlig falsch.


    Quote

    Entladen und neu laden?
    *dirty Hack*


    Was meint ihr damit?


    Quote

    ... oder den (mittlerweile nicht mehr vorhandenen) Sensor auslesen, es müsste dann ja eine entsprechende Fehlermeldung geben !?


    Leider nein. Der Ordner samt Inhalt ist noch da. Die Abfrage ist so:

    Code
    ...
    for key in "${!MYMAP[@]}"; do 
            if [ ! -f /sys/bus/w1/devices/$key/name ];then
    ...


    Da die Datei scheinbar echt noch ca. 90sec nach Trennung vorliegt, gibt es keine Fehlermeldung.


    An 1w hängen ja auch Temperatursensoren. Die werden zwar per Programm ausgelesen. Aber wenn ich das richtig verstehe, wird ja nur in Intervallen in den entsprechenden Ordner geschaut. Das hat also nichts mit der Aktualisierungsrate der Datei w1_slave zu tun, nicht wahr?


    Ich hatte ja schon versucht, vor der Abfrage alle Ordner .../10-*/ zu löschen. Oder auch nur die Datei .../10-*/Name.
    Und wenn der Kontakt vorhanden ist, wird er wieder erstellt, so wie wenn der Kontakt geschlossen wird.
    Und wenn der Kontakt nicht vorhanden ist, wird auch nichts wieder erstellt.


    Allerdings habe ich eben keine Rechte dazu.

    Viele Grüße
    DocAdams

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

  • Hm, hab ich jetzt alle Gedanken Tod geschlagen? Das war nicht meine Absicht...

    Viele Grüße
    DocAdams

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