Antworten
Jan 22, 2021 - 17:22
Das IR Format von Mediola ist proprietär, früher wurde auch auf Port 1902 ein Broadcast abgesetzt.
Der IR Code setzt sich zusammen aus Format, Frequency, Protocol, Repeats, Number of timing pairs, First Pulse/Pause pair, Second Pulse/Pause pair, px Pulse/Pause pair, Data code.
Insofern denn beim Senden des IR Codes das Gerät nicht exakt die gleiche Anzahl von Pulse/Pause pair sendet, wird sich der Code auch immer unterscheiden, daher kannst Du auch nicht den gesamten Code vergleichen, es sei denn dieser wird exakt so von einem weiterem IR Gateway gesendet. Bei einer normalen Fernbedienung hängt die Anzahl der Pulse/Pause Sequenzen aber davon ab wie lange Du die Taste der Fernbedienung drückst, da Du nun mal keine Maschine bist, wird dies aber immer abweichen.
Du kannst also nur IR Codes auswerten, die auch exakt so von einem weiteren IR Gateway gesendet wurden oder aber Du musst außschließlich den Datacode am Ende von IR data extrahieren und diesen vergleichen, der sollte bei gleichem IR Befehl immer identisch sein.
Jan 22, 2021 - 21:48
Jan 24, 2021 - 13:08
Also ich habe nun selber scheinbar die Lösung gefunden und möchte das kurz festhalten, wie ich tatsächlich vorgegangen bin, falls andere das Problem auch haben.
Erstmal Wireshark installiert, geschaut dass euer PC (kann auch via WLAN sein) und das GW sich im selben Netz befinden und danach und folgenden Filter gesetzt.
udp.port==1901&&ip.src_host==x.x.x.x&&ip.dst_host==239.255.255.250
x.x.x.x = IP des Mediola Gateways
239.255.255.250 = Broadcastadresse auf die die Empfangenen IR Commands gesendet werden, kann sich evtl. bei euch unterscheiden
Dann --> Drücken der PowerTaste auf der verwendeten Fernbedienung und Zielen auf das AIO Gateway. Wenn der Filter richtig gesetzt ist, kommt auch Prompt der Broadcast in eurem Wireshark.
Dann die Paketbytes aus dem Data-Feld anzeigen lassen. Hier steht dann der IR Befehl drinen, der empfangen wurde - in meinem Fall dies
EVT:{"type":"IR","data":"190826000002002204046D04410096018C0096007E00962E61000 10101020202020201010102020202020201020202020202010201010101010103"}
Ich habe dann durch vergleichen herausgefunden, dass nur der hinterel immer gleich bleibt und ausprobiert, mich darauf zu triggern siehe da, es funktioniert.
Also dieser Teil hier dürfte den Befehl abbilden und wenn man das abgreift müsste man einen "unique" String haben, der auf den tatsächlichen Tastendruck hinweist...
10101020202020201010102020202020201020202020202010201010101010103
Aber wie gesagt - ich fange da grad erst an und kenne mich nicht großartig aus, wenn noch jemand qualitativ fundierteres beizutragen hat, freue ich mich. Aber damit bin ich jetzt erst Mal zufrieden.
Grüße
Chris
Neuen Kommentar hinzufügen