Ankündigung

Einklappen
Keine Ankündigung bisher.

Item soll sich wie KNX Gerät verhalten

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

    Item soll sich wie KNX Gerät verhalten

    Hallo zusammen,

    ich möchte gerne einen boolschen Wert, der initial in Smarthome gesetzt wird in regelmäßigen Abständen auf den KNX Bus schreiben.
    Zusätzlich soll der Wert aber vom KNX Bus - und innerhalb von Smarthome verändert werden können.
    Beim neustart von Smarthome soll sich das system den zuletzt gesetzten Wert merken, so dass er vom KNX Bus mit einem "Lesen" Telegramm von Smarthome gelesen werden kann.

    So wie ich das verstehe soll sich das Item also gegenüber dem KNX Bus wie ein KNX Objekt verhalten bei dem das "L" Flag gesetzt ist.

    Ich hab das bisher so versucht:
    Code:
    myItem:
        type: bool
        visu_acl: rw
        knx_dpt: 1
        cache: 'on'
        knx_send: 1/2/3
        knx_reply: 1/2/3
        knx_listen: 1/2/3
        cycle: 360
        enforce_updates: 'true'
    Dummerweise wird immer nach Ablauf der durch cycle festgelegten Zeit der Wert des Items auf false und auch so auf den Bus geschrieben unabhängig davon ob ich den Wert vorher durch den Bus oder in Smarthome selbst auf 'true' gesetzt habe.

    Kann mir jemand sagen wo mein Denkfehler ist, oder was ich falsch verstanden habe?

    Gruß
    Andreas

    Gruß Kex

    #2
    Hallo,
    ich glaube, wir brauchen noch mehr Informationen.

    Zitat von kex Beitrag anzeigen
    Ablauf der durch cycle festgelegten Zeit der Wert
    Für was hast du "cycle" in der Konfiguration? Was möchtest Du das mit bezwecken?

    Warum nutzt Du knx_replay und knx_send?
    Warum sind bei allen 3 knx Attributen die KNX GAs gleich?

    Michael

    Kommentar


      #3
      Zitat von Sisamiwe Beitrag anzeigen
      Für was hast du "cycle" in der Konfiguration? Was möchtest Du das mit bezwecken?
      Das cycle ist in der Konfiguration, weil ich möchte dass der aktuelle Wert in regelmäßigen Abständen auf den Bus geschrieben wird.

      Zitat von Sisamiwe Beitrag anzeigen
      Warum nutzt Du knx_replay und knx_send?
      knx_send: Damit smarthome weiss, auf welche GA der aktuelle Wert geschrieben werden soll.
      knx_reply: Damit das item auf Leseanfragen vom Bus reagiert

      Zitat von Sisamiwe Beitrag anzeigen
      Warum sind bei allen 3 knx Attributen die KNX GAs gleich?
      Ich hoffe mit einer GA auszukommen, da es mir übertrieben scheint, getrennte GAs für Status und Änderungen anzulegen. Von Seite des KNX-Buses sollte das auch funktionieren.

      Kann gut sein, dass ich bei einigen Dingen enen Denkfehler mache oder etwas falsch verstanden habe.
      Das Aktuallisieren des Items vom Bus und auf den Bus funktioniert so eigentlich auch ganz gut. (Leseanfragen habe ich noch nicht getestet).

      Aber das eigentliche Problem scheint wohl das 'cycle' zu sein: Immer wenn das aufgerufen wird, wird der Wert des Items auf 'false' gesetzt. Hab schon mit diversen 'eval' Ausdrücken rumgespielt. Aber ohne Erfolg.
      Gruß Kex

      Kommentar


        #4
        Probiers mal so:

        Mach ein Item mytrigger mit dem cycle Attribut.
        Setze in myitem einen eval_trigger auf das mytrigger Item und ein eval: value

        Damit triggert das Hilfsitem periodisch myitem und im eval wird dem Item der bisherige Wert zugewiesen (und auf den Bus geschrieben)
        Viele Grüße
        Martin

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

        Kommentar


          #5
          Hallo Martin,

          heute bin ich endlich dazu gekommen deinen Tipp auszuprobieren.

          Ein eval: value in myItem und dem eval_trigger in myItem hat leider nicht funktioniert. Das bewirkt aus Gründen die ich nicht verstehe, dass das Item nach ablauf der cycle Zeit immer auf false steht.

          Aber der Vorschlag hat mir den entscheidenden Denkanstoß gegeben.

          So sieht mein Item jetzt aus und scheint zu funktionieren:
          Code:
          myItem:
              type: bool
              visu_acl: rw
              knx_dpt: 1
              cache: 'on'
              knx_reply: 1/2/3
              knx_listen: 1/2/3
          
              cycleTimer:
                  type: bool
                  eval: sh...self()
                  knx_dpt: 1
                  knx_send: 1/2/3
                  enforce_updates: 'true'
                  cycle: 15

          Danke für Eure hilfe!
          Gruß Kex

          Kommentar

          Lädt...
          X