Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten zwischen onewire und KNX austauschen

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

    #16
    Hallo Michael,

    hm, bei mir funktioniert der Link.

    Ich bin sehr gerne bereit da drüber zu schauen. Aber dazu brauche ich Deine log files um zu sehen was passiert (oder was nicht).

    Das Binding was ich Dir mal geschickt habe ist schon älter und ein paar Bugs wurden nocht gefixt. Daher verwende bitte das aus der Dropbox.

    Gruß
    Dennis

    Kommentar


      #17
      Hi,

      ich habe heute morgen kurz getestet. KNX Binding eingebunden (aber nicht konfiguriert in der openhab.cfg).

      Item definiert und laufen lassen. Das funktioniert grundsätzlich. Das KNX-Binding bekommt das Update von dem Item mit. Sonst kommen keine log-Ausgaben vom KNX-Binding, was ich aber auf die fehlende Konfiguration in meiner openhab.cfg schieben würde.

      Gruß
      Dennis

      Code:
       Number OneWireVirtualTemperatursensor          "DS18S20 [%.1f °C]“ <temperature>        (OneWireVirtual)        {onewire="deviceId=28.67C6697351FF;propertyName=temperature;refreshinterval=10",knx="5/1/40"}
      Code:
      07:08:43.315 [DEBUG] [.o.b.o.internal.OneWireBinding:219  ] - Item OneWireVirtualTemperatursensor wants update!
      07:08:43.315 [DEBUG] [o.o.b.o.i.c.OneWireConnection :202  ] - trying to read from '28.67C6697351FF/temperature', read attempt=1
      07:08:43.315 [DEBUG] [o.o.b.o.i.c.OneWireConnection :185  ] - check if device exisits '28.67C6697351FF':  
      07:08:43.396 [DEBUG] [o.o.b.o.i.c.OneWireConnection :205  ] - Read value '     83.9112' from 28.67C6697351FF/temperature, read attempt=1
      07:08:43.396 [DEBUG] [o.o.b.o.i.s.OneWireUpdateTask :53   ] - Autorefresh: Waiting for new item in update queue
      07:08:43.396 [INFO ] [runtime.busevents             :26   ] - OneWireVirtualTemperatursensor state updated to 83.9111999999999937926986603997647762298583984375
      07:08:43.397 [DEBUG] [.b.knx.internal.bus.KNXBinding:113  ] - Received update (item='OneWireVirtualTemperatursensor', state='83.9111999999999937926986603997647762298583984375')

      Kommentar


        #18
        Hallo Dennis,
        danke für die Rückmeldung, bin leider noch nicht dazu gekommen, das Logging zu erhöhen und den Fehler nachzuvollziehen. Ich werde das in Kürze prüfen un dmich wieder melden!
        Viele Grüße
        Michael

        Kommentar


          #19
          Also langsam werde ich immer sicherer, dass hier ein Fehler vorliegen muss.
          Die Datenübertragung vom HTTP-Binding zum KNX-Binding funktioniert, es wird auf den KNX Bus geschrieben:
          Code:
          Number IPWETemp     "Außentemperatur [%.1f °C]"    <temp_outside>    (gAussenTemperatur)   { knx="2/0/1", exec="<[/opt/usr/openhab/scripts/getIPWEData.pl temperature:150000:REGEX((.*?))]" }
          2015-04-21 18:00:17.865 [DEBUG] [.b.knx.internal.bus.KNXBinding] - Received update (item='IPWETemp', state='21.6')
          2015-04-21 18:00:17.872 [DEBUG] [.b.knx.internal.bus.KNXBinding] - Wrote value '21.6' to datapoint 'command DP 2/0/1 IPWETemp, DPT main 0 id 9.001, low priority'
          In meiner KNX-onewier Konstellation bleibt das Schreiben auf den KNX Bus aus:
          Code:
          Number  HumiBad  "Luftfeuchtigkeit Bad [%.1f %%]"    <humidity> (gBad,gHumidity) { onewire="deviceId=26.D0E356010000;propertyName=humidity;refreshinterval=120", knx="5.001:1/4/33" }
          Code:
          2015-04-21 18:00:59.983 [DEBUG] [.o.b.o.internal.OneWireBinding] - Item HumiBad wants update!
          2015-04-21 18:00:59.983 [DEBUG] [o.o.b.o.i.c.OneWireConnection ] - trying to reed from '26.D0E356010000/humidity':
          2015-04-21 18:00:59.984 [DEBUG] [o.o.b.o.i.c.OneWireConnection ] - check if device exisits '26.D0E356010000':
          2015-04-21 18:01:00.205 [DEBUG] [o.o.b.o.i.c.OneWireConnection ] - Read value '     36.7622' from 26.D0E356010000/humidity, attempt=1
          2015-04-21 18:01:00.242 [DEBUG] [.b.knx.internal.bus.KNXBinding] - Received update (item='HumiBad', state='36.76219999999999998863131622783839702606201171875')
          Es kommt kein "Wrote value '36.7621999999999999886313162278383970260620117187 5' to datapoint 'command ..."
          Warum???

          Was mache ich falsch???

          Kommentar


            #20
            Nochmal die Frage: Hast Du mal versucht, die Binding-Reihenfolge zu ändern, also
            Code:
            Number  HumiBad  "Luftfeuchtigkeit Bad [%.1f %%]"    <humidity> (gBad,gHumidity) { knx="5.001:1/4/33", onewire="deviceId=26.D0E356010000;propertyName=humidity;refreshinterval=120"}
            statt
            Code:
            Number  HumiBad  "Luftfeuchtigkeit Bad [%.1f %%]"    <humidity> (gBad,gHumidity) { onewire="deviceId=26.D0E356010000;propertyName=humidity;refreshinterval=120", knx="5.001:1/4/33" }
            ?

            Kommentar


              #21
              Hallo udo1toni,
              danke für den Hinweis. Ich habe das schon mal getestet, leider ohne Erfolg. Allerdings werde ich Deinen Hinweis nochmal aufgreifen und mir das genauer mit dem erhöhten Logging ansehen. Ich verwende diesen Datenaustausch zwischen KNX und anderen Bindings öfter, zumindest da scheint die Reihenfolge keine Rolle zu spielen. (KNX-HTTP, KNX-Squeezebox, KNX-ntp).
              Allerdings scheint sich an dem onewire Binding was geändert zu haben, zumindest erkenne ich das an der Größe des Bindings.
              Weiteres heute abend :-)

              Einen schönen Tag noch!
              Gruß Michael

              Kommentar


                #22
                Update:
                auch das Vertauschen der Reihenfolge in der Binding Definition führt zu keiner Änderung. Ich behaupte mal, das ist ein Bug! Nur wo?
                Ist es das KNX Binding oder onewire-Binding (oder vielleicht eine andere Stelle)?

                Kommentar


                  #23
                  Hi,

                  hier meine Antwort auf den Post beim Pull Request. Für mich sieht es so aus, als wenn Deine KNX Adresse kein gültiger Datapoint ist. Ich kenne mich aber überhaupt nicht aus mit KNX, daher müsste da mal jemand drauf schauen, der sich damit auskennt.

                  Fakt ist:
                  der Value vom OneWireDevice wird gelesen, an den Bus geschrieben und KNX bekommt das Update mit <- so auch in Deinen Logs zu erkennen

                  Die Methode writeToKNX versucht dann Datapoints für das Item zu bekommen (Methode getDatapoints), bekommt aber eine leere Liste zurück, wenn ich Deine Adresse knx="5.001:1/4/33" verwende.

                  Nehme ich als Adresse knx="5/1/40" aus dem WIKI, kommt in der Liste ein Datapoint zurück und das KNX Binding könnte schreiben, wenn ich den einen KNX Bus hätte :-)

                  Gruß
                  Dennis


                  Hi,

                  i debuged again. Your configuration of a knx item seems to be not a valid one, i think.

                  The method getDatapoints (of knx binding) looks for datapoints of an item.

                  For knx="5.001:1/4/33" the method of knx binding returns an empty list, so the value of onewirebinding is not written to knx, because there is no valid datapoint.

                  For ,knx="5/1/40" for example the method returns a list with one datapoint.

                  So please check your knx adresses. I am not familiar with knx.

                  Greetings
                  Dennis
                  Zuletzt geändert von Dennis650; 22.04.2015, 18:53.

                  Kommentar


                    #24
                    Im Sourcecode ist 5.001 aufgeführt (DPT.Scaling), eigentlich sollte das funktionieren. Wäre aber natürlich einen Versuch wert. Am einfachsten wäre, testweise mal ein Item nur mit knx-Bindung anzulegen und mit der OSGi-Konsole Werte zu schreiben, dann kann man ja schnell sehen, ob DPT5.001 der Übeltäter ist.
                    Zuletzt geändert von udo1toni; 22.04.2015, 19:25. Grund: Typo

                    Kommentar


                      #25
                      Ich bin erst wieder am Sonntag zuhause. Dann werde ich aber Eure Hinweise auf alle Fälle testen. Vielen Dank fürs Feedback, bin schon gespannt :-)

                      Kommentar


                        #26
                        Hi,

                        und? Konntest Du das Problem lösen?

                        Gruß
                        Dennis

                        Kommentar


                          #27
                          Hatte einen Unfall und bisher deshalb noch keine Zeit ... shit happens!s

                          Nachtrag, hab's jetzt getestet:
                          nachdem ich die Datapoint Definition im Item weggenommen habe, hatte es noch nicht funktioniert. Nachdem ich allerdings meinem KNX Display auch noch mitgeteilt habe, dass es sich um Double Float Werte handelt, geht es jetzt.
                          Vielen Dank für den Stubs in die richtige Richtung!!!

                          Viele Grüße
                          Michael
                          Zuletzt geändert von staehler; 29.04.2015, 17:01.

                          Kommentar

                          Lädt...
                          X