Ankündigung

Einklappen
Keine Ankündigung bisher.

One-Wire Binding

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

    One-Wire Binding

    Hallo,

    nachdem ich mehre Temperatursensoren am 1-Wire Bus betreibe, viel gelesen habe und schwer begeistert vom 1-Wire Bus bin, habe ich mir nun DS2406 und DS2408 Bausteine besorgt um Kontakte auszulesen und Relais zu steuern.

    Entegen der Beschreibung im Wiki (https://github.com/openhab/openhab/w...e-Wire-Binding), kann das One-Wire Binding lt. SourceCode schon schreiben (zumindest in den aktuellen 1.7. builds). Ich bin begeistert! Ausprobiert habe ich das ganze noch nicht, muss noch krägtig löten :-)

    Das Einzige, dass mir im Binding noch fehlt, ist die individuelle Angabe der Polling Zeit pro Item. Derzeit lässt sich das Polling nur für alle Items einstellen.

    Beispiele:
    Bei den Temperatursensoren reicht es mir, wenn die pro Minute ausgelesen werden.
    Ob die Garage auf oder zu ist reicht mir alle 10 Sekunden.
    Ob es geklingelt hat, würde ich gerne pro Sekunde abfragen.

    Ist dies schwierig umzusetzen? Darf jeder an den Bindings selbst ändern und Vorschläge einreichen?

    Danke und Gruß
    Dennis

    #2
    Hier (https://github.com/openhab/openhab/issues/592) wird dieses individuelle Polling auch schon angeregt, aber leider hat sich bisher nix getan. Ich warte selbst darauf.

    Vielleicht willst Du den Issue nochmal nach oben heben, indem Du auch Deinen Wunsch äußerst ;-)

    Kommentar


      #3
      Hi,

      hm, dann werde ich mir das mal anschauen. Beim Exec Bindings ist das ja auch umgesetzt. Dort werde ich mal schauen wie das gelöst ist und das OneWire-Binding erweitern. Wie man das dann delivered und für alle zur Verfügung stellt muss ich dann noch erfragen. Die Entwicklungsumgebung habe ich mir neulich schon installiert und mir den Code des OneWireBindings schonmal angeschaut.

      Hast Du noch eine Idee in welchen Bindings individuelle Refresh-Perioden umgesetzt wurden, wo man sich sowas noch abschauen kann?

      Danke und Gruß
      Dennis

      Kommentar


        #4
        Ne, leider kann ich Dir da nicht weiterhelfen, bin kein Entwickler. Aber ich wünsche Dir viel Erfolg bei der Umsatzung, da ich selbst sehr interessiert bin ;-)
        Schönes Wochenende.

        Kommentar


          #5
          Im KNX Binding gibt es einen Refresh Cycle, der periodisch die GAs abfragt. Vielleicht hilft Dir das weiter?

          Wenn Du Dich tatsächlich am onewire Binding versuchst, dann hätte ich noch einen Wunsch ... vielleicht willst Du Dich daran auch versuchen:
          (https://github.com/openhab/openhab/issues/1611)
          Meine Fensterkontakte werden derzeit invertiert vom onewire ausgelesen, das hängt wohl davon ab, ob eine pull-up oder pull-down Schaltung am DS240x anliegt. Aktuell muss ich mit "komischen Regeln" diese Kontakte invertieren, damit sie korrekt angezeigt werden.
          Vielleicht hast Du eine gute Lösung, das parametrierbar im Item zu machen?

          Viele Grüße
          Michael

          Kommentar


            #6
            Hi,

            ist notiert, sollte sehr einfach sein.

            Die Entwicklungsumgebung und ein owserver in einer virtuellen Box habe ich mir gestern Abend alles fertig eingerichtet. Funktioniert soweit.

            Gestern habe ich mir noch das EXEC Binding angeschaut, da wird das auch individuell pro Item gelöst. Mal sehen ob das KNX Binding das genauso macht. Das openHab Framework scheint eine Pooling-Frequenz pro Binding zu erlauben, um die individuellen Items muss sich das Binding dann selbst kümmern.

            Heute ist allerdings noch ein Paket mit Hardware gekommen, daher wird erstmal gelötet :-)

            Gruß
            Dennis

            Kommentar


              #7
              Hallo,

              die Überarbeitung des Bindings ist so gut wie fertig. Ich dokumentiere gerade noch den Sourcecode.

              Neue Features:
              - individueller refreshzyklus pro Item
              - Ich habe "Modifier" eingeführt, die gelesene und zu schreibene Werte im Binding modifizieren können
              - ContactItem: invertierbar
              - SwitchItem: invertierbar
              - NumberItem: add=value (darüber "kalibriere" ich meine Temperatursensoren), multiply=value

              MinMax-Warnungen (z.B. Temperaturüberwachung):
              Als spezielles Binding kann man einen Switch an ein numerisches OneWire device property binden (z.B. Temperatur).
              Über vorgegeben Min-Values und/oder Max-Values werden die Werte überwacht. Wird der Max-Wert überschritten oder ein Min-Wert unterschritten, schaltet der Switch auf ON.

              Ich habe in einem anderen Thema gefragt, wie im Projekt das weitere Vorgehen ist, wie ich hier eine Testversion bereitstellen kann und wie ich den SourceCode einreichen kann: https://knx-user-forum.de/openhab/40...tml#post461081

              Viele Grüße
              Dennis

              Kommentar


                #8
                Das klingt super. Kannst Du mir das Binding schon mal vorab zukommen lassen, ich melde mich quasi als Beta-Tester ;-)
                Hilfreich wäre eine angepasste Doku im Wiki (https://github.com/openhab/openhab/w...e-Wire-Binding), um die neuen Features zu nutzen.

                Danke Dir!!

                Kommentar


                  #9
                  Hi,

                  wenn Du mir Deine eMail Adresse schickst, kann ich das Binding per Mail zuschicken.

                  Beispiele, wie die Bindings zu dokumentieren sind schriebe ich sowiso gerade in den JavaCode und werde ich dann hier posten.

                  Das Anpassen der Wiki-Seite dürfte ja eigentlich erst passieren, wenn die Anpassungen irgendwann in ein OpenHab Release einfließen. Die Infos auf der Wiki Seite müssen zur OpenHab Version 1.6.2 passen, denke ich.

                  Gibt es eine Wiki Seite für den Entwicklungsstream? Die könnte man schon anpassen und später in die "offizielle" Version überführen.

                  Gruß
                  Dennis

                  Kommentar


                    #10
                    Ich bin selbst kein Entwickler, habe es aber so verstanden, dass alles über git läuft, d.h. Du kannst auch die Änderungen im Wiki in den Pullrequest einbauen, oder ist das nicht so?

                    Kommentar


                      #11
                      Hi,

                      Danke für die Hinweise. Ich habe ein paar Tutorials gelesen und einen PullRequest eingereicht.

                      Danke und Gruß
                      Dennis

                      Kommentar


                        #12
                        Hi,

                        hier die aktualisierte Wiki-Seite:

                        https://github.com/Dennis650/openhab....0-Snapshot%29

                        Wenn jemand halbwegs die englische Sprache beherrscht, würde ich mich über Korrekturen freuen ;-)

                        Gruß
                        Dennis

                        Kommentar


                          #13
                          Hi dennis,

                          hab ich einen Verständnisproblem oder ist der Switch in diesem Fall immer on:
                          Code:
                          Switch OneWireTempWarnMin "TempWarnMin [%s]" onewire="deviceId=28.67C6697351FF;propertyName=temperature;refreshinterval=10;maxWarning=10;minWarning=20“}
                          Switch turns on, when value of device property s greater then maxWarning (10) or is less then minWarning (20)

                          Diese Bedingung ist doch immer erfüllt, oder? Ggf. sollten die Werte 10 und 20 in Deinem Beispiel getauscht werden, um Verwirrung zu vermeiden?

                          Viele Grüße
                          Michael

                          Kommentar


                            #14
                            Hi,

                            stimmt. Du hast recht. Habe ich einfach ohne zu überlegen aus dem Min und Max Beispiel rüberkopiert :-)

                            Ist angepasst im Wiki.

                            Danke Dir und Gruß
                            Dennis

                            Kommentar


                              #15
                              Hallo Dennis,

                              mit großer Begeisterung habe ich Deine Änderungen an der 1Wire Einbindung gelesen.
                              Ich hatte vormals die Version von Openhab 1.6.2 am laufen habe mir nun die 1.7 geladen.

                              Mir geht es im wesentlichen erstmal um das unterschiedliche polen (timing) der Sensoren.

                              Ich habe die addons aus der 1.7 genommen dann die jar Datei die Du in deiner DropBox zum runterladen hinterlegt hattest.
                              Mit beiden bekomme ich leider nicht vorran

                              Ich habe bei mir in der Items folgenden Eintrag hinterlegt:

                              Number OneWireTempSensor "Temp [%.1f °C]“ {onewire="deviceId=28.EFF756050000;propertyName=te mperature;add=0.8;multiply=1.1;refreshinterval=10“ }
                              und einmal so:
                              Number OneWireTempSensor "Temp [%.1f °C]“ (All) {onewire="deviceId=28.EFF756050000;propertyName=te mperature;add=0.8;multiply=1.1;refreshinterval=10“ }

                              beides geht leider nicht.

                              Ich sehe auch :
                              Binding configuration of type 'onewire' of item âTemperature_EG_Flurâ could not be parsed correctly.
                              org.openhab.model.item.binding.BindingConfigParseE xception: Onewire sensor configuration must contain of two parts separated by a '#'

                              setzte ich eine # hinter die DeviceID erhalte ich:

                              2015-05-05 16:14:38.268 [WARN ] [.o.b.o.internal.OneWireBinding] - couldn't read from path deviceId=28.EFF756050000
                              2015-05-05 16:14:38.270 [INFO ] [runtime.busevents ] - Temperature_EG_Flur state updated to Undefined

                              aber wie gesagt, geht leider auch nicht.

                              Welche one-Wire jar muss ich den nehmen und, sind meine Einträge so korrekt ?

                              Beste Grüß Achim

                              Kommentar

                              Lädt...
                              X