Listenlive

Aus FHEMWiki
Version vom 6. Juli 2013, 18:31 Uhr von Ritchie (Diskussion | Beiträge) (→‎Listenlive.nl Firmware: Schnittstellenparameter eingeführt & Firmwarebeschreibung erweitert.)

Hardware

Die Firmware von Listenliste arbeitet derzeit (Stand 06.2013) mit der folgenden Hardware für die unter aufgeführten Produkte zusammen.

Penbex Hardware

DMTech, Watson, ctiradio, Joybien, eradio, KW-1004, HipShing, Goodmans, Proline, Neon, Clas Ohlson,
Orchard, Yusan, Zylux, Logik, Sabre, MPMan, Uptoday, LA302, Olympia, Centrios, Amitech, Odys,
Forworld2, Boom, VEGA, Pbirkit, IRM8001, Lafayette, DNT IPMicro, Akira, SL-D960, GP-60X, PBXBoom2-SI,
Pbirkit2, Konig HAV-20/21/22

SkyTC Hardware

Mediabox 135, Arnova WebRadio & TV, XORO-HMT350 XORO HMT370,
LinePro, Pearl Auvisio IPTV2335 (PX-8595), Wiwa eRTV208, Otek IPTV510, Envivo PO1119 PO1171 PO1235,
Disgo TVGo, Vista Quest, Xenta KMP510, Foxman, Apex, Cayenne, Roxcore, Aigo, Lookeetv

Listenlive.nl Firmware

Auf der Seite listenlive.nl gibt es für Webradios der Serie (PenPex und SkytV) eine alternative Firmware. Die derzeit Version 1.49 (Stand 06.2013)
wurde von ListenLive um eine TCP/IP Schnittstelle für die Steuerung des Radios erweitert.
Hierbei erfolgt die Datenübertragung der Kommandos über eine TCP/IP Socket.
Die gesendeten Befehle werden jeweils mit dem Text "OK" beantwortet.
Im wesentlichen kann man darüber die Befehle senden, die auch die IR-Fernbedienung sendet.

Schnittstellenparameter

Die folgenden Parameter sind für die Kommunikation mit dem Radio sehr wichtig.
Die IP Adresse des Radios sollte eine feste IP Adresse haben. Dies kann man z.B. bei einer Fritzbox so lösen,
das man in den Netzwerkeinstellung für dieses Geräte die Einstellung.
Diesem Gerät immer die gleiche IP Adresse vergeben. Die korrekte Erkennung des Radios erfolgt hierbei mit der Mac-Adresse.

  • IP Adresse des Radios (z.B. 192.168.1.33)
  • Port 8080

Der Code

Für fhem.cfg

### WebRadio
define WebRadio dummy
attr WebRadio room Wohnzimmer
attr WebRadio setList UP LEFT DOWN RIGHT EXIT POWER OK VOLp VOLm STOP REPEAT PGUP PGDN RECORD HOME MENU MUTE FORWARD REWIND FMRADIO IRADIO ITV PAUSE CLOCK
attr WebRadio webCmd UP:LEFT:DOWN:RIGHT:EXIT:POWER:OK:VOLp:VOLm:STOP:REPEAT:PGUP:PGDN:RECORD:HOME:MENU:MUTE:FORWARD:REWIND:FMRADIO:IRADIO:ITV:PAUSE:CLOCK
define myWebRadio notify WebRadio {radio($EVENT)};;

Für die myUtils:

use strict;
use warnings;
use POSIX;
use CGI qw(:standard);
use IO::Socket;
use IO::Socket::INET;
use MIME::Base64;
use Time::HiRes qw(usleep nanosleep); 

#
# Listenlive Radio
#
sub radio($)
{
  my ($socket,$client_socket);
  my $response ="";

#
# Create a socket object for the communication with the radio
#
  $socket = new IO::Socket::INET (
		PeerHost => '192.168.0.55', ########## <- hier eure IP Adresse eingeben
		PeerPort => '8080',
		Proto => 'tcp',
  ) or die "ERROR in Socket Creation : $!\n";

#
# Send the given command into the socket
#
  $socket->send(@_);
#
# get the radio some time to execute the command (300ms )
#
  usleep(30000);   ###### <- erhöhen, wenn das Radio Kommandos verschluckt

#
# get the answer of the radio
#
  $socket->recv($response, 2);

  if($response !~  m/OK/)
    {
	 Log 1, "Error from radio ! Response from Radio : $response" ;
	 }

  $socket->close();
  return;
}

Beispiel für das Einschalten des Radio mit dem ersten Favoriten

#
#Power on with the first radio sender
#
sub SwitchRadioOn
{
  radio("POWER");
  radio("HOME");
  radio("OK");
  radio("OK");
  radio("OK");
  return;
}

Probleme

  • Das Timing ist nicht perfekt, manchmal verschluckt das Radio Befehle. Hochsetzen von usleep kann helfen.
  • Viel problematischer ist, dass wir eigentlich keine echte Rückmeldung bekommen, was das Radio grade tut. Somit ist es nicht möglich, von einem beliebigen Zustand aus mit FHEM loszulegen.
  • Generell hilft hier derzeit nur das ausprobieren mit der IR-Fernbedienung und die entsprechenden Kommandos dann an das Radio zu senden
  • Die Firmware wird derzeit nur von einer Person gewartet, welcher aber sehr aktiv an dem Projekt arbeitet.

Wie es weitergeht

Eine Möglichkeit besteht darin, abzuwarten was William in der 1.5er Firmware ändert Andererseits läuft eine BusyBox auf dem Radio und der Telnet Zugang ist aktiviert.


Links