Daraufhin entwickelte sich ein abendfüllender PN Ausstausch zwischen uns. Ich besitze kein solches Gerät, er benötigte einen der mit Scripten dienen kann.
Herausgekommen ist eine passable Möglichkeit mittels Homematic diese Geräte fernzusteuern.
Es gibt einige Internetradios die dieses Verfahren unterstützen, er hat z.B. ein Hama IR110 Radio. Es gibt aber auch genug andere (Aldi, LIdl usw.) die laut meinen Rechergen so gesteuert werden können.
Einwenig erschwert wird das Ganze, da ein wohl nichtlöschbaren PIN verwendet wird, sowie eine Sessionsteuerung. Das alles wurde nun in Scripte voll integriert und hier möchte ich nun das Resultat posten.Unter Tipps und Tricks, um den Überblick behalten zu können, der Anfangsthread hat auch kaum den richtigen Titel.
Herangehensweise:
Wer sich auskennt macht es wie er will, wer weniger Erfahrungen hat, hält sich an die halbwegs Anleitung.
1. Es muss >> CUXD << installiert sein auf der CCU. Ich werde keine Scripte mehr posten, die den system.exec verwenden. Gründe sind oft genannt.
2. Auf der CCU einige der virtuellen Tasten logische Namen geben (HAMA Power on, HAMA Power off / Hama Volume - usw. Diese Tasten gleich noch in Gewerke oder Räume usw. eintragen. um Sie gleich wiederzufinden. In Apps sind diese Tasten ja auch aufrufbar, macht also Sinn. Von mir aus Gewerk Radiosteuerung.... Machbar ist das unter Einstellungen / Geräte / CCU .
3. Dann ein Programm anlegen, wo die angelegten Taster jeweils als Auslöser dienen um die Scripte aufzurufen. Um mir Schreiberei zu sparen, hierfür ein BIld. Nicht vergessen auf virtuelle Kanäle einblenden zu drücken, sonst sind die nicht sichtbar.
4. und dann noch die entsprechenden Scripte für die einzelnen Ansteuerungen in das Programm kopieren. Ich habe mich bei der ganzen Kopiererei nicht vertan.
Power OFF
Code: Alles auswählen
! FSAPI gesteuerte Geräte in die Homematic integrieren by Alchy
! ++++++ SETUP FÜR DAS SCRIPT ++++++
var IP_RADIO = "192.168.1.37"; ! IP des zu steuernden Gerätes
var i_PIN = "1234"; ! Pin des zu steuernden Gerätes
var CUXD_ID1 = "CUX2801001:1"; ! CUXD Serial Nummer des CUXD_EXEC Kanales zum Holen der SessionID
var CUXD_ID2 = "CUX2801001:1"; ! CUXD Serial Nummer des CUXD_EXEC Kanales zum Absenden des Befehls
!++++++ SETUP ENDE ++++++
var url = "http://"#IP_RADIO#"/fsapi/CREATE_SESSION?pin="#i_PIN#"";
dom.GetObject("CUxD."#CUXD_ID1#".CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD."#CUXD_ID1#".CMD_QUERY_RET").State(1);
string sback = dom.GetObject("CUxD."#CUXD_ID1#".CMD_RETS").State();
string sSID = sback.StrValueByIndex(" ", 8);
string befehl ="http://"#IP_RADIO#"/fsapi/SET/netRemote.sys.power?pin="#i_PIN#"&sid="#sSID#"&value=0";
dom.GetObject("CUxD."#CUXD_ID2#".CMD_EXEC").State("wget -q -O - '"#befehl#"'");
Code: Alles auswählen
! FSAPI gesteuerte Geräte in die Homematic integrieren by Alchy
! ++++++ SETUP FÜR DAS SCRIPT ++++++
var IP_RADIO = "192.168.1.37"; ! IP des zu steuernden Gerätes
var i_PIN = "1234"; ! Pin des zu steuernden Gerätes
var CUXD_ID1 = "CUX2801001:1"; ! CUXD Serial Nummer des CUXD_EXEC Kanales zum Holen der SessionID
var CUXD_ID2 = "CUX2801001:1"; ! CUXD Serial Nummer des CUXD_EXEC Kanales zum Absenden des Befehls
!++++++ SETUP ENDE ++++++
var url = "http://"#IP_RADIO#"/fsapi/CREATE_SESSION?pin="#i_PIN#"";
dom.GetObject("CUxD."#CUXD_ID1#".CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD."#CUXD_ID1#".CMD_QUERY_RET").State(1);
string sback = dom.GetObject("CUxD."#CUXD_ID1#".CMD_RETS").State();
string sSID = sback.StrValueByIndex(" ", 8);
string befehl ="http://"#IP_RADIO#"/fsapi/SET/netRemote.sys.power?pin="#i_PIN#"&sid="#sSID#"&value=1";
dom.GetObject("CUxD."#CUXD_ID2#".CMD_EXEC").State("wget -q -O - '"#befehl#"'");
Code: Alles auswählen
! FSAPI gesteuerte Geräte in die Homematic integrieren by Alchy
! ++++++ SETUP FÜR DAS SCRIPT ++++++
var IP_RADIO = "192.168.1.37"; ! IP des zu steuernden Gerätes
var i_PIN = "1234"; ! Pin des zu steuernden Gerätes
var CUXD_ID1 = "CUX2801001:1"; ! CUXD Serial Nummer des CUXD_EXEC Kanales zum Holen der SessionID
var CUXD_ID2 = "CUX2801001:1"; ! CUXD Serial Nummer des CUXD_EXEC Kanales zum Absenden des Befehls
!++++++ SETUP ENDE ++++++
var url = "http://"#IP_RADIO#"/fsapi/CREATE_SESSION?pin="#i_PIN#"";
dom.GetObject("CUxD."#CUXD_ID1#".CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD."#CUXD_ID1#".CMD_QUERY_RET").State(1);
string sback = dom.GetObject("CUxD."#CUXD_ID1#".CMD_RETS").State();
string sSID = sback.StrValueByIndex(" ", 8);
string befehl ="http://"#IP_RADIO#"/fsapi/SET/netRemote.sys.audio.mute?pin="#i_PIN#"&sid="#sSID #"&value=1";
dom.GetObject("CUxD."#CUXD_ID2#".CMD_EXEC").State("wget -q -O - '"#befehl#"'");
Code: Alles auswählen
! FSAPI gesteuerte Geräte in die Homematic integrieren by Alchy
! ++++++ SETUP FÜR DAS SCRIPT ++++++
var IP_RADIO = "192.168.1.37"; ! IP des zu steuernden Gerätes
var i_PIN = "1234"; ! Pin des zu steuernden Gerätes
var CUXD_ID1 = "CUX2801001:1"; ! CUXD Serial Nummer des CUXD_EXEC Kanales zum Holen der SessionID
var CUXD_ID2 = "CUX2801001:1"; ! CUXD Serial Nummer des CUXD_EXEC Kanales zum Absenden des Befehls
!++++++ SETUP ENDE ++++++
var url = "http://"#IP_RADIO#"/fsapi/CREATE_SESSION?pin="#i_PIN#"";
dom.GetObject("CUxD."#CUXD_ID1#".CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD."#CUXD_ID1#".CMD_QUERY_RET").State(1);
string sback = dom.GetObject("CUxD."#CUXD_ID1#".CMD_RETS").State();
string sSID = sback.StrValueByIndex(" ", 8);
string befehl ="http://"#IP_RADIO#"/fsapi/SET/netRemote.sys.audio.mute?pin="#i_PIN#"&sid="#sSID #"&value=0";
dom.GetObject("CUxD."#CUXD_ID2#".CMD_EXEC").State("wget -q -O - '"#befehl#"'");
Folgendes Script für Volume +
Code: Alles auswählen
!FSAPI gesteuerte Geräte in die Homematic integrieren by Alchy
!++++++ SETUP FÜR DAS SCRIPT ++++++
var IP_RADIO = "192.168.2.164"; ! IP des zu steuernden Gerätes
var i_PIN = "1234"; ! Pin des zu steuernden Gerätes
var i_STEP = 1 ; ! Volume um 1 oder 2 oder 3... per Tastendruck ändern
var CUXD_ID1 = "CUX2801001:1"; ! CUXD Serial Nummer des CUXD_EXEC Kanales zum Holen der SessionID
var CUXD_ID2 = "CUX2801001:1"; ! CUXD Serial Nummer des CUXD_EXEC Kanales zum Absenden des Befehls
!++++++ SETUP ENDE ++++++
var url = "http://"#IP_RADIO#"/fsapi/CREATE_SESSION?pin="#i_PIN#"";
dom.GetObject("CUxD."#CUXD_ID1#".CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD."#CUXD_ID1#".CMD_QUERY_RET").State(1);
string sback = dom.GetObject("CUxD."#CUXD_ID1#".CMD_RETS").State();
string sSID = sback.StrValueByIndex(" ", 8);
var urlaudio = "http://"#IP_RADIO#"/fsapi/GET/netRemote.sys.audio.volume?pin="#i_PIN#"&sid="#sSID #"";
dom.GetObject("CUxD."#CUXD_ID2#".CMD_SETS").State("wget -q -O - '"#urlaudio#"'");
dom.GetObject("CUxD."#CUXD_ID2#".CMD_QUERY_RET").State(1);
string momvol = dom.GetObject("CUxD."#CUXD_ID2#".CMD_RETS").State();
integer ivan = momvol.Find("u8")+3;
integer iven = ivan +2;
integer ivol = momvol.Substr(ivan,iven-ivan).ToInteger();
if (ivol <32 ) {ivol=ivol + i_STEP;}
string befehl ="http://"#IP_RADIO#"/fsapi/SET/netRemote.sys.audio.volume?pin="#i_PIN#"&sid="#sSID #"&value="#ivol#"";
dom.GetObject("CUxD."#CUXD_ID2#".CMD_EXEC").State("wget -q -O - '"#befehl#"'");
Code: Alles auswählen
!FSAPI gesteuerte Geräte in die Homematic integrieren by Alchy
!++++++ SETUP FÜR DAS SCRIPT ++++++
var IP_RADIO = "192.168.2.164"; ! IP des zu steuernden Gerätes
var i_PIN = "1234"; ! Pin des zu steuernden Gerätes
var i_STEP = 1 ; ! Volume um 1 oder 2 oder 3... per Tastendruck ändern
var CUXD_ID1 = "CUX2801001:1"; ! CUXD Serial Nummer des CUXD_EXEC Kanales zum Holen der SessionID
var CUXD_ID2 = "CUX2801001:1"; ! CUXD Serial Nummer des CUXD_EXEC Kanales zum Absenden des Befehls
!++++++ SETUP ENDE ++++++
var url = "http://"#IP_RADIO#"/fsapi/CREATE_SESSION?pin="#i_PIN#"";
dom.GetObject("CUxD."#CUXD_ID1#".CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD."#CUXD_ID1#".CMD_QUERY_RET").State(1);
string sback = dom.GetObject("CUxD."#CUXD_ID1#".CMD_RETS").State();
string sSID = sback.StrValueByIndex(" ", 8);
var urlaudio = "http://"#IP_RADIO#"/fsapi/GET/netRemote.sys.audio.volume?pin="#i_PIN#"&sid="#sSID #"";
dom.GetObject("CUxD."#CUXD_ID2#".CMD_SETS").State("wget -q -O - '"#urlaudio#"'");
dom.GetObject("CUxD."#CUXD_ID2#".CMD_QUERY_RET").State(1);
string momvol = dom.GetObject("CUxD."#CUXD_ID2#".CMD_RETS").State();
integer ivan = momvol.Find("u8")+3;
integer iven = ivan +2;
integer ivol = momvol.Substr(ivan,iven-ivan).ToInteger();
if (ivol >0 ) {ivol=ivol - i_STEP;}
string befehl ="http://"#IP_RADIO#"/fsapi/SET/netRemote.sys.audio.volume?pin="#i_PIN#"&sid="#sSID #"&value="#ivol#"";
dom.GetObject("CUxD."#CUXD_ID2#".CMD_EXEC").State("wget -q -O - '"#befehl#"'");
Mir selber nicht, da ich ein solches Gerät nicht besitze.
Natürlich kann man die Geräte dadurch auch z.B. in DashUI integrieren.
Es gibt auch noch mehr Befehle, so kann der aktuelle Titel ausgelesen werden soweit ich gelesen habe usw. Kommt aber sicher auch auf das Gerät an.
Möglich ist fast alles, wenn man nur will. Wer fragen dazu hat,einfach melden.
Viel Spass damit.
Alchy