Ankündigung

Einklappen
Keine Ankündigung bisher.

Lesen eines KNX Items anfordern?

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

    Lesen eines KNX Items anfordern?

    Hallo Forum,

    ist es möglich das Lesen eines KNX-Items anzufordern (z.B. einmal täglich per cronjob)? Der Aufruf sh.Item_x() greift nach meinem Verständnis nur auf vorhandene Werte zu und fordert nicht aktiv das Lesen vom Bus. sh.knx.groupread(Item_GA) stösst zwar das Lesen an aber das Ergebnis wird nicht dem Item zugeordnet (steht auch so in der Doku) und landet daher nicht in SQLite.
    Hintergrund: Ich möchte einmal täglich den Betriebsstundenzähler meiner Aktoren auslesen (und mit Hilfe von SQLite ablegen). Ein zyklisches Senden der Bestriebsstunden-GA erlaubt der Aktor (Hager) nicht.

    Viele Grüße, Ingo

    #2
    laut code sollte das sh.knx.groupread(Item_GA) das Lesen anstoßen. Sprich, wenn du ein Item hast, das knx_listen = Item_GA hast, dann wird der empfangene Wert anschließend auch in das Item geschrieben. Zumindest werden alle knx_init Items auf die selbe Weise initialisiert.
    Mit freundlichen Grüßen
    Niko Will

    Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
    - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

    Kommentar


      #3
      Ich habe knx_listen entsprechend konfiguriert.
      Was ich nicht bedacht habe: Der Wert wird nur bei einer Wertänderung in das Item geschrieben wird (und damit auch in SQLite). Das ist o.k. Es hat mich nur beim Test mit kurzen Intervallen (ohne Wertänderung des Betriebsstundenzählers) überrascht.
      Eine andere Frage dazu: Kann man anstatt sh.knx.groupread(Item-GA) auch eine Funktion des Items benutzen (ohne dass man die GA verwenden muss) um das Lesen einer GA auszulösen? sh.item.?

      Viele Grüße, Ingo

      Kommentar


        #4
        Hi Ingo,

        nein, dafür gibt es keine Funktion.

        Bis bald

        Marcus

        Kommentar


          #5
          sh.knx.groupRead(item.attr['knx_listen']) sollte doch funktionieren.

          Vereinfachend KÖNNTE man ja dem groupRead beibringen, dass wenn es kein "str" sondern ein "object" ist versucht wird object.attr['knx_listen'] zu benutzen.

          Grüße
          Robert

          Kommentar


            #6
            Ja, danke für den Tipp! sh.knx.groupread(sh.Item.conf['knx_listen']) funktioniert.
            Die perfekte Lösung wäre, wenn ich das Lesen über crontab innerhalb der Item-Definition steuern könnte (z.B. crontab ohne Wert = GA[knx_listen] lesen).

            Kommentar


              #7
              Hallo,

              Zitat von Robert Beitrag anzeigen
              sh.knx.groupRead(item.attr['knx_listen']) sollte doch funktionieren.
              z.T. es können auch mehrere Adressen angeben worden sein. Weiterhin gibt es noch knx_cache und knx_init.

              Ich würde es über eine zyklisch aufgerufen Logik machen und den items ein knx_read Attribut geben und dann über alle Item mit dem Attribute loopen.

              Bis bald

              Marcus

              Kommentar

              Lädt...
              X