FHEM -> Samsung TV mit Tizen

Begonnen von Florian_GT, 12 September 2016, 00:15:35

Vorheriges Thema - Nächstes Thema

KölnSolar

Im Zuge der "Auffrischung" des STV-Moduls ist mir jetzt DevelopmentGuidelinesAV in die Finger gefallen. Ich bin mir unschlüssig, ob ich das umsetzen soll. Ich hab hier mal die Experten um Rat gefragt. Was meint Ihr aus STV-Sicht dazu ?
Ich schlage vor, dass die, die die Anpassung befürworten, einfach nur auf den Zustimmungsbutton drücken, während die "Gegner" vielleicht ein paar Worte zur Begründung Ihrer ablehnenden Haltung schreiben.

Bitte hier im Post u. nicht im oben verlinkten Beitrag.  ;)

Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

bennebartsch

Ich wäre dafür die Kommandos einfach zu ändern. Es macht ja in Zukunft nur alles besser nach ein paar kleinen Anpassungen. Würde mich sehr freuen bald alle Kommandos klein schreiben zu können :-)

Zitat von: KölnSolar am 03 November 2018, 20:41:59
Im Zuge der "Auffrischung" des STV-Moduls ist mir jetzt DevelopmentGuidelinesAV in die Finger gefallen. Ich bin mir unschlüssig, ob ich das umsetzen soll. Ich hab hier mal die Experten um Rat gefragt. Was meint Ihr aus STV-Sicht dazu ?
Ich schlage vor, dass die, die die Anpassung befürworten, einfach nur auf den Zustimmungsbutton drücken, während die "Gegner" vielleicht ein paar Worte zur Begründung Ihrer ablehnenden Haltung schreiben.

Bitte hier im Post u. nicht im oben verlinkten Beitrag.  ;)

Grüße Markus

gauli

Hi,

so jetzt hab ich es auch mal versucht meinen Samsung TV(UE55KU6179) mit Fhem zusteuern.
Es funktioniert nur die Befehl 0_App_start und 0_App_status. Bei senden eines zahl passiert im TV nichts, hat jemand eine Idee? Falls es sinnvoll ist kann ich auch gern das Debug Log noch bereitstellen.

Gruß

Dominik

KölnSolar

#438
ZitatEs funktioniert nur die Befehl 0_App_start und 0_App_status. Bei senden eines zahl passiert im TV nichts, hat jemand eine Idee?
Das find ich ja mal interessant. Tatsächlich unterscheiden sich die Befehle in ihrem Zugriff. Wie hast Du das Thema "Berechtigungen" am TV wahrgenommen ? Welche firmware hast Du ? Könnte ja sein, dass die neue Berechtigungssteuerung(die letzten ca. 30 Posts) bei neuer firmware nur für die RC-commands zutrifft. Ansonsten könnte es noch ein timing-Problem sein.

ZitatFalls es sinnvoll ist kann ich auch gern das Debug Log noch bereitstellen.
Hilft immer mehr als die Glaskugel.  ;)
Grüße Markus
Edit: Hab mir jetzt noch einmal die Threads auf GitHub angesehen. Demnach ist es tatsächlich so, dass die App-Befehle anders als die RC-Befehle autorisiert werden. Du hast eine firmware, die derzeit nicht unterstützt wird.  :'(
So2018.11.06 14:44:01 5: [STV] Fernseher command 1 parameter
2018.11.06 14:44:01 5: [STV] Fernseher send to TV: GET /api/v2/channels/samsung.remote.control?name=RkhFTVJlbW90ZQ== HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: 192.168.178.61:8001
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13


2018.11.06 14:44:01 5: [STV] Fernseher first websocket response: HTTP/1.1 101 Switching Protocols
Upgrade: WebSocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=


2018.11.06 14:44:01 5: [STV] Fernseher second websocket response: ~{"data":{"clients":[{"attributes":{"name":"RkhFTVJlbW90ZQ=="},"connectTime":1541511840970,"deviceName":"RkhFTVJlbW90ZQ==","id":"5e69b2c-2143-43a0-a690-4711","isHost":false}],"id":"5e69b2c-2143-43a0-a690-4711"},"event":"ms.channel.connect"}

2018.11.06 14:44:01 5: [STV] Fernseher connected with websocket
2018.11.06 14:44:01 4: [STV] Fernseher sending 1
2018.11.06 14:44:01 5: [STV] Fernseher send payload: {"params":{"Cmd":"Click","TypeOfRemote":"SendRemoteKey","DataOfCmd":"KEY_1","Option":"false"},"method":"ms.remote.control"}

sollte das Log aussehen. Vermutlich wird das JSON der "second websocket response" aber so aussehen
{"data":{.........id":"5e69b2c-2143-43a0-a690-4711","isHost":false}],"id":"5e69b2c-2143-43a0-a690-4711","token": "65811577"},"event":"ms.channel.connect"}

Bedeutet also 2 Dinge: nach dem Begriff token Ausschau halten und Ihr wisst, warum die RC-commands nicht funktionieren. Wir brauchen einen Mitschnitt des TCP-Traffics einer funktionierenden App, um hinter das Geheimnis der "token-Kommunikation" zu kommen.

Für volume u. mute könnte der DLNAClient(DLNARenderer ist zwar fertig, aber vor der Veröffentlichung muss noch etwas in /fhem/FHEM/lib/UPnP/ von anderer Seite angepasst werden) als workaround funktionieren.

@Puppylinux: Michael, könntest Du mal ein LOG des TV bei Einsatz der App mit: Verbindung aufbauen, 1 senden, Verbindung abbauen einstellen. Das Gleiche dann ein 2. Mal, um zu prüfen, ob sich inhaltlich etwas ändert.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

gauli

danke für die schnelle antwort

Zitat
Wie hast Du das Thema "Berechtigungen" am TV wahrgenommen ?
? Also wenn du die Berechtigung am TV meinst ganz normal er hat mich gefragt ob ich dem Gerät vertraue nach dem ich ein Befehl gesendet habe (Frag mich jetzt aber nicht was ich gesendet habe, zu not muss ich das noch mal ausprobieren.)

Zitat
Welche firmware hast Du ?
Firmenware = sollte nee ältere sein da ich das automatisache update ausgeschaltet habe, finde es spontan aber nicht..außer es ist die MSFVERSION

Zitatnach dem Begriff token Ausschau halten und Ihr wisst, warum die RC-commands nicht funktionieren.
Also es schaut anders aus aber Token iust nicht zu finden.

FHEM LOG verbose 5 "Key2"

2018.11.06 22:55:04 5: [STV] SamsungTV command 2 parameter
2018.11.06 22:55:04 5: [STV] SamsungTV send to TV: GET /api/v2/channels/samsung.remote.control?name=RkhFTVJlbW90ZQ== HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: $dev:$wsport
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13


2018.11.06 22:55:04 5: [STV] SamsungTV first websocket response: HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=


2018.11.06 22:55:04 5: [STV] SamsungTV second websocket response: ¾{"event":"ms.channel.connect","data":{"id":"9df74e50-e20e-11e8-8ab5-cd6f97feeb6e","clients":[{"id":"9df74e50-e20e-11e8-8ab5-cd6f97feeb6e","connectTime":1541541304245,"attributes":{"name":"RkhFTVJlbW90ZQ=="},"deviceName":"RkhFTVJlbW90ZQ==","isHost":false}]}}
2018.11.06 22:55:04 5: [STV] SamsungTV connected with websocket
2018.11.06 22:55:04 4: [STV] SamsungTV sending 2
2018.11.06 22:55:04 5: [STV] SamsungTV send payload: {"method":"ms.remote.control","params":{"Cmd":"Click","Option":"false","TypeOfRemote":"SendRemoteKey","DataOfCmd":"KEY_2"}}
2018.11.06 22:55:49 4: [STV] SamsungTV online with 192.168.30.52:8001 - HTTP-Response: 404
2018.11.06 22:56:49 4: [STV] SamsungTV online with 192.168.30.52:8001 - HTTP-Response: 404
2018.11.06 22:57:49 4: [STV] SamsungTV online with 192.168.30.52:8001 - HTTP-Response: 404



FHEM LOG verbose 5 "AppStart"

2018.11.06 22:58:48 5: [STV] SamsungTV send to TV: GET /api/v2/channels/samsung.remote.control?name=RkhFTVJlbW90ZQ== HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: $dev:$wsport
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13


2018.11.06 22:58:48 5: [STV] SamsungTV first websocket response: HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=


2018.11.06 22:58:48 5: [STV] SamsungTV second websocket response: ¾{"event":"ms.channel.connect","data":{"id":"239a1f10-e20f-11e8-8ab5-cd6f97feeb6e","clients":[{"id":"239a1f10-e20f-11e8-8ab5-cd6f97feeb6e","connectTime":1541541528449,"attributes":{"name":"RkhFTVJlbW90ZQ=="},"deviceName":"RkhFTVJlbW90ZQ==","isHost":false}]}}
2018.11.06 22:58:48 5: [STV] SamsungTV connected with websocket
2018.11.06 22:58:48 5: [STV] SamsungTV send payload: {"params":{"TypeOfRemote":"SendRemoteKey","data":{"metaTag":"","appId":"11101200001","action_type":"DEEP_LINK"},"to":"host","event":"ed.apps.launch"},"method":"ms.channel.emit"}
2018.11.06 22:58:49 5: [STV] response SamsungTV to write_payload: t{"event":"ed.apps.launch","data":true,"from":"host"}
2018.11.06 22:58:49 4: [STV] SamsungTV online with 192.168.30.52:8001 - HTTP-Response: 404


TCP Mitschnitt liefere ich noch nach, sowohl vom KEY2 als auch vom starten der app.
LOG usw. im anhang

Steffen

Zitat von: gauli am 06 November 2018, 12:11:04
Hi,

so jetzt hab ich es auch mal versucht meinen Samsung TV(UE55KU6179) mit Fhem zusteuern.
Es funktioniert nur die Befehl 0_App_start und 0_App_status. Bei senden eines zahl passiert im TV nichts, hat jemand eine Idee? Falls es sinnvoll ist kann ich auch gern das Debug Log noch bereitstellen.

Gruß

Dominik

Hallo!

Ist bei mir genau so...


{
  "id": "uuid:1221f120-b7ca-485a-8fae-0b12ca1eaeb3",
  "name": "[TV] Samsung 8 Series (65)",
  "version": "2.1.0",
  "device": {
    "type": "Samsung SmartTV",
    "duid": "uuid:1221f120-b7ca-485a-8fae-0b12ca1eaeb3",
    "model": "16_JAZZM_UHD",
    "modelName": "UE65KS8090",
    "description": "Samsung DTV RCR",
    "networkType": "wired",
    "ssid": "",
    "ip": "192.168.178.44",
    "firmwareVersion": "Unknown",
    "name": "[TV] Samsung 8 Series (65)",
    "id": "uuid:1221f120-b7ca-485a-8fae-0b12ca1eaeb3",
    "udn": "uuid:1221f120-b7ca-485a-8fae-0b12ca1eaeb3",
    "resolution": "3840x2160",
    "countryCode": "DE",
    "msfVersion": "2.1.0",
    "smartHubAgreement": "true",
    "VoiceSupport": "true",
    "GamePadSupport": "true",
    "wifiMac": "cc:b1:1a:61:39:ec",
    "developerMode": "0",
    "developerIP": "",
    "OS": "Tizen"
  },
  "type": "Samsung SmartTV",
  "uri": "http://192.168.178.44:8001/api/v2/",
  "remote": "1.0",
  "isSupport": "{\"remote_available\":\"true\",\"remote_fourDirections\":\"true\",\"remote_touchPad\":\"true\",\"remote_voiceControl\":\"true\",\"DMP_available\":\"true\",\"DMP_DRM_PLAYREADY\":\"false\",\"DMP_DRM_WIDEVINE\":\"false\",\"EDEN_available\":\"true\"}"
}



018.11.07 07:06:49 5: [STV] TV_Samsung first websocket response: HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=


2018.11.07 07:06:49 5: [STV] TV_Samsung second websocket response: �~{"event":"ms.channel.connect","data":{"id":"50284720-e253-11e8-945f-65af634fdf3f","clients":[{"id":"50284720-e253-11e8-945f-65af634fdf3f","connectTime":1541570808978,"attributes":{"name":"RkhFTVJlbW90ZQ=="},"deviceName":"RkhFTVJlbW90ZQ==","isHost":false}]}}
2018.11.07 07:06:49 5: [STV] TV_Samsung connected with websocket
2018.11.07 07:06:49 4: [STV] TV_Samsung sending RETURN
2018.11.07 07:06:49 5: [STV] TV_Samsung send payload: {"method":"ms.remote.control","params":{"DataOfCmd":"KEY_RETURN","Cmd":"Click","TypeOfRemote":"SendRemoteKey","Option":"false"}}
2018.11.07 07:07:39 4: [STV] TV_Samsung online with 192.168.178.44:8001 - HTTP-Response: 404
2018.11.07 07:07:48 5: [STV] TV_Samsung send to TV: GET /api/v2/channels/samsung.remote.control?name=RkhFTVJlbW90ZQ== HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: $dev:$wsport
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13


2018.11.07 07:07:48 5: [STV] TV_Samsung first websocket response: HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=


2018.11.07 07:07:48 5: [STV] TV_Samsung second websocket response: �~{"event":"ms.channel.connect","data":{"id":"7367de30-e253-11e8-945f-65af634fdf3f","clients":[{"id":"7367de30-e253-11e8-945f-65af634fdf3f","connectTime":1541570868116,"attributes":{"name":"RkhFTVJlbW90ZQ=="},"deviceName":"RkhFTVJlbW90ZQ==","isHost":false}]}}
2018.11.07 07:07:48 5: [STV] TV_Samsung connected with websocket
2018.11.07 07:07:48 5: [STV] TV_Samsung send payload: {"method":"ms.channel.emit","params":{"to":"host","data":{"action_type":"DEEP_LINK","appId":"3201512006963","metaTag":""},"TypeOfRemote":"SendRemoteKey","event":"ed.apps.launch"}}
2018.11.07 07:07:49 5: [STV] response TV_Samsung to write_payload: �4{"event":"ed.apps.launch","data":true,"from":"host"}
2018.11.07 07:07:52 3: plex: client discovered: 192.168.178.102


Mfg Steffen

KölnSolar

#441
ZitatFirmenware = sollte nee ältere sein da ich das automatisache update ausgeschaltet habe, finde es spontan aber nicht..außer es ist die MSFVERSION
Findest Du im Menü des TV bei Unterstützung. Bitte auch von Dir Steffen.

Sieht tatsächlich so aus, als ob wir 2 Probleme hätten: das mit token bei neuer firmware und eben Euer Problem.
ZitatTCP Mitschnitt liefere ich noch nach, sowohl vom KEY2 als auch vom starten der app.
wobei das speziell auf Michael gemünzt war. Bei ihm funktionieren die RC-Befehle, wenn er gleichzeitig mit einer Handy-App mit dem TV verbunden ist.

@Steffen: hast Du erstmalig das STV genutzt oder hattest Du vorher schon mal das samsungctl installiert ? Ich frage mich halt: Klappt es nur mit meiner neusten Version oder auch mit dem Python-Skript nicht.

@Dominik: Danke für die Debug-Logs. Erkennen kann ich da leider erst einmal nichts.  :'(

Probiert doch bitte mal den 0_macro-Befehl mit 
set TV 0_macro 0,1,,,,,,2,,,3

RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

gauli

ZitatProbiert doch bitte mal den 0_macro-Befehl mit
set TV 0_macro 0,1,,,,,,2,,,3
Es wird auf den Kanal 023 gewechselt.

Anjo1979

#443
ZitatProbiert doch bitte mal den 0_macro-Befehl mit
set TV 0_macro 0,1,,,,,,2,,,3

Genau, es wird auf den Kanal 023 gewechselt.

Gebe ich set TV 0_macro ,,0 dann wird auf Kanal 0 gewechselt. Bei set TV 0_macro ,0 oder set TV 0_macro 0 passiert gar nichts.

Zweimal Pause (,,) vor das Kommando setzen funktioniert auch bei anderen Befehlen. Getestet Kanal hoch/runter, Power, Mute,HDMI,Lautstärke.

Hinweis: Mit der alten Version konnte ich den TV "steuern".

KölnSolar

#444
Aha, dann haben wir den Bösewicht.  ;D Wie ich gestern und auch schon vor 2 Wochen geantwortet hatte: ein timing-Problem, was ich eben über den Makro-Befehl testen wollte. Durch die Übersetzung des samsungctl(Python) nach Perl, sind wir scheinbar zu schnell für manche TV's.  ;D

Da müssen wir uns jetzt mal rantasten. Könnt Ihr bitte im ersten Schritt Zeile 363 einfach mal von
sleep(0.3) if ($argnum > 0);
in
eval {require Time::HiRes; 1;}
or do {
return "[STV] Module Time:HiRes not installed. Check perl libraries'";
};
Time::HiRes::usleep(300000); # if ($argnum > 0);


ändern. Danach dann ein reload 70_STV und testen. Ich vermute danach wird es bei den meisten funktionieren. Wenn es klappt, bitte ALLE nur den Zustimmung-Button anklicken, dass ich weiß, wer nur ein timing-Problem hatte, was durch die Änderung gelöst ist.

Wer ein bißchen mehr Zeit hat, könnte mal mit dem Parameter des usleep spielen, also kleiner(edit: evtl. auch größer, damit es funktioniert) setzen, um den "Grenzwert" zu ermitteln. (0_macro wird dann voraussichtlich nicht mehr richtig funktionieren).
Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

gauli

Hi,

Danke Markus schon mal.

hab grade mal ein wenig mit den Werten rumgespielt (getestet mit dem Key 3, Ja = funktioniert, Nein = keine reaktion am TV). Was wäre den der beste wert? Denke mal um so kleiner um so weniger warte zeit in Fhem(dann würde ich mich noch mal an den kleinsten bzw. größten Wert rantasten.
100000 Nein
150000 Nein
200000 Nein
250000 Nein
300000 Nein
350000 Nein
400000 Nein
450000 Nein
500000 Nein
550000 Ja
600000 Ja
650000 Ja
700000 Ja
750000 Ja
800000 Ja
850000 Ja
900000 Ja
950000 Ja
1000000 Ja
5000000 Ja
10000000 Ja
20000000 Ja
21000000 Nein
22000000 Nein
23000000 Nein
24000000 Nein
25000000 Nein
30000000 Nein

KölnSolar

#446
Danke für Deinen schnellen Test.
ZitatDenke mal um so kleiner um so weniger warte zeit in Fhem
genauso ist es. Je länger wir die Wartezeit machen, umso schlimmer werden freezes in FHEM. Und die gilt es zu vermeiden. 0,55 Sek. finde ich schon ziemlich heftig. Kannst Du bitte mal mit folgender Änderung testen. Jetzt auch 0_macro. Und immer nur mit einem Komma als "Trenner". Ggfs. den Wert von 300000 für die Makrofunktion wieder hochsetzen. Alle anderen dann bitte auch mit dieser Änderung. Anstatt
sleep(0.3) if ($argnum > 0);
diese Zeilen
eval {require Time::HiRes; 1;}
or do {
return "[STV] Module Time:HiRes not installed. Check perl libraries'";
};
if ($argnum > 0) {
           Time::HiRes::usleep(300000);
        }
        else {Time::HiRes::usleep(600000); }




RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

gauli


Steffen

Zitat von: KölnSolar am 07 November 2018, 15:14:53
Danke für Deinen schnellen Test.genauso ist es. Je länger wir die Wartezeit machen, umso schlimmer werden freezes in FHEM. Und die gilt es zu vermeiden. 0,55 Sek. finde ich schon ziemlich heftig. Kannst Du bitte mal mit folgender Änderung testen. Jetzt auch 0_macro. Und immer nur mit einem Komma als "Trenner". Ggfs. den Wert von 300000 für die Makrofunktion wieder hochsetzen. Alle anderen dann bitte auch mit dieser Änderung. Anstatt
sleep(0.3) if ($argnum > 0);
diese Zeilen
eval {require Time::HiRes; 1;}
or do {
return "[STV] Module Time:HiRes not installed. Check perl libraries'";
};
if ($argnum > 0) {
           Time::HiRes::usleep(300000);
        }
        else {Time::HiRes::usleep(600000); }


Guten Morgen,

vielen Dank denn mit set TV_Samsung 0_macro ,, funktionieren alle Befehle, mit nur einem"," klappt es nicht.

Aber wie bekommt man denn jetzt das mit den zwei ",," in einem Doif oder Notify verwendet, oder könnte man das jetzt in deinem Modul einbauen?!?

Mfg Steffen

KölnSolar

#449
Morgen Steffen,
ZitatAber wie bekommt man denn jetzt das mit den zwei ",," in einem Doif oder Notify verwendet, oder könnte man das jetzt in deinem Modul einbauen?!?
Sicherlich muss das ins Modul rein. Die Makrofunktion ist ja nur die Krücke zur Analyse. 

Bei der Makrofunktion wird für jedes , eine Pause von eben 0,3 Sek.(Time::HiRes::usleep(300000);) gemacht. Diesen Grenzwert hatte ich für meinen N ermittelt. Bei Dominik und bei der H-Serie scheint dieser Wert auch zu funktionieren. Bei Dir dann scheinbar nicht.  :'(

Ich häng hier gleich mal eine quick&dirty Zwischenversion mit 2 Attributen an, womit dann jeder, der timing-Probleme hat, die notwendigen Delays für seinen TV austesten kann. Diese Version wird sonst noch keine weiteren Neuerungen enthalten.

Edit: Attached eine Testversion mit 2 Attributen delayRC und delayMacro. Die Attribute werden beim define automatisch angelegt mit den Werten delayRC=600000 und delayMacro=300000. Die Werte bedeuten Mikrosekunden sleep. Durch Änderung des Attributs delayRC könnt Ihr austesten, ab welchem Wert Euer TV auf eines der RC-commands reagiert und funktioniert(Bei mir mit 0, bei Dominik mit 550000). In einem 2. Schritt könnt Ihr das notwendige delay für die Makrofunktion austesten, also die Pausezeit für ein gesetztes Komma mit dem Attribut delayMacro. Dabei muss man differenzieren: 0_macro 1,2,3,4 ist das, was mit dem ermittelten Grenzwert funktionieren sollte. Makrofunktionen für Menüeinstellungen können da etwas anders reagieren. Dafür setze ich dann die Kommas mehrfach, Bsp.0_macro PIP_ONOFF,,,,,ENTER,,RIGHT,ENTER,,EXIT,EXIT
Bitte postet Euer Ergebnis der ermittelten delays mit TV-Serie oder TV-Typ und möglichst firmware.

Edit: Download entfernt wg. neuer Version im Thread "Zusammenfassende Doku".
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt