Closed jp112sdl closed 10 months ago
Hi Jerome,
Du hast recht, es ist ja völlig egal ob das repeated flag gesetzt ist oder nicht.
Eine wiederholte Nachricht bleibt eine wiederholte Nachricht und muss nicht noch einmal ausgeführt werden.
Einzig, es darf keinen Repeater Sketch geben 😊
Viele Grüße
Horst
Von: Jérôme @.> Gesendet: Dienstag, 16. Januar 2024 07:24 An: pa-pa/AskSinPP @.> Cc: trilu2000 @.>; Mention @.> Betreff: [pa-pa/AskSinPP] Ignore repeated message (Issue #316)
@pa-pa https://github.com/pa-pa @trilu2000 https://github.com/trilu2000
Mir war da gestern Abend in unserem Meeting noch was aufgefallen: https://github.com/pa-pa/AskSinPP/blob/b83fd61f09f9a964eba8095ac5c5535606563b10/MultiChannelDevice.h#L247-L251
Das ist meiner Meinung nach falsch. Hier wird nicht nur geprüft, ob die empfangene Meldung identisch zum vorherigen Absender+Counter ist, sondern auch ob msg.isRepeated() gesetzt ist.
Dieses Flag setzt afaik nur der Repeater (HM-Sys-sRP-Pl) und ist auch nur für diesen "interessant", um Endlosschleifen zu vermeiden.
https://github.com/pa-pa/AskSinPP/blob/b83fd61f09f9a964eba8095ac5c5535606563b10/Message.h#L63-L64
Also vom Flow her, wie ich es verstehe: Ein Gerät sendet eine Message mit RPTEN. Ein Repeater empfängt eine solche Message und erkennt, dass diese Nachricht überhaupt repeated werden darf. Anschließend wird von diesem das RPTED Flag angehängt, damit das Telegram nicht durch einen zweiten Repeater nochmals ausgesendet wird.
Gibt es gegenteilige Meinungen, msg.isRepeated() aus der Bedingungsprüfung zu entfernen?
Ich glaub, das ist auch der Bug, der bei mir manchmal Aktoren mit verknüpftem Toggle-Fernbedienungstaster kurz ein und wieder aus schaltet. Es liegt wohl einfach nur daran, dass dann mehrfach gesendet.
— Reply to this email directly, view it on GitHub https://github.com/pa-pa/AskSinPP/issues/316 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ABO3WH2UDLYRZOGVMU5DDYTYOYMJDAVCNFSM6AAAAABB4IJAT2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGA4DGMBZHE4DAOA . You are receiving this because you were mentioned. https://github.com/notifications/beacon/ABO3WH6AMV6J6KNDGGHEBF3YOYMJDA5CNFSM6AAAAABB4IJAT2WGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHHYKMUUA.gif Message ID: @. @.> >
👍
Einzig, es darf keinen Repeater Sketch geben 😊
Doch, den gibt es :) https://github.com/jp112sdl/Beispiel_AskSinPP/blob/master/examples/HM-Sys-sRP-Pl/HM-Sys-sRP-Pl.ino
Aber auch da ist es kein Problem, da Nachrichten, außer Config, nie an ihn adressiert sind. Der "hört" ja nur mit.
@pa-pa @trilu2000
Mir war da gestern Abend in unserem Meeting noch was aufgefallen: https://github.com/pa-pa/AskSinPP/blob/b83fd61f09f9a964eba8095ac5c5535606563b10/MultiChannelDevice.h#L247-L251
Das ist meiner Meinung nach falsch. Hier wird nicht nur geprüft, ob die empfangene Meldung identisch zum vorherigen Absender+Counter ist, sondern auch ob
msg.isRepeated()
gesetzt ist.Dieses Flag setzt afaik nur der Repeater (HM-Sys-sRP-Pl) und ist auch nur für diesen "interessant", um Endlosschleifen zu vermeiden.
https://github.com/pa-pa/AskSinPP/blob/b83fd61f09f9a964eba8095ac5c5535606563b10/Message.h#L63-L64
Also vom Flow her, wie ich es verstehe: Ein Gerät sendet eine Message mit
RPTEN
. Ein Repeater empfängt eine solche Message und erkennt, dass diese Nachricht überhaupt repeated werden darf. Anschließend wird von diesem dasRPTED
Flag angehängt, damit das Telegram nicht durch einen zweiten Repeater nochmals ausgesendet wird.Gibt es gegenteilige Meinungen,
msg.isRepeated()
aus der Bedingungsprüfung zu entfernen?Ich glaub, das ist auch der Bug, der bei mir manchmal Aktoren mit verknüpftem Toggle-Fernbedienungstaster kurz ein und wieder aus schaltet. Es liegt wohl einfach nur daran, dass dann mehrfach gesendet.