4-Tasten-Sender schickt Nachricht mehrfach

Begonnen von hobbyprovider, 03 Februar 2014, 17:52:41

Vorheriges Thema - Nächstes Thema

Take-Off

Zitat von: rx am 08 Februar 2016, 20:08:37
Ich habe das gleiche Problem gehabt und mir blieb letztendlich nur der Weg über die Datei 00_HMLAN.pm. Dort fange ich die Wiederholungen direkt ab und verwerfe sie.
Wird das File nicht beim Update überschrieben? Eine Lösung die Wiederholungen zu Verhindern wäre mir am Ende lieber. :)

ZitatBei Bedarf kann ich die Änderungen gerne zur Verfügung stellen.
Ich würde es mir auf jedenfall gerne mal anschauen. Ich hoffe ich kann es dann auch umsetzen. :)

Grüße
FHEM auf Raspberry Pi4
CUL868, CUL433, HM-CFG-USB2, HMW-LGW

rx

Das mit dem Update ist natürlich ein Problem. Vielleicht gibt es ja eine Möglichkeit die Anpassungen dauerhaft einzubinden. Ich schicks dir per PM.

Grüße
Server started with 1333 defined entities (fhem.pl:27302/2023-03-05 perl:5.028001 os:linux user:root pid:29591)

martinp876

In hmlan messages abzufangen ist nicht der korrekte weg, zumindest nur die halbe Miete. Wenn du mehrere IOs hast, evtl cul, ist der Spass zu Ende.
Prinzipiell verwirft culhm doppelte messages. Sollte das nicht klappen sendet zu diesem Fall die rohmessages (sniffen).
Trotz allen kann es zu doppelten events kommen, da ACK und status die gleichen readings bedienen. Daher sollte jeder immer eventonchangereading auf .* setzen. Das ist m.e. Pflicht und verbessert das verhalten nachhaltig. Verloren geht auch nichts. Eine codeaenderung steht demnach nicht an

rx

Hallo Martin, danke für deine Infos. Ich kann gerne die Rohmessages schicken, da das Verhalten sehr einfach zu produzieren ist (Handsender befindet sich weiter weg vom Haus).
Ein eventonchangereading hat in dem Fall nichts gebracht - das hatte ich bereits aktiviert. Vielleicht hilft es dir, wenn ich sage wo ich was eingebaut habe, um den Fehler (als Laie) abzuschalten.

Und zwar habe ich in der Datei 00_HMLAN.pm zu Beginn der Funktion HMLAN_Parse folgendes geprüft:

Wenn $src einer meiner Handsender ist und die ersten beiden Zeichen von $p 01, 02, 03 oder 04 sind dann schaue ich ob $p dem letzten $p entspricht. Ist dies der Fall, dann verwerfe ich die Message da sie offensichtlich doppelt gesendete wurde. Anscheinend steht hinter den ersten beiden Stellen von $p eine Art Sequenznummer, auf die ich aber innerhalb eines Notify keinen Zugriff habe. Ich habe extra die Einschränkung auf die $src meiner Handsender gemacht, da ich natürlich keine Ahnung habe, ob es negative Seiteneffekte gibt und ich den Rest meiner Installation nicht gefährden wollte.

Danke fürs Lesen und Grüße
Frank
Server started with 1333 defined entities (fhem.pl:27302/2023-03-05 perl:5.028001 os:linux user:root pid:29591)

martinp876

Das ist alles richtig, aber nicht vollständig. Ein longpress schickt viele messages die alle gemeldet werden sollen.
Hmlan ist definitiv nicht dafür gemacht Aktoren zu kennen. Hier wird es mit Sicherheit nicht eingebaut.
Wie gesagt, 2 IOs hast du damit nicht im griff. Zu viele Löcher im Konzept.
Logge einmal die rohmessages und schicke die events, die ausgelöst werden.


chriz

bei mir treten die wiederholungen unter anderem mit meiner HM 4 Tasten Fernbedienung auf. via notify werte ich den tastendruck aus.

habe mittlerweile festgestellt, dass die wiederholungen erst nach einem HMLAN timeout bzw. disconnect auftreten. gerade in verbindung mit AES scheint es da probleme zu geben.

mache ich ein "get config" der fernbedienung bzw. ein "shutdown restart" des fhem servers sind die wiederholungen weg.

evtl. hilft diese info die problematik etwas einzukreisen.

grüße
chris
FHEM auf Intel NUC D34010WYK Core i3, SSD, Ubuntu. HomeMatic mit HMLAN (Groundplane Antenne), Fritz DECT!200, FritzBox 7490, EnerGenie EG-PMS2-LAN, Yamaha RX-V475, Netatmo, Withings, Philips hue, Osram Lightify, Flukso Energy Meter, Harmony, RooWifi, Junkers ZSB 24-4 C Heizung via Heatronic HT-BUS

martinp876

kannst du ein Beispiel der ungewollten wiederholungen zeigen und logs mitschicken?