Ankündigung

Einklappen
Keine Ankündigung bisher.

Temperatursensor DS18B20 mit exec Binding auslesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Temperatursensor DS18B20 mit exec Binding auslesen

    Hallo ihr openHAB Wissenden!

    Gleich mal vorweg: für mich ist das Thema ein komplett Neues. Die letzten Tage habe ich in div. Foren gestöbert und gegooglet was das Zeug hält, aber einer Lösung bin ich nicht näher gekommen - hier mein Problem:

    Es geht um eine Temperatursteuerung für mein Pool; d.h. konkret um eine Pumpensteuerung, die über Vorlauf- und Rücklauftemperatur, Hysterese und Maximaltemperatur gestreut werden soll.

    Davon bin ich aber weit entfernt - es hapert schon an der Temperaturmessung.

    a) openHAB ist am Raspberry installiert

    b) der DS18B20 lässt sich via shell auslesen
    Code:
    pi@raspberrypi /etc/openhab/configurations $ sudo /home/openhab/bin/onewiretemp.sh 28-000002bf115f
    29.062
    pi@raspberrypi /etc/openhab/configurations $
    c) der Designer (läuft auf einem Mac und greift über NFS auf den Raspberry zu) zeigt zumindest keinen Fehler bei
    Code:
    Number Temp_Ruecklauf "Rücklauf [%.1f °C]" <temperature> { exec="<[/home/openhab/bin/onewiretemp.sh 28-000002bf115f:5000:REGEX((.*?))]"}
    so wie ich das exec verstehe sollten alle 5 Sekunden der Wert aktualisiert werden; dennoch steht die Anzeige auf
    Rücklauf 0.0 °C

    Im Verzeichnis addons befindet sich die Datei "org.openhab.binding.exec-1.7.0.jar".

    Frage: muss da noch etwas konfiguriert werden oder bindet openHAB bei Start alle Dateien in addons automatisch ein? Ich habe auch versucht openHAB mit debug=yes zu starten - sollte ich da einen Aufruf der Binding Datei im logfile sehen?

    Danke für eure Tipps!

    lG
    Gerhard


    #2
    An der Console hast Du das Kommando mit sudo aufgerufen. Läuft openHAB bei Dir als User root? Ansonsten wird das nicht funktionieren, das exec-Binding hat normalerweise keine root-Rechte.
    Aber eventuell kannst Du es so drehen, dass das Script auch ohne sudo funktioniert, und zwar von dem User aufgerufen, unter dem auch openHAB läuft.

    Kommentar


      #3
      Ja, an die Recht habe ich auch schon gedacht, aber das Script läuft auch ohne sudo; weiters habe ich auch in /etc/default/openhab "root" als user definiert.
      Code:
      # Execution account and group. The user account should be member of group
      # "openhab" if it's different than "root" and "openhab".
      # Note that some bindings may require "root" access to the system.
      # Default value if isn't specified - "root:root".
      # USER_AND_GROUP=openhab:openhab
      
      # Web server's listening ports (plain and SSL). Note that if execution account
      # is different than "root" the port numbers should be greater than 1024.
      # Default value if isn't specified - none, must be specified.
      HTTP_PORT=8080
      HTTPS_PORT=8443
      
      # Console's listening port, same restriction as this for web server's ports.
      # Default value if isn't specified - none, must be specified.
      TELNET_PORT=5555
      
      # Extra arguments passed to Java
      JAVA_ARGS=
      
      # Extra arguments passed to openHAB
      OPENHAB_ARGS=
      
      # Use non-default Java VM.
      # Default value if isn't specified - system default Java VM.
      #OPENHAB_JAVA=/usr/bin/java
      
      # To enable debugging set to "yes" (case insensitive).
      # Default value if isn't specified - debugging is disabled.
      DEBUG=no

      Kommentar


        #4
        Moin,

        ich habe das bei meiner Messung der Heizungstemperaturen über DS18B20 etwas anders gelöst, eventuell hilft Dir das weiter:

        In meinem Heizraum läuft ein PI (1B), an dem mehrere Fühler über 1wire angebunden sind, am LAN.
        Auf diesem PI habe ich Node RED installiert, hier kann man sehr bequem über ein Webinterface grafisch die Sensoren konfigurieren und
        (u.a. periodische) Trigger zum Auslesen sowie Filter definieren (Da kann openHAB sich (leider) noch ein paar Scheiben abschneiden.

        Um das ganze zum "Haupt"-PI (2) im Schaltschrank zu bringen, habe ich auf dem Rechner noch mosquitto als MQTT-Broker installiert (Wird wahrscheinlich noch auf den zentralen PI umgezogen, da weitere Anbindungen anstehen).
        Der ausgelesene Wert wird (über Node RED modelliert) per MQTT bereitgestellt.
        Mittels des MQTT-Binding in OpenHAB subskribiere ich die Werte und leite sie dann bei jeder Änderung per Rule noch auf den knx-Bus weiter.

        Klingt erst mal kompliziert, isses aber nicht. War mein erster Kontakt mit MQTT und Node RED, sollte also mit etwas IT-Verständnis machbar sein :-)

        Vorteile:
        • openHab-Pi ist nicht elektrisch verbastelt, sprich der Gefahr ausgesetzt "gehimmelt" zu werden.
        • sehr einfache Konfiguration über das Node RED Interface.
        • Zudem habe ich per "Boxcar" eine Benachrichtigung ans iPhone eingerichtet, wenn Werte unter einen Schwellwert fallen (falls das Teil mal keine Lust hatte zu zünden und das Duschwasser morgens kalt bleibt ;-)
        • Zudem läuft die Lösung extrem stabil, ich bin kein Fan von zu viel Software auf einer einzelnen Kiste - i.d.R. macht es das nur instabiler und die Release-Abhängigkeiten steigen.

        Könnte ein alternativer Ansatz für Dich sein, eine Poolsteuerung würde ich (s.o.) als separaten PI aufsetzen, damit entkoppelt man das elektrische Gedöns etwas und hält den Hauptserver schlank. Aber das ist, wie immer, Geschmackssache.
        Kannst aber auch alles auf eine Kiste packen ;-)

        Gruß,
        Babbe


        Kommentar


          #5
          Vielleicht eine blöde Frage, aber warum nehmt ihr nicht einfach das One-Wire-Binding, wenn schon One-Wire-Sensoren ausgelesen werden sollen?

          Kommentar


            #6
            Naja, weil ich
            • keine Leitungen außer LAN liegen habe und legen will - wozu auch... zudem wird mit zunehmender Leitungslänge die Zuverlässigkeit tendenziell schlechter
            • mir den zentralen openHAB-Server weitestgehend elektrisch isolieren will
            • ich das Config-UI von node RED einfach für sehr gelungen und leicht zu beherschen halte. Hier kann ich viele Dinge realisieren, für die ich in openHAB rules programmieren müsste. Kein Problem für mich, aber "Keep it simple" ist da die Devise.
              Bin da schon sehr gespannt was openHAB2 hier mitbringen wird.

            Zudem hat es den Charm, daß die Seite mit den Fühlern auch weiterläuft und Infos raushaut, wenn der openHAB-Server mal abfault.

            Aber wie schon gesagt, viele Wege führen nach Rom - und bei den meisten gibt es gute Gründe dafür und dagegen
            Alles auf eine Kiste -> dann ist das Binding sicherlich sinnvoll.

            Gruß,
            Babbe

            Kommentar


              #7
              Hallo Babbe

              Vielen Dank für den Hinweis mit Node-Red+mqtt. Kannte ich so noch nicht. Schneller habe ich noch keine unterschiedlichen Sensoren/Aktoren miteinander verbinden können. Jetzt habe ich anstatt einem Pi einen Arduino Uno+Ethernet-Shield genommen. Unabhängig davon würde mich interessieren wie ich den (3 Stück) DS1820Bs unterschiedliche Topics zuweisen kann.

              Gruss Thomas
              Zuletzt geändert von opferwurst; 20.09.2015, 16:03.

              Kommentar

              Lädt...
              X