Ankündigung

Einklappen
Keine Ankündigung bisher.

Wert regelmäßig auf Bus senden

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

    Wert regelmäßig auf Bus senden

    Hallo zusammen,

    ich versuche folgendes Problem zu lösen, komme aber leider nicht ans Ziel. Wäre Klasse wenn mir hier jemand auf die Sprünge helfen kann.

    Einer meiner KNX Temperatursensoren ist ausgefallen, weshalb ich jetzt eine schnelle Shelly Lösung aufsetzen möchte. Die Anlage ist so programmiert, dass der Heizaktor in den Notfallbetrieb wechselt, wenn der Temperaturwert nicht regelmäßig auf dem Bus empfangen wird. Bei Shelly kommen manchmal aber über Stunden keine neuen Werte, weshalb ich ein Item regelmäßig auf den Bus schreiben muss.

    Ich habe erst mit Autotimer experiementiert, meine aber dann verstanden zu haben, dass der Timer nur bei eval_trigger event gestartet wird. Daher versuche ich jetzt cycle einzusetzen. Die Cycle Anweisung funktioniert, schreibt allerdings immer eine Null auf den Bus.

    Code:
              ist:
                type : num
                name: Raumtemperatur Wohnen
                visu_acl : ro
                knx_dpt : 9
                knx_send: 5/2/0
                cache: True
                enforce_updates: True
                cycle: 1m
                eval: value
                eval_trigger: EG.Hardware.Shelly.ht_wohnen.temp
    Ich habe auch schon versucht direkt den Inhalt des Shelly Items über die cycle Anweisung zu übergeben:

    Code:
              ist:
                type : num
                name: Raumtemperatur Wohnen
                visu_acl : ro
                knx_dpt : 9
                knx_send: 5/2/0
                cache: True
                enforce_updates: True
                cycle: 1m = sh.EG.Hardware.Shelly.ht_wohnen.temp()
                eval: value
                eval_trigger: EG.Hardware.Shelly.ht_wohnen.temp
    Was mache ich falsch?

    Danke euch und frohe Weihnachten 😀
    Gruß Thomas

    #2
    Hab das zu dem Thema gefunden, evtl. hilft es dir:
    https://knx-user-forum.de/forum/supp...973523-crontab

    Kommentar


      #3
      Ich denke aber, dass in eval nicht value stehen solle, sondern das Item (das wäre das value vom item, nicht vom trigger_item). Also so:
      Code:
                ist:
                  type : num
                  name: Raumtemperatur Wohnen
                  visu_acl : ro
                  knx_dpt : 9
                  knx_send: 5/2/0
                  cache: True
                  enforce_updates: True
                  cycle: 1m
                  eval: sh.EG.Hardware.Shelly.ht_wohnen.temp()
                  eval_trigger: EG.Hardware.Shelly.ht_wohnen.temp
      Siehe auch das Beispiel hier: http://smarthomeng.de/user/referenz/...t-eval-trigger

      Kommentar


        #4
        Ok, das war der richtige Hinweis. Jetzt läuft es. So ganz verstehe ich es aber nicht....

        EG.Hardware.Shelly.ht_wohnen.temp bekommt einen neuen Wert. Damit bekommt Heizung.ist durch eval den Wert von dem Shelly item. D.h. in value steht der Wert des Items aus eval_trigger. Wenn ich jetzt mit cycle eval neu auslöse, müsste in value doch der Wert von Heizung.ist stehen? Oder steht in value dann der Wert von Cycle?

        Danke und Gruß

        Kommentar


          #5
          eval ist ja der Wert der auf dem Item gesetzt werden soll. Der Wert von Item soll sich ja updaten ausgelöst durch eval_trigger und cycle.
          Er kann sich ja nicht von sich selbst updaten....

          Kommentar


            #6
            Zitat von firefox Beitrag anzeigen
            value steht der Wert des Items aus eval_trigger
            Betrachte eval und eval_trigger nicht als ein Kunstrukt. Die haben erst einmal nichts miteinander zu tun. eval_trigger löst lediglich eine Trigger-Aktion, wobei der Wert des Items aus eval_trigger erst einmal in value geschrieben wird. Dabei können ja auch mehrere Trigger angesprochen werden. eval hingegegen führt eine Berechnung aus, egal woher die Werte kommen. Wenn du dein Item zum Beispiel von außen mit einem Wert beschreibst, dann wurd eval auch ausgeführt.

            Du könntest entweder eval und eval_trigger weg lassen und mit on_update bei dem Item EG.Hardware.Shelly.ht_wohnen.temp arbeiten, dann geht das auch nach der bisherigen Variante oder auch die knx-Attribute, sowie Cycle, direkt in EG.Hardware.Shelly.ht_wohnen.temp einbauen.

            Nebenbei ist fraglich, wozu du hier das cache-Attribut brauchst.

            Kommentar

            Lädt...
            X