Ankündigung

Einklappen
Keine Ankündigung bisher.

Status von 1-Wire REED-Fensterkontakten an Gruppenadressen senden

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

    Status von 1-Wire REED-Fensterkontakten an Gruppenadressen senden

    Hi zusammen,

    ich bin mir nicht sicher, ob der Thread besser hier oder im KNX-Forum aufgehoben ist.
    Bin derzeit nämlich am austüfteln, wie ich meine REED-Fensterkontakte am besten in ETS bzw. in Gruppenadressen verfügbar mache.

    Ist-Situation

    Die Fensterkontakte sind an den Fensterkontaktmeldern vom TH Blog Shop angeschlossen und diese basieren auf dem DS2411.
    1-Wire nutzt den Beaglebone Black mit IBB Cape als Schnittstelle, auf dem Beaglebone sind auch SmartHome NG mit dem owfs-Plugin installiert.

    Hier die Versionen (ich weiß, dass die veraltet sind, ich scheue aber noch ein Update wg. "Never touch a running system"):

    1.png
    2.png

    Die Fensterkontakte werden damit im owfs Webinterface directory aufgelistet. Das sieht so aus:

    3.png

    Die Fensterkontakte haben den Family Code 01, die komplette ID sieht also z. B. so aus: 01.71CDDB180000

    Von der Funktionsweise läuft das so ab:
    • Wenn das Fenster geschlossen und verriegelt ist, wird der Sensor im owfs directory angezeigt.
    • Wenn das Fenster entriegelt und gekippt bzw. geöffnet ist, wird der Sensor nicht mehr im owfs directory angezeigt.
    Dann habe ich die Datei \usr\local\smarthome\items​\fensterkontakte.yaml erstellt und folgendes hinterlegt (beispielhafter Ausschnitt):

    Code:
    fensterkontakte:
        ug:
            u1_fitnessraum:
                u1_bk10:
                    enforce_updates: true
                    type: bool
                    cache: true
                    knx_dpt: 1
                    knx_send: 8/3/0
                    knx_reply: 8/3/0
                    ow_addr: '01.71CDDB180000'
                    ow_sensor: B
                u1_bk9:
                    enforce_updates: true
                    type: bool
                    cache: true
                    knx_dpt: 1
                    knx_send: 8/3/1
                    knx_reply: 8/3/1
                    ow_addr: '01.3C52F0180000'
                    ow_sensor: B
    ​
    Hier bin ich allerdings schon ein bisschen ins Straucheln gekommen, da ich nicht wusste, welcher Wert für ow_sensor der korrekte wäre. Habe mich dann anhand der Beispiele von onewire — Anwenderdokumentation v1.9.2 v1.9.2 (Stand 2. Mai 2022) Dokumentation (smarthomeng.de)​ für einen iButton entschieden, da dieser ebenfalls den Family Code 01 nutzt.

    Damit sind die Fensterkontakte schonmal unter den angegebenen Gruppenadressen verfügbar (z. B. 8/3/0). In ETS sieht das so aus:

    4.png

    Probleme

    1) Datentyp

    Den Gruppenadressen habe ich in ETS den Datentyp Fenster/Tür zugeordnet, der ist allerdings invertiert zum korrekten Wert.
    Wenn der Wert Wahr ist, sollte er in ETS als closed angezeigt werden. Wahr wird allerdings als open angezeigt.

    Wie kann ich das ändern?


    2) Aktualisierungsintervall

    Die Werte werden von SmartHome NG bzw. owfs anscheinend nur zyklisch an die Gruppenadressen gesendet, also unabhängig von einer Änderung des Werts. Das sieht im Gruppenmonitor dann so aus:

    5.png

    Das heißt, wenn ich ein Fenster öffne, dann wird der Wert erst nach einem vollständigen Zyklus (dauert mehr als drei Minuten) in ETS aktualisiert, sodass ich damit keine spontanen Reaktionen, wie z. B. das Hochfahren des Rollladens auslösen kann.

    Wie lässt sich das anpassen?

    Vielen Dank schon mal für eure Hilfe!
    Zuletzt geändert von ugobald; 19.04.2025, 10:36.

    #2
    Zitat von ugobald Beitrag anzeigen
    Wenn das Fenster entriegelt und gekippt bzw. geöffnet ist, wird der Sensor nicht mehr im owfs directory angezeigt.
    Das klingt erstmal nicht gut. Du solltest als erstes den Sensor vernünftig zum laufen bringen. Unabhängig vom Zustand des Sensors sollte er angezeigt werden.

    Zitat von ugobald Beitrag anzeigen
    Hier bin ich allerdings schon ein bisschen ins Straucheln gekommen, da ich nicht wusste, welcher Wert für ow_sensor der korrekte wäre.
    Welche möglichen Werte zeigt Dir denn das Webinterface des onewire Plugins (auf dem Tab 'Onewire Busse') an? Im Webinterface (zumindest von SmartHomeNG v1.9.5) werden die möglichen Werte in der Spalte Keys aufgeführt)

    Viele Grüße
    Martin

    There is no cloud. It's only someone else's computer.

    Kommentar


      #3
      Zitat von Msinn Beitrag anzeigen
      Das klingt erstmal nicht gut. Du solltest als erstes den Sensor vernünftig zum laufen bringen. Unabhängig vom Zustand des Sensors sollte er angezeigt werden.
      Soweit ich mich erinnern kann, ist das das Funktionsprinzip: Reed-Schalter ist geöffnet > Kreis unterbrochen und Sensor nicht sichtbar.
      Ist aber sehr lange her und ich habe leider keinerlei Dokumentation dazu.

      Zitat von Msinn Beitrag anzeigen
      Welche möglichen Werte zeigt Dir denn das Webinterface des onewire Plugins (auf dem Tab 'Onewire Busse') an? Im Webinterface (zumindest von SmartHomeNG v1.9.5) werden die möglichen Werte in der Spalte Keys aufgeführt)
      Diesen Tab gibt's bei meiner Version von SmartHome NG leider noch nicht.​

      Kommentar


        #4
        Ich fürchte der Sensor ist einfach nur ein ID teil und dem wird vom Reed "der Strom abgedreht" wenn das Fenster offen ist. Hast Du das mal machen lassen oder selbst fabriziert? Ist das ein professioneller Reed-Sensor der vom Fensterhersteller direkt eingebaut wurde oder ist das was mit Marke Eigenbau? Wo ist das Onewire ID Teil den zu finden? In der Nähe des Reed Relais? Oder aber in der Verteilung? Oder in einer Dose?

        Der Sensor kann IMHO als iButton gesehen werden wie Du es auch schon beschrieben hast und das Onewire Plugin kann diese iButtons auch schneller abfragen als Temperatursensoren.

        Kommentar


          #5
          Zitat von bmx Beitrag anzeigen
          Ich fürchte der Sensor ist einfach nur ein ID teil und dem wird vom Reed "der Strom abgedreht" wenn das Fenster offen ist. Hast Du das mal machen lassen oder selbst fabriziert? Ist das ein professioneller Reed-Sensor der vom Fensterhersteller direkt eingebaut wurde oder ist das was mit Marke Eigenbau? Wo ist das Onewire ID Teil den zu finden? In der Nähe des Reed Relais? Oder aber in der Verteilung? Oder in einer Dose?
          Ja genau, ich denke auch, dass es so funktioniert.
          Die Fensterkontakte sind vom Fensterbauer verbaut. Als Schnittstelle zwischen Fensterkontakt und 1-Wire habe ich dann so Selbstbaukits namens "1-Wire Kontaktmelder" gekauft. Ich habe nur noch die Stückliste dazu:

          2023-08-01 16_36_11-Eingelesenes Bild.png

          Wenn du mit 1-Wire ID-Teil genau diesen Kontaktmelder meinst: Der steckt in einer separaten Dose neben den Fenstern, da kommt dann die REED-Leitung vom Fenster an. Und in dieser Dose wird dann auch der Kontaktmelder am 1-Wire-Bus angeschlossen.


          Zitat von bmx Beitrag anzeigen
          Der Sensor kann IMHO als iButton gesehen werden wie Du es auch schon beschrieben hast und das Onewire Plugin kann diese iButtons auch schneller abfragen als Temperatursensoren.
          Jepp. An sich funktioniert es ja auch mit den zwei genannten Einschränkungen, die für mich das ganze aber weitaus weniger nutzbar machen.
          Mit der Invertierung käme ich noch klar, das ist dann einfach Sache, wie man die Werte weiter verarbeitet.

          Aber das rein zyklische Abfragen macht das ganze sehr träge. Und da müsste es doch seitens SmartHome NG bestimmt eine Einstellmöglichkeit geben, dass die Werte bei Änderung an die Gruppenadresse versendet werden

          Kommentar


            #6
            Naja die Invertierung könnte man über ein Hilfsitem und eval machen, das wäre kein Problem. Und seitens SmartHomeNG sollten Änderungen auch am entsprechenden Item durchgeführt werden. Ich nutze keine iButton und kann das ganze nicht testen.

            Meine Reed Relais sind via KNX und MDT Tasterinterface bzw. Jalousieaktor mit potentialfreien Kontakten angebunden, da hätte ich nie auch nur den Versuch mit 1-Wire gemacht.

            Du solltest zumindest mal das debugging einschalten wenn Du vermutest, das da etwas mit dem Plugin nicht stimmt.

            Kommentar


              #7
              Danke dir. Anfängerfrage: Wie schalte ich das Debugging ein?

              Und 1-Wire hatte ich mir für genau solche simplen Sensor-Sachen installiert. Ist natürlich schade, dass es jetzt nicht so funktioniert, wie ich mir das vorgestellt habe.

              Kommentar


                #8
                Du kannst im Admin Interface einen neuen Logger für plugins.onewire erstellen. Ansonsten ist die Doku ein erster Anlaufpunkt.

                Da sollte dann etwas wie das hier auftauchen:
                Code:
                2023-08-04  22:34:48 CEST DEBUG    __init__     onewire-io   plugins.onewire  _io_cycle: no item path found for mapping '3A.1F8107000000-IA' -- __init__.py:_io_cycle:296
                2023-08-04  22:34:53 CEST DEBUG    __init__     onewire-io   plugins.onewire  _io_cycle: no item path found for mapping '3A.1F8107000000-IA' -- __init__.py:_io_cycle:296
                2023-08-04  22:34:58 CEST DEBUG    __init__     onewire-io   plugins.onewire  _io_cycle: no item path found for mapping '3A.1F8107000000-IA' -- __init__.py:_io_cycle:296
                2023-08-04  22:35:03 CEST DEBUG    __init__     onewire-io   plugins.onewire  _io_cycle: no item path found for mapping '3A.1F8107000000-IA' -- __init__.py:_io_cycle:296
                2023-08-04  22:35:08 CEST DEBUG    __init__     onewire-io   plugins.onewire  _io_cycle: no item path found for mapping '3A.1F8107000000-IA' -- __init__.py:_io_cycle:296
                2023-08-04  22:35:13 CEST DEBUG    __init__     onewire-io   plugins.onewire  _io_cycle: no item path found for mapping '3A.1F8107000000-IA' -- __init__.py:_io_cycle:296
                2023-08-04  22:35:18 CEST DEBUG    __init__     onewire-io   plugins.onewire  _io_cycle: no item path found for mapping '3A.1F8107000000-IA' -- __init__.py:_io_cycle:296
                ​
                In Deinem Fall wäre das dann Fenster offen (oder Kabel kaputt)

                Kommentar

                Lädt...
                X