Ankündigung

Einklappen
Keine Ankündigung bisher.

Items mit initial falschem Status

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

    Items mit initial falschem Status

    Hallo zusammen,

    ich bin noch neu mit smarthomeNG, hoffe meine Frage ist daher nicht zu dumm.

    Ich habe einen BJ Binäreingang. Der Status jedes Eingang hat eine Gruppenadresse. Wenn ist diesen in KNX an eine LED binde, ist das Verhalten i.O.

    Mit smarthomeNG versuche ein nur eine Logik zu erstellen, wenn bestimmte Eingang geschaltet sind, setze eine neue Gruppenadresse um.

    Dazu habe ich Items angelegt für jeden Eingang und eins und eben für das Ergebnis der Logik ein Item

    Diese habe nur die Attribute

    knx_listen = knx_send = Gruppenadresse
    knx_dpt = 1
    type = bool

    Darauf aufbauen habe ich eine Logik aufgebaut:
    filename = name des py skripts
    watch_item = Itemnamen der Gruppen

    Im eingeschwungenen Zustand, nachdem alle Binäreingänge mindestens einmal geschaltet wurden, funktioniert alles einwandfrei.

    Zum Problem: Wenn ich smarthomeNG neu starte wird bei Betätigung eines Binäreingangs auch die logik ausgeführt (logging), die ausgelesenen Werte der Binäreingänge (ausser des gerade geschalteten) sind aber falsch. Eben erst nachdem ich alle einmal geschaltet habe, funktioniert alles. Der Fehler kommt wieder nach neustarten von smarthomeNg, der Binäreingang und der KNX-Bus bleiben dabei online, daher tippe ich auf smarthomeNG Einstellung statt auf KNX.

    Sollte das Problem gelöst sein, wäre es noch super, wenn die Logik nach dem hochfahren einmal ausgeführt wird.

    Vielen Dank für jede Hilfe im vorraus
    curator

    #2
    Bei Verwendung von knx_listen wird das Item mit 0 initialisiert und ändert sich erst, wenn ein neues knx Telegramm eingeht.

    Um ein Item beim Start von SmartHomeNG mit dem aktuellen bzw. letzten Wert zu aktualisieren, musst Du statt knx_listen entweder knx_init oder knx_cache verwenden.
    Zuletzt geändert von Msinn; 18.05.2018, 08:41.
    Viele Grüße
    Martin

    Kommentar


      #3
      Hi,

      danke für die schnell Rückmeldung. Habe das entsprechend angepasst. Leider ist das Verhalten unverändert. Das Logging zeigt false, bis ich den Sensor einmal betätigt habe.

      Hier meine Konfiguration

      Item:
      SensorFenster:
      name: Sensor Fenster
      type: bool
      visu_acl: rw
      knx_dpt: 1
      knx_send: 7/4/0
      knx_init: 7/4/0

      Logik:
      #!/usr/bin/env python

      trigger_source = trigger['source']
      logger.info('Schlaf: '+str(sh.Haus.Schlafzimmer.SensorFenster()))

      Kommentar


        #4
        Kann denn Dein KNX Sensor abgefragt werden ? Nur dann wird knx_init Dir einen richtigen Wert liefern. Beim hochfahren werden alle KNX Geräte, die mit knx_init angesprochen werden aktiv abgefragt. Falls Dein KNX Sensor das nicht kann (evtl. kannst Du das durch setzen des entsprechenden Flags in der ETS ermöglichen), kannst Du knx_cache verwenden. Dann wird beim Start von SmartHomeNG der Cache von KNXD ausgelesen. Dann hättest Du nur einen falschen Wert, wenn Du den KNX Daemon durchstartest.
        Viele Grüße
        Martin

        Kommentar


          #5
          Hi,

          erstmal Danke für die schnellen antworten. Ich glaube wir kommen der Sache so schnell näher, dass ich alleine Wochen für gebraucht hätte.

          Das Gerät ist bei BJ 6188/18. Ich habe keine Einstellung gefunden, die Abfrage zu ermöglichen. Andererseits könnte ich zyklisches Senden einschalten, das ist ja aber wohl mit Kanonen auf Spatzen geschossen.

          Alternativ gibt es eine KO um die aktuellen Statuswerte abzufragen. Ich bräuchte also eine Logik, um aus smarthomeng nach dem hochfahren diese Gruppenadresse zu senden. Also Item anlegen, und das Item auch auf KNX_init legen?

          Kommentar


            #6
            Wenn ich Dich richtig verstehe, sollte das ohne Logik beim hochfahren gehen. Einfach knx_init auf die Gruppenadresse mit dem aktuellen Status setzen sollte reichen.

            Das solltest Du aber nicht bei zu vielen Items machen, da sonst die KNX Buslast beim Start von SmartHomeNG durch die Decke geht. Im allgemeinen ist die Nutzung von knx_cache vorzuziehen. Dann wird der Wert aus dem Cache von KNXD genommen und nur wenn KNXD keinen Wert hat, wird die Gruppenadresse auf dem Bus angefragt.
            Zuletzt geändert von Msinn; 19.05.2018, 08:37.
            Viele Grüße
            Martin

            Kommentar

            Lädt...
            X