Ankündigung

Einklappen
Keine Ankündigung bisher.

Konnekting DeviceLib: Ko schreiben ohne senden

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

    Konnekting DeviceLib: Ko schreiben ohne senden

    Wenn ich aus meinen Sketch ein KO schreiben will, ohne es direkt auf den Bus zu senden (sondern es nur zum Lesen bereitzustellen), gibt es dafür eine vorgesehene Lösung?
    Klar könnte ich das S Flag wegnehmen und write nutzen, aber dann kann ich aus dem Sketch gar nicht mehr senden.

    Von vielen kommerziellen Sensoren kennt man das Verhalten, dass KO zyklisch oder nur bei Änderung von x% gesendet werden, man aber jederzeit den aktuellen Wert Lesen kann. Sowas wollte ich realisieren, und denke aber, dass dies aktuell nicht möglich ist.

    #2
    Hmm, das ist ein sehr guter einwand. Kannst du das bitte als Ticket bei Github aufmachen? Dann können wir das sicher noch einplanen. https://github.com/KONNEKTING/KonnektingDeviceLibrary


    [update]
    Hab gerade nochmal über den Code geschaut:

    And a telegram is sent on the KNX bus if the com object has communication & transmit attributes
    Eigenltich musst du nu das Transmit-Flag weglassen:

    https://support.knx.org/hc/en-us/art...03188089-Flags
    T-flag

    The device will for this object transmit any updated object value, i.e. it will send a GroupValueWrite telegram to the bus. For a push button object this e.g. means that a rocker representing this object was manipulated.

    Jetzt müsste man nur mal die Flags bei anderen Geräten checken, also ob da auch ein T Flag fehlt.

    [update2]
    In der Tat: Andere Devices haben alle das T bzw. Ü Flag, obwohl sie auf "nur zyklisch senden" eingestellt sind:
    Bildschirmfoto vom 2018-12-19 10-08-15.png

    Klingt so, als ob man der Lib noch ein write() beibringen muss, das nicht gleich sendet. Sollte kein Hexenwerk sein. Bitte wie gesagt ticket hierfür aufmachen.



    [update3]
    Denke da ist in der Tat ein konzeptionelles Problem in unserer Lib:

    Normalerweise wird auf den Bus gesendet, wenn man auf das KO schreibt.
    Und man kann über den Bus lesen was im KO drin steht.
    Wenn ich nun aber die möglichkeit hinzufüge in das KO vom Sketch aus zu schreiben OHNE zu senden (writeWithoutSend()), dann müsste ich für das zyklische Senden auch noch eine Funktion einbauen die einfach das sendet was bereits im KO steht (sendWhatYouHave()).

    Müsste man mal überlegen ob das nicht noch weitere Auswirkungen haben könnte...
    Zuletzt geändert von tuxedo; 19.12.2018, 10:14.

    Kommentar


      #3
      Zitat von tuxedo Beitrag anzeigen
      Eigenltich musst du nu das Transmit-Flag weglassen:
      ja, natürlich. Da bin ich beim Tippen durcheinandergekommen, ich meinte natürlich das T bzw Ü Flag.
      So hab ich das auch in meinem aktuellen XML drin, hab es aber noch nicht getestet ob die Lib das auch korrekt umsetzt (also das Senden unterbindet, wenn das T flag fehlt).

      ein writeWithoutSend wäre das was ich brauche. Ein sendWhatYouHave könnte man ja mit write umsetzen wenn man vorher das ko liest oder den wert sowieso im sketch hat.


      https://github.com/KONNEKTING/Konnek...rary/issues/62

      Kommentar


        #4
        +1
        hab gedacht ich bin der einzige der sowas braucht.
        Man könnte auch das flag während der Laufzeit ändern - aktuell in der Lib auch nicht möglich.

        Kommentar

        Lädt...
        X