Hallo zusammen,
ich hab mich mit einem Kumpel zusammen hingesetzt und wir haben ein wenig getüftelt.
Angefangen hat alles dort:
http://forum.fhem.de/index.php/topic,31430.msg239251.html#msg239251 (http://forum.fhem.de/index.php/topic,31430.msg239251.html#msg239251)
Jetzt ist da folgende .pm raus geworden. Habe ich angehängt.
Ich muss WARNEN! Das ist noch bei weitem nicht fertig oder irgendwie schön.
Wir haben ein Modul als Vorlage genommen und angefangen ein wenig darin zu ändern.
Das define schaut wie folgt aus:
Pin = 1234
IP= 192.168.0.XX
define IRadio SIRD 192.168.0.XX 1234
Es gibt ein Reading bisher... volumeStraight
Es kann Ein und Aus geschalten werden. (on off)
Die Lautstärke kann absolut gesetzt werden: Min: 0 Max: 19
Jetzt kommen meine Fragen,
wie kann ich die Readings aktuell halten?
Wenn her Bloch das liest... Wie bekommst du mit wie der status vom Yamaha ist wenn er aus gemacht wird. IR-Fernbedienung?
Ständig auslesen?
Hallo zusammen, ich hab jetzt weiter gemacht.
Ich kann jetzt die Eingänge (input) auswählen.
Funktioniert... bisher.
Ich ab aber dennoch eine Frage, es gibt dort eine xml - Seite, die mit notify betitelt ist.
Dort wird alles reingeschrieben was an Änderungen gekommen ist. Lautstärke eingang evtl. neuer Text vom Radiosender.
Die Sache ist nur die, wenn ich die Aufrufe, steht nichts darin. Irgendwie kommen die Daten in einer Form, ich würde sagen Push wie ei einem Notify.
Wie bekomme ich das in meinem Modul hin? Dann könnte ich Readings sofort aktualisieren.
Grüße
Ich würde sagen, dass diese Daten immer als Antwort kommen, nachdem du einen Befehl übers Netzwerk gesendet hast.
Schau doch nochmal deine gesnifften Pakete an.
Ansonsten möchte ich sagen:
Hut ab.
Hätte damals, als ich dein erstes Posting diesbezüglich gelesen hatte, nicht gedacht, dass du so weit kommst.
Finde ich toll, wenn mir diese Bemerkung erlaubt ist :)
Ich schließe mich dem an!! Hut ab! Ich habe insgesamt 4 von diesen Radios:
IäMedion MD87180 Wlan DAB FM Radio von ALDI.
Ich hatte mir auch schon mal Gedanken darüber gemacht so etwas zu entwickeln. Hatte auch schon mal gesnifft, allerdings mangels Ahnung ohne besondere Ergebnisse.
Ich bin gern bereit dieses Modul zu testen oder andersweitig zu unterstützen, allerdings sind meine Fähigkeiten auf diesem Gebiet noch sehr gering. Aber der Wille ist da!
Erster Test:
Nachdem ich gestern schon mal erfolglos probiert hab, hatte ich dann heute auch mal Erfolg. Gestern blieb das SESSIONID Reading immer leer. Heute habe ich das Device nochmal neu defined. Anfangs hat sich auch nichts getan, nach ein paar mal set on/off hatte ich dann plötzlich ein SESSIONID Reading, so ca drei mal. Das Reading hat sich nach jedem set Befehl geändert. Danach habe ich versucht die Lautstärke zu ändern und anschließend ging dann wieder nix mehr, das SESSIONID Reading blieb dann wieder leer.
Gruß
Ingo
Hallo Ingo.. Das ist ja klasse das da noch jemand Interesse hat.
Mh also normalerweise wird die session id jedes mal neu generiert... Allerdings kann ich dir nicht verraten wie das modul mit z.b. 2 geraeten laeuft... Wenn ich mir da kurz gedanken zu mache, eig. Problemlos...
Das mit den session ids ist mir allerdings schleierhaft... Benutzt du paralel dazu die App fuer android bzw. Iphone?
Wie heisst die? Ich würde die dann mal bei dem lidl radio probieren.
Ich lade morgen das update hoch. Bzgl. Input. Vllt. Ist das timeout ein wenig knapp bei dir.
Ist nur 2 sec.
Wie ist das Radio angebunden? Wlan?
Hey Rince vielen dank. Ja was Netzwerk angeht bin ich einigermassen fit. Mein Kumpel hat mir aber einiges gezeigt.
Er hat das modul fuer die energenie steckdosen mitgebaut. Ist da also deutlich fitter als ich.
Pearl ist noch mein Hinderniss.
Ich hab die seite im browser geoffnet. Dort taucht nichts auf.. Bis ich irgendwas veraendere und wenn das Am geraet selber ist. Kommt nur meine aenderung als event.
Gruesse
medion lifestream heißt die app für Android.
und das Radio ist über Wlan angeschlossen.
und ich tippe mal das es noch mehr Menschen gibt die das brauchen können.
Hi,
oben ist die neue .pm
Auf dem Lidl Radio läuft das bisher ganz gut.
Man kann aber nur die Eingänge wählen.
Irgendwas auswählen geht leider nicht. (Radiosender etc)
Grüße
Hattest du das Timeout auch schon geändert?
Das Problem mit der ab und an fehlenden SESSIONID ist nämlich immer noch da.
Ich werde später auch mal eins per LAN testen.
EDIT:
hab nun ein Radio per LAN angeschlossen, da ist jeder Befehl ein Treffer.
Hi!
ich würde das mit den Timouts ungern ändern, ich meine zu wissen das solange keine Antwort von dem Gerät kommt, FHEM steht. Vllt. bau ich das noch ein das man die Timouts beim define festlegen kann.
Oder als Attribut.
Ich hab irgendwo gelesen, das für manche dinge sogar Zeiten im Millisekunden-Bereich unschön sind.
Funktionieren die Inputs denn auch?
Aber mal unter uns... 2 Sekunden sind im Netzwerkbereich doch monströs. Hast du viel Traffic in deinem WLAN? Schlechten Empfang?
Was für Hardware hast du? RPI? Fritzbox mit FHEM?
Grüße
Dafür gibt es NonBlocking.
Das lagert das Modul quasi in einen Parallelprozess aus, so dass fhem nicht auf Timeouts oder so warten muss.
Edit:
Schau mal in diesen Thread
http://forum.fhem.de/index.php/topic,31626.0.html
Ja das hatte ich auch schon gelesen.
Muss mich da noch schlau machen.
Aber dennoch 2 sec. sind echt viel im lokalen Netz.
Moin,
fhem läuft bei mir auf nem bananapi.
hm, mein netzwerk ist schon recht umfangreich, aber ich kann mir iwie nicht vorstellen das zwei sec. nicht ausreichen. bei der lan verbindung bemerkte man ja quasi keine zeitverzögerung zwischen befehl absenden und der reaktion am radio. ich hab iwie son gefühl das das was anderes ist. daher würde ich halt gerne mal mit nem timeout von 4 oder auch 10 sec testen, nur um mein gefühl zu wiederlegen oder zu bestätigen.
hab mal nen bissl an der .pm rumgespielt, bin mir allerdings nicht sicher ob ich da auch wirklich den timeout verstellt hab, dazu fehlt mir noch das perl verständnis. der anschliessende test brachte auf jeden fall mal keinen erfolg.
gruß
ingo
EDIT:
habe das Timeout mal auf 10 Sekunden gestellt, wenn das Radio aus ist, hängt FHEMfür 10sec wenn ich einen Befehl sende. (daher gehe ich mal davon aus das ich den richtigen Wert erwischt hab)
Sende ich einen Befehl wenn das Radio an ist, geht dieser zwar nicht durch, FHEM hängt aber nur für weniger als 2sec. Daher tippe ich mal das es nicht am timeout liegt. Ich gehe eher davon aus, dass es ein Kommunikationsproblem ist.
Hi, ich bin derzeit krank und bekomme Kopftechnisch leider nichts zustande.
Du könntest mit deinem Browser testen.
Erstmal eine neue SessionID
http://192.168.0.16:80/fsapi/CREATE_SESSION?pin=1234
Das Ergebnis kommt dann dort rein.
AN
http://192.168.0.xx:80/fsapi/SET/netRemote.sys.power?pin=1234&sid=Ergebnis&value=1
AUS
http://192.168.0.xx:80/fsapi/SET/netRemote.sys.power?pin=1234&sid=1085365777&value=1
Probier mal wie sich das per Wlan verhält.
Grüße.
Das Radio reagiert mit anschlagen der Enter-Taste in Sekunden Bruchteil.
Hi, was macht der Kopf?
Ich hab heute mal Zeit damit verbracht mit der FritzBox den Datenverkehr zwischen FHEM und dem Radio zu sniffen. Die gesnifften Pakete waren allerdings nie komplett, daher hab ich das mit der FB aufgegeben und hab stattdessen mal tshark auf meinen bananaPI, auf dem auch FHEM läuft, installiert und damit gesnifft. Mit den Daten konnte ich dann auch was anfangen.
Radio per LAN verbunden und Befehle per FHEM:
Die Antwort auf die SessionID-Anfrage kam immer nach ca. 0,006 (+-0,002) Sekunden und der Befehl wurde am Radio auch immer ausgeführt.
Radio per WLAN verbunden und Befehle per FHEM:
Die Antwort kam ab und an auch in dem Zeitrahmen, dann wurde der Befehl am Radio auch ausgeführt. Meistens kam der Set-Befehl aber bevor die SessionID-Antwort angekommen ist. Der Set-Befehl kam immer ca. 0,0101 Sekunden nach der SessionID-Anfrage.
Kann es sein das der zweite Befehl die Antwort von der ersten Anfrage abschießt?
Die gesnifften Klamotten stelle ich dir gern zur Verfügung.
Ich habe zum Vergleich die Befehle aus dem Browser per Lan und WLan und auch von FHEM per LAN und WLAN mitgeschnitten.
Meiner bescheidenen Ahnung nach, haut FHEM den set-Befehl zu schnell nach der sessionID Abfrage raus.
Eventuell kann man ja ein "wait for SessionID" oder so ähnlich einbauen, so das der Befehl erst nach Empfang der SID ausgeführt wird.
Gruß
Ingo
EDIT:
Hab mal noch Fix die Befehle aus dem Browser des BananaPi abgeschickt und da sind die Antwort-Zeiten noch schlechter. Die schnellste Antwort kam nach 0,015s und die langsamste nach 0,03s
EDIT2:
Habe auch mal noch den Datenverkehr zwischen der Handy-App und dem Radio gesnifft. Wie gesagt, stelle ich die Daten gern zur Verfügung.
Hallo zusammen, ich hab das Modul auch mal getestet.
Zuerst hatte ich keine Chance überhaupt von dem Radio eine SessionID zubekommen. Dann hab ich den Sourcecode mal mit dem Browsertest aus dem Beitrag von AK-868 verglichen und mir ist aufgefallen, das zumindest bei mir der Port in den http-Zugriffen fehlte. Nach dem ich dann aus z.B.
my $xmlre = CustomGetFileFromURL($hash, "http://".$hash->{IP}."/fsapi/CREATE_SESSION?pin=".$hash->{PASSWORD}, 2, "", 0, $logLevel);
folgendes gemacht habe:
my $xmlre = CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/CREATE_SESSION?pin=".$hash->{PASSWORD}, 2, "", 0, $logLevel);
,natürlich bei jeder Abfrage, konnte ich mein Radio auch fernbedienen. Ich habs übrigens über WLAN "angeschlossen".
Generell kann ich nur sagen weiter so.
Wenns ums Testen geht bin ich dabei.
Ich hab noch ein paar BrowserTests gemacht:
Achtung IP und SID anpassen 8) :o
Dies sollte den vergebenen Namen aus der Webseite zurückliefern
http://192.168.1.32:80/fsapi/GET/netRemote.sys.info.friendlyName?pin=1234&sid=xxxxxxxx
Die Radio-Id
http://192.168.1.32:80/fsapi/GET/netRemote.sys.info.radioId?pin=1234&sid=xxxxxxx
Die aktuelle Lautstärke
http://192.168.1.32:80/fsapi/GET/netRemote.sys.audio.volume?pin=1234&sid=xxxxxx
Abspielstatus
http://192.168.1.32:80/fsapi/GET/netRemote.play.status?pin=1234&sid=xxxxxxxx 0=IDLE;1=BUFFERING;2=PLAYING;3=PAUSED
Im DAB-Modus der Sendername
http://192.168.1.32:80/fsapi/GET/netRemote.play.info.name?pin=1234&sid=xxxxxxxx
Eigentlich selbst erklärend:
http://192.168.1.32:80/fsapi/GET/netRemote.play.info.text?pin=1234&sid=xxxxxxxx
ich mach mal morgen (heute) weiter
MfG
Schroediman 8)
Hi schroediman,
in diesem Post ist eine Seite verlinkt auf der schon einige Steuerkomandos aufgelistet sind.
http://forum.fhem.de/index.php/topic,31430.msg242811.html#msg242811
Ich bin auch die ganze Zeit schon am rum Basteln, hab allerdings mal noch keinen dollen Plan von Perl. Somit gestaltet sich die Fehlersuche für mich ein wenig schwierig. Aber ich bleib dran...
Gruß
Ingo
Hi Ingo,
durch die Post in diesem Thread, hab ich zumindest schon einmal die Befehle in der Android-App gefunden. Ich hatte die mal in java-sourcecode umgewandelt und war bis jetzt etwas etwas überfordert, da ich dachte ich muss das Radio über upnp ansteuern.
Dadurch denke ich ich schick Dir mal meine Daten als PN. 8)
Kann man da überhaupt was anhängen?
Hallöchen,
das Problem das meine Befehle nicht durch gehen hab ich (zumindest bei mir) gelöst.
Ich bin auf der Suche nach Lösungen über folgenden Thread gestolpert:
http://forum.fhem.de/index.php/topic,26246.msg192553.html#msg192553
Das hab ich mal eben in meine 17_SIRD.pm eingebaut und nun funzt alles.
CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/SET/netRemote.sys.power?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}."&value=1", 2, "", 1, $logLevel);
den Wert für noshutdown hab ich von 0 auf 1 gesetzt.
Gruß
Ingo
HI,
ich hab mal ein bischen weiter getüfftelt. Der Weg ist noch sehr lang aber son bischen geht jetzt.
package main;
use strict;
use warnings;
use HttpUtils;
use XML::Simple qw(:strict);
sub
SIRD_Initialize($)
{
my ($hash) = @_;
$hash->{Clients} = ":EGPM:";
$hash->{GetFn} = "SIRD_Get";
$hash->{SetFn} = "SIRD_Set";
$hash->{DefFn} = "SIRD_Define";
$hash->{AttrList} = ""
}
###################################
sub
SIRD_Get($@)
{
my ($hash, @a) = @_;
my $what;
return "argument is missing" if(int(@a) != 2);
$what = $a[1];
if($what =~ /^(STATE|lastcommand)$/)
{
if(defined($hash->{READINGS}{$what}))
{
return $hash->{READINGS}{$what}{VAL};
}
else
{
return "reading not found: $what";
}
}
else
{
return "Unknown argument $what, choose one of STATE:noArg lastcommand:noArg ".(exists($hash->{READINGS}{output})?" output:noArg":"");
}
}
##SET#################################
sub
SIRD_Set($@)
{
my ($hash, @a) = @_;
return "no set value specified" if(int(@a) < 2);
return "Unknown argument $a[1], choose one of Power:On,Off volume:slider,0,1,20 Mode:InternetRadio,NetworkPlayer,DAB-Radio,FM-Radio,AUX RemoteState:On,Off clearreadings:noArg FriendlyNameRequest:noArg VersionRequest:noArg InfoTextRequest:noArg InfoNameRequest:noArg ".
"FrequencyRequest:noArg SignalStrengthRequest:noArg" if($a[1] eq "?");
my $name = shift @a;
my $setcommand = shift @a;
my $params = join(" ", @a);
my $helper = 0;
my $logLevel = GetLogLevel($name,4);
Log $logLevel, "SIRD set $name (". $hash->{IP}. ") $setcommand $params";
eval{ CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/GET_NOTIFIES?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}, 2, "", 1, $logLevel);
};
if ($@){
### catch block
SIRD_Login($hash, $logLevel);
};
if($setcommand eq "Power")
{
if ($params eq "On")
{
$helper = 1;
}
elsif ($params eq "Off")
{
$helper = 0;
}
else
{
Log 1, "SIRD Command POWER wrong Parameter: ".$params;
return 0;
}
eval{
CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/SET/netRemote.sys.power?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}."&value=".$helper, 2, "", 1, $logLevel);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetPower($hash, $logLevel);
}
elsif($setcommand eq "Mode")
{
if ($params eq "InternetRadio")
{
$helper = 0;
}
elsif ($params eq "NetworkPlayer")
{
$helper = 1;
}
elsif ($params eq "DAB-Radio")
{
$helper = 2;
}
elsif ($params eq "FM-Radio")
{
$helper = 3;
}
elsif ($params eq "AUX")
{
$helper = 4;
}
else
{
Log 1, "SIRD Command Mode wrong Parameter: ".$params;
return 0;
}
eval{
CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/SET/netRemote.sys.mode?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}."&value=".$helper, 2, "", 1, $logLevel);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetInput($hash, $logLevel);
}
elsif($setcommand eq "volume")
{
eval{
CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/SET/netRemote.sys.audio.volume?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}."&value=".$params, 2, "", 1, $logLevel);
};
## Lautstärke zurücklesen
SIRD_GetVolume($hash,$logLevel);
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "RemoteState")
{
if ($params eq "On")
{
$helper = 1;
}
elsif ($params eq "Off")
{
$helper = 0;
}
else
{
Log 1, "SIRD Command RemoteState wrong Parameter: ".$params;
return 0;
}
eval{
CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/SET/netRemote.nav.state?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}."&value=".$helper, 2, "", 1, $logLevel);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetRemoteState($hash, $logLevel);
}
elsif($setcommand eq "FriendlyNameRequest" )
{
SIRD_GetFriendlyName($hash, $logLevel);
}
elsif($setcommand eq "VersionRequest")
{
SIRD_GetVersion($hash, $logLevel);
}
elsif($setcommand eq "InfoTextRequest")
{
SIRD_GetInfoText($hash, $logLevel);
}
elsif($setcommand eq "InfoNameRequest")
{
SIRD_GetInfoName($hash, $logLevel);
}
elsif($setcommand eq "FrequencyRequest")
{
SIRD_GetFrequency($hash, $logLevel);
}
elsif($setcommand eq "SignalStrengthRequest")
{
SIRD_GetSignalStrength($hash, $logLevel);
}
elsif($setcommand eq "clearreadings")
{
delete $hash->{READINGS};
}
else
{
return "unknown argument $setcommand, choose one of on, off, toggle, statusrequest, clearreadings";
}
SIRD_Logoff($hash, $logLevel);
$hash->{CHANGED}[0] = $setcommand;
$hash->{READINGS}{lastcommand}{TIME} = TimeNow();
$hash->{READINGS}{lastcommand}{VAL} = $setcommand." ".$params;
return undef;
}
###############################
sub SIRD_Switch($$$$) {
my ($hash, $state, $port, $logLevel) = @_;
$state = ($state eq "on" ? "1" : "0");
my $fritz = 0; #may be important for FritzBox-users
my $data = "cte1=" . ($port == "1" ? $state : "") . "&cte2=" . ($port == "2" ? $state : "") . "&cte3=" . ($port == "3" ? $state : "") . "&cte4=". ($port == "4" ? $state : "");
Log $logLevel, "SIRD $data";
eval {
CustomGetFileFromURL($hash ,"http://".$hash->{IP}."/",10 ,$data ,$fritz ,$logLevel);
};
if ($@){
### catch block
Log $logLevel, "SIRD error: $@";
};
return 1;
}
###############################
sub SIRD_Login($$) {
my ($hash, $logLevel) = @_;
Log $logLevel,"SIRD try to Login @".$hash->{IP};
eval{
my $response = CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/CREATE_SESSION?pin=".$hash->{PASSWORD}, 2, "", 1, $logLevel);
my $ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
if ($ref->{status} == 'FS_OK')
{
$hash->{SESSIONID} = $ref->{sessionId};
Log $logLevel,"SIRD Login successful!";
};
};
if ($@) {
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
return 1;
}
###############################
sub SIRD_GetStatus($$) {
my ($hash, $local) = @_;
my $name = $hash->{NAME};
my $IP = $hash->{IP};
my $logLevel = GetLogLevel($name);
#if $local is set to 1 just fetch informations from device without interrupting InternalTimer
$local = 0 unless(defined($local));
InternalTimer(gettimeofday()+$hash->{INTERVAL}, "SIRD_GetStatus", $hash,0) unless($local == 1);
return "" if(!defined($hash->{IP}) or !defined($hash->{INTERVAL}));
eval{ CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/GET_NOTIFIES?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}, 2, "", 1, $logLevel);
};
if ($@){
### catch block
SIRD_Login($hash, $logLevel);
};
SIRD_GetPower($hash, $logLevel);
if ($hash->{STATE} eq 'on')
{
SIRD_GetVolume($hash, $logLevel);
SIRD_GetInput($hash, $logLevel);
SIRD_GetInfoName($hash, $logLevel);
SIRD_GetInfoText($hash, $logLevel);
SIRD_GetRemoteState($hash, $logLevel);
SIRD_GetPlayStatus($hash, $logLevel);
}
else
{
delete $hash->{READINGS};
}
return undef;
}
###############################
sub SIRD_GetPower($$) {
my ($hash, $logLevel) = @_;
my $name = $hash->{NAME};
my $response = CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/GET/netRemote.sys.power?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}, 2, "", 1, $logLevel);
my $ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} == 'FS_OK')
{
if (int($ref->{value}->{u8}) == 1)
{
$hash->{STATE} = 'on';
}
else
{
$hash->{STATE} = 'off';
}
}
return undef;
}
###############################
sub SIRD_GetVolume($$) {
my ($hash, $logLevel) = @_;
my $name = $hash->{NAME};
my $response = CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/GET/netRemote.sys.audio.volume?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}, 2, "", 1, $logLevel);
my $ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} == 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "volume", $ref->{value}->{u8}, 1);
readingsEndUpdate($hash, 0);
}
return undef;
}
###############################
sub SIRD_GetFriendlyName($$) {
my ($hash, $logLevel) = @_;
my $name = $hash->{NAME};
my $response = CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/GET/netRemote.sys.info.friendlyName?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}, 2, "", 1, $logLevel);
my $ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
if ($ref->{status} == 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "friendlyName", $ref->{value}->{c8_array}, 1);
readingsEndUpdate($hash, 0);
}
return undef;
}
###############################
sub SIRD_GetVersion($$) {
my ($hash, $logLevel) = @_;
my $name = $hash->{NAME};
my $response = CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/GET/netRemote.sys.info.version?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}, 2, "", 1, $logLevel);
my $ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
if ($ref->{status} == 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "Version", $ref->{value}->{c8_array}, 1);
readingsEndUpdate($hash, 0);
}
return undef;
}
###############################
sub SIRD_GetInfoName($$) {
my ($hash, $logLevel) = @_;
my $name = $hash->{NAME};
my $response = CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/GET/netRemote.play.info.name?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}, 2, "", 1, $logLevel);
my $ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
if ($ref->{status} == 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "InfoName", $ref->{value}->{c8_array}, 1);
readingsEndUpdate($hash, 0);
}
return undef;
}
###############################
sub SIRD_GetInfoText($$) {
my ($hash, $logLevel) = @_;
my $name = $hash->{NAME};
my $response = CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/GET/netRemote.play.info.text?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}, 2, "", 1, $logLevel);
my $ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
if ($ref->{status} == 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "InfoText", $ref->{value}->{c8_array}, 1);
readingsEndUpdate($hash, 0);
}
return undef;
}
###############################
sub SIRD_GetFrequency($$) {
my ($hash, $logLevel) = @_;
my $name = $hash->{NAME};
my $response = CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/GET/netRemote.play.frequency?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}, 2, "", 1, $logLevel);
my $ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
if ($ref->{status} == 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "Frequency", $ref->{value}->{u32}, 1);
readingsEndUpdate($hash, 0);
}
return undef;
}
###############################
sub SIRD_GetSignalStrength($$) {
my ($hash, $logLevel) = @_;
my $name = $hash->{NAME};
my $response = CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/GET/netRemote.play.signalStrength?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}, 2, "", 1, $logLevel);
my $ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
if ($ref->{status} == 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "Signalstrength", $ref->{value}->{u8}, 1);
readingsEndUpdate($hash, 0);
}
return undef;
}
###############################
sub SIRD_GetRemoteState($$) {
my ($hash, $logLevel) = @_;
my $name = $hash->{NAME};
my $response = CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/GET/netRemote.nav.state?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}, 2, "", 1, $logLevel);
my $ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
if ($ref->{status} == 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "RemoteState", $ref->{value}->{u8}, 1);
readingsEndUpdate($hash, 0);
}
return undef;
}
###############################
sub SIRD_GetInput($$) {
my ($hash, $logLevel) = @_;
my $name = $hash->{NAME};
my $response = CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/GET/netRemote.sys.mode?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}, 2, "", 1, $logLevel);
my $ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
if ($ref->{status} == 'FS_OK')
{
readingsBeginUpdate($hash);
if (int($ref->{value}->{u32}) == 0)
{
readingsSingleUpdate($hash, "input", "InternetRadio", 1);
}
elsif (int($ref->{value}->{u32}) == 1)
{
readingsSingleUpdate($hash, "input", "NetzworkPlayer", 1);
}
elsif (int($ref->{value}->{u32}) == 2)
{
readingsSingleUpdate($hash, "input", "DAB-Radio" , 1);
}
elsif (int($ref->{value}->{u32}) == 3)
{
readingsSingleUpdate($hash, "input", "FM-Radio", 1);
}
elsif (int($ref->{value}->{u32}) == 4)
{
readingsSingleUpdate($hash, "input", "AUX", 1);
}
else
{
readingsSingleUpdate($hash, "input", "Unknown", 1);
}
readingsEndUpdate($hash, 0);
}
return undef;
}
###############################
sub SIRD_GetNotify($$){
my ($hash, $logLevel) = @_;
my $name = $hash->{NAME};
my $response = CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/GET_NOTIFIES?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}, 2, "", 1, $logLevel);
my $ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
if ($ref->{status} == 'FS_OK')
{
# to be done
}
return undef;
}
###############################
sub SIRD_GetPlayStatus($$){
my ($hash, $logLevel) = @_;
my $name = $hash->{NAME};
my $response = CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/fsapi/GET/netRemote.play.status?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}, 2, "", 1, $logLevel);
my $ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
if ($ref->{status} == 'FS_OK')
{
readingsBeginUpdate($hash);
if (int($ref->{value}->{u8}) == 0)
{
readingsSingleUpdate($hash, "PlayStatus", "IDLE", 1);
}
elsif (int($ref->{value}->{u8}) == 1)
{
readingsSingleUpdate($hash, "PlayStatus", "BUFFERING", 1);
}
elsif (int($ref->{value}->{u8}) == 2)
{
readingsSingleUpdate($hash, "PlayStatus", "PLAYING", 1);
}
elsif (int($ref->{value}->{u8}) == 3)
{
readingsSingleUpdate($hash, "PlayStatus", "PAUSED", 1);
}
elsif (int($ref->{value}->{u8}) == 4)
{
readingsSingleUpdate($hash, "PlayStatus", "REBUFFERING", 1);
}
elsif (int($ref->{value}->{u8}) == 5)
{
readingsSingleUpdate($hash, "PlayStatus", "ERROR", 1);
}
else
{
readingsSingleUpdate($hash, "PlayStatus", "Unknown", 1);
}
readingsEndUpdate($hash, 0);
}
return undef;
}
###############################
sub SIRD_Logoff($$) {
my ($hash, $logLevel) = @_;
#$quiet, $url, $timeout, $data, $noshutdown, $loglevel
CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/login.html", 10, "", 1, $logLevel);
return 1;
}
###############################
sub SIRD_Define($$) {
my ($hash, $def) = @_;
my @a = split("[ \t][ \t]*", $def);
my $u = "wrong syntax: define <name> SIRD IP Password [interval]";
return $u if(int(@a) < 3);
$hash->{IP} = $a[2];
if(int(@a) == 5 || int(@a) == 4)
{
$hash->{PASSWORD} = $a[3];
}
else
{
$hash->{PASSWORD} = "";
}
my $result = SIRD_Login($hash, 3);
if($result == 1)
{
$hash->{STATE} = "initialized";
}
if(defined($a[4]) and $a[4] > 10) {
$hash->{INTERVAL}=$a[4];
}
else{
$hash->{INTERVAL}=30;
}
InternalTimer(gettimeofday()+10, "SIRD_GetStatus", $hash,0);
return undef;
}
1;
Moin,
ich habs leider grad erst gesehen. Ich hab den CODE grad mal eingefügt, danach stürzte mein FHEM ab. Ich probiere mal weiter, allerdings nicht vor Dienstag.
Gruß
Ingo
EDIT:
habs nochmal versucht. Erst mal kamen beim Start von FHEM ein paar Fehlermeldungen. hab an ein paar Stellen das == in ein eq geändert.
Dann nochmal gestartet. Die Steuerung ging für einen kurzen Moment, danach stürzte FHEM dann wieder ab...
Hi,
ich habe vergessen zu schreiben das jetzt das folgende Perl Modul gebraucht wird: XML::Simple
bei debian mal als root "apt-get install libxml-simple-perl" eingeben.
Wenn hinterher Listen abgeholt werden erspart das einiges an Code um die Senderlisten / Dateilisten aus dem XML einzulesen.
MfG
Sebastian
daran lags nicht... 8)
ich mache mir grad mal ne "saubere" FHEM Installation...
EDIT:
auf der FHEM neuinstallation läuft alles ganz fein!! hut ab!!
2.EDIT:
nachdem es auf der Neuinstallation lief, hab ich es nochmal auf meinem "lebenden" FHEM versucht.
Ich habe alle Radios bis auf eins deaktiviert, dann lief es. Mit dem zweiten Radio gings auch noch.
Als ich dann alle vier aktiviert hab, stürzte das System nach nem rereadcfg ab.
Tippe mal, dass da nen bissl viel arbeit für den kleinen bananapi entsteht...
steht bei apptime auch mal ganz oben auf der Liste:
name function max count total average maxDly
tmr-SIRD_GetStatus HASH(0x2e81320) 2679 10 22093 2209.30 16 HASH(Kueche_Radio)
So, für mehr hab ich aber nu wirklich keine Zeit, muss mich jetzt mal wieder zum Arbeiten zwingen...
3.EDIT:
Ich kann die Finger doch nicht davon lassen...
Mein versuchs FHEM (auf Raspi) ist zwischenzeitlich auch schon einmal abgschmiert.
Das ist immer der letzte Log-Eintrag:
2015.02.02 15:15:52 2: CustomGetFileFromURL <hidden>: Can't connect(1) to http://192.168.170.170:80: IO::Socket::INET: connect: timeout
4.EDIT:
ich verbinde mich per ssh zum raspi mit dem versuchs FHEM, wenn ich da weg FHEM neu starte, kommt folgende Fehlermeldung vor dem Absturz:
Could not find fhem.xml in ./ at ./FHEM/17_SIRD.pm line 330
Und in der Line 330 Steht:
my $ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
Gleiche Meldung kam mit verschiedenen line Angaben (z.B. 397) immer der gleiche Zeileninhalt.
HI Ingo,
zum 2. EDIT.
Evtl spielen da die 2 sekunden timeout in den HttPabfragen mit rein. werd das mal bei mir prüfen, lieg da auch bei ähnlichen Werten.
zum 3. Edit
hat das Radio immer die gleiche IP ?
Das Radio scheint nicht am Netz zu sein.
wenn die HTTP-Kommunikation gestört ist dann keine Werte für die xMLin und dann die Meldung.
muss noch abgefangen werden.
Ich bin noch meilenweit davon entfernt dass das vernünftig funzt!
MfG
Sebastian
Hallo Sebastian,
die Radios haben immer die gleiche IP und sind auch so eingestellt, dass sie die WLAN Verbindung halten auch wenn sie aus sind (also Standby).
Ich überprüfe grad mal meine Perl Installation, nicht das da der Fehler liegt...
Ich bin von dem was du da geschaffen hast schon mal völlig überwältigt, dafür das du "nur testen" wolltest... weiter so!! Ich werd mich mal in deinen Code einlesen, vielleicht verstehe ich ihn ja... ::)
Gruß
Ingo
Hallo zusammen,
ich bin jetzt auch wieder einigermaßen auf dem Damm und kann auch wieder was machen.
Ich werde mal euren Code ausprobieren.
Bin gespannt.
Donnerstag kommt die neue Version in den LIDL.
@Schroediman
volumeStraight müssen wir wieder einbauen.
Volume muss dann in % eingebaut werden.
Oder generell an dem halten:
http://www.fhemwiki.de/wiki/DevelopmentGuidelinesAV (http://www.fhemwiki.de/wiki/DevelopmentGuidelinesAV)
Studiere weiter den Code ;)
Das mit den Variablen hatte ich auch noch vor.
Get Notifys da bin ich schon bei was rauszubekommen.
Ich weiß nicht wie weit du schon damit bist. Ganz schlau werd ich aus der Seite nicht.
Bei mir füllt sich die XML nur wenn aktionen am Radio getätigt werden. Lade ich die Seit neu ist Sie wieder leer. Zumindest bei mir.
Ich habe die pm aus der Startseite mal aktualisiert und volumeStraight wieder eingebaut... nontestet..
Werde mich morgen abend mal an das Volume in % machen.
Ebenso versuch ich rauszufinden wie man durch die Radios navigiert.
Hallo zusammen,
1. ja das mit den Guidelines hab ich auch schon gemerkt.
2. Ich hoffe ich hab die Probleme von Automatisierer behoben, in dem ich schaue ob die Antwort vom Radio wie xml aussieht. Erkennen ob das Radio unter der IP-verfügbar ist sollte er auch ohne Absturz.
3. notify bin ich noch dran, aber das funktioniert so: in der XML sind alle Werte der Notifyfähigen Nodes die sich seit dem letzten Notify-abruf geändert haben. Ändert sich nichts ist die xml sehr uninformativ. : 8)
MfG
Schroedimann
package main;
use strict;
use warnings;
use HttpUtils;
use XML::Simple qw(:strict);
use Time::HiRes qw(gettimeofday sleep);
sub
SIRD_Initialize($)
{
my ($hash) = @_;
$hash->{Clients} = ":EGPM:";
$hash->{GetFn} = "SIRD_Get";
$hash->{SetFn} = "SIRD_Set";
$hash->{DefFn} = "SIRD_Define";
$hash->{AttrList} = ""
}
###################################
sub SIRD_Get($@)
{
my ($hash, @a) = @_;
my $what;
my $helper= "";
return "argument is missing" if(int(@a) != 2);
$what = $a[1];
if($what =~ /^(lastcommand|power|presence|volume|volumeStraight|mute|repeat|shuffle|input|currentArtist|currentAlbum|currentTitle|playStatus|state)$/)
{
if(defined($hash->{READINGS}{$what}))
{
return $hash->{READINGS}{$what}{VAL};
}
else
{
if ($what eq "state")
{
if ($hash->{READINGS}{"presence"}{VAL} ne "absent")
{
$helper = $hash->{READINGS}{"power"}{VAL};
}
else
{
$helper = $hash->{READINGS}{"presence"}{VAL};
}
return $helper;
}
else
{
return "reading not found: $what";
}
}
}
return "Unknown argument $what, choose one of lastcommand:noArg power:noArg presence:noArg volume:noArg volumeStraight:noArg mute:noArg repeat:noArg shuffle:noArg "
."input:noArg currentArtist:noArg currentAlbum:noArg currentTitle:noArg playStatus:noArg state:noArg ".(exists($hash->{READINGS}{output})?" output:noArg":"");
}
##SET#################################
sub SIRD_Set($@)
{
my ($hash, @a) = @_;
return "no set value specified" if(int(@a) < 2);
return "Unknown argument $a[1], choose one of on:noArg off:noArg play:noArg pause:noArg stop:noArg next:noArg previous:noArg ".
"volume:slider,0,1,100 volumeStraight:slider,0,1,20 mute:on,off,toggle input:InternetRadio,MediaPlayer,DAB-Radio,FM-Radio,AUX ".
"statusRequest:noArg RemoteState:on,off clearreadings:noArg FriendlyNameRequest:noArg VersionRequest:noArg InfoTextRequest:noArg InfoNameRequest:noArg ".
"FrequencyRequest:noArg SignalStrengthRequest:noArg" if($a[1] eq "?");
my $name = shift @a;
my $setcommand = shift @a;
my $params = join(" ", @a);
my $helper = 0;
my $logLevel = GetLogLevel($name);
Log $logLevel, "SIRD set $name (". $hash->{IP}. ") $setcommand $params";
$helper=SIRD_GetPower($hash);
if (!$helper){
### catch block
SIRD_Login($hash);
};
if($setcommand eq "on")
{
eval{
SIRD_Com ($hash,"netRemote.sys.power?pin=",2,1);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetPower($hash);
}
elsif($setcommand eq "off")
{
eval{
SIRD_Com ($hash,"netRemote.sys.power?pin=",2,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetPower($hash);
}
elsif($setcommand eq "input")
{
if ($params eq "InternetRadio")
{
$helper = 0;
}
elsif ($params eq "MediaPlayer")
{
$helper = 1;
}
elsif ($params eq "DAB-Radio")
{
$helper = 2;
}
elsif ($params eq "FM-Radio")
{
$helper = 3;
}
elsif ($params eq "AUX")
{
$helper = 4;
}
else
{
Log 1, "SIRD Command Mode wrong Parameter: ".$params;
return 0;
}
eval{
SIRD_Com ($hash,"netRemote.sys.mode",2,$helper);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetInput($hash);
}
elsif($setcommand eq "volume")
{
my $helper = int($params/5);
eval{
SIRD_Com ($hash,"netRemote.sys.audio.volume",2,$helper);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
## Lautstärke zurücklesen
SIRD_GetVolume($hash);
}
elsif($setcommand eq "volumeStraight")
{
my $helper = int($params);
eval{
SIRD_Com ($hash,"netRemote.sys.audio.volume",2,$helper);
};
## Lautstärke zurücklesen
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetVolume($hash);
}
elsif($setcommand eq "mute")
{
if ($params eq "on")
{
$helper = 1;
}
elsif ($params eq "off")
{
$helper = 0;
}
elsif ($params eq "toggle")
{
if (ReadingsVal($name, "mute", "0") eq "on")
{
$helper = 0;
}
elsif (ReadingsVal($name, "mute", "0") eq "off")
{
$helper = 1;
}
}
else
{
Log 1, "SIRD Command Mute wrong Parameter: ".$params;
return 0;
}
eval{
SIRD_Com ($hash,"netRemote.sys.audio.mute",2,$helper);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetMute($hash);
}
elsif($setcommand eq "stop")
{
eval{
SIRD_Com ($hash,"netRemote.play.control",2,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "play")
{
eval{
SIRD_Com ($hash,"netRemote.play.control",2,1);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "pause")
{
eval{
SIRD_Com ($hash,"netRemote.play.control",2,2);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "next")
{
eval{
SIRD_Com ($hash,"netRemote.play.control",2,3);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "previous")
{
eval{
SIRD_Com ($hash,"netRemote.play.control",2,4);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "statusRequest" )
{
SIRD_GetStatus($hash,1);
}
elsif($setcommand eq "RemoteState")
{
if ($params eq "on")
{
$helper = 1;
}
elsif ($params eq "off")
{
$helper = 0;
}
else
{
Log 1, "SIRD Command RemoteState wrong Parameter: ".$params;
return 0;
}
eval{
SIRD_Com ($hash,"netRemote.nav.state",2,$helper);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetRemoteState($hash);
}
elsif($setcommand eq "FriendlyNameRequest" )
{
SIRD_GetFriendlyName($hash);
}
elsif($setcommand eq "VersionRequest")
{
SIRD_GetVersion($hash);
}
elsif($setcommand eq "InfoTextRequest")
{
SIRD_GetInfoText($hash);
}
elsif($setcommand eq "InfoNameRequest")
{
SIRD_GetInfoName($hash);
}
elsif($setcommand eq "FrequencyRequest")
{
SIRD_GetFrequency($hash);
}
elsif($setcommand eq "SignalStrengthRequest")
{
SIRD_GetSignalStrength($hash);
}
elsif($setcommand eq "clearreadings")
{
delete $hash->{READINGS};
}
else
{
return "unknown argument $setcommand, choose one of on, off, toggle, statusrequest, clearreadings";
}
#SIRD_Logoff($hash);
$hash->{CHANGED}[0] = $setcommand;
$hash->{READINGS}{lastcommand}{TIME} = TimeNow();
$hash->{READINGS}{lastcommand}{VAL} = $setcommand." ".$params;
return undef;
}
###############################
sub SIRD_Login($) {
my ($hash) = @_;
my $ref;
Log $hash->{logLevel},"SIRD try to Login @".$hash->{IP};
my $response = SIRD_Com($hash,"CREATE_SESSION?pin=".$hash->{PASSWORD},0,0);
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
if ($ref->{status} eq 'FS_OK')
{
$hash->{SESSIONID} = $ref->{sessionId};
Log $hash->{logLevel},"SIRD Login successful!";
};
};
return 1;
}
###############################
sub SIRD_GetStatus($$) {
my ($hash, $local) = @_;
my $name = $hash->{NAME};
my $helper;
$hash->{logLevel} = GetLogLevel($name);
#if $local is set to 1 just fetch informations from device without interrupting InternalTimer
$local = 0 unless(defined($local));
InternalTimer(gettimeofday()+$hash->{INTERVAL}, "SIRD_GetStatus", $hash,0) unless($local == 1);
return "" if(!defined($hash->{IP}) or !defined($hash->{INTERVAL}));
# Prüfen ob SID gültig
$helper = SIRD_GetPower($hash);
if (!$helper ){
### catch block
SIRD_Login($hash);
};
SIRD_GetPower($hash);
if ($hash->{STATE} eq "on")
{
SIRD_GetVolume($hash);
SIRD_GetMute($hash);
SIRD_GetInput($hash);
SIRD_GetInfoName($hash);
SIRD_GetInfoText($hash);
SIRD_GetRemoteState($hash);
SIRD_GetPlayStatus($hash);
SIRD_GetShuffle($hash);
SIRD_GetRepeat($hash);
SIRD_GetInfoAlbum($hash);
SIRD_GetInfoArtist($hash);
SIRD_GetPlayRate($hash);
SIRD_GetPlayPos($hash);
SIRD_GetInfoDur($hash);
SIRD_GetInfoGraphicURI($hash);
SIRD_GetSignalStrength($hash);
}
else
{
#delete $hash->{READINGS};
}
return undef;
}
###############################
sub SIRD_GetPower($) {
# cachable
# notifying
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.power",1,0);
my $ref;
my $helper = 'off';
my $presence = 'absent';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ($ref->{value}->{u8} == 1)
{
$helper = 'on';
$presence = 'present';
}
else
{
$helper = 'off';
$presence = 'present';
}
}
}
else
{
$helper ='off';
$presence = 'absent';
$response =0;
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "presence", $presence , 1);
readingsSingleUpdate($hash, "power", $helper , 1);
readingsEndUpdate($hash, 0);
$hash->{STATE} = $helper;
return $response;
}
###############################
sub SIRD_GetVolume($) {
# cachable
# notifying
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.audio.volume",1,0);
my $ref;
## Überprüfen ob Abfrage in Ordnung war
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
# volumeStraight 0 ... 20
readingsSingleUpdate($hash, "volumeStraight", $ref->{value}->{u8}, 1);
# volume 0 ... 100
readingsSingleUpdate($hash, "volume", 5*$ref->{value}->{u8}, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetMute($) {
# cachable
# notifying
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.audio.mute",1,0);
my $ref ;
my $helper = 'off';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ($ref->{value}->{u8} == 1)
{
$helper = "on";
}
else
{
$helper = "off";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "mute", $helper , 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetShuffle($) {
# notifying
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.shuffle",1,0);
my $ref ;
my $helper = 'off';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ($ref->{value}->{u8} == 1)
{
$helper = 'on';
}
else
{
$helper = 'off';
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "shuffle", $helper , 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetRepeat($) {
# notifying
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.repeat",1,0);
my $ref ;
my $helper = 'off';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ($ref->{value}->{u8} == 1)
{
$helper = 'on';
}
else
{
$helper = 'off';
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "repeat", $helper , 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetFriendlyName($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.info.friendlyName",1,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "friendlyName", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetVersion($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.info.version",1,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "version", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetInfoName($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.info.name",1,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "currentTitle", SIRD_xml2txt($helper) , 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetInfoText($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.info.text",1,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "InfoText", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetInfoAlbum($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.info.album",1,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "currentAlbum", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetInfoArtist($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.info.artist",1,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "currentArtist", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
##############################
sub SIRD_GetInfoGraphicURI($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.info.graphicUri",1,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "graphicUri", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
##############################
sub SIRD_GetPlayPos($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.position",1,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
#Zeit von 1000stel Sekunden in Minuten umwandeln xx:yy
$helper = " ".int( $ref->{value}->{u32} / 60000).":".sprintf("%02d", (int( $ref->{value}->{u32} / 1000)-(int( $ref->{value}->{u32} / 60000)*60)));
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "currentPosition", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
##############################
sub SIRD_GetInfoDur($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.info.duration",1,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
#Zeit von 1000stel Sekunden in Minuten umwandeln xx:yy
$helper = " ".int( $ref->{value}->{u32} / 60000).":".sprintf("%02d", (int( $ref->{value}->{u32} / 1000)-(int( $ref->{value}->{u32} / 60000)*60)));
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "currentDuration", $helper, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetPlayRate($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.rate",1,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "playRate", $ref->{value}->{s8}, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetFrequency($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.frequency",1,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "Frequency", $ref->{value}->{u32}, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetSignalStrength($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.signalStrength",1,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "Signalstrength", $ref->{value}->{u8}, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetRemoteState($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.nav.state",1,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "RemoteState", $ref->{value}->{u8}, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetInput($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.mode",1,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
if (int($ref->{value}->{u32}) == 0)
{
readingsSingleUpdate($hash, "input", "InternetRadio", 1);
}
elsif (int($ref->{value}->{u32}) == 1)
{
readingsSingleUpdate($hash, "input", "MediaPlayer", 1);
}
elsif (int($ref->{value}->{u32}) == 2)
{
readingsSingleUpdate($hash, "input", "DAB-Radio" , 1);
}
elsif (int($ref->{value}->{u32}) == 3)
{
readingsSingleUpdate($hash, "input", "FM-Radio", 1);
}
elsif (int($ref->{value}->{u32}) == 4)
{
readingsSingleUpdate($hash, "input", "AUX", 1);
}
else
{
readingsSingleUpdate($hash, "input", "Unknown", 1);
}
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetNotify($){
my ($hash) = @_;
my $response = SIRD_Com ($hash,"GET_NOTIFIES?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID},0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if (exists $ref->{"netRemote.sys.power"})
{
if ($ref->{"netRemote.sys.power"}->{value}->{u8} == 1)
{
$helper = "on";
}
else
{
$helper = "off";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "power", $helper , 1);
readingsEndUpdate($hash, 0);
$hash->{STATE} = $helper;
}
if (exists $ref->{"netRemote.sys.audio.volume"})
{
readingsBeginUpdate($hash);
# volumeStraight 0 ... 20
readingsSingleUpdate($hash, "volumeStraigth", $ref->{"netRemote.sys.audio.volume"}->{value}->{u8}, 1);
# volume 0 ... 100
readingsSingleUpdate($hash, "volume", 5*$ref->{"netRemote.sys.audio.volume"}->{value}->{u8}, 1);
readingsEndUpdate($hash, 0);
}
if (exists $ref->{"netRemote.sys.audio.mute"})
{
if ($ref->{"netRemote.sys.audio.mute"}->{value}->{u8} == 1)
{
$helper = "on";
}
else
{
$helper = "off";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "mute", $helper , 1);
readingsEndUpdate($hash, 0);
}
}
#netRemote.play.repeat
#netRemote.play.shuffle
#netRemote.nav.status
#netRemote.play.status
#to be done
}
return undef;
}
###############################
sub SIRD_GetPlayStatus($){
# cachable
# notifying
my ($hash) = @_;
my $helper = "unknown";
my $response = SIRD_Com ($hash,"netRemote.play.status",1,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if (int($ref->{value}->{u8}) == 0)
{
$helper = "idle";
}
elsif (int($ref->{value}->{u8}) == 1)
{
$helper = "buffering";
}
elsif (int($ref->{value}->{u8}) == 2)
{
$helper = "playing";
}
elsif (int($ref->{value}->{u8}) == 3)
{
$helper = "paused";
}
elsif (int($ref->{value}->{u8}) == 4)
{
$helper = "rebuffering";
}
elsif (int($ref->{value}->{u8}) == 5)
{
$helper = "error";
}
else
{
$helper = "unknown";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "playStatus", $helper, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_Logoff($) {
my ($hash) = @_;
#$quiet, $url, $timeout, $data, $noshutdown, $loglevel
#CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/login.html", 10, "", 0, $hash->{logLevel});
return 1;
}
###############################
sub SIRD_Define($$) {
my ($hash, $def) = @_;
my @a = split("[ \t][ \t]*", $def);
my $u = "wrong syntax: define <name> SIRD IP Password [interval]";
return $u if(int(@a) < 3);
$hash->{IP} = $a[2];
if(int(@a) == 5 || int(@a) == 4)
{
$hash->{PASSWORD} = $a[3];
}
else
{
$hash->{PASSWORD} = "";
}
$hash->{logLevel} = 3 ;
my $result = SIRD_Login($hash);
if($result == 1)
{
$hash->{STATE} = "initialized";
}
if(defined($a[4]) and $a[4] > 10) {
$hash->{INTERVAL}=$a[4];
}
else{
$hash->{INTERVAL}=30;
}
InternalTimer(gettimeofday() + 10, "SIRD_GetStatus", $hash ,0);
return undef;
}
sub SIRD_Com ($$$$) {
my ($hash, $Command, $mode, $value) = @_;
my $name = $hash->{name};
my $helper ;
my $response = '';
if ($mode==0) #nonspecific
{
$helper = "http://".$hash->{IP}.":80/fsapi/".$Command;
$response = GetFileFromURL($helper,10,"",1,$hash->{logLevel});
}
elsif($mode==1) # GET
{
$helper = "http://".$hash->{IP}.":80/fsapi/GET/".$Command."?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID};
$response = GetFileFromURL($helper,2,"",1,$hash->{logLevel});
}
elsif ($mode==2) # SET
{
$helper = "http://".$hash->{IP}.":80/fsapi/SET/".$Command."?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}."&value=".$value;
$response = GetFileFromURL($helper,2,"",1,$hash->{logLevel});
}
elsif ($mode==3) # GETLIST
{
$helper = "http://".$hash->{IP}.":80/fsapi/GET/".$Command."?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}."&MaxItems=".$value;
$response = GetFileFromURL($helper,2,"",1,$hash->{logLevel});
}
Log3 $hash, $hash->{logLevel}, "SIRD: URL : '$helper' ";
Log3 $hash, $hash->{logLevel}, "SIRD: response from device: '$response' ";
return $response;
}
sub SIRD_xml2txt($)
{
# stolen from 71_YAMAHA_AVR.pm
# sub YAMAHA_AVR_html2txt($)
my ($string) = @_;
$string =~ s/ / /g;
$string =~ s/&/&/g;
$string =~ s/(\xe4|ä)/ä/g;
$string =~ s/(\xc4|Ä)/Ä/g;
$string =~ s/(\xf6|ö)/ö/g;
$string =~ s/(\xd6|Ö)/Ö/g;
$string =~ s/(\xfc|ü)/ü/g;
$string =~ s/(\xdc|Ü)/Ü/g;
$string =~ s/(\xdf|ß)/ß/g;
$string =~ s/<.+?>//g;
$string =~ s/(^\s+|\s+$)//g;
return $string;
}
1;
Moin,
habs eingebaut. Läuft mal sauber mit allen vier Radios.
Das LogLevel könnte mal geändert werden, bei 'attr Global verbose 3' wird jede empfangene Nachricht vom Radio geloggt. Und da kommt einiges! :o
Gruß
Ingo
EDIT:
lief gut, auch wenn alle vier Radios an waren,einzig der Seitenaufbau im webif wurde merklich langsamer.
Dann ging mein SatReciever an und das ENIGMA2 Modul kam ins spiel... die Meldungen von 'sudo service fhem start' bis zum Absturz von fhem...
Scalar value @auth[0] better written as $auth[0] at ./FHEM/75_MSG.pm line 147, <$fh> line 196.
Scalar value @auth[1] better written as $auth[1] at ./FHEM/75_MSG.pm line 147, <$fh> line 196.
Use of uninitialized value in localtime at (eval 34) line 1, <> line 269.
"my" variable $helper masks earlier declaration in same scope at ./FHEM/17_SIRD.pm line 975, <> line 3.
No value specified for 'KeyAttr' option in call to XMLin() at ./FHEM/70_ENIGMA2.pm line 1041
Gruß
Ingo
Hi Automatisierer,
das ist ja cool wenn das mit 4 Radios klappt. Ich hab nur eins von der Sorte!
Ich hatte gestern tierische Probleme mit der Kommunikation :( deshalb hab ich nach ein paar Stunden Tüffteln das mit dem Loggen eingebaut.
Wenn das mit dem Notify funzt dann geht der Kommunikationsbedarf auch spürbar runter. Dann kommt mit einer Abfrage fast alles rüber was jetzt einzeln erledigt wird.
@AK-868: wenn Du mir eine PN mit deiner E-Mail schickst bekommst Du die decompiliert Android app.
Für das Abrufen der Senderliste oder steuern werden wir wahrscheinlich Listen abrufen müssen und über den mitgelieferten Index wird man dem Radio dann seine Auswahl mitteilen können.
Hierfür zur Darstellung dieser Liste suche ich noch eine einfache aber geniale Idee.
Was müssen wir für dieses komische AV-Development Guide dingen noch machen? 8)
- evtl VolumeUp /VolumeDown ?
- Channel ? keine Ahnung so etwas richtiges wie Channels sehe ich da nicht zum Steuern könnte man "next "und "previous" umbenennen
Welche readings sollten noch implementiert werden ???
Was ist mit attributen, sollen die einzelnen Readings über die Attribute aktiviert werden ?
Notify für FHEM wann soll sowas gesetzt werden?
MfG
Schroediman ::)
ZitatMoin,
habs eingebaut. Läuft mal sauber mit allen vier Radios.
Das LogLevel könnte mal geändert werden, bei 'attr Global verbose 3' wird jede empfangene Nachricht vom Radio geloggt. Und da kommt einiges! :o
Gruß
Ingo
EDIT:
lief gut, auch wenn alle vier Radios an waren,einzig der Seitenaufbau im webif wurde merklich langsamer.
Dann ging mein SatReciever an und das ENIGMA2 Modul kam ins spiel... die Meldungen von 'sudo service fhem start' bis zum Absturz von fhem...
Scalar value @auth[0] better written as $auth[0] at ./FHEM/75_MSG.pm line 147, <$fh> line 196.
Scalar value @auth[1] better written as $auth[1] at ./FHEM/75_MSG.pm line 147, <$fh> line 196.
Use of uninitialized value in localtime at (eval 34) line 1, <> line 269.
"my" variable $helper masks earlier declaration in same scope at ./FHEM/17_SIRD.pm line 975, <> line 3.
No value specified for 'KeyAttr' option in call to XMLin() at ./FHEM/70_ENIGMA2.pm line 1041
Gruß
Ingo
Schaue mal in die Funktion
sub SIRD_GetPlayStatus($){
# cachable
# notifying
my ($hash) = @_;
my $helper = "unknown";
my $response = SIRD_Com ($hash,"netRemote.play.status",1,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if (int($ref->{value}->{u8}) == 0)
{
$helper = "idle";
}
elsif (int($ref->{value}->{u8}) == 1)
{
$helper = "buffering";
}
elsif (int($ref->{value}->{u8}) == 2)
{
$helper = "playing";
}
elsif (int($ref->{value}->{u8}) == 3)
{
$helper = "paused";
}
elsif (int($ref->{value}->{u8}) == 4)
{
$helper = "rebuffering";
}
elsif (int($ref->{value}->{u8}) == 5)
{
$helper = "error";
}
else
{
$helper = "unknown";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "playStatus", $helper, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
und lösche mal die zweite definiton von $helper.
Allerdings scheinen wir uns mit der Enigma geschichte die Packete zu klauen und entweder der SIRD fängt das noch nicht gut ab oder das Enigma-Modul scheint "XMLin" mit was Leerem zu versorgen. bNo value specified for 'KeyAttr' option in call to XMLin() at ./FHEM/70_ENIGMA2.pm line 1041'
Sprich hier ist irgendwas mit dem KeyAttr im ENIGMA2.pm falsch gelaufen. Kann ich leider nicht verifidigensda, da ich dieses Modul nicht nutze.
Ich bau erst mal bei uns shuffle und repeat als Befehl ein. Viel neues kann ich wahrscheinlich diese Woche nicht mehr beitragen.
Zitat von: automatisierer am 03 Februar 2015, 09:05:41
"my" variable $helper masks earlier declaration in same scope at ./FHEM/17_SIRD.pm line 975, <> line 3.
Hat geklappt, die Meldung ist mal weg...
Hi ,
shuffle und repeat sollte jetzt soweit funktionieren.
Wenn ihr wollt könnt ihr folgendes mal testen.
1. RemoteState auf 'on' stellen WICHTIG
2. NavListRequest -1 ### Sollte die ersten 20 Listeneinträge abrufen Im Dab Modus Senderspeicher // MediaPlayer
es werden jetzt die alten readings gelöscht und 20 readings die vom Radio empfangen wurden angezeigt das dauert:
nutzt man NavListRequest 20 werden die ab Eintrag nummer 20 nächsten Elemente abgerufen
sieht dann so aus:
NavList_01_key 29 2015-02-04 11:52:10
NavList_01_name 1LIVE diGGi 2015-02-04 11:52:11
NavList_01_subtype 1 2015-02-04 11:52:11
NavList_01_type 1 2015-02-04 11:52:11
Zum auswählen des Senders 1Live diGGi
3. NavActionSelItem 29 ##### also den Wert aus dem entsprechenden key-reading
Beim MediaPlayer muss man mehr navigieren.
hierfür gibt es den Befehl:
NavActionNav auch hier wieder das key-Reading benutzen. bei -1 scheint es eine Ebene zurück zugehen
bei jedem Ebenenwechsel muss die Liste neu geholt werden
Wichtig RemoteState auf 'on' stellen WICHTIG
MfG
Schroediman
package main;
use strict;
use warnings;
use HttpUtils;
use XML::Simple qw(:strict);
use Dumpvalue;
use Time::HiRes qw(gettimeofday sleep);
sub
SIRD_Initialize($)
{
my ($hash) = @_;
$hash->{Clients} = ":EGPM:";
$hash->{GetFn} = "SIRD_Get";
$hash->{SetFn} = "SIRD_Set";
$hash->{DefFn} = "SIRD_Define";
$hash->{AttrList} = ""
}
###################################
sub SIRD_Get($@)
{
my ($hash, @a) = @_;
my $what;
my $helper= "";
return "argument is missing" if(int(@a) != 2);
$what = $a[1];
if($what =~ /^(lastcommand|power|presence|volume|volumeStraight|mute|repeat|shuffle|input|currentArtist|currentAlbum|currentTitle|playStatus|state)$/)
{
if(defined($hash->{READINGS}{$what}))
{
return $hash->{READINGS}{$what}{VAL};
}
else
{
if ($what eq "state")
{
if ($hash->{READINGS}{"presence"}{VAL} ne "absent")
{
$helper = $hash->{READINGS}{"power"}{VAL};
}
else
{
$helper = $hash->{READINGS}{"presence"}{VAL};
}
return $helper;
}
else
{
return "reading not found: $what";
}
}
}
return "Unknown argument $what, choose one of lastcommand:noArg power:noArg presence:noArg volume:noArg volumeStraight:noArg mute:noArg repeat:noArg shuffle:noArg "
."input:noArg currentArtist:noArg currentAlbum:noArg currentTitle:noArg playStatus:noArg state:noArg ".(exists($hash->{READINGS}{output})?" output:noArg":"");
}
##SET#################################
sub SIRD_Set($@)
{
my ($hash, @a) = @_;
return "no set value specified" if(int(@a) < 2);
return "Unknown argument $a[1], choose one of on:noArg off:noArg play:noArg pause:noArg stop:noArg next:noArg previous:noArg ".
"volume:slider,0,1,100 volumeStraight:slider,0,1,20 mute:on,off,toggle shuffle:on,off repeat:on,off input:InternetRadio,MediaPlayer,DAB-Radio,FM-Radio,AUX ".
"statusRequest:noArg RemoteState:on,off clearreadings:noArg FriendlyNameRequest:noArg VersionRequest:noArg InfoTextRequest:noArg InfoNameRequest:noArg ".
"FrequencyRequest:noArg SignalStrengthRequest:noArg NavListRequest NavActionSelItem NavActionNavi DABScanRequest:noArg" if($a[1] eq "?");
my $name = shift @a;
my $setcommand = shift @a;
my $params = join(" ", @a);
my $helper = 0;
my $logLevel = GetLogLevel($name);
Log $logLevel, "SIRD set $name (". $hash->{IP}. ") $setcommand $params";
$helper=SIRD_GetPower($hash);
if (!$helper){
### catch block
SIRD_Login($hash);
};
if($setcommand eq "on")
{
eval{
SIRD_Com ($hash,"netRemote.sys.power?pin=",2,1,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetPower($hash);
}
elsif($setcommand eq "off")
{
eval{
SIRD_Com ($hash,"netRemote.sys.power?pin=",2,0,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetPower($hash);
}
elsif($setcommand eq "input")
{
if ($params eq "InternetRadio")
{
$helper = 0;
}
elsif ($params eq "MediaPlayer")
{
$helper = 1;
}
elsif ($params eq "DAB-Radio")
{
$helper = 2;
}
elsif ($params eq "FM-Radio")
{
$helper = 3;
}
elsif ($params eq "AUX")
{
$helper = 4;
}
else
{
Log 1, "SIRD Command input wrong Parameter: ".$params;
return 0;
}
eval{
SIRD_Com ($hash,"netRemote.sys.mode",2,$helper,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetInput($hash);
}
elsif($setcommand eq "volume")
{
my $helper = int($params/5);
eval{
SIRD_Com ($hash,"netRemote.sys.audio.volume",2,$helper,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
## Lautstärke zurücklesen
SIRD_GetVolume($hash);
}
elsif($setcommand eq "volumeStraight")
{
my $helper = int($params);
eval{
SIRD_Com ($hash,"netRemote.sys.audio.volume",2,$helper,0);
};
## Lautstärke zurücklesen
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetVolume($hash);
}
elsif($setcommand eq "mute")
{
if ($params eq "on")
{
$helper = 1;
}
elsif ($params eq "off")
{
$helper = 0;
}
elsif ($params eq "toggle")
{
if (ReadingsVal($name, "mute", "0") eq "on")
{
$helper = 0;
}
elsif (ReadingsVal($name, "mute", "0") eq "off")
{
$helper = 1;
}
}
else
{
Log 1, "SIRD Command Mute wrong Parameter: ".$params;
return 0;
}
eval{
SIRD_Com ($hash,"netRemote.sys.audio.mute",2,$helper,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetMute($hash);
}
elsif($setcommand eq "stop")
{
eval{
SIRD_Com ($hash,"netRemote.play.control",2,0,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "play")
{
eval{
SIRD_Com ($hash,"netRemote.play.control",2,1,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "pause")
{
eval{
SIRD_Com ($hash,"netRemote.play.control",2,2,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "next")
{
eval{
SIRD_Com ($hash,"netRemote.play.control",2,3,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "previous")
{
eval{
SIRD_Com ($hash,"netRemote.play.control",2,4,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "statusRequest" )
{
SIRD_GetStatus($hash,1);
}
elsif($setcommand eq "shuffle")
{
if ($params eq "on")
{
$helper = 1;
}
elsif ($params eq "off")
{
$helper = 0;
}
else
{
Log 1, "SIRD Command shuffle wrong Parameter: ".$params;
return 0;
}
eval{
SIRD_Com ($hash,"netRemote.play.shuffle",2,$helper,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetShuffle($hash);
}
elsif($setcommand eq "repeat")
{
if ($params eq "on")
{
$helper = 1;
}
elsif ($params eq "off")
{
$helper = 0;
}
else
{
Log 1, "SIRD Command repeat wrong Parameter: ".$params;
return 0;
}
eval{
SIRD_Com ($hash,"netRemote.play.repeat",2,$helper,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetRepeat($hash);
}
elsif($setcommand eq "NavActionSelItem")
{
eval{
SIRD_Com ($hash,"netRemote.nav.action.selectItem",2,$params,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "NavActionNavi")
{
eval{
SIRD_Com ($hash,"netRemote.nav.action.navigate",2,$params,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "RemoteState")
{
if ($params eq "on")
{
$helper = 1;
}
elsif ($params eq "off")
{
$helper = 0;
}
else
{
Log 1, "SIRD Command RemoteState wrong Parameter: ".$params;
return 0;
}
eval{
SIRD_Com ($hash,"netRemote.nav.state",2,$helper,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetRemoteState($hash);
}
elsif($setcommand eq "FriendlyNameRequest" )
{
SIRD_GetFriendlyName($hash);
}
elsif($setcommand eq "VersionRequest")
{
SIRD_GetVersion($hash);
}
elsif($setcommand eq "InfoTextRequest")
{
SIRD_GetInfoText($hash);
}
elsif($setcommand eq "InfoNameRequest")
{
SIRD_GetInfoName($hash);
}
elsif($setcommand eq "FrequencyRequest")
{
SIRD_GetFrequency($hash);
}
elsif($setcommand eq "SignalStrengthRequest")
{
SIRD_GetSignalStrength($hash);
}
elsif($setcommand eq "NavListRequest")
{
SIRD_GetNavList($hash,$params,$params+20);
}
elsif($setcommand eq "DABScanRequest")
{
SIRD_GetDABScan($hash);
}
elsif($setcommand eq "clearreadings")
{
delete $hash->{READINGS};
}
else
{
return "unknown argument $setcommand, choose one of on, off, toggle, statusrequest, clearreadings";
}
#SIRD_Logoff($hash);
$hash->{CHANGED}[0] = $setcommand;
$hash->{READINGS}{lastcommand}{TIME} = TimeNow();
$hash->{READINGS}{lastcommand}{VAL} = $setcommand." ".$params;
return undef;
}
###############################
sub SIRD_Login($) {
my ($hash) = @_;
my $ref;
Log $hash->{logLevel},"SIRD try to Login @".$hash->{IP};
my $response = SIRD_Com($hash,"CREATE_SESSION?pin=".$hash->{PASSWORD},0,0,0);
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
if ($ref->{status} eq 'FS_OK')
{
$hash->{SESSIONID} = $ref->{sessionId};
Log $hash->{logLevel},"SIRD Login successful!";
};
};
return 1;
}
###############################
sub SIRD_GetStatus($$) {
my ($hash, $local) = @_;
my $name = $hash->{NAME};
my $helper;
$hash->{logLevel} = GetLogLevel($name);
#if $local is set to 1 just fetch informations from device without interrupting InternalTimer
$local = 0 unless(defined($local));
InternalTimer(gettimeofday()+$hash->{INTERVAL}, "SIRD_GetStatus", $hash,0) unless($local == 1);
return "" if(!defined($hash->{IP}) or !defined($hash->{INTERVAL}));
# Prüfen ob SID gültig
$helper = SIRD_GetPower($hash);
if (!$helper ){
### catch block
SIRD_Login($hash);
};
SIRD_GetPower($hash);
if ($hash->{STATE} eq "on")
{
SIRD_GetVolume($hash);
SIRD_GetMute($hash);
SIRD_GetInput($hash);
SIRD_GetInfoName($hash);
SIRD_GetInfoText($hash);
SIRD_GetRemoteState($hash);
SIRD_GetPlayStatus($hash);
SIRD_GetShuffle($hash);
SIRD_GetRepeat($hash);
SIRD_GetInfoAlbum($hash);
SIRD_GetInfoArtist($hash);
SIRD_GetPlayRate($hash);
SIRD_GetPlayPos($hash);
SIRD_GetInfoDur($hash);
SIRD_GetInfoGraphicURI($hash);
SIRD_GetSignalStrength($hash);
}
else
{
#delete $hash->{READINGS};
}
return undef;
}
###############################
sub SIRD_GetPower($) {
# cachable
# notifying
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.power",1,0,0);
my $ref;
my $helper = 'off';
my $presence = 'absent';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ($ref->{value}->{u8} == 1)
{
$helper = 'on';
$presence = 'present';
}
else
{
$helper = 'off';
$presence = 'present';
}
}
}
else
{
$helper ='off';
$presence = 'absent';
$response =0;
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "presence", $presence , 1);
readingsSingleUpdate($hash, "power", $helper , 1);
readingsEndUpdate($hash, 0);
if ($presence eq "absent")
{
$helper = $presence;
}
$hash->{STATE} = $helper;
return $response;
}
###############################
sub SIRD_GetVolume($) {
# cachable
# notifying
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.audio.volume",1,0,0);
my $ref;
## Überprüfen ob Abfrage in Ordnung war
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
# volumeStraight 0 ... 20
readingsSingleUpdate($hash, "volumeStraight", $ref->{value}->{u8}, 1);
# volume 0 ... 100
readingsSingleUpdate($hash, "volume", 5*$ref->{value}->{u8}, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetMute($) {
# cachable
# notifying
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.audio.mute",1,0,0);
my $ref ;
my $helper = 'off';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ($ref->{value}->{u8} == 1)
{
$helper = "on";
}
else
{
$helper = "off";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "mute", $helper , 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetShuffle($) {
# notifying
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.shuffle",1,0,0);
my $ref ;
my $helper = 'off';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ($ref->{value}->{u8} == 1)
{
$helper = 'on';
}
else
{
$helper = 'off';
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "shuffle", $helper , 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetRepeat($) {
# notifying
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.repeat",1,0,0);
my $ref ;
my $helper = 'off';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ($ref->{value}->{u8} == 1)
{
$helper = 'on';
}
else
{
$helper = 'off';
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "repeat", $helper , 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetFriendlyName($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.info.friendlyName",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "friendlyName", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetVersion($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.info.version",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "version", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetInfoName($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.info.name",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "currentTitle", SIRD_xml2txt($helper) , 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetInfoText($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.info.text",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "InfoText", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetInfoAlbum($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.info.album",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "currentAlbum", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetInfoArtist($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.info.artist",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "currentArtist", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
##############################
sub SIRD_GetInfoGraphicURI($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.info.graphicUri",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "graphicUri", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
##############################
sub SIRD_GetPlayPos($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.position",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
#Zeit von 1000stel Sekunden in Minuten umwandeln xx:yy
$helper = " ".int( $ref->{value}->{u32} / 60000).":".sprintf("%02d", (int( $ref->{value}->{u32} / 1000)-(int( $ref->{value}->{u32} / 60000)*60)));
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "currentPosition", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
##############################
sub SIRD_GetInfoDur($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.info.duration",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
#Zeit von 1000stel Sekunden in Minuten umwandeln xx:yy
$helper = " ".int( $ref->{value}->{u32} / 60000).":".sprintf("%02d", (int( $ref->{value}->{u32} / 1000)-(int( $ref->{value}->{u32} / 60000)*60)));
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "currentDuration", $helper, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetPlayRate($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.rate",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "playRate", $ref->{value}->{s8}, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetFrequency($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.frequency",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "Frequency", $ref->{value}->{u32}, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetSignalStrength($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.signalStrength",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "Signalstrength", $ref->{value}->{u8}, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetRemoteState($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.nav.state",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ($ref->{value}->{u8} == 1)
{
$helper = "on";
}
else
{
$helper = "off";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "RemoteState", $helper , 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetInput($) {
# cachable
# notifying
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.mode",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
if (int($ref->{value}->{u32}) == 0)
{
$helper = "InternetRadio";
}
elsif (int($ref->{value}->{u32}) == 1)
{
$helper = "MediaPlayer";
}
elsif (int($ref->{value}->{u32}) == 2)
{
$helper = "DAB-Radio";
}
elsif (int($ref->{value}->{u32}) == 3)
{
$helper = "FM-Radio";
}
elsif (int($ref->{value}->{u32}) == 4)
{
$helper = "AUX";
}
else
{
$helper = "Unknown";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "input", $helper, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetNotify($){
my ($hash) = @_;
my $response = SIRD_Com ($hash,"GET_NOTIFIES?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID},0,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if (exists $ref->{"netRemote.sys.power"})
{
if ($ref->{"netRemote.sys.power"}->{value}->{u8} == 1)
{
$helper = "on";
}
else
{
$helper = "off";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "power", $helper , 1);
readingsEndUpdate($hash, 0);
$hash->{STATE} = $helper;
}
if (exists $ref->{"netRemote.sys.audio.volume"})
{
readingsBeginUpdate($hash);
# volumeStraight 0 ... 20
readingsSingleUpdate($hash, "volumeStraigth", $ref->{"netRemote.sys.audio.volume"}->{value}->{u8}, 1);
# volume 0 ... 100
readingsSingleUpdate($hash, "volume", 5*$ref->{"netRemote.sys.audio.volume"}->{value}->{u8}, 1);
readingsEndUpdate($hash, 0);
}
if (exists $ref->{"netRemote.sys.audio.mute"})
{
if ($ref->{"netRemote.sys.audio.mute"}->{value}->{u8} == 1)
{
$helper = "on";
}
else
{
$helper = "off";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "mute", $helper , 1);
readingsEndUpdate($hash, 0);
}
if (exists $ref->{"netRemote.play.repeat"})
{
if ($ref->{"netRemote.play.repeat"}->{value}->{u8} == 1)
{
$helper = "on";
}
else
{
$helper = "off";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "repeat", $helper , 1);
readingsEndUpdate($hash, 0);
}
if (exists $ref->{"netRemote.play.shuffle"})
{
if ($ref->{"netRemote.play.shuffle"}->{value}->{u8} == 1)
{
$helper = "on";
}
else
{
$helper = "off";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "shuffle", $helper , 1);
readingsEndUpdate($hash, 0);
}
if (exists $ref->{"netRemote.sys.mode"})
{
readingsBeginUpdate($hash);
if (int($ref->{"netRemote.sys.mode"}->{value}->{u32}) == 0)
{
$helper = "InternetRadio";
}
elsif (int($ref->{"netRemote.sys.mode"}->{value}->{u32}) == 1)
{
$helper = "MediaPlayer";
}
elsif (int($ref->{"netRemote.sys.mode"}->{value}->{u32}) == 2)
{
$helper = "DAB-Radio" ;
}
elsif (int($ref->{"netRemote.sys.mode"}->{value}->{u32}) == 3)
{
$helper = "FM-Radio";
}
elsif (int($ref->{"netRemote.sys.mode"}->{value}->{u32}) == 4)
{
$helper = "AUX";
}
else
{
$helper = "Unknown";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "input", $helper , 1);
readingsEndUpdate($hash, 0);
}
}
#netRemote.nav.status
#netRemote.play.status
#netRemote.nav.action.dabScan
#to be done
}
return undef;
}
###############################
sub SIRD_GetPlayStatus($){
# cachable
# notifying
my ($hash) = @_;
my $helper = "unknown";
my $response = SIRD_Com ($hash,"netRemote.play.status",1,0,0);
my $ref ;
# my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if (int($ref->{value}->{u8}) == 0)
{
$helper = "idle";
}
elsif (int($ref->{value}->{u8}) == 1)
{
$helper = "buffering";
}
elsif (int($ref->{value}->{u8}) == 2)
{
$helper = "playing";
}
elsif (int($ref->{value}->{u8}) == 3)
{
$helper = "paused";
}
elsif (int($ref->{value}->{u8}) == 4)
{
$helper = "rebuffering";
}
elsif (int($ref->{value}->{u8}) == 5)
{
$helper = "error";
}
else
{
$helper = "unknown";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "playStatus", $helper, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetNavList($$$){
my ($hash,$start,$end) = @_;
my $helper = "unknown";
my $response = SIRD_Com ($hash,"netRemote.nav.list",3,$start,$end);
my $ref ;
my $incer=0;
my $v;
my $k;
my $dumper = new Dumpvalue;
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
delete $hash->{READINGS};
# $dumper->dumpValue(\\$ref);
for my $item (@{ $ref->{'item'}}) {
$incer = $incer + 1;
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "NavList_".sprintf("%02d",$incer)."_key", $item->{key}, 1);
readingsSingleUpdate($hash, "NavList_".sprintf("%02d",$incer)."_name", @{$item->{'field'}}[0]->{c8_array}, 1);
#print @{%$item->{field}}[0]->{c8_array};
readingsSingleUpdate($hash, "NavList_".sprintf("%02d",$incer)."_type", @{$item->{'field'}}[1]->{u8}, 1);
readingsSingleUpdate($hash, "NavList_".sprintf("%02d",$incer)."_subtype", @{$item->{'field'}}[2]->{u8}, 1);
readingsEndUpdate($hash, 0);
# $dumper->dumpValue(\\$item);
}
}
}
return undef;
}
###############################
sub SIRD_GetDABScan($){
#notifying
my ($hash) = @_;
my $helper = "unknown";
my $response = SIRD_Com ($hash,"netRemote.nav.action.dabScan",1,0,0);
my $ref ;
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ($ref->{value}->{u8} == 0)
{
$helper = "idle";
}
else
{
$helper = "scan";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "DABScan", $helper , 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_Logoff($) {
my ($hash) = @_;
#$quiet, $url, $timeout, $data, $noshutdown, $loglevel
#CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/login.html", 10, "", 0, $hash->{logLevel});
return 1;
}
###############################
sub SIRD_Define($$) {
my ($hash, $def) = @_;
my @a = split("[ \t][ \t]*", $def);
my $u = "wrong syntax: define <name> SIRD IP Password [interval]";
return $u if(int(@a) < 3);
$hash->{IP} = $a[2];
if(int(@a) == 5 || int(@a) == 4)
{
$hash->{PASSWORD} = $a[3];
}
else
{
$hash->{PASSWORD} = "";
}
$hash->{logLevel} = 3 ;
my $result = SIRD_Login($hash);
if($result == 1)
{
$hash->{STATE} = "initialized";
}
if(defined($a[4]) and $a[4] > 10) {
$hash->{INTERVAL}=$a[4];
}
else{
$hash->{INTERVAL}=30;
}
InternalTimer(gettimeofday() + 10, "SIRD_GetStatus", $hash ,0);
return undef;
}
sub SIRD_Com ($$$$$) {
my ($hash, $Command, $mode, $value, $value1) = @_;
my $name = $hash->{name};
my $helper ;
my $response = '';
if ($mode==0) #nonspecific
{
$helper = "http://".$hash->{IP}.":80/fsapi/".$Command;
$response = GetFileFromURL($helper,10,"",1,5);
}
elsif($mode==1) # GET
{
$helper = "http://".$hash->{IP}.":80/fsapi/GET/".$Command."?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID};
$response = GetFileFromURL($helper,2,"",1,5);
}
elsif ($mode==2) # SET
{
$helper = "http://".$hash->{IP}.":80/fsapi/SET/".$Command."?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}."&value=".$value;
$response = GetFileFromURL($helper,2,"",1,5);
}
elsif ($mode==3) # GETLIST
{
$helper = "http://".$hash->{IP}.":80/fsapi/LIST_GET_NEXT/".$Command."/".$value."?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}."&maxItems=".$value1;
$response = GetFileFromURL($helper,2,"",1,5);
}
Log3 $hash, 5, "SIRD: URL : '$helper' ";
Log3 $hash, 5, "SIRD: response from device: '$response' ";
return $response;
}
sub SIRD_xml2txt($)
{
# stolen from 71_YAMAHA_AVR.pm
# sub YAMAHA_AVR_html2txt($)
my ($string) = @_;
$string =~ s/ / /g;
$string =~ s/&/&/g;
$string =~ s/(\xe4|ä)/ä/g;
$string =~ s/(\xc4|Ä)/Ä/g;
$string =~ s/(\xf6|ö)/ö/g;
$string =~ s/(\xd6|Ö)/Ö/g;
$string =~ s/(\xfc|ü)/ü/g;
$string =~ s/(\xdc|Ü)/Ü/g;
$string =~ s/(\xdf|ß)/ß/g;
$string =~ s/<.+?>//g;
$string =~ s/(^\s+|\s+$)//g;
$string =~ s/(\s+$)//g;
return $string;
}
1;
EDIT:
Vielleicht hat wer noch eine Idee das schöner besser oder richtiger zu machen. Bin da im Moment Ideenlos!
MfG
Schroediman
::)Idee:
die Namen in Klartext hinter NavActionSelItem in Klartext auswählen zu können, dass wäre eine coole Sache.
Ich muss mal wieder ein LOB aussprechen!!
Hi automatisierer,
wenn mir wer sagt wie und ob das geht, wird das auch noch gemacht. 8)
Kennst Du ein Modul wo sich die vorgegebenen Werte für die Set-Kommandos dynamisch ändern. Dann könnte man von diesem Modul lernen.
Ich hab nur nach dem rumprobieren mit dem $hash-Gedöns um das in die readings zu kriegen ca 4 -Stunden verbracht. Ich weiss gar nicht ob die Readings so gelöscht werden dürfen. Ist auf jeden Fall sehr unsauber.
Ich wollte das nur ein bischen funktionell abschliessen. Und dabei festgestellt das ich diese $hashes immer noch nicht mag.
Anscheinend war meine kurze Anleitung verständlich? 8)
Mal sehen was AKA-868 sagt, schliesslich ist das eigentlich ""sein"" Modul, ::) . Ich wollte nur Testen.
Hab ich ja getan und eine minimale klitze kleine Optimierung eingebaut. ;D Und diese ihm dann zur Verfügung gestellt. Ich hoffe natürlich, er wird diese berücksichtigen. ;D
Ne Suchfunktion ist denke ich auch noch möglich.
Benutzt eigentlich wer den FM-Radiomodus ??????
MfG
Schroediman
Hi,
Zitat von: schroediman am 04 Februar 2015, 14:42:10
wenn mir wer sagt wie und ob das geht, wird das auch noch gemacht. 8)
Kennst Du ein Modul wo sich die vorgegebenen Werte für die Set-Kommandos dynamisch ändern. Dann könnte man von diesem Modul lernen.
Werde ich mal überprüfen...
Zitat
Anscheinend war meine kurze Anleitung verständlich? 8)
jap
Zitat
Mal sehen was AKA-868 sagt, schliesslich ist das eigentlich ""sein"" Modul, ::) . Ich wollte nur Testen.
Hab ich ja getan und eine minimale klitze kleine Optimierung eingebaut. ;D Und diese ihm dann zur Verfügung gestellt. Ich hoffe natürlich, er wird diese berücksichtigen. ;D
Das mit dem "nur Testen" schwebt mir auch noch vor, dafür ists schon ganz gut geworden. ;D
Zitat
Benutzt eigentlich wer den FM-Radiomodus ??????
ich nicht...
Ich hatte eigentlich nach dem Kauf der Radios vor mich mit Perl zu beschäftigen und als "Lernprojekt" ein solches Modul zu entwickeln.
Allerdings bin ich mir nicht sicher ob ich das hin bekommen, oder mich damit nur hoffnungslos übernommen hätte.
Gruß
Ingo
Hi, hab mal weiter getestet 8)
muss jetzt ins Bett
Irgendwo hab ich mal Enums für Type und Subtype in den Listen gefunden.
Damit weiss man jetzt auch so ein bischen mehr beim Navigieren durch den Server.
playCaps und navCaps sind jetzt auch in den readings
Wenn wir die Werte deuten können wird es möglich bestimmte Ops darüber freizugeben oder zu unterdrücken.
VolumeSteps kommt auch aus dem Radio hochgelesen. scheint nur lesbar zu sein ob wir das brauchen oder wieder rausschmeissen weiss ich noch nicht.
Gute Nacht schroediman
package main;
use strict;
use warnings;
use HttpUtils;
use XML::Simple qw(:strict);
use Dumpvalue;
use Time::HiRes qw(gettimeofday sleep);
sub
SIRD_Initialize($)
{
my ($hash) = @_;
$hash->{Clients} = ":EGPM:";
$hash->{GetFn} = "SIRD_Get";
$hash->{SetFn} = "SIRD_Set";
$hash->{DefFn} = "SIRD_Define";
$hash->{AttrList} = ""
}
###################################
sub SIRD_Get($@)
{
my ($hash, @a) = @_;
my $what;
my $helper= "";
return "argument is missing" if(int(@a) != 2);
$what = $a[1];
if($what =~ /^(lastcommand|power|presence|volume|volumeStraight|mute|repeat|shuffle|input|currentArtist|currentAlbum|currentTitle|playStatus|state)$/)
{
if(defined($hash->{READINGS}{$what}))
{
return $hash->{READINGS}{$what}{VAL};
}
else
{
if ($what eq "state")
{
if ($hash->{READINGS}{"presence"}{VAL} ne "absent")
{
$helper = $hash->{READINGS}{"power"}{VAL};
}
else
{
$helper = $hash->{READINGS}{"presence"}{VAL};
}
return $helper;
}
else
{
return "reading not found: $what";
}
}
}
return "Unknown argument $what, choose one of lastcommand:noArg power:noArg presence:noArg volume:noArg volumeStraight:noArg mute:noArg repeat:noArg shuffle:noArg "
."input:noArg currentArtist:noArg currentAlbum:noArg currentTitle:noArg playStatus:noArg state:noArg ".(exists($hash->{READINGS}{output})?" output:noArg":"");
}
##SET#################################
sub SIRD_Set($@)
{
my ($hash, @a) = @_;
return "no set value specified" if(int(@a) < 2);
return "Unknown argument $a[1], choose one of on:noArg off:noArg play:noArg pause:noArg stop:noArg next:noArg previous:noArg ".
"volume:slider,0,1,100 volumeStraight:slider,0,1,20 mute:on,off,toggle shuffle:on,off repeat:on,off input:InternetRadio,MediaPlayer,DAB-Radio,FM-Radio,AUX ".
"statusRequest:noArg RemoteState:on,off clearreadings:noArg FriendlyNameRequest:noArg VersionRequest:noArg InfoTextRequest:noArg InfoNameRequest:noArg ".
"FrequencyRequest:noArg SignalStrengthRequest:noArg NavListRequest NavActionSelItem NavActionNavi NavCapsRequest DABScanRequest:noArg" if($a[1] eq "?");
my $name = shift @a;
my $setcommand = shift @a;
my $params = join(" ", @a);
my $helper = 0;
my $logLevel = GetLogLevel($name);
Log $logLevel, "SIRD set $name (". $hash->{IP}. ") $setcommand $params";
$helper=SIRD_GetPower($hash);
if (!$helper){
### catch block
SIRD_Login($hash);
};
if($setcommand eq "on")
{
eval{
SIRD_Com ($hash,"netRemote.sys.power?pin=",2,1,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetPower($hash);
}
elsif($setcommand eq "off")
{
eval{
SIRD_Com ($hash,"netRemote.sys.power?pin=",2,0,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetPower($hash);
}
elsif($setcommand eq "input")
{
if ($params eq "InternetRadio")
{
$helper = 0;
}
elsif ($params eq "MediaPlayer")
{
$helper = 1;
}
elsif ($params eq "DAB-Radio")
{
$helper = 2;
}
elsif ($params eq "FM-Radio")
{
$helper = 3;
}
elsif ($params eq "AUX")
{
$helper = 4;
}
else
{
Log 1, "SIRD Command input wrong Parameter: ".$params;
return 0;
}
eval{
SIRD_Com ($hash,"netRemote.sys.mode",2,$helper,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetInput($hash);
}
elsif($setcommand eq "volume")
{
my $helper = int($params/5);
eval{
SIRD_Com ($hash,"netRemote.sys.audio.volume",2,$helper,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
## Lautstärke zurücklesen
SIRD_GetVolume($hash);
}
elsif($setcommand eq "volumeStraight")
{
my $helper = int($params);
eval{
SIRD_Com ($hash,"netRemote.sys.audio.volume",2,$helper,0);
};
## Lautstärke zurücklesen
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetVolume($hash);
}
elsif($setcommand eq "mute")
{
if ($params eq "on")
{
$helper = 1;
}
elsif ($params eq "off")
{
$helper = 0;
}
elsif ($params eq "toggle")
{
if (ReadingsVal($name, "mute", "0") eq "on")
{
$helper = 0;
}
elsif (ReadingsVal($name, "mute", "0") eq "off")
{
$helper = 1;
}
}
else
{
Log 1, "SIRD Command Mute wrong Parameter: ".$params;
return 0;
}
eval{
SIRD_Com ($hash,"netRemote.sys.audio.mute",2,$helper,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetMute($hash);
}
elsif($setcommand eq "stop")
{
eval{
SIRD_Com ($hash,"netRemote.play.control",2,0,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "play")
{
eval{
SIRD_Com ($hash,"netRemote.play.control",2,1,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "pause")
{
eval{
SIRD_Com ($hash,"netRemote.play.control",2,2,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "next")
{
eval{
SIRD_Com ($hash,"netRemote.play.control",2,3,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "previous")
{
eval{
SIRD_Com ($hash,"netRemote.play.control",2,4,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "statusRequest" )
{
SIRD_GetStatus($hash,1);
}
elsif($setcommand eq "shuffle")
{
if ($params eq "on")
{
$helper = 1;
}
elsif ($params eq "off")
{
$helper = 0;
}
else
{
Log 1, "SIRD Command shuffle wrong Parameter: ".$params;
return 0;
}
eval{
SIRD_Com ($hash,"netRemote.play.shuffle",2,$helper,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetShuffle($hash);
}
elsif($setcommand eq "repeat")
{
if ($params eq "on")
{
$helper = 1;
}
elsif ($params eq "off")
{
$helper = 0;
}
else
{
Log 1, "SIRD Command repeat wrong Parameter: ".$params;
return 0;
}
eval{
SIRD_Com ($hash,"netRemote.play.repeat",2,$helper,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetRepeat($hash);
}
elsif($setcommand eq "NavActionSelItem")
{
eval{
SIRD_Com ($hash,"netRemote.nav.action.selectItem",2,$params,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "NavActionNavi")
{
eval{
SIRD_Com ($hash,"netRemote.nav.action.navigate",2,$params,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
}
elsif($setcommand eq "RemoteState")
{
if ($params eq "on")
{
$helper = 1;
}
elsif ($params eq "off")
{
$helper = 0;
}
else
{
Log 1, "SIRD Command RemoteState wrong Parameter: ".$params;
return 0;
}
eval{
SIRD_Com ($hash,"netRemote.nav.state",2,$helper,0);
};
if ($@){
### catch block
Log 1, "SIRD Login error: $@";
return 0;
};
SIRD_GetRemoteState($hash);
}
elsif($setcommand eq "FriendlyNameRequest" )
{
SIRD_GetFriendlyName($hash);
}
elsif($setcommand eq "VersionRequest")
{
SIRD_GetVersion($hash);
}
elsif($setcommand eq "InfoTextRequest")
{
SIRD_GetInfoText($hash);
}
elsif($setcommand eq "InfoNameRequest")
{
SIRD_GetInfoName($hash);
}
elsif($setcommand eq "FrequencyRequest")
{
SIRD_GetFrequency($hash);
}
elsif($setcommand eq "SignalStrengthRequest")
{
SIRD_GetSignalStrength($hash);
}
elsif($setcommand eq "NavCapsRequest")
{
SIRD_GetNavCaps($hash);
}
elsif($setcommand eq "NavListRequest")
{
SIRD_GetNavList($hash,$params,$params+20);
}
elsif($setcommand eq "DABScanRequest")
{
SIRD_GetDABScan($hash);
}
elsif($setcommand eq "clearreadings")
{
delete $hash->{READINGS};
}
else
{
return "unknown argument $setcommand, choose one of on off play pause stop next previous ".
"volume volumeStraight mute shuffle repeat input ".
"statusRequest RemoteState clearreadings FriendlyNameRequest VersionRequest InfoTextRequest: InfoNameRequest ".
"FrequencyRequest SignalStrengthRequest NavListRequest NavActionSelItem NavActionNavi DABScanRequest";
}
#SIRD_Logoff($hash);
$hash->{CHANGED}[0] = $setcommand;
$hash->{READINGS}{lastcommand}{TIME} = TimeNow();
$hash->{READINGS}{lastcommand}{VAL} = $setcommand." ".$params;
return undef;
}
###############################
sub SIRD_Login($) {
my ($hash) = @_;
my $ref;
Log $hash->{logLevel},"SIRD try to Login @".$hash->{IP};
my $response = SIRD_Com($hash,"CREATE_SESSION?pin=".$hash->{PASSWORD},0,0,0);
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
if ($ref->{status} eq 'FS_OK')
{
$hash->{SESSIONID} = $ref->{sessionId};
Log $hash->{logLevel},"SIRD Login successful!";
};
};
return 1;
}
###############################
sub SIRD_GetStatus($$) {
my ($hash, $local) = @_;
my $name = $hash->{NAME};
my $helper;
$hash->{logLevel} = GetLogLevel($name);
#if $local is set to 1 just fetch informations from device without interrupting InternalTimer
$local = 0 unless(defined($local));
InternalTimer(gettimeofday()+$hash->{INTERVAL}, "SIRD_GetStatus", $hash,0) unless($local == 1);
return "" if(!defined($hash->{IP}) or !defined($hash->{INTERVAL}));
# Prüfen ob SID gültig
$helper = SIRD_GetPower($hash);
if (!$helper ){
### catch block
SIRD_Login($hash);
};
SIRD_GetPower($hash);
if ($hash->{STATE} eq "on")
{
SIRD_GetVolume($hash);
SIRD_GetMute($hash);
SIRD_GetInput($hash);
SIRD_GetInfoName($hash);
SIRD_GetInfoText($hash);
SIRD_GetRemoteState($hash);
SIRD_GetPlayStatus($hash);
SIRD_GetShuffle($hash);
SIRD_GetRepeat($hash);
SIRD_GetInfoAlbum($hash);
SIRD_GetInfoArtist($hash);
SIRD_GetPlayRate($hash);
SIRD_GetPlayPos($hash);
SIRD_GetInfoDur($hash);
SIRD_GetInfoGraphicURI($hash);
SIRD_GetSignalStrength($hash);
SIRD_GetNavCaps($hash);
SIRD_GetPlayCaps($hash);
SIRD_GetVolumeSteps($hash);
}
else
{
#delete $hash->{READINGS};
}
return undef;
}
###############################
sub SIRD_GetPower($) {
# cachable
# notifying
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.power",1,0,0);
my $ref;
my $helper = 'off';
my $presence = 'absent';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ($ref->{value}->{u8} == 1)
{
$helper = 'on';
$presence = 'present';
}
else
{
$helper = 'off';
$presence = 'present';
}
}
}
else
{
$helper ='off';
$presence = 'absent';
$response =0;
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "presence", $presence , 1);
readingsSingleUpdate($hash, "power", $helper , 1);
readingsEndUpdate($hash, 0);
if ($presence eq "absent")
{
$helper = $presence;
}
$hash->{STATE} = $helper;
return $response;
}
###############################
sub SIRD_GetVolume($) {
# cachable
# notifying
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.audio.volume",1,0,0);
my $ref;
## Überprüfen ob Abfrage in Ordnung war
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
# volumeStraight 0 ... 20
readingsSingleUpdate($hash, "volumeStraight", $ref->{value}->{u8}, 1);
# volume 0 ... 100
readingsSingleUpdate($hash, "volume", 5*$ref->{value}->{u8}, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetVolumeSteps($) {
# cachable
# notifying
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.caps.volumeSteps",1,0,0);
my $ref;
## Überprüfen ob Abfrage in Ordnung war
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
# volumeStraight 0 ... 20
readingsSingleUpdate($hash, "volumeSteps", $ref->{value}->{u8}, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetMute($) {
# cachable
# notifying
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.audio.mute",1,0,0);
my $ref ;
my $helper = 'off';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ($ref->{value}->{u8} == 1)
{
$helper = "on";
}
else
{
$helper = "off";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "mute", $helper , 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetShuffle($) {
# notifying
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.shuffle",1,0,0);
my $ref ;
my $helper = 'off';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ($ref->{value}->{u8} == 1)
{
$helper = 'on';
}
else
{
$helper = 'off';
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "shuffle", $helper , 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetRepeat($) {
# notifying
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.repeat",1,0,0);
my $ref ;
my $helper = 'off';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ($ref->{value}->{u8} == 1)
{
$helper = 'on';
}
else
{
$helper = 'off';
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "repeat", $helper , 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetFriendlyName($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.info.friendlyName",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "friendlyName", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetVersion($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.info.version",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "version", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetInfoName($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.info.name",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "currentTitle", SIRD_xml2txt($helper) , 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetInfoText($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.info.text",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "InfoText", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetInfoAlbum($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.info.album",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "currentAlbum", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetInfoArtist($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.info.artist",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "currentArtist", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
##############################
sub SIRD_GetInfoGraphicURI($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.info.graphicUri",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ( !ref $ref->{value}->{c8_array}) { $helper = $ref->{value}->{c8_array};};
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "graphicUri", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
##############################
sub SIRD_GetPlayPos($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.position",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
#Zeit von 1000stel Sekunden in Minuten umwandeln xx:yy
$helper = " ".int( $ref->{value}->{u32} / 60000).":".sprintf("%02d", (int( $ref->{value}->{u32} / 1000)-(int( $ref->{value}->{u32} / 60000)*60)));
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "currentPosition", SIRD_xml2txt($helper), 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
##############################
sub SIRD_GetInfoDur($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.info.duration",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
#Zeit von 1000stel Sekunden in Minuten umwandeln xx:yy
$helper = " ".int( $ref->{value}->{u32} / 60000).":".sprintf("%02d", (int( $ref->{value}->{u32} / 1000)-(int( $ref->{value}->{u32} / 60000)*60)));
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "currentDuration", $helper, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetPlayRate($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.rate",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "playRate", $ref->{value}->{s8}, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetPlayCaps($){
my ($hash) = @_;
my $helper = "unknown";
my $response = SIRD_Com ($hash,"netRemote.play.caps",1,$0,0);
my $ref ;
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "playCaps", $ref->{value}->{u32}, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetFrequency($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.frequency",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "Frequency", $ref->{value}->{u32}, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetSignalStrength($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.play.signalStrength",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "Signalstrength", $ref->{value}->{u8}, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetRemoteState($) {
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.nav.state",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ($ref->{value}->{u8} == 1)
{
$helper = "on";
}
else
{
$helper = "off";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "RemoteState", $helper , 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetInput($) {
# cachable
# notifying
my ($hash) = @_;
my $response = SIRD_Com($hash,"netRemote.sys.mode",1,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
if (int($ref->{value}->{u32}) == 0)
{
$helper = "InternetRadio";
}
elsif (int($ref->{value}->{u32}) == 1)
{
$helper = "MediaPlayer";
}
elsif (int($ref->{value}->{u32}) == 2)
{
$helper = "DAB-Radio";
}
elsif (int($ref->{value}->{u32}) == 3)
{
$helper = "FM-Radio";
}
elsif (int($ref->{value}->{u32}) == 4)
{
$helper = "AUX";
}
else
{
$helper = "Unknown";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "input", $helper, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetNotify($){
my ($hash) = @_;
my $response = SIRD_Com ($hash,"GET_NOTIFIES?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID},0,0,0);
my $ref ;
my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if (exists $ref->{"netRemote.sys.power"})
{
if ($ref->{"netRemote.sys.power"}->{value}->{u8} == 1)
{
$helper = "on";
}
else
{
$helper = "off";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "power", $helper , 1);
readingsEndUpdate($hash, 0);
$hash->{STATE} = $helper;
}
if (exists $ref->{"netRemote.sys.audio.volume"})
{
readingsBeginUpdate($hash);
# volumeStraight 0 ... 20
readingsSingleUpdate($hash, "volumeStraigth", $ref->{"netRemote.sys.audio.volume"}->{value}->{u8}, 1);
# volume 0 ... 100
readingsSingleUpdate($hash, "volume", 5*$ref->{"netRemote.sys.audio.volume"}->{value}->{u8}, 1);
readingsEndUpdate($hash, 0);
}
if (exists $ref->{"netRemote.sys.audio.mute"})
{
if ($ref->{"netRemote.sys.audio.mute"}->{value}->{u8} == 1)
{
$helper = "on";
}
else
{
$helper = "off";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "mute", $helper , 1);
readingsEndUpdate($hash, 0);
}
if (exists $ref->{"netRemote.play.repeat"})
{
if ($ref->{"netRemote.play.repeat"}->{value}->{u8} == 1)
{
$helper = "on";
}
else
{
$helper = "off";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "repeat", $helper , 1);
readingsEndUpdate($hash, 0);
}
if (exists $ref->{"netRemote.play.shuffle"})
{
if ($ref->{"netRemote.play.shuffle"}->{value}->{u8} == 1)
{
$helper = "on";
}
else
{
$helper = "off";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "shuffle", $helper , 1);
readingsEndUpdate($hash, 0);
}
if (exists $ref->{"netRemote.sys.mode"})
{
readingsBeginUpdate($hash);
if (int($ref->{"netRemote.sys.mode"}->{value}->{u32}) == 0)
{
$helper = "InternetRadio";
}
elsif (int($ref->{"netRemote.sys.mode"}->{value}->{u32}) == 1)
{
$helper = "MediaPlayer";
}
elsif (int($ref->{"netRemote.sys.mode"}->{value}->{u32}) == 2)
{
$helper = "DAB-Radio" ;
}
elsif (int($ref->{"netRemote.sys.mode"}->{value}->{u32}) == 3)
{
$helper = "FM-Radio";
}
elsif (int($ref->{"netRemote.sys.mode"}->{value}->{u32}) == 4)
{
$helper = "AUX";
}
else
{
$helper = "Unknown";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "input", $helper , 1);
readingsEndUpdate($hash, 0);
}
}
#netRemote.nav.status
#netRemote.play.status
#netRemote.nav.action.dabScan
#to be done
}
return undef;
}
###############################
sub SIRD_GetPlayStatus($){
# cachable
# notifying
my ($hash) = @_;
my $helper = "unknown";
my $response = SIRD_Com ($hash,"netRemote.play.status",1,0,0);
my $ref ;
# my $helper = ' ';
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if (int($ref->{value}->{u8}) == 0)
{
$helper = "idle";
}
elsif (int($ref->{value}->{u8}) == 1)
{
$helper = "buffering";
}
elsif (int($ref->{value}->{u8}) == 2)
{
$helper = "playing";
}
elsif (int($ref->{value}->{u8}) == 3)
{
$helper = "paused";
}
elsif (int($ref->{value}->{u8}) == 4)
{
$helper = "rebuffering";
}
elsif (int($ref->{value}->{u8}) == 5)
{
$helper = "error";
}
else
{
$helper = "unknown";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "playStatus", $helper, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetNavCaps($){
my ($hash) = @_;
my $helper = "unknown";
my $response = SIRD_Com ($hash,"netRemote.nav.caps",1,$0,0);
my $ref ;
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "navCaps", $ref->{value}->{u32}, 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_GetNavList($$$){
my ($hash,$start,$end) = @_;
my $helper = "unknown";
my $x;
my $response = SIRD_Com ($hash,"netRemote.nav.list",3,$start,$end);
my $ref ;
my $incer=0;
my $dumper = new Dumpvalue;
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
delete $hash->{READINGS};
#$dumper->dumpValue(\\$ref->{'item'});
if ( ref($ref->{'item'}) eq "ARRAY"){
for my $item (@{$ref->{'item'}}) {
$incer = $incer + 1;
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "NavList_".sprintf("%02d",$incer)."_key", $item->{key}, 1);
readingsSingleUpdate($hash, "NavList_".sprintf("%02d",$incer)."_name", @{$item->{'field'}}[0]->{c8_array}, 1);
$x=@{$item->{'field'}}[1]->{u8};
if ( $x == 0) {
$helper = "Directory"; }
elsif ( $x == 1) {
$helper = "PlayableItem"; }
elsif ( $x == 2) {
$helper = "SearchDirectory"; }
elsif ( $x == 3) {
$helper = "Unknown"; }
elsif ( $x == 4) {
$helper = "FetchErrItem"; }
else {
$helper = "Unknown"; }
readingsSingleUpdate($hash, "NavList_".sprintf("%02d",$incer)."_type", $helper, 1);
$x=@{$item->{'field'}}[2]->{u8};
if ( $x == 0) {
$helper = "None"; }
elsif ( $x == 1) {
$helper = "Station"; }
elsif ( $x == 2) {
$helper = "Podcast"; }
elsif ( $x == 3) {
$helper = "Track"; }
else {
$helper = "Unknown"; }
readingsSingleUpdate($hash, "NavList_".sprintf("%02d",$incer)."_subtype", $helper, 1);
readingsEndUpdate($hash, 0);
# $dumper->dumpValue(\\$item);
}
}
}
}
return undef;
}
###############################
sub SIRD_GetDABScan($){
#notifying
my ($hash) = @_;
my $helper = "unknown";
my $response = SIRD_Com ($hash,"netRemote.nav.action.dabScan",1,0,0);
my $ref ;
if ($response =~ /fsapiResponse/)
{
$ref = XMLin($response, KeyAttr => { }, ForceArray => [ ]);
## Überprüfen ob Abfrage in Ordnung war
if ($ref->{status} eq 'FS_OK')
{
if ($ref->{value}->{u8} == 0)
{
$helper = "idle";
}
else
{
$helper = "scan";
}
readingsBeginUpdate($hash);
readingsSingleUpdate($hash, "DABScan", $helper , 1);
readingsEndUpdate($hash, 0);
}
}
return undef;
}
###############################
sub SIRD_Logoff($) {
my ($hash) = @_;
#$quiet, $url, $timeout, $data, $noshutdown, $loglevel
#CustomGetFileFromURL($hash, "http://".$hash->{IP}.":80/login.html", 10, "", 0, $hash->{logLevel});
return 1;
}
###############################
sub SIRD_Define($$) {
my ($hash, $def) = @_;
my @a = split("[ \t][ \t]*", $def);
my $u = "wrong syntax: define <name> SIRD IP Password [interval]";
return $u if(int(@a) < 3);
$hash->{IP} = $a[2];
if(int(@a) == 5 || int(@a) == 4)
{
$hash->{PASSWORD} = $a[3];
}
else
{
$hash->{PASSWORD} = "";
}
$hash->{logLevel} = 3 ;
my $result = SIRD_Login($hash);
if($result == 1)
{
$hash->{STATE} = "initialized";
}
if(defined($a[4]) and $a[4] > 10) {
$hash->{INTERVAL}=$a[4];
}
else{
$hash->{INTERVAL}=30;
}
InternalTimer(gettimeofday() + 10, "SIRD_GetStatus", $hash ,0);
return undef;
}
###############################
sub SIRD_Undefine($$){
my($hash, $name) = @_;
# Stop the internal GetStatus-Loop and exist
RemoveInternalTimer($hash);
return undef;
}
###############################
sub SIRD_Com ($$$$$) {
my ($hash, $Command, $mode, $value, $value1) = @_;
my $name = $hash->{name};
my $helper ;
my $response = '';
if ($mode==0) #nonspecific
{
$helper = "http://".$hash->{IP}.":80/fsapi/".$Command;
$response = GetFileFromURL($helper,10,"",1,5);
}
elsif($mode==1) # GET
{
$helper = "http://".$hash->{IP}.":80/fsapi/GET/".$Command."?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID};
$response = GetFileFromURL($helper,2,"",1,5);
}
elsif ($mode==2) # SET
{
$helper = "http://".$hash->{IP}.":80/fsapi/SET/".$Command."?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}."&value=".$value;
$response = GetFileFromURL($helper,2,"",1,5);
}
elsif ($mode==3) # GETLIST
{
$helper = "http://".$hash->{IP}.":80/fsapi/LIST_GET_NEXT/".$Command."/".$value."?pin=".$hash->{PASSWORD}."&sid=".$hash->{SESSIONID}."&maxItems=".$value1;
$response = GetFileFromURL($helper,2,"",1,5);
}
Log3 $hash, 5, "SIRD: URL : '$helper' ";
Log3 $hash, 5, "SIRD: response from device: '$response' ";
return $response;
}
###############################
sub SIRD_xml2txt($)
{
# stolen from 71_YAMAHA_AVR.pm
# sub YAMAHA_AVR_html2txt($)
my ($string) = @_;
$string =~ s/ / /g;
$string =~ s/&/&/g;
$string =~ s/(\xe4|ä)/ä/g;
$string =~ s/(\xc4|Ä)/Ä/g;
$string =~ s/(\xf6|ö)/ö/g;
$string =~ s/(\xd6|Ö)/Ö/g;
$string =~ s/(\xfc|ü)/ü/g;
$string =~ s/(\xdc|Ü)/Ü/g;
$string =~ s/(\xdf|ß)/ß/g;
$string =~ s/<.+?>//g;
$string =~ s/(^\s+|\s+$)//g;
$string =~ s/(\s+$)//g;
return $string;
}
1;
Moin,
hab den Wald vor lauter Bäumen nicht gesehen... Beim ENIGMA2 Modul kann man die Kanäle per Liste auswählen, da kannst du also abgucken.
Gruß
Ingo
Hallo Schroedimann,
also das ist dein Modul jetzt.... ich glaub ich muss nen anderes machen wo ich was lernen kann... Dein Tempo ist einfach zu hoch. :-)
Irgendwie müsste ich dann einfach mal ruhe haben und nicht am Laptop aufm Sofa...wo der Tag dem ende zu geht.
Mein Job spannt mich derzeit auch mit extrem viel neuem Zeug ein. Da ist mein Kopf merkwürdigerweise am Limit.
Ich schaffs derzeit nicht mal meine Bugs die sonst noch in meiner cfg sind zu beseitigen.
Super Arbeit auf jeden Fall ich hab schon eine Menge gelernt bei der Sache. Wie du weißt ist das mein Einsteiger Projekt gewesen und hab bei Null angefangen.
Ich danke in jedem Fall Dir dem Automatisierer Markus vom yamaha modul und Ericl und für eure Mühen!
Testen muss ich auch noch.
Grüße!
Andre
Hi AK-868,
ich wollte Dich eigentlich nicht so überrumpeln, sorry dafür.
Ich muss auch erst wieder auf Arbeit gas geben, von daher werd ich noch einige Zeit brauchen um das Modul in Richtung fertig zu kriegen.
Ich bin schon auf deine Erfahrungen mit dem NEUEN Lidl-Radio interessiert. Was ist denn da überhaupt anders dran ausser den beleuchteten Drehknöpfen?
Von daher wird das Tempo jetzt auch drastisch nachlassen.
Wenn Du dich weiter beteiligen willst oder Fragen hast gerne.
Sorry dafür nocheinmal.
@automatisierer,
ja da hast Du recht, aus dem Enigma-modul scheinen wir noch einiges lernen zu können.
MfG
Sebastian
Zitat von: AK-868 am 12 Januar 2015, 17:06:17
Wenn her Bloch das liest... Wie bekommst du mit wie der status vom Yamaha ist wenn er aus gemacht wird. IR-Fernbedienung?
Ständig auslesen?
Ständig auslesen aller X Sekunden. Der Yamaha bleibt ansprechbar, auch wenn er aus ist (standby) sofern in den Einstellungen des Receivers "Network Standby" aktiviert ist. Somit antwortet der Yamaha mir und sagt, dass er sich im standby befindet.
Hallo,
auf der Fritzbox, läuft das Teil nicht. Kann dein Modul nicht Testen.
apt-get läuft nicht auf der Box.
Muss also ein RPI her ;)
grüße
Zitat
Hallo,
auf der Fritzbox, läuft das Teil nicht. Kann dein Modul nicht Testen.
apt-get läuft nicht auf der Box.
Muss also ein RPI her ;)
grüße
Generell ist es schon eine gute Idee seinem Haus einen eigenen Server zu gönnen. Es kommen gerde Interessante Nachfolger für RPI und BananaPI auf den Markt.
allerdings, was fehlt Dir genau auf deiner Fritzbox-instllation?
evtl hilft das hier: http://www.fhemwiki.de/wiki/Unicode_FritzBox
oder ist es ds xML::Simple ???
MfG
Schroediman 8)
Hi,
ich hab mir gerade den neuen quad core pi gekauft.. Mal sehen was der kann ;)
Grüße
Hi,
bevor das hier einschläft wollte ich noch mal nen neue Version anhängen.
Also:
1. Readings werden nur aktulisiert wenn sie sich vom vorherigen Wert unterscheiden.
2. ich hab das mit den dynamischen Listen für die Navigationselemente hingekriegt ist aber noch nicht ausgereift. Man muss dem ganzen zumindest am Anfang noch mit navListRequest -1 und presetListRequest mal unter die Arme greifen. dann findet man in navList und presetList auch Auswahlmöglichkeiten soweit möglich.
Bitte mal Testen und Kommentare abgeben
Gute Nacht sagt Schroediman
Moin,
probiere es morgen mal.
Was noch sehr störend ist, sind die Probleme in Verbindung mit dem ENIGMA2 Modul...
Gruß
Ingo
Hi,
ich hab das Modul nun endlich eingespielt... Die Umstellung auf den neuen Pi ging dann doch nicht so ganz flott....
Aber das Modul ist schon mal ohne Fehler im "System".
Sieht bisher gut aus...
Ich bin gerade dabei das neue Radio einzubinden. Feedback gibt es dann später.
Hi,
also wenn das Radio "Offline" ist dann hängt sich die ganze Zeit das FHEM weg. Vermutlich immer dann, wenn er versucht den status des Radios zu erfahren.
Werde das Modul erstmal rausnehmen müssen wieder... Sonst flippt die Frau aus ;)
Hi,
anscheinend hatte das Modul ein UTF8 Problem. Fhem mag nur UTF8 als Zeichensatz bei anderen Formaten kann es sein, dass es sich weg hängt.
Probiert mal den Anhang aus.
Es sollte sich jetzt nicht mehr aufhängen wenn das Radio aus/bzw nicht mehr im Netz ist.
P.S. in den Internetoptionen des Radios kann man auch einstellen, das das Netzwerk auch aktiv ist wenn das Radio aus ist. nennt sich "Netzwerkverbindung im Standby" oder so.
8)
Hi schroedimann,
ich weiß das es die Funktion gibt. ;)
Die Radios hängen an einem Aktor und können dann im z.B. Schlafzimmer abgeschaltet werden.
Auch wenn das Display abdunkelt. Ganz dunkel wird es nie. Das stört beim schlafen. 8)
Ich werd deine Version Testen.
Ich bin gestern Abend an der ollen mp3 klingel gescheitert. Vermutlich mag die nicht jede microsd karte.
Danke für den Fix ;)
Grüße
Hi,
das Modul läuft jetzt ohne Abstürze. Nur hängt es jetzt im Prüfintervall.... Vllt. müsste man das auslagern.
Ich muss mir das nochmal in ruhe anschauen. Den Code verstehe ich so nahezu gar nicht mehr ;)
Mächtig viel geworden.
Grüße
Hi AK-868
ich hab da eine Frage, Wenn das radio nicht im Netz ist also -stromlos ist soll das Modul auch versuchen es zu finden, also grundsätzlich sich einzuloggen und zwar im Rhytmus des Intervalls.
Wenn das Radio dann gefunden wurde sollte er aus der Schleife raus gehen und die aktuellen Readings anzeigen. Tut es das oder findet er das Radio dann gar nicht mehr ???
Hi, um den Fehler genauer zu definieren.
Das Radio ist stromlos somit auch nicht erreichbar und kann auch nicht antworten.
Probleme: Das Timeout bei zwei Radios sind dann 2 sec. wo FHEM steht.
Wenn die Radios online sind... werden die Readings aktualisiert. Alles gut fast.
Warum auch immer steigt der HMlan nach gewisser Zeit aus. Auch wenn die Radios erreichbar sind.
Was ist mit Nonblocking?
Grüße
Hi Aka-868,
also Dein eigentliches Problem scheint zu sein, das der HMlan nicht nach Zeit x nicht mehr so richtig will. Schon mal nach HMLAN disconnect gesucht? Der scheint bei einigen etwas zu zucken, kann natürlich an dem Modul liegen oder nicht ich kann es nicht sagen. Ich habe nur 1 Radio und benutze für das Homematic-Zeugs nen COC (also CC1101 direkt auf den rpi gesteck).
Du könntest evtl mit dem timeout in der Zeile 1845 dieses Moduls spielen, vielleicht erleichtert das deine Probleme.
Ein Umbau auf non-blocking wird je nach meiner Zeit auf jeden Fall bis nach Ostern dauern. Ob dann deine Probleme an dieser Stelle weck sind kann ich Dir nicht versprechen.
vielleicht ist es auch beides.
Vielleicht hat automatisierer etwas ähnliches beobachtet ?
Mfg
schroediman
Moin,
zu HMLan und SIRD kann ich nicht viel sagen, hab SIRD nur auf einem Test System laufen, da es ja mit ENIGMA2, bzw. meinem Sat-Reciever hackt.
Meine HMLAN's disconnecten sich auch ab und an mal. Einer hängt sich auch manchmal komplett auf.
Zum Modul: es läuft alleine auf einem Test-System (ohne HMLAN's oder andere Modue), aber da läuft es Einwand frei mit vier Radios.
Verbesserungsvorschläge:
Die Volume Verstellung, sollte auf und ab runden, also bei 16 und 17 auf 15 springen und bei 18 und 19 auf 20. Aktuell springt sie immer auf den nächst kleineren also ab <= 19 auf 15.
Man kann die Radios nicht mehr mit den HandyAPPs steuern, weil fhem dauern eine neue SESSION auf macht und so die APP Verbindung killt.
Gruß
Ingo
Hi Ingo,
schaue mal ab Zeile 2193:
da steht :
elsif($setcommand eq "volume")
{
my $helper = int($params/5);
SIRD_Volume ($hash,$helper);
}
ändere das in
elsif($setcommand eq "volume")
{
my $helper = int((2.5+$params)/5);
SIRD_Volume ($hash,$helper);
}
und schon sollte das ganze mit dem Auf- und Abrunden klappen.
MfG
Schroediman
... tut es... hatt nur erst die Klammern übersehen...
Hallo zusammen,
ich habe den Thread über Google gefunden, da ich mich schon länger mit der FSAPI beschäftige.
Es wäre super, wenn der Code bei github wäre, da es dort schon 3 Projekte gibt, die sich mit der API beschäftigen:
PHP: https://github.com/flammy/fsapi (https://github.com/flammy/fsapi)
Pyhton: https://github.com/tiwilliam/fsapi (https://github.com/tiwilliam/fsapi)
.NET: https://github.com/z1c0/FsApi/tree/master/FsApi (https://github.com/z1c0/FsApi/tree/master/FsApi)
So könnte man sich beim jeweiligen Nachbarprojekt einfach auf dem Laufenden halten.
Gruß
Flam
Edit: es gibt 3 Projekte zu der API.
Die Technik von Frontier Silicon ist auch beim
Technisat DigitRadio 400
https://www.technisat.com/de_DE/DigitRadio-400/352-8457-9588/
Technisat DigitRadio 450
https://www.technisat.com/de_DE/DigitRadio-450/352-8457-9589/
Technisat DigitRadio 500
https://www.technisat.com/de_DE/DigitRadio-500/352-8457-8460/
verbaut.
Werde das Modul mal dort testen.
Mal eben ne Zwischenfrage:
Ich hab das Modul eben zum Test versucht mit meinem MD 86062 Radio zum laufen zu bringen.
Hat leider nicht funktioniert.
Gehe ich recht in der Anahme das dieses Modul nicht mit meinem Aldi MD 86062 zusammen arbeitet ?
.....
Ich kenne dieses Radio nicht, aber wenn man es mit der Medion-App steuern kann, kann man es mit ziemlicher sicherheit auch mit dem sird Modul steuern
Nun habe ich mir auch bei Aldi so ein Teil zugelegt. Nachdem ich es Hatte natürlich wieder begeistert das es auch dafür ein FHEM Modul gibt.
Ein Problem habe ich jedoch.
Die Android App verliert laufend die Verbindung. Sicherlich wenn FHEM ein Login macht.
Auszug aus FHEM Log:
2015.06.13 18:04:53 2: SIRD try to Login @192.168.100.30
2015.06.13 18:04:53 2: SIRD Login successful!
2015.06.13 18:05:04 2: SIRD try to Login @192.168.100.30
2015.06.13 18:05:04 2: SIRD Login successful!
2015.06.13 18:05:23 2: SIRD try to Login @192.168.100.30
2015.06.13 18:05:23 2: SIRD Login successful!
Warum erfolgt das Login so oft ? Kann man das Intervall setzen?
Vielen Dank nochmal generell für das Modul und auch für eine Unterstützung.
Noch eine Ergänzung:
Die Android App verliert nach kurzer Zeit die Verbindung und kann sie dann auch meistens nicht mehr aufbauen.
(auch auf verschiedenen Android Geräten)
Ja nun könnte man sagen wenn die Steuerung in FHEM funktioniert reicht das...
...aber so schlecht ist die App auch nicht ;)
Hi!
Auch bei mir permanente Loginversuche, obwohl ich das Modul Device aus der fhem.cfg auskommentiert habe!
Edit: Schreibfehler von mir! Ich habe natürlich nicht das Modul, sondern das Device in FHEM auskommentiert.
das Modul ist ja bei weitem noch nicht fertig gestellt. Ich habe leider nicht genug Perl Erfahrung und im Moment auch nicht genug Zeit um mich da rein zu hängen.
Da FHEM ständig die Readings aktualisiert, erfolgt natürlich auch ein Login...
@FranzB94: wenn du das SIRD-Device (also das Radio) löscht, wird da auch kein Login mehr erfolgen. Das Modul in der fhem.cfg aus zu kommentieren ist ja nicht möglich, nur das Device kann auskommentiert werden und dann wird das SIRD Modul auch nicht mehr von FHEM geladen...
Hallo,
ersteinmal vielen Dank für das Modul.
Ich war auf der Suche nach etwas relativ preisgünstigen für das Bad, was ich mit den Homematic bzw. mit den FS20 Wandsendern steuern kann und bin hier mit dem Modul fündig geworden.
Habe mir entsprechend das Medion Internetradio 87267 zu gelegt und muss sagen, die Grundfunktionen funktionieren auf Anhieb.
Jetzt habe ich aber doch noch ein zwei Problemchen.
Das umschalten der Sender funktioniert leider nicht (channelUp und channelDown). Stell ich mich zu blöd an ? Welche Channel würden gewechselt werden, die Favoriten ?
Gibt es eine Möglichkeit bei den Attributen die "disable" Funktion mit ein zu fügen ? Somit könnte man das kurz deaktivieren, wenn man doch mal mit der App unterwegs ist.
Das mit den Auskommentieren ist eine Lösung, aber eben doch etwas unkomfortabel
Gruß
Frank
Hallo zusammen,
ich habe hier:
https://github.com/flammy/fsapi/blob/master/FSAPI.md (https://github.com/flammy/fsapi/blob/master/FSAPI.md)
eine API-Dokumentation gestartet.
Es wäre schön, wenn ihr euch daran beteiligen würdet.
Gruß
Flam
Sehr gut, dass ich hier mal wieder reingeschaut habe :-). Danke für das Modul. Läuft für meine Ansprüche mit meiner SIRD 14B1 und ich kann eine FS20-ST einer anderen Verwendung zuführen. Beim Betreten der Küche morgens werden per PIRI verschiedene Aktionen durchgeführt, für das Radio ab jetzt
set IRadio on
Den Standby-Verbrauch aus dem Datenblatt glaube ich jetzt einfach mal...
Zitat von: Hilde25 am 22 August 2015, 10:44:00
Das umschalten der Sender funktioniert leider nicht (channelUp und channelDown). Stell ich mich zu blöd an ? Welche Channel würden gewechselt werden, die Favoriten ?
Meine Beobachtung für Silvercrest SRID 14B1 (aber die 87267 ist ja ohne DAB+):
- für InternetRadio ist Channel up/down ohne Funktion
- für DAB+ greift Channel up/down auf die generische Senderliste zu
Kurze Rückmeldung: läuft seit ca. 2 Wochen für meine Ansprüche sehr gut. Das Radio kann auch über andFHEM (Android-App) ein- und ausgeschaltet werden. Bei uns läuft eh nur unser favorisierter Sender.
Einzig: ich habe eine Structure, die alle Verbraucher per notify über eine FS20S8-3 ausschaltet, leider nicht das IRadio. Ich werde mir das notify mal anschauen, oder damit leben...
Zitat von: berlineraxel am 13 Juni 2015, 18:20:33
Auszug aus FHEM Log:
2015.06.13 18:04:53 2: SIRD try to Login @192.168.100.30
2015.06.13 18:04:53 2: SIRD Login successful!
2015.06.13 18:05:04 2: SIRD try to Login @192.168.100.30
2015.06.13 18:05:04 2: SIRD Login successful!
2015.06.13 18:05:23 2: SIRD try to Login @192.168.100.30
2015.06.13 18:05:23 2: SIRD Login successful!
Warum erfolgt das Login so oft ? Kann man das Intervall setzen?
Mit
attr IRadio verbose 0
werden diese Meldungen nicht in das globale Logfile geschrieben.
Stefan
Hallo,
ich wollte nur mal sagen wie klasse dieses Modul ist. Ich benutze es für mein Hama DIR300 Internetradio. Works like a charm! Auch mit Spotify Connect (input MediaPlayer).
Danke dafür :D
Hallo Zusammen,
Mein Hama Internetradio "IR110" sollte m.w. auch über das protokol laufen.
Direkt in FHEM ist es noch nicht eingecheckt oder? Zumindest kann ich das modul in meinem FHEM nicht finden obwohl ich am aktuellen stand bin.
Gibt es irgendwo eine Doku zu dem Modul? und wo finde ich die akutelle Version des Moduls? :)
Viele Grüße
Stefan
das modul ist im ersten post downloadbar.
da es aber nicht zu 100% läuft und sich nicht mehr weiter entwickelt wird ist es nicht in 'fhem eingecheckt'
das projekt schläft ja schon eine ganze weile. mit der letzten version hatte ich soweit ich mich erinnern kann, Probleme im zusammenhang mit dem Enigma2 Modul, daher verwende ich eine ältere Version. Wenn Interesse daran besteht kann ich die gerne zusenden...
Gruß Ingo
Ich habe das Modul jetzt bei meinem Hama IR110 ausprobiert.
Es funktioniert soweit auch ganz gut.
Jedoch wird bei mir das Icon nicht sofort aktualisiert.
z.B. Im normalen FHEM webinterface habe ich on & off.
Betätige ich einen der Buttons bleibt das Icon unverändert. Erst ca. 30 Sekunden später wird das Icon aktualisiert.
Jedoch wird der Status im Device sofort richtig gesetzt.
Wenn ich F5 im Browser drücke wird das Icon aktualisiert....
Im normalfall würde mich das jetzt nicht so stören, dass ich F5 drücken muss.
Aber für den Floorplan & mein Wandtablet wäre das schon lästig. :(.
Bei FS20 Devices habe ich dieses Verhalten nicht....
Kann mir jemand sagen wieso das Icon nicht aktualisiert wird?
Wäre über Tipps sehr dankbar!
Viele Grüße
Stefan
Das Verhalten kann ich bestätigen.
Da ich das Radio nicht die meiste Zeit des Tages im Standby haben möchte, habe ich wieder auf eine FS20-ST umgestellt.
Vielen Dank erstmal für die Mühe die in die Entwicklung des Moduls geflossen ist!
Ich konnte bereits meine beiden Radios vom Typ P85025 (MD 86955) sowie P85017 (MD 86869) mit dem Modul ansteuern. :)
Zur Zeit bin ich noch ganz neu im Thema FHEM und grade dabei, meine Geräte sukzessiv in die Konfiguration aufzunehmen.
Nun kam es wie es kommen musste, mein FHEM schmierte komplett ab und auch das Webinterface war nicht mehr zu erreichen.
Daraufhin habe ich die fhem.cfg Stück für Stück auf ein Minimalbeispiel zurück gerüstet, um dem Fehler auf die Spur zu kommen. Auf meinem Weg dorthin sah es so aus, als läge an einem Verbindungsproblem (""CallBlockingFn: Can't connect to localhost:: IO::Socket::INET: connect""). Mittlerweile konnte ich das Minimalbeispiel aber auf die beiden Module SIRD und ONKYO_AVR reduzieren, die auf der Konsole folgenden Fehler ausgeben:
No value specified for 'KeyAttr' option in call to XMLin() at ./FHEM/70_ONKYO_AV
R.pm line 118.
Sobald ich eine der beiden Zeilen auskommentiere, läuft mein FHEM wieder:
define AV ONKYO_AVR [IP]
define Radio SIRD [IP] 1234
Das Problem konnte ich ebenfalls auf einer anderen FHEM-Installation nachstellen.
Hat jemand bereits dieses Problem festgestellt und ggf einen Tipp parat?
Da ich bei einem Anruf gerne alle Geräte im Haus muten möchte, wäre ich sehr an einem parallelen Einsatz der beiden Module interessiert. ;)
Viele Grüße
Benny
ist mir im zusammenhang mit dem enigma2 modul bekannt. wie ich in meinem letzten post bereits schrieb, mit der 'älteren' version gehts bei mir. wenn interesse besteht, schicke ich die gerne zu.
gruß ingo
Danke für das Modul, hab zwei von den Radios hier.
Wie sehen eure Defines aus? ::)
b.z.w wie lasst ihr es in FHEM anzeigen? ( sorry Newbee frage)
Gruss Gerd
Aktuell nutze ich das Modul nicht mehr, aber meine Def war wie folgt:
define IRadio SIRD 192.168.xxx.xx 1234 60
attr IRadio verbose 0
Du musst natürlich die IP deines Radios eintragen. Mit "verbose 0" wurden die Einträge im globalen Logfile "SIRD try to Login @192.168. etc" unterdrückt, allerdings werden dann auch die Readings nicht aktualisiert.
1234 ist die Standard-Pin des Radios, 60 das Intervall der Abfrage für die Readings
Hallo zusammen,
habe das Modul gerade entdeckt und es ein wenig angepasst auf mein Hama DIR 3100, dort ist noch das Spotify dazugekommen, welches jetzt auch auswählbar ist über das Menü, dadurch hatten sich auch die anderen Menüeinträge verschoben.
Ich habe die modifizierte Version mal hier angehangen, ich hoffe, das ist ok so.
Gruß
Rainer
Warum sollte das nicht OK sein?
Es geht immer weiter ;)
Das dieses Modul ja für jeden zum Editieren bereit steht. Immer mit Updates her.
Leider ist noch keiner dabei der Zeit/Ahnung für den Offiziellen Support hat und es bis zum Ende entwickelt, so das es eingecheckt werden könnte.
Meine Kompetenz ist seit der Schroedimann daran war überschritten ;)
Grüße
Hallo AK-868,
ich habe durch Zufall dein Modul hier gefunden und ich bin überrascht dass es mein Problem / Wunsch scheinbar löst.
In einem Dual IR6 S Internet- und DAB+ Radio ist auch der Chipsatz "Venice 6.5 FS2026-5" der Firma Frontier Silicon verbaut.
http://www.frontier-silicon.com/Venice-65-0#.Vm1hGBERKRg (http://www.frontier-silicon.com/Venice-65-0#.Vm1hGBERKRg)
Dieser Chipsatz wird wohl oft bei Internet- /DAB+ Radios verwendet.
Da ich gerade erst seit 10 Minuten das Modul in den FHEM geladen und die ersten Test gemacht habe bin ich positiv überrascht.
Ich wollte genau so ein Modul oder vergleichbar programmieren aber auch nicht fit darin.
Bei dem Dual Radio scheinen die Parameter für den Inputs etwas anders belegt zu sein:
input: InternetRadio = InternetRadio
input: Mediaplayer = Spotify
input: DAB-Radio = Media Player
input: FM-Radio = DAB Radio
input: AUX = FM Radio
Kann ich irgendwie helfen?
Wird das Modul irgendwann offiziell in FHEM aufgenommen?
Gruß aherby
Ist es auch möglich TTS und /oder MP3 über das Radio wiederzugeben?
Hallo,
erstmal danke für die tolle Arbeit.
Gibt es eine Dokumentation wie ich das Teil einbinde ?
Hab es gerade für mein Lidl Silvercrest Radio eingerichtet und ging auf Anhieb.
Aber wie kann ich auf z.B Input, Stationsliste usw zugreifen ?
Stefan
Hallo,
bei meinem stimmt was mit der Zuordnung der Eingänge nicht.
Radio Spielt FM Radio und AUX wird angezeigt ?
Es ist das Wlan Radio, das den UNDOCK Standard beherscht.
Ausserdem habe ich noch 4 Lautsprecher dazu, die allerdings nicht über fhem eingebunden sind.
currentAlbum
2016-01-10 17:34:18
currentArtist
2016-01-10 17:34:19
currentDuration
0:00
2016-01-10 17:34:19
currentPosition
0:00
2016-01-10 17:34:19
currentTitle
SPREE
2016-01-10 18:06:10
dABScan
scan
2016-01-10 17:11:59
frequency
105.50
2016-01-10 18:06:10
friendlyName
Kueche
2016-01-08 09:05:09
graphicUri
2016-01-10 17:34:19
infoText
JETZT ON AIR :: HELLO :: ADELE
2016-01-10 18:35:10
input
AUX
2016-01-10 18:06:09
lastcommand
play
2016-01-10 17:14:43
localDate
10.01.2016
2016-01-10 00:00:09
localTime
18:36:12
2016-01-10 18:36:10
mute
off
2016-01-10 17:11:56
navCaps
2
2016-01-10 18:06:10
navNumItems
0
2016-01-10 18:06:10
navStatus
fatalError
2016-01-10 18:06:10
playCaps
skipNext|skipPrevious|addPreset
2016-01-10 18:06:10
playRate
2016-01-10 17:34:19
playStatus
playing
2016-01-10 18:06:10
power
on
2016-01-10 18:36:09
presence
present
2016-01-10 18:36:09
radioID
002261EEB326
2016-01-08 09:05:09
remoteState
on
2016-01-10 17:11:56
repeat
off
2016-01-10 17:11:57
searchTerm
2016-01-10 17:34:21
shuffle
off
2016-01-10 17:11:57
signalStrength
61
2016-01-10 18:36:10
version
ir-mmi-FS2026-0500-0265_V2.9.10c.EX62313-1RC4
2016-01-08 09:05:09
volume
75
2016-01-10 17:11:30
volumeSteps
21
2016-01-10 17:11:59
volumeStraight
15
Stefan
Hier sind mehr Infos über das Protokoll
https://github.com/openhab/openhab/wiki/Frontier-Silicon-Radio-Binding (https://github.com/openhab/openhab/wiki/Frontier-Silicon-Radio-Binding)
Stefan
Guten Morgen,
ich finde das Projekt auch richtig gut und super dass es die Auslistung der ,,Input-Varianten" gibt.
Also ein DUAL "Radio Station IR 6s"
http://www.dual.de/produkte/digitalradio/radio-station-ir-6s/
(http://www.dual.de/produkte/digitalradio/radio-station-ir-6s/)
hat die Inputreihenfolge gem. Pinell Supersound II.
Vielleicht kann man das Radio mit auflisten.
Ich bin leider nicht wirklich Perl-Erfahren, sonst hätte ich jetzt den Code beigetragen um
den ,,Radio mode" zu konfigurieren.
Es wäre sicher für ,,Anwender" einfacher nur einen Radio-Mode-Typ über ein z.B. attr .... radiomode (1-6) mit anzugeben zu müssen, statt im Code zu arbeiten.
Oder gibt es diese Funkton im Modul schon?
Danke
Mfg Alex
Hi,
erst mal vielen dank an die Entwickler dieses Moduls. Ich habe genau sowas gesucht. Allerdings funktioniert Das Modul nur ganz kurz (ich kann ca. 3x an/aus oder Lautstärke ändern) bevor der FHEM-Server aus macht. Wenn ich via Konsole den Server neu starte das gleiche Schauspiel wieder. hat das auch einer? Oder kann mir erklären was das sein könnte? Schade denn sonst ist alles perfekt.
JA, das selbe bei mir, leider. Denke das Problem gibt es bei ALDI Radios... die anderen die mehr erfolg haben , haben halt LIDL Radios.
Muss dazu sagen wenn ich den Server dann erneut starte, hängt sich Fhem innerhalb von 5 Sekunden ca auf. Wenn man aber das Radio ausmacht. Bleibt dan etwas länger Zeit zum löschen des define :).
Hallo,
ich hab mir mal erlaubt zwei Geräte einzubauen.
einmal das sird14 und das IR110
Die Unterschiedlichen Zustände sind ab Zeile 1082 definiert und können gerne ergänzt werden.
Einfach den Block ab 1082 -1108 und 1153 - 1178 jeweils kopieren Namen ändern und die Werte anpassen.
Stefan
Hallo,
ich hab vergessen das die dev um das Gerät ergäntzt werden muss :
define IRadio SIRD 192.168.x.xx 1234 sird14 60
Stefan
Hallo.
Habe einen Hama DIR 3100 und würde nur die reinen fsapi Befehle wie zB. http://<IP>/fsapi/CREATE_SESSION?pin=<PIN> usw. benötigen.
Gibt's da irgendwie eine Möglichkeit?
Bin leider kein Programmierer!
Trotzdem Hut ab!
Danke. LOGR
Dann solltest du dir mal den Threat ansehen. Da findest du auf der ersten Seite was du suchst.
Wer lesen kann, ist klar im Vorteil ;)
Stefan
Hallo!
Fhem Meldung "Cannot load module SIRD"
erhalte ich immer wieder nach vielen Versuchen:
Habe 17_SIRD.pm in am Raspi in das Verzeichnis ..../fhem/FHEM kopiert und owner auf fhem geändert, gruppe einmal root einmal dialout ...
Frage: Welches 17_SIRD.pm soll ich hier downladen und wie richtig installieren (habe einen DR3100).
Danke und LG
hallo Raimund,
wie sieht dein define denn aus? tippe mal, dass da der fehler liegt.
Gesendet von meinem SM-G920F mit Tapatalk
oder fhem nicht neu gestartet.
Download aus meinem Post.
Stefan
Hallo, danke für die Rückmeldungen!
Derzeitiger Status:
File vom 4.2.2016 stefanm
-rw-r--r-- 1 fhem dialout 14206 Dez 27 16:32 17_EGPM2LAN.pm
-rw-r--r-- 1 fhem dialout 62954 Feb 8 17:36 17_SIRD.pm
-rw-r--r-- 1 fhem root 9862 Dez 27 16:32 17_SIS_PMS.pm
-rw-r--r-- 1 fhem root 2270 Dez 27 16:33 18_CUL_HOERMANN.pm
dann in fhem: shutdown restart dann:
define IRadio SIRD 10.0.0.9 1234 IR110 60
weiterhin "Cannot load module SIRD"
Logfile:
2016.02.08 17:43:15 0: Can't locate XML/Simple.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/17_SIRD.pm line 9.
BEGIN failed--compilation aborted at ./FHEM/17_SIRD.pm line 9.
Zugriff auf 10.0.0.9 über Browser funktioniert.
???
LG
Die Ip Adresse sieht merkwürdig aus. ist das die von deinem Radio ?
Stefan
Hallo Stefan!
Ja, diese Adresse stimmt. Ich kann damit im Browser problemlos auf das Radio zugreifen. Habe auch mit SessionID ein- und ausschalten probiert - ausschalten funktionierte.
LG
PS.: Diese Adresse ist genauso zu behandeln wie 192 ......
da gehe ich doch mal spontan davon aus, dass du bei der änderung, die du laut stefan in der 17_SIRD machen musst etwas verbockt hast, so dass das Modul nicht mehr funktioniert...
Gruß
Ingo
Zitat von: automatisierer am 09 Februar 2016, 20:51:50
da gehe ich doch mal spontan davon aus, dass du bei der änderung, die du laut stefan in der 17_SIRD machen musst etwas verbockt hast, so dass das Modul nicht mehr funktioniert...
Gruß
Ingo
Ich habe gar nichts im file geändert. Ich ging davon aus das es mit meiner Definition für den IR110 bereits funktionieren müsste - auch wenn ich einen DR3100 habe.
Da muss ich dann leider passen, denn im Programm traue ich mir keine Änderungen zu.
LG
Hallo.
.. kannst mir das bitte mal zeigen!?
LG LOGR
Ich hatte deine Nachricht leider nur überflogen.
In deinem Log steht doch woran es liegt :
2016.02.08 17:43:15 0: Can't locate XML/Simple.pm
Dir fehlt vermutlich das Paket libxml-simple-perl.
Gruss Stefan
Zitat von: stefanm am 11 Februar 2016, 12:22:40
In deinem Log steht doch woran es liegt :
2016.02.08 17:43:15 0: Can't locate XML/Simple.pm
Dir fehlt vermutlich das Paket libxml-simple-perl.
Gruss Stefan
Hallo Stefan, ja das war es. Ich muss noch viel lernen!
Das IRadio wurde in Fhem installiert - jedoch kein Zugriff möglich (vielleicht weil DR3100 und kein IR110)
Logfile:
2016.02.11 14:47:45 2: SIRD try to Login @10.0.0.9
2016.02.11 14:48:45 2: SIRD try to Login @10.0.0.9
2016.02.11 14:49:45 2: SIRD try to Login @10.0.0.9
2016.02.11 14:50:45 2: SIRD try to Login @10.0.0.9
Habe dann die Version von "dora71/Rainer" installiert und diese funktionierte auf Anhieb:
2016.02.11 15:00:47 3: SIRD try to Login @10.0.0.9
2016.02.11 15:00:48 3: SIRD Login successful!
Danke für deine Bemühungen und
LG
@dora71: Danke für die modifizierte Version von SIRD für DR3100
PS.: Leider bringt die Anwendung mit folgender Meldung FHEM zum Absturz:
not well-formed (invalid token) at line 3, column 40, byte 79 at /usr/lib/arm-linux-gnueabihf/perl5/5.20/XML/Parser.pm line 187.
Hallo zusammen,
vielen Dank erstmal für die viele Arbeit!
Ich habe das Modul mal auf meinem soundmaster IR3000DAB ausprobiert (firmware:ir-mmi-FS2026-0500-0058_V2.6.17c4.EX53330-1RC11).
FHEM läuft auf einem Raspberry Pi
Fhem info:
Release : 5.7 FeatureLevel: 5.7
OS : linux
Arch : arm-linux-gnueabihf-thread-multi-64int
Perl : v5.14.2
nach der Installation habe ich das Radio in FHEM definiert:
##############################################
# Radio Schlafzimmer
##############################################
define sz_radio SIRD 192.168.0.53 1234
Ergebnis:
- Aktueller Status war nicht abrufbar. Das Reading "STATUS" hat er nicht gekannt
- Einschalten hat funktioniert
- Lautstärke war einstellbar
Dann habe ich versucht, einen anderen Modus einzustellen, was fhem zum Absturz brachte.
Hier ein Auszug aus dem Log.
Ist, neben den Perl warnings, vielleicht der Hinweis ganz am Schluss mit der Deklaration der Variablen $text und @textarray ein Hinweis?
2016.02.14 10:06:18 3: SIRD try to Login @192.168.0.53
2016.02.14 10:06:18 3: HttpUtils url=<hidden>
2016.02.14 10:06:19 3: <hidden>: HTTP response code 200
2016.02.14 10:06:19 3: HttpUtils <hidden>: Got data, length: 90
2016.02.14 10:06:19 1: PERL WARNING: Argument "FS_OK" isn't numeric in numeric eq (==) at ./FHEM/17_SIRD.pm line 272.
2016.02.14 10:06:19 1: PERL WARNING: Argument "\x{46}\x{53}..." isn't numeric in numeric eq (==) at ./FHEM/17_SIRD.pm line 272.
2016.02.14 10:06:19 3: SIRD Login successful!
(...)
2016.02.14 10:08:59 2: HttpUtils url=<hidden>
2016.02.14 10:09:01 2: CustomGetFileFromURL <hidden>: Select timeout/error:
2016.02.14 10:09:01 2: HttpUtils url=<hidden>
2016.02.14 10:09:01 2: <hidden>: HTTP response code 200
2016.02.14 10:09:01 2: HttpUtils <hidden>: Got data, length: 82
2016.02.14 10:09:29 2: HttpUtils url=<hidden>
2016.02.14 10:09:31 2: CustomGetFileFromURL <hidden>: Select timeout/error:
2016.02.14 10:09:31 2: HttpUtils url=<hidden>
2016.02.14 10:09:31 2: <hidden>: HTTP response code 200
2016.02.14 10:09:31 2: HttpUtils <hidden>: Got data, length: 82
2016.02.14 10:09:59 2: HttpUtils url=<hidden>
2016.02.14 10:10:01 2: CustomGetFileFromURL <hidden>: Select timeout/error:
2016.02.14 10:10:01 2: HttpUtils url=<hidden>
2016.02.14 10:10:01 2: <hidden>: HTTP response code 200
2016.02.14 10:10:01 2: HttpUtils <hidden>: Got data, length: 82
2016.02.14 10:10:03 1: HMLAN_Parse: HMLAN1 new condition ok
2016.02.14 10:10:27 1: PERL WARNING: Argument "FS_OK" isn't numeric in numeric eq (==) at ./FHEM/17_SIRD.pm line 368.
2016.02.14 10:10:27 1: PERL WARNING: Argument "\x{46}\x{53}..." isn't numeric in numeric eq (==) at ./FHEM/17_SIRD.pm line 368.
2016.02.14 10:10:29 2: HttpUtils url=<hidden>
2016.02.14 10:10:31 2: CustomGetFileFromURL <hidden>: Select timeout/error:
2016.02.14 10:10:31 2: HttpUtils url=<hidden>
2016.02.14 10:10:31 2: <hidden>: HTTP response code 200
2016.02.14 10:10:31 2: HttpUtils <hidden>: Got data, length: 82
2016.02.14 10:10:53 1: PERL WARNING: Argument "FS_OK" isn't numeric in numeric eq (==) at ./FHEM/17_SIRD.pm line 353.
2016.02.14 10:10:53 1: PERL WARNING: Argument "\x{46}\x{53}..." isn't numeric in numeric eq (==) at ./FHEM/17_SIRD.pm line 353.
2016.02.14 10:10:59 2: HttpUtils url=<hidden>
2016.02.14 10:11:01 2: CustomGetFileFromURL <hidden>: Select timeout/error:
2016.02.14 10:11:01 2: HttpUtils url=<hidden>
2016.02.14 10:11:01 2: <hidden>: HTTP response code 200
2016.02.14 10:11:01 2: HttpUtils <hidden>: Got data, length: 82
2016.02.14 10:11:01 2: HttpUtils url=<hidden>
2016.02.14 10:11:01 2: <hidden>: HTTP response code 200
2016.02.14 10:11:01 2: HttpUtils <hidden>: Got data, length: 82
2016.02.14 10:11:02 2: HttpUtils url=<hidden>
2016.02.14 10:11:02 2: <hidden>: HTTP response code 200
2016.02.14 10:11:02 2: HttpUtils <hidden>: Got data, length: 84
2016.02.14 10:11:02 1: PERL WARNING: Argument "FS_OK" isn't numeric in numeric eq (==) at ./FHEM/17_SIRD.pm line 474.
2016.02.14 10:11:02 1: PERL WARNING: Argument "\x{46}\x{53}..." isn't numeric in numeric eq (==) at ./FHEM/17_SIRD.pm line 474.
2016.02.14 10:11:02 2: HttpUtils url=<hidden>
2016.02.14 10:11:02 2: <hidden>: HTTP response code 200
2016.02.14 10:11:02 2: HttpUtils <hidden>: Got data, length: 109
2016.02.14 10:11:02 1: PERL WARNING: Argument "FS_OK" isn't numeric in numeric eq (==) at ./FHEM/17_SIRD.pm line 398.
2016.02.14 10:11:02 1: PERL WARNING: Argument "\x{46}\x{53}..." isn't numeric in numeric eq (==) at ./FHEM/17_SIRD.pm line 398.
2016.02.14 10:11:02 2: HttpUtils url=<hidden>
2016.02.14 10:11:02 2: <hidden>: HTTP response code 200
2016.02.14 10:11:02 2: HttpUtils <hidden>: Got data, length: 151
2016.02.14 10:11:02 1: PERL WARNING: Argument "FS_OK" isn't numeric in numeric eq (==) at ./FHEM/17_SIRD.pm line 413.
2016.02.14 10:11:02 1: PERL WARNING: Argument "\x{46}\x{53}..." isn't numeric in numeric eq (==) at ./FHEM/17_SIRD.pm line 413.
2016.02.14 10:11:02 2: HttpUtils url=<hidden>
2016.02.14 10:11:02 2: <hidden>: HTTP response code 200
2016.02.14 10:11:02 2: HttpUtils <hidden>: Got data, length: 82
2016.02.14 10:11:02 1: PERL WARNING: Argument "FS_OK" isn't numeric in numeric eq (==) at ./FHEM/17_SIRD.pm line 458.
2016.02.14 10:11:02 1: PERL WARNING: Argument "\x{46}\x{53}..." isn't numeric in numeric eq (==) at ./FHEM/17_SIRD.pm line 458.
2016.02.14 10:11:02 2: HttpUtils url=<hidden>
2016.02.14 10:11:04 2: CustomGetFileFromURL <hidden>: Select timeout/error:
Could not find fhem.xml in ./ at ./FHEM/17_SIRD.pm line 524
"my" variable $text masks earlier declaration in same scope at ./FHEM/99_myUtils.pm line 104.
"my" variable @textarray masks earlier declaration in same scope at ./FHEM/99_myUtils.pm line 105.
Viele Grüße
Peter
Wenn du die von mir modifizierte Version verwenden will muss die define anders aussehen :
define IRadio SIRD 192.168.x.xx 1234 sird14 60
Zur Zeit sind aber nur erst mal nur IR110 und sird14 eingebaut. Das Modul war ja nicht von mir. Ich habe da nur was angepasst.
@raimundl
Wenn ich Zeit hab werde ich die anderen Geräte noch mit einbauen
Stefan
Zitat von: stefanm am 15 Februar 2016, 22:18:07
@raimundl
Wenn ich Zeit hab werde ich die anderen Geräte noch mit einbauen
Stefan
Danke - nicht mehr dringend, verwende HandyApp!
LG
Hallo,
hab mich heute mal wieder mit Modul beschäftigt.
Es war noch ein Fehle drin, jetzt sollte es gehen.
Eingebaut sind folgende Module :
sird14
IR110
Aufruf :
define (meinRadio) SIRD ipadresse pin typ sec
Viel Spass
Hi,
in Vorbereitung für meinen bestellten Raspberry 3 wollte ich FHEM und Hombridge auf den neusten Stand bringen.
Durch einen kleinen Fehler meinerseits musste ich dann Hombridge komplett neu installieren, das habe ich dann nach
dem Wiki Eintrag von hier gemacht, die erste Einrichtung war über die Anleitung von meintechblog.
Ich habe jetzt das Problem dass meine 2 Lidl Silvercrest Radios,
eingerichtet in FHEM nach dieser Methode: http://forum.fhem.de/index.php/topic,32030.0.html
über die Homebridge nicht mehr gefunden werden, bei der alten Hombridge waren sie noch da.
Muss ich die jetzt irgendwie anders einrichten? Blicke bei der neuen Version noch nicht so ganz durch.
Danke und Gruß
Kai
Edit: Habe es wieder hin bekommen, habe bei beiden Radios ein genericDeviceType Switch gesetzt, danach waren sie wieder da.
Muss mich echt mal ein wenig mehr mit der neuen Version beschäftigen.
Hallo zusammen!
Ich nutze das SIRD Modul mit einem Medion mit eine Medion MD 87238. Allerdings funktionieren die Versionen des Moduls, die nach Gerätetypen unterscheiden können nicht bei mir. Mit diesen Versionen erhalte ich die Fehlermeldung aus Antwort #102. Im Traceback referenziert der Fehler auf das yowsup Modul. Er tritt aber nur auf, wenn ich die neuere Versionen des SIRD Moduls nutze.
Das SIRD Modul aus Antwort #78 funktioniert bei mir einwandfrei, es sind lediglich die Inputs vertauscht.
Ich stelle gerne Logs zur Verfügung und beteilige mich am Debugging.
Hat sonst noch jemand den Fehler aus Antowort #102 bekommen?
Viele Grüße,
weini
Hallo,
betreibe seit Februar ein SIRD 14C1 und hatte mir am 11.3.16
die aktuelle Version des Moduls vom 10.3.16 gezogen und
installiert. Funktionierte einige Tage einwandfrei. Irgendwann war
das IRadio aber immer nur noch "absent". Habe das Radio und auch
das Modul mehrfach deinstalliert und wieder installiert. Ohne Erfolg.
Habe dann schließlich wieder das Modul vom 13.11.15 installiert und
alles läuft wieder einwandfrei.
Vielleicht hat ja jemand ähnliche Probleme!?
Viele Grüße,
pharmy
Ich habe noch zwei Fehler in der jüngsten Fassung gefunden: In den Zeilen 1152 und 1178 muss jeweils "eq" an Stelle von "==" als Vergleichsoperator verwendet werden --> Stringvergleich.
Habe die korrigierte Fassung hier mit angehängt. Die Idee mit den Fallunterscheidungen ist schon der richtige Weg, nur wird die aktuelle Umsetzung mit if-Blöcken den Code unwartbar machen. Ich denke, dass das sinnvoller über assoziative Arrays abgebildet werden kann. Leider bin ich auch ein erfahrener Perl Entwickler, aber mit etwas Zeit würde ich mich vielleicht mal daran versuchen.
Danke für die Berichtigung.
Mit dem Array ist bestimmt besser, mir aber zu hoch, denn ich NICHT Programmierer und Probiere gerne mal was aus. ;) So
ist die Version von mir Entstanden.
Ursprünglich hatte Sie ja AK-868 geschrieben.
Ich würde mich über deine Version freuen. Dann könnte man eventuell auch die Multiroom Steuerung einbauen.
Stefan
Hallo, ich besitze das MD 87180
Ich habe im define keinen Typ ausgewählt, jetzt erscheint das "Spotify"-Menü, obwohl dieses Radio dies nicht besitzt.
Wird das MD87180 unterstützt ? siehe https://github.com/openhab/openhab/wiki/Frontier-Silicon-Radio-Binding
Im Log-File tauchen beim Init übrigens jede Menge Perl-Warnungen auf z.B.:
PERL WARNING: main::SIRD_Power() called too early to check prototype at ./FHEM/17_SIRD.pm line 74.
PERL WARNING: Use of uninitialized value in string ne at ./FHEM/17_SIRD.pm line 104.
Ist das normal, bzw. akzeptabel ?
Ok, scheinbar waren die letzten Versionen nur für die Typen "sird14" und "IR110".
D.h. für meine Radio muß die ältere 17_SIRD.pm aus post #78 nehmen. Damit passt zumindest die Zuordnung
Wäre wahrscheinlich sinnvoll, die verschiedenen Typen in einer Datei zusammen zu mergen.
Hallo,
ist es möglich die "preset" Liste in eine Tablet UI einzubauen?
Ich habe mit allem umprobiert, aber bekomme es nicht angezeigt.
Gruß Beule
Bin total begeistert, was sich hier in den letzten zwei Wochen getan hat! Habe jetzt mein Lidl Sird 14 und mein Aldi IWR (aktuell bei Albrecht-Süd) beide als Sird14 eingebunden.
Hat irgend jemand schon ein komplettes define-set für Faule gebastelt, mit dem man alle bisherigen Funktionen steuern kann? Würde mich darüber sehr freuen...
Hoffe, ich habe meine Freude nicht zu früh geäußert. Passiert hier noch was mit dem Modul? Finde das nämlich sehr genial!
Ich habe in meinem FHEM-Log ein paar Fehlermeldungen zu dem Modul drin:
2016.05.31 13:14:31 1: PERL WARNING: Use of uninitialized value $a in int at ./FHEM/17_sird.pm line 1857, <$fh> line 1974.
2016.05.31 13:14:34 1: PERL WARNING: Use of uninitialized value $response in concatenation (.) or string at ./FHEM/17_sird.pm line 1926, <$fh> line 1974.
2016.05.31 13:14:34 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_sird.pm line 33, <$fh> line 1974.
2016.05.31 13:14:34 1: PERL WARNING: Use of uninitialized value $a in int at ./FHEM/17_sird.pm line 1857, <$fh> line 1978.
Kann damit jemand etwas anfangen?
Weitere Frage: Bei gleichzeitiger Verwendung von z.B. der App UNDOK auf dem Smartphone kommen sich FHEM/sird.pm und UNDOK in die Quere. Sprich: FHEM hat eine Verbindung zum Radio hergestellt und nun kommt UNDOK und kickt FHEM wieder raus. FHEM verbindet sich bei nächster Gelegenheit wieder neu und kickt dabei UNDOK raus. Kann man das irgendwie lösen?
Hallo,
irgendwie überlese ich es bestimmt gerade.
Gibt es eine Auflistung welche Typen im Modul eingebaut wurden?
Habe ein Dual IR6S irgendwie funktioniert mit der aktuellen SIRD kein Quellenwechsel bei mir
Danke
Hallo, prinzipiell funktioniert das Modul bei mir, allerdings gibt es viele Warnings im Log und ich vermute das dies auch der Grund ist warum FHEM des öfteren bei mir abstürzt.
Ein paar mal war dies der letzte Log-Eintrag:
"2016.06.13 22:20:15 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/17_SIRDUtils.pm line 845."
Hier noch ein Auszug weiterer Warnings im Log:
2016.06.14 18:20:04 1: PERL WARNING: main::SIRDUtils_Power() called too early to check prototype at ./FHEM/17_SIRDUtils.pm line 73, <$fh> line 87.
2016.06.14 18:20:04 1: PERL WARNING: main::SIRDUtils_Volume() called too early to check prototype at ./FHEM/17_SIRDUtils.pm line 150, <$fh> line 87.
2016.06.14 18:20:04 1: PERL WARNING: main::SIRDUtils_Mute() called too early to check prototype at ./FHEM/17_SIRDUtils.pm line 246, <$fh> line 87.
2016.06.14 18:20:04 1: PERL WARNING: main::SIRDUtils_Shuffle() called too early to check prototype at ./FHEM/17_SIRDUtils.pm line 306, <$fh> line 87.
2016.06.14 18:20:04 1: PERL WARNING: main::SIRDUtils_Repeat() called too early to check prototype at ./FHEM/17_SIRDUtils.pm line 366, <$fh> line 87.
2016.06.14 18:20:04 1: PERL WARNING: main::SIRDUtils_RemoteState() called too early to check prototype at ./FHEM/17_SIRDUtils.pm line 1037, <$fh> line 87.
2016.06.14 18:20:04 1: PERL WARNING: main::SIRDUtils_Input() called too early to check prototype at ./FHEM/17_SIRDUtils.pm line 1115, <$fh> line 87.
2016.06.14 18:20:04 1: PERL WARNING: main::SIRDUtils_SearchTerm() called too early to check prototype at ./FHEM/17_SIRDUtils.pm line 1703, <$fh> line 87.
2016.06.14 18:20:04 1: PERL WARNING: main::SIRDUtils_DABScan() called too early to check prototype at ./FHEM/17_SIRDUtils.pm line 1753, <$fh> line 87.
2016.06.14 18:20:15 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/17_SIRDUtils.pm line 845.
2016.06.14 19:35:21 1: PERL WARNING: Use of uninitialized value $response in concatenation (.) or string at ./FHEM/17_SIRDUtils.pm line 1862.
2016.06.14 19:35:21 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_SIRDUtils.pm line 78.
2016.06.14 20:45:34 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_SIRDUtils.pm line 805.
2016.06.14 20:45:36 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_SIRDUtils.pm line 735.
2016.06.14 20:45:59 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_SIRDUtils.pm line 411.
2016.06.14 20:46:01 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_SIRDUtils.pm line 447.
2016.06.14 20:46:03 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_SIRDUtils.pm line 483.
2016.06.14 20:51:38 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_SIRDUtils.pm line 591.
2016.06.14 20:51:40 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_SIRDUtils.pm line 1042.
2016.06.14 20:51:44 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_SIRDUtils.pm line 197.
2016.06.14 21:30:56 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_SIRDUtils.pm line 555.
2016.06.14 21:30:58 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_SIRDUtils.pm line 519.
2016.06.15 07:04:49 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_SIRDUtils.pm line 156.
2016.06.15 07:05:05 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_SIRDUtils.pm line 1708.
2016.06.15 07:24:55 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_SIRDUtils.pm line 1465.
2016.06.15 07:26:33 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_SIRDUtils.pm line 1758.
2016.06.15 07:28:48 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_SIRDUtils.pm line 371.
2016.06.15 07:43:19 1: PERL WARNING: Use of uninitialized value $response in pattern match (m//) at ./FHEM/17_SIRDUtils.pm line 1616.
Sind das wirkliche Problem oder kann man das ignorieren ?
Danke
Nachdem ich diesen Thread gefunden hatte, habe ich den Browseraufruf (http://192.168.35.143/fsapi/SET/netRemote.sys.power?pin=1234&sid=964942793&value=1) mit meinem Medion MD87385 getestet und das Ding ging an :). Also das Modul ins FHEM eingebunden und das Einschalten klappt nicht. Daher Wireshar installiert und im Log findet sich folgender Aufruf:
GET /fsapi/SET/netRemote.sys.power?pin=?pin=&sid=&value=1 HTTP/1.0
Host: 192.168.35.143
User-Agent: fhem
Content-Length: 0
Content-Type: application/x-www-form-urlencoded
HTTP/1.0 403 Forbidden
Content-Type: text/xml
Access-Control-Allow-Origin: *
403 Error
Fehler bei der Definition?
define BadRadio SIRD 192.168.35.143 1234
Wo muss ich suchen?
da...
Zitat von: stefanm am 15 Februar 2016, 22:18:07
Wenn du die von mir modifizierte Version verwenden will muss die define anders aussehen :
define IRadio SIRD 192.168.x.xx 1234 sird14 60
Zur Zeit sind aber nur erst mal nur IR110 und sird14 eingebaut. Das Modul war ja nicht von mir. Ich habe da nur was angepasst.
@raimundl
Wenn ich Zeit hab werde ich die anderen Geräte noch mit einbauen
Stefan
Danke, das war's :)
Ich bitte dringend darum, das Modul offiziell in FHEM aufzunehmen! :)
Hallo zusammen,
ich habe gerade meine Dual Radiostation IR6S PLUS bekommen und das Modul hat auf Anhieb prima funktioniert. Mit Ausnahme der Input-Umschaltung. Ich habe den Fehler in SIRD_Input bei der Modellauswahl gefunden und den Code entsprechend angepasst. Außerdem habe ich mal angefangen eine Doku hinten anzuhängen (bei weitem noch nicht fertig).
Viel Spaß
Franz
Hallo zusammen,
ich habe das Modul nun seit geraumer Zeit erfolgreich in Verbindung mit einem Medion Internet Radio im Einsatz.
Allerdings müllt mir das Modul das Log- File hiermit:
2016.10.01 00:00:16.014 2: SIRD try to Login @192.168.xxx.xxx
2016.10.01 00:00:16.038 2: SIRD Login successful!
zu obwohl ich das Attribut verbose auf "0" gesetzt habe.
Internals:
DEF 192.168.xxx.xxx 1234
INTERVAL 30
IP 192.168.xxx.xxx
NAME BarRadio
NR 235
PASSWORD 1234
SESSIONID 1585043599
STATE off
TYPE SIRD
logLevel 2
Readings:
2016-10-11 14:29:24 currentAlbum
2016-10-11 14:29:24 currentArtist
2016-10-11 14:29:24 currentDuration
2016-10-11 14:29:24 currentPosition
2016-10-11 14:29:24 currentTitle
2016-10-11 14:29:24 dABScan
2016-10-11 14:29:24 frequency
2016-10-08 10:10:46 friendlyName InternetRadio2
2016-10-11 14:29:24 graphicUri
2016-10-11 14:29:24 infoText
2016-10-11 14:29:24 input
2016-10-08 16:34:31 lastcommand off
2016-10-12 00:00:25 localDate 12.10.2016
2016-10-12 08:16:55 localTime 08:16:57
2016-10-11 14:29:24 mute
2016-10-11 14:29:24 navCaps
2016-10-11 14:29:24 navNumItems
2016-10-11 14:29:24 navStatus
2016-10-11 14:29:24 playCaps
2016-10-11 14:29:24 playRate
2016-10-11 14:29:24 playStatus
2016-10-08 16:34:31 power off
2016-10-12 08:16:55 presence present
2016-10-08 10:10:46 radioID 002261C17F38
2016-10-11 14:29:24 remoteState
2016-10-11 14:29:24 repeat
2016-10-11 14:29:24 searchTerm
2016-10-11 14:29:24 shuffle
2016-10-11 14:29:24 signalStrength
2016-10-08 10:10:46 version ir-mmi-FS2026-0500-0027_V2.5.15.EX51267-1A11
2016-10-11 14:29:24 volume
2016-10-11 14:29:24 volumeSteps
2016-10-11 14:29:24 volumeStraight
Helper:
Attributes:
icon audio_sound
room Bar
verbose 0
Hat jemand einen Tip für mich wie ich dieses Log- Verhalten abschalten kann?
Gruß,
Richy
@Wondermusic: Die gleichen Meldungen habe ich auch, wenn ich das Modul nutzen möchte! Leider hatte ich noch keine Zeit, mir das Modul mal anzusehen. Das kann ja nicht richtig programmiert sein. Deshalb habe ich es wieder gelöscht und dann ist erst Ruhe.
Hallo,
das passiert bei mir auch. Meine Log wird mit der Meldung
2016.10.01 00:00:16.014 2: SIRD try to Login @192.168.xxx.xxx
2016.10.01 00:00:16.038 2: SIRD Login successful!
zugemüllt, obwohl ich auf Verbose 0 gestellt habe.
Geht es denn bei der Entwicklung des Moduls noch weiter oder ist es eingestellt worden?
Ich bin leider beim Programmieren nicht so fit das ich da helfen könnte :(
Gruß
Damit müsste die Geschwätzigkeit etwas abnehmen:--- 17_SIRD.pm.bak 2016-10-02 12:35:58.000000000 +0200
+++ 17_SIRD.pm 2016-10-26 20:49:15.695304435 +0200
@@ -18,6 +18,7 @@
$hash->{SetFn} = "SIRD_Set";
$hash->{DefFn} = "SIRD_Define";
$hash->{AttrList} = "volumeStep navListItems " . $readingFnAttributes;
+ Log 2, "SIRD Init module";
}
###############################
@@ -27,7 +28,7 @@
my $ref;
my $response = ' ';
- Log $hash->{logLevel}, "SIRD try to Login @" . $hash->{IP};
+ Log 5, "SIRD try to Login @" . $hash->{IP};
$response =
SIRD_Com( $hash, "CREATE_SESSION?pin=" . $hash->{PASSWORD}, 0, 0, 0 );
if ( $response =~ /fsapiResponse/ )
@@ -37,7 +38,7 @@
if ( $ref->{status} eq 'FS_OK' )
{
$hash->{SESSIONID} = $ref->{sessionId};
- Log $hash->{logLevel}, "SIRD Login successful!";
+ Log 5, "SIRD Login successful!";
}
}
return 1;
Hi prodigy,
hab jetzt erst den Eintrag gesehen.
Danke für die Änderung. Habs direkt mal eingebaut und getestet.
Keine nervigen Logs mehr! Merci!!! :D
Gruß,
Richy
@Wondermusic: Magst Du vielleicht die geänderte Version hier einstellen? Wenn ich das richtig sehe, dann ist die letzte verfügbare Version die vom 25.09.2016. Die enthält aber m.E. die Geschwätzigkeitsbremse noch nicht.
Ich glaube so sollte die Bremse aktiv sein.
Zitat von: RaspiCOC am 15 November 2016, 09:42:18
@Wondermusic: Magst Du vielleicht die geänderte Version hier einstellen? Wenn ich das richtig sehe, dann ist die letzte verfügbare Version die vom 25.09.2016. Die enthält aber m.E. die Geschwätzigkeitsbremse noch nicht.
@RaspiCOC
Sorry, aber irgendwie wurde ich wieder nicht benachrichtigt das jemand geschrieben hat... ???
Ich muss unbedingt lernen jedes mal oben auf "Ungelesene Antworten..." zu drücken..!
Vielen Dank an link611! :)
Gruß,
Richy
Top, danke!
Hallo
ich habe zu Weihnachten so ein Radio bekommen Silvercrest Sird 14C2.
Wie kann man in FHEM die Sender besser auswählen als set <name> channalDown bzw. set <name> channalUp, könnte man eine Senderliste speichern?
Es wäre schön wenn die set Befehle erläutert werden.
Grüße
Markus
Hallo Markus,
die Senderliste wird via
set <name> presetListRequest
abgeholt.
Danach können die Sender ausgewählt werden, z.B
set <name> preset FFH
Gruß
Starkstrombastler
Danke sehr das hilft weiter
Wie kann man den Modus umschalten zwischen Internetradio, Digitalradio, Player und FM Radio irgendwie funktioniert das bei meinem nicht.
Leider funktioniert das mit set <name> presetListRequest
nicht ich bekomme einfach keine Senderliste
Hallo,
ich hoffe, dass der Maintainer des Modules mitliest und aktiv an der Implementierung weiter arbeitet.
Es gibt die Möglichkeit, die vorhandenen Modi (FM, DAB, AUXIN, ...) per Befehl abzufragen, Quelle: https://github.com/flammy/fsapi/blob/master/FSAPI.md (https://github.com/flammy/fsapi/blob/master/FSAPI.md).
Der Befehl:
http://xxx.xxx.xxx.xxx/fsapi/LIST_GET_NEXT/netRemote.sys.caps.validModes/-1?pin=xxxx&sid=xxxxxxx&maxItems=100
Bei meinem LIDL SIRD 14A2 ergibt sich die folgende XML-Antwort:
<fsapiResponse>
<status>FS_OK</status>
<item key="0">
<field name="id"><c8_array>IR</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>Internet Radio</c8_array></field>
</item>
<item key="1">
<field name="id"><c8_array>MP</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>Musikplayer</c8_array></field>
</item>
<item key="2">
<field name="id"><c8_array>DAB</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>DAB</c8_array></field>
...
</item>
<item key="6">
<field name="id"><c8_array>NETWORK</c8_array></field>
<field name="selectable"><u8>0</u8></field>
<field name="label"><c8_array></c8_array></field>
Dabei entscheidet das Feld "selectable", ob der angegebene Modus ("Key") auswählbar ist.
Damit wäre es möglich, die sub SIRD_INPUT($$)
ab Zeile 1130 Gerätespezifisch zu gestalten. Für mein Radio fehlt beispielsweise die Auswertung des DAB-Modus als $helper = 2
Besten Dank!
Besteht hier noch die Chance das dieses Modul weiterentwickelt wird?
Ich habe einen Silvercrest SMRS18A1 Wlan Multiroom Speaker.
Und bekomme div. Logeinträge bezüglich perl.
zb. beim start:
2017.03.21 14:53:20 1: PERL WARNING: main::SIRD_Power() called too early to check prototype at ./FHEM/17_SIRD.pm line 76, <$fh> line 1227.
2017.03.21 14:53:20 1: PERL WARNING: main::SIRD_Volume() called too early to check prototype at ./FHEM/17_SIRD.pm line 153, <$fh> line 1227.
2017.03.21 14:53:20 1: PERL WARNING: main::SIRD_Mute() called too early to check prototype at ./FHEM/17_SIRD.pm line 252, <$fh> line 1227.
2017.03.21 14:53:20 1: PERL WARNING: main::SIRD_Shuffle() called too early to check prototype at ./FHEM/17_SIRD.pm line 312, <$fh> line 1227.
2017.03.21 14:53:20 1: PERL WARNING: main::SIRD_Repeat() called too early to check prototype at ./FHEM/17_SIRD.pm line 372, <$fh> line 1227.
2017.03.21 14:53:20 1: PERL WARNING: main::SIRD_RemoteState() called too early to check prototype at ./FHEM/17_SIRD.pm line 1097, <$fh> line 1227.
2017.03.21 14:53:20 1: PERL WARNING: main::SIRD_SearchTerm() called too early to check prototype at ./FHEM/17_SIRD.pm line 1867, <$fh> line 1227.
2017.03.21 14:53:20 1: PERL WARNING: main::SIRD_DABScan() called too early to check prototype at ./FHEM/17_SIRD.pm line 1921, <$fh> line 1227.
2017.03.21 14:53:20 1: PERL WARNING: main::SIRD_Com() called too early to check prototype at ./FHEM/17_SIRD.pm line 1203, <$fh> line 1227.
2017.03.21 14:53:20 1: PERL WARNING: main::SIRD_Input() called too early to check prototype at ./FHEM/17_SIRD.pm line 1210, <$fh> line 1227.
2017.03.21 14:53:20 1: PERL WARNING: main::SIRD_Com() called too early to check prototype at ./FHEM/17_SIRD.pm line 1214, <$fh> line 1227.
2017.03.21 14:53:20 2: SIRD Init module
2017.03.21 14:53:20 1: PERL WARNING: Use of uninitialized value $a in int at ./FHEM/17_SIRD.pm line 1972, <$fh> line 1227.
ebenso beim steuern über VolumeUp /VolumeDown verschluckt er sich und ist plötzlich leise.
2017.03.21 16:29:04 2: SIRD set IRadio (10.0.0.xxx) on
2017.03.21 16:29:17 2: SIRD set IRadio (10.0.0.xxx) volumeUp
2017.03.21 16:29:17 1: PERL WARNING: Argument " " isn't numeric in int at ./FHEM/17_SIRD.pm line 2441.
2017.03.21 16:29:17 1: PERL WARNING: Argument "" isn't numeric in numeric eq (==) at ./FHEM/17_SIRD.pm line 2443.
2017.03.21 16:29:17 1: PERL WARNING: Use of uninitialized value in numeric eq (==) at ./FHEM/17_SIRD.pm line 2445.
LG Thomas
jo, wie schon öfter geschrieben:
Dieses Modul wird nicht weiter entwickelt, da kein Maintainer. Da hat hier und da mal wer was dran verändert, aber mehr LEIDER nicht.
Falls das Irgendwer übernehmen möchte - mich würds erfreuen.
Hi,
ich habe in der 17_SIRD.pm einige Dinge verändert, da mir die Perl Warnings im Log auch nicht geschmeckt haben. Dabei sind mir noch einige Böcke aufgefallen, die ich auch korrigiert habe.
Könnt ihr die angehängte 17_SIRD.pm bitte einmal testen?
Bei meinem Silvercrest Radio von Lidl kommen bis jetzt keine Fehlermeldungen mehr. :)
LG Jörg
Guggug,
gerade versucht..
Ich habe noch folgende Meldung..
PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/17_SIRD.pm line 922.
wobei ich die Silvercrest WLAN Lautsprecher 2x SMRS 18 A1, SMRS 30 A1 und SMRS 35 A1 in Gebrauch habe.
Aber danke für die Pflege des Moduls!!!
Hier ist eine neu bearbeitete Version.
In der sollte der Fehler und das von mrfloppy beschriebene VolumeUp und VolumeDown Problem behoben sein.
Im Log habe ich die IP des Radios herausgenommen, da ich eimal davon ausgehe, dass man die IP seiner Geräte kennt.
LG Jörg
Danke dafür!
...hast du nicht lust den Maintainer für dieses Modul zu übernehmen? Und es evtl. sogar zu einem offiziellen Modul weiter zu entwickeln?
Zitat von: automatisierer am 24 März 2017, 22:04:53
Danke dafür!
...hast du nicht lust den Maintainer für dieses Modul zu übernehmen? Und es evtl. sogar zu einem offiziellen Modul weiter zu entwickeln?
Gerne geschehen. :)
Aber Maintainer? Meine Perl Kenntnisse sind bei Weitem nicht perfekt. Wenn ich einmal alle Fehler gefunden und gefixt habe, können wir darüber gerne diskutieren. ;)
Was ich allerdings sagen muss ist, dass ich dadurch sehr viel lerne und auch schon gelernt habe. ;D ;D ;D
In der neuen 17_SIRD.pm sind wieder viele Fehler gefixt worden. Da sind noch einige hartnäckige "uninitialized" PERL WARNINGS, um die ich mich noch kümmere.
Zusätzlich habe ich zwei Readings hinzugefügt:
presetList_1-5 <P1: MixNation><P2: RTL-DeutschlandsHitradio><P3: NRJDance><P4: NRJHits><P5: AbsolutHot>
presetList_6-0 <P6: CharivariParty-Hit-Mix><P7: Radio90.1FM><P8: Top100Germany><P9: planetradiotheclub><P0: sunshinelive>Ich musste die Presets auf zwei Readings aufteilen, da einige Sendernamen so lang sind, dass das den optischen Rahmen gesprengt hat.
LG Jörg
Großes Danke das sich jemand gefunden hat der da weiter macht an dem Modul.
Letzte Version mal installiert.
Besitze auch einen Silvercrest SMRS 30 A1.
Beim ersten Versuch kam der Fehler nochmals mit dem VolumeDown.
Nach div. weiteren restarts von Fhem konnte ich den Fehler nicht mehr nachstellen.
Weiters keine Warnungen mehr beim Start von Fhem.
Ich hatte vor ein paar Tagen hier die mit Pfeil markierte Zeile eingefügt gehabt.
if ( $hash->{STATE} eq "off" )
{
SIRD_Time( $hash, -1 );
SIRD_Date( $hash, -1 );
SIRD_FriendlyName( $hash, -1 );
SIRD_Version( $hash, -1 );
SIRD_ID( $hash, -1 );
---> SIRD_PresetList( $hash, -1 );
}
else
Hat manchmal funktioniert manchmal auch nicht.
Wollte bezwecken das im ausgeschalteten Zustand die Preset Liste geladen wird.
Hin und wieder bekam ich dann ein <status>FS_NODE_BLOCKED</status>
Würde auch reichen wenn er die Presetliste beim start mitladen würde. Ebenso gleich Volume dazu.
Eventuell fällt dir dazu was ein, wie es richtig eingepflegt gehört.
LG und DANK Thomas
Hallo,
habe die Variante des Radios von Hama. Mit der aktuellen Version des Moduls sehe ich keine Inputs mehr. Bei der alten Version werden alle Inputs korrekt erkannt.
Ich hätte 2 Fragen:
1.) Funktioniert eigentlich Text2speech auch mit dem Modul?
2.) Der "Silvercrest SMRS 18 A1" ist wohl der günstigste Lautsprecher der unterstützt wird, richtig?
Danke
Zitat von: Oli_t am 29 März 2017, 08:26:21habe die Variante des Radios von Hama. Mit der aktuellen Version des Moduls sehe ich keine Inputs mehr. Bei der alten Version werden alle Inputs korrekt erkannt.
Hi Oli,
wundert mich, da ich an dem Part nichts verändert habe. Bei meinen SIRD 14 Radios werden die Inputs korrekt angezeigt. Habe es bei Beiden getestet.
Kannst du mir bitte sagen, was in den
Internals bei
Model genau steht?
Gib mir auch sicherheitshalber die Liste der Inputs, die im Display des Radios zu sehen sind. Bitte die Schreibweise beachten!
Ach so, einen Neustart von FHEM und sicherheitshalber auch von dem Radio (Netzstecker für ca. 10 Sekunden trennen.) hast du aber gemacht?
Zitat von: mrfloppy am 28 März 2017, 21:14:53Nach div. weiteren restarts von Fhem konnte ich den Fehler nicht mehr nachstellen.
Weiters keine Warnungen mehr beim Start von Fhem...
Das hört sich ja schon ganz gut an :) Danke für das Feedbak
Das ist wichtig: Das Modul braucht in den meisten Fällen ein Neustart von FHEM !!!
Es reicht nicht mit einem reload-Befehl !!!ZitatIch hatte vor ein paar Tagen hier die mit Pfeil markierte Zeile eingefügt gehabt.
---> SIRD_SIRD_PresetList( $hash, -1 );
Ist das "SIRD_SIRD" ein Kopierfehler beim Schreiben des Beitrags?
Denn die Funktion wird so aufgerufen:
SIRD_PresetList( $hash, -1 );
ZitatWollte bezwecken das im ausgeschalteten Zustand die Preset Liste geladen wird.
Ja, da sprechen wir die selbe Sprache. :D
Aber ich würde sagen, dass ich erst versuche die Fehler zu fixen, damit das Modul richtig läuft. Danach kann man mit Sicherheit noch einiges erweitern... ;)
@chunter1: Ob Text2speech damit funktioniert kann ich wirklich nicht sagen. Ich muss an der Stelle zugeben, dass ich Text2speech noch nie benutzt habe. :)
LG Jörg
Hallo Zusammen,
hat auch die Meldung das Input Unkown ist.
Musste hierfür meine Definition anpassen, damit der richtige Radiotyp gewählt wird.
DEF 192.xxx.xxx.xx 1234 sird14 60
Seitdem kann ich den Input wählen.
Kann sein, dass durch diverse Fehler im Modul einiges durch Zufall funktionierte, was eigentlich nicht hätte funktionieren sollen. Von einer ordnungsgemäßen Definition und Konfiguration des Moduls muss ich an dieser Stelle aber schon ausgehen können.
ZitatIst das "SIRD_SIRD" ein Kopierfehler beim Schreiben des Beitrags?
Denn die Funktion wird so aufgerufen:
SIRD_PresetList( $hash, -1 );
Ja stimmt habe meinen Beitrag editiert.
Meinst du reicht das alleine?
Werde es wieder mal einfügen und beobachten.
LG
Hallo,
schön das in das Modul wieder ein wenig Bewegung gekommen ist!
Ist es mit dem Modul und dem SIRD 14A2 auch möglich eine Playlist an das Radio zu senden? Ich habe in den Set "Optionen" nichts passendes gefunden.
Zum Beispiel so:
set IRadio playlist \\server\share\playlist.m3u
Wäre nett, wenn eine kurz beschreiben könnte wie der Aufruf hierfür aussehen könnte.
Gruß, Thomas
Hallo,
ich habe nochmal ein Wenig experimentiert:
Wenn ich als Modell "IR110" in der Definition eintrage kommt sowas hier im Log:
"SIRD Command input wrong Parameter: InternetRadio"
Wenn ich als Modell "sird14" nehme, funktioniert die Umschaltung zwar, aber die Eingänge sind verdreht, z.B. schaltet das Radio auf "FM" obwohl ich "DAB" auswähle. Auf "DAB" schaltet es wenn ich "set Radio input MediaPlayer" mache.
Ist jetzt nicht sooo wild wenn man mal alle Eingänge durchprobiert hat ;D Mich wundert halt nur, daß es mit der Version davor noch ging. Mein Radio ist ein Hama DIR3000
Habe noch einen Fehler gefunden.
Wenn sich in der Presetliste ein Sender mit einem Umlaut befindet kann der nicht angewählt werden.
presetList_1-5 <P1: 100%Schlager-vonSchlagerPlanet><P2: KRONEHITDigital><P3: ORFHitradio�3><P4: ORF�2Wien><P5: ORFHitradio�3>
P3 P4 P5 kann ich nicht anwählen, passiert einfach nichts.
LG
Hi Leute,
sorry, dass ich mich erst jetzt melde, aber ich war nicht untätig. Ich bisher über 130 Sicherheitsabfragen in das Modul eingebaut, damit die meisten Fehlermeldungen abgefangen werden. Es tauchen aber immer noch welche auf. Ihr werdet Euch sicher fragen, was für Fehlermeldungen denn? Das recht einfach erklärt. In der letzten Version habe ich die Meldungen generell abgeschaltet, damit ihr das Modul in Ruhe nutzen könnt und es mir nicht geholfen hätte, wenn hier pro Tag mehrere Beiträge mit PERL WARNINGS erstellt worden währen.
Zusätzlich kam noch hinzu, dass AVM im letzten Update der Fritzbox etwas am WLan geändert hat. Somit kann es passieren, dass das Radio unter bestimmten Bedingungen zwischendurch nicht erreichbar ist. Hört sich im ersten Moment nicht schlimm an, aber hat(te) aber fatale Auswirkungen.
Das Problem war, dass FHEM es nicht mochte keine Antwort auf XML Anfragen zu bekommen und hing dadurch in einer Bootschleife fest. Abgesehen, dass die Logdatei von FHEM durch die Schleife auf 14 MB gewachsen ist, funktionierte im Gebäude auch nichts mehr.
Nun, da habe ich mir gedacht, mach gleich per Fernzugang einen Reset und gut ist. Aber als ich dann vor meinem Garagentor stand, was natürlich auch nicht aufgehen wollte, war meine Stimmung doch ein wenig gereizt.
Also habe ich dafür auch 36 Sicherheitsabfragen erstellt und eingebaut.
Wollte euch nur damit sagen, dass ich nicht das Messer im Schwein habe stecken lassen und mich verkrümelt habe. ;D
@mrfloppy:
Nach deinem Umlaut-Problem werde ich sehen.
Hattest du den PresetListRequest bei dir eingebaut? Ich hatte es bei mir wieder ausgeschaltet, da das zeitgleich mit der Bootschleife kam und ich mir zuerst nicht sicher war woher es kommt.
Wenn du dadurch bisher keine Probleme hattest, gib bitte mal eine kurze Info.
@Oli:
Da stimmt was mit der Zuordnung der Input-Nummern nicht.
Als Beispiel, Internet-Radio hat die Nummer 0, DAB-Radio die 1, usw.
Die ganzen Nummern stimmen irgendwie nicht. Kann sein, dass durch irgend ein Softwareupdate des Radios da was geändert wurde.
Im momentanen Zustand des Moduls kann das (auch bei den SIRD-Radios) nicht funktionieren.
Dein IR110 hat einen gesonderten Bereich.
Förderlich an der Geschichte wäre, dass du mir endlich die Infos gibst, worum ich dich schon am 30.03 gebeten habe. ;D
@Thomas:
das schaue ich mir auch an.
Aber bitte habt Verständnis, dass meine Priorität momentan bei der Fehlerbeseitigung liegt !!!
Das mit dem blockieren, wenn ein Radio nicht erreichbar war, geht mir auch schon lange auf die Nerven! Aber ich wollte dem neu gewonnen Programierer nicht direkt mit zu vielen Baustellen erdrücken. Ich freue mich riesig, dass du die Arbeit auf dich genommen hast und das Modul weiter entwickelst!
gibts die Aktuelle Version denn auch zum testen?
Zitat von: automatisierer am 11 April 2017, 13:09:40Das mit dem blockieren, wenn ein Radio nicht erreichbar war, geht mir auch schon lange auf die Nerven!
Am Anfang habe ich gedacht, dass ich mir da irgendeinen Fehler eingebaut habe. Aber trotzdem gut zu wissen, dass ich nicht alleine darauf hereingefallen bin. ;D ;D ;D
Habe in jeder Funktion eine Sicherheitsabfrage dafür eingebaut. Bisher gab es keine Bootschleifen mehr.
Was mich an der Geschichte auch wundert, es betrifft nur das SIRD14 B1 und nicht das C2. Das C2 läuft immer durch.
Das B1 musste ich immer für eine Minute vom Netz trennen, da die Radio-Firmware auch dabei abgestürzt ist. Schätze mal, die ist auch ein wenig buggy. ;D
Ich möchte die Version noch ein, oder zwei Tage testen und dann freigeben.
Nur vorab dazu: Es gibt noch ein neues Attribut. ;)
Ein Feature fände ich noch super, das könnte man auch über ein Attribut konfigurierebar machen: Flexible Zuordnung der Modi (Aux, FM, DAB etc.) zu den technischen IDs.
Ich habe ein Medion MD 87238 bei dem die Funktionen auch "falsch" verdrahtet sind.
Alternativ kann ich auch gerne einen Patch beisteuern, in dem wir einen weiteren Geräte-Typ einführen. Ich war da schon mal dran, damals hat mit aber die mangelnde Fehlerbehandlung im Modul das Thema verleidet. Mit dem Patch würde ich aber noch warten, bis Jörg seine überarbeitete Version bringt.
Hallo,
da ich bei "Model" schon "IR110" und "sird14" probiert habe, dachte ich das wäre nicht mehr wichtig ;D
Im Moment steht da wieder "sird14".
Die Inputs lauten:
DAB Radio
FM Radio
Aux in
Internet Radio
Spotify Steuerung
Musik - abspieler
das ist zumindest das, was im Display erscheint.
Tschö,
Oli
Zitat@mrfloppy:
Nach deinem Umlaut-Problem werde ich sehen.
Hattest du den PresetListRequest bei dir eingebaut? Ich hatte es bei mir wieder ausgeschaltet, da das zeitgleich mit der Bootschleife kam und ich mir zuerst nicht sicher war woher es kommt.
Wenn du dadurch bisher keine Probleme hattest, gib bitte mal eine kurze Info.
Fehlermeldungen habe ich keine bisher dadurch gehabt.
Jedoch nach dem letzten restart von FHEM waren wieder keine Presets da.
Musste ich extra requesten.
Sonst keine Probleme damit.
Zitat von: Oli_t am 11 April 2017, 20:02:18da ich bei "Model" schon "IR110" und "sird14" probiert habe, dachte ich das wäre nicht mehr wichtig ;D
Doch, doch, das ist schon wichtig! ;)
Wenn ich das Modul jetzt bearbeite, werde ich es, auch wenn es etwas länger dauert, so gut wie möglich machen!
Zitat von: mrfloppy am 11 April 2017, 20:33:15Fehlermeldungen habe ich keine bisher dadurch gehabt.
Das wollte ich hören, oder besser gesagt lesen! ;D
So, es gibt als Dateianhang eine spezielle 17_SIRD.pm.
Es handelt sich dabei nicht um ein Update !!!Die Version ist die Selbe, die ihr schon habt. Sie hat nur eine Erweiterung im Log, die es mir ermöglicht Die Eingänge den ID's zuordnen zu können.
Das gilt besonders für Oli mit einem
IR110 und weini mit einem
MD 87238 !!!
Ich brauche an der Stelle wirklich eure Hilfe!
Wenn ihr die Version eingebunden habt, erscheinen nach dem Einschalten des Radios spezielle Logeinträge, die so aussehen:
2017.04.12 08:38:09 1: ====================================================================
2017.04.12 08:38:09 1: Testlog Input ID: 0 Name des Eingangs, der am Gerät gewählt wurde:
2017.04.12 08:38:09 1: ====================================================================
2017.04.12 08:38:09 1: ====================================================================
2017.04.12 08:38:39 1: Testlog Input ID: 0 Name des Eingangs, der am Gerät gewählt wurde:
2017.04.12 08:38:09 1: ====================================================================
2017.04.12 08:38:09 1: ====================================================================
2017.04.12 08:39:06 1: Testlog Input ID: 4 Name des Eingangs, der am Gerät gewählt wurde:
2017.04.12 08:38:09 1: ====================================================================
2017.04.12 08:38:09 1: ====================================================================
2017.04.12 08:39:09 1: Testlog Input ID: 4 Name des Eingangs, der am Gerät gewählt wurde:
2017.04.12 08:38:09 1: ====================================================================
Dieses Log kopieren und um die Eingangsnamen erweitern. Bitte
alle Eingäne
am Gerät durchschalten, damit ich alle ID's bekomme! Danach bitte hier in der Form posten (Einmal pro ID reicht ;D ):
2017.04.12 08:38:09 1: ====================================================================
2017.04.12 08:38:09 1: Testlog Input ID: 0 Name des Eingangs, der am Gerät gewählt wurde: InternetRadio
2017.04.12 08:38:09 1: ====================================================================
2017.04.12 08:38:09 1: ====================================================================
2017.04.12 08:39:06 1: Testlog Input ID: 4 Name des Eingangs, der am Gerät gewählt wurde: AUX
2017.04.12 08:38:09 1: ====================================================================
usw.
@weini:
Die Idee mit den Attributen ist eigentlich nicht schlecht, aber aus der Sicht der Endbenutzer zu aufwändig. Ich vergleiche das einmal mit dem Kauf eines Autos (Der Vergleich hinkt ein wenig ;D ). Wenn ich das Auto bekomme, muss ich mir ja auch nicht erst den Sitz und das Lenkrad einbauen, damit ich fahren kann. ;)
LG Jörg
Hallo Jörg,
soll dabei etwas anderes rauskommen als in meinem Beitrag #132 geschrieben?
Wie dem auch sei:
friendlyName SilverCrest SIRD 14 A2
<fsapiResponse>
<status>FS_OK</status>
<item key="0">
<field name="id"><c8_array>IR</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>Internet Radio</c8_array></field>
</item>
<item key="1">
<field name="id"><c8_array>MP</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>Musikplayer</c8_array></field>
</item>
<item key="2">
<field name="id"><c8_array>DAB</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>DAB</c8_array></field>
</item>
<item key="3">
<field name="id"><c8_array>FM</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>FM</c8_array></field>
</item>
<item key="4">
<field name="id"><c8_array>AUXIN</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>AUX in</c8_array></field>
</item>
<item key="5">
<field name="id"><c8_array>DMR</c8_array></field>
<field name="selectable"><u8>0</u8></field>
<field name="label"><c8_array>DMR</c8_array></field>
</item>
<item key="6">
<field name="id"><c8_array>NETWORK</c8_array></field>
<field name="selectable"><u8>0</u8></field>
<field name="label"><c8_array></c8_array></field>
</item>
<listend/>
</fsapiResponse>
2017.04.12 17:25:16 1: ====================================================================================================
2017.04.12 17:25:16 1: Testlog Input ID: 0 Name des Eingangs, der am Gerät gewählt wurde: Internetradio
2017.04.12 17:25:16 1: ====================================================================================================
2017.04.12 17:26:01 1: ====================================================================================================
2017.04.12 17:26:01 1: Testlog Input ID: 1 Name des Eingangs, der am Gerät gewählt wurde: Musik - Player
2017.04.12 17:26:01 1: ====================================================================================================
2017.04.12 17:26:16 1: ====================================================================================================
2017.04.12 17:26:16 1: Testlog Input ID: 2 Name des Eingangs, der am Gerät gewählt wurde: DAB - Radio
2017.04.12 17:26:16 1: ====================================================================================================
2017.04.12 17:26:46 1: ====================================================================================================
2017.04.12 17:26:46 1: Testlog Input ID: 3 Name des Eingangs, der am Gerät gewählt wurde: FM - Radio
2017.04.12 17:26:46 1: ====================================================================================================
not well-formed (invalid token) at line 3, column 54, byte 93 at /usr/lib/perl5/vendor_perl/XML/Parser.pm line 187.
XML::Simple called at ./FHEM/17_SIRD.pm line 672.
2017.04.12 17:26:51 2: SIRD Init module
2017.04.12 17:27:16 1: ====================================================================================================
2017.04.12 17:27:16 1: Testlog Input ID: 4 Name des Eingangs, der am Gerät gewählt wurde: AUX in
2017.04.12 17:27:16 1: ====================================================================================================
Danke, dass Du an diesem Modul weiter entwickelst!
Zitat von: SommerSonnenWende am 12 April 2017, 17:40:19
Hallo Jörg,
soll dabei etwas anderes rauskommen als in meinem Beitrag #132 geschrieben?...
Hallo SommerSonnenWende,
nein, etwas Anderes nicht, aber es ist mit meiner Version aus der Sicht eines Endanwenders mit Sicherheit einfacher.
Sicherlich werden viele Anwender schwierigkeiten haben, eine XML-Antwort aus ihrem Radio zu bekommen. Da finde ich die Lösung, die ich in das Modul eingebaut habe wesentlich einfacher. Denn hättest du Zeit und Lust hier zig Anfragen zu bearbeiten, bis alle verstanden haben, wie das genau geht? (Will damit Niemanden zu nahe treten)
So waren es für mich exakt drei Zeilen Code, die ich in das Test-Modul eingebaut habe.
Meiner Meinung nach sollte man sich als Programmierer immer in die Lage des Endanwenders versetzen, ob das was man da programmiert hat auch für den Endanwender sinnvoll und vor allen Dingen einfach zu bedienen ist.
Um auch auf deinen Beitrag 132 einzugehen, Gerätespezifisch wird es ab der nächsten Version. Aber dazu brauche ich die Infos, um die ich gebeten habe. Deine sind schon eingebaut und sollten nun funktionieren.
Nur mal zur Info, so sieht der Unterschied zwischen den SilverCrest A2 B1 und dem C2 aus:
#########################
# SIRD A2 B1
#------------------------
# InternetRadio = 0
# MediaPlayer = 1
# DAB-Radio = 2
# FM-Radio = 3
# AUX = 4
#########################
# SIRD C2
#------------------------
# InternetRadio = 0
# Tidal = 1
# Deezer = 2
# Qobuz = 3
# Spotify = 4
# MediaPlayer = 6
# DAB-Radio = 7
# FM-Radio = 8
# AUX = 9
ZitatDanke, dass Du an diesem Modul weiter entwickelst!
Das mache ich gerne und es macht mir auch Spass !
LG Jörg
Hallo Jörg!
Erste mal auch von mir vielen Dank, dass du dich des Moduls annimmst.
Hier der gewünschte Log Auszug für den
MD 87238
2017.04.12 19:39:38.903 1: ====================================================================================================
2017.04.12 19:39:38.913 1: Testlog Input ID: 0 Name des Eingangs, der am Gerät gewählt wurde: Internet Radio
2017.04.12 19:39:38.913 1: ====================================================================================================
2017.04.12 19:41:08.925 1: ====================================================================================================
2017.04.12 19:41:08.926 1: Testlog Input ID: 1 Name des Eingangs, der am Gerät gewählt wurde: Musik Player
2017.04.12 19:41:08.927 1: ====================================================================================================
2017.04.12 19:42:09.090 1: ====================================================================================================
2017.04.12 19:42:09.090 1: Testlog Input ID: 2 Name des Eingangs, der am Gerät gewählt wurde: FM Radio
2017.04.12 19:42:09.091 1: ====================================================================================================
2017.04.12 19:43:09.260 1: ====================================================================================================
2017.04.12 19:43:09.261 1: Testlog Input ID: 3 Name des Eingangs, der am Gerät gewählt wurde: AUX in
2017.04.12 19:43:09.261 1: ====================================================================================================
Einen Kommentar kann ich mir dann aber nicht verkneifen: ;)
Zitat@weini:
Die Idee mit den Attributen ist eigentlich nicht schlecht, aber aus der Sicht der Endbenutzer zu aufwändig. Ich vergleiche das einmal mit dem Kauf eines Autos (Der Vergleich hinkt ein wenig ;D ). Wenn ich das Auto bekomme, muss ich mir ja auch nicht erst den Sitz und das Lenkrad einbauen, damit ich fahren kann. ;)
Da sehe ich FHEM (und das soll in keiner Weise abwertend sein) dann doch eher als die Seifenkiste oder den Buggy: Das Tolle an FHEM ist für mich gerade, dass ich bis zu den Kolben und Zylindern meine Hausautomationslösung sehr stark individualisieren kann.
Viele Grüße,
weini
Zitat von: weini am 12 April 2017, 19:49:32Einen Kommentar kann ich mir dann aber nicht verkneifen: ;)Da sehe ich FHEM (und das soll in keiner Weise abwertend sein) dann doch eher als die Seifenkiste oder den Buggy: Das Tolle an FHEM ist für mich gerade, dass ich bis zu den Kolben und Zylindern meine Hausautomationslösung sehr stark individualisieren kann.
Hallo weini,
bis zu einem gewissen Punkt gebe ich dir da recht. FHEM ist eine phantastische Spielwiese, auf der man sich wunderbar austoben kann !!! ;D
Dein MD 87238 ist im Modul eingebaut.
LG Jörg
1000 Dank dafür an dich!
Hallo Jörg,
... ist schon recht. Ich ging / gehe davon aus, dass man die XML-Abfrage in das SIRD - Modul implementieren kann. Die Antwort enthält ja quasi die zur Verfügung stehenden Quellen. Nun könnte man entsprechende Readings, z.B. source_0, source_1, ... mit entsprechenden Bezeichnungen, z.B. DAB-Radio, AUX, ... füllen. Ob das sinnvoll ist? Kann ich mangels PERL- und FHEM-interna-Kenntnissen nicht beantworten.
Möglicherweise steht der erwähnte Modi-Abfragebefehl aber auch nicht bei allen Geräten zur Verfügung?
Ich freue mich jedenfalls, dass "mein" Radio demnächst besser unterstützt wird. Besten Dank!
Das war mit Sicherheit auch nicht böse gemeint. :) :)
Habe deinen Hinweis falsch verstanden. Ich habe das so interpretiert, dass die User die Infos selber per XML abfragen sollten. ;D
Deine Version schaue ich mir mal an. Wenn ich das so hinbekomme, werde ich das auch ändern. Es ist mit der nächsten Version ja nicht das Ende der Fahnenstange erreicht. Wenn es etwas zu verbessern gibt, werde ich das auch machen. Momentan ist das aber der beste und schnellste Weg die Radios erst einmal wieder vernünftig ans laufen zu bekommen.
@weini:
Gerne geschehen! ;)
Jetzt hoffe ich nur, dass HAMA aus den Puschen kommt. ;D
LG Jörg
Hallo Jörg,
irgendwie kann ich ID 2 überhaupt nicht auswählen, dafür passiert bei ID 6 Nichts:
====================================================================================================
2017.04.13 08:25:41 2: SIRD set Radio input InternetRadio
2017.04.13 08:25:41 1: ====================================================================================================
2017.04.13 08:25:41 1: Testlog Input ID: 0 Name des Eingangs, der am Gerät gewählt wurde: InternetRadio
2017.04.13 08:25:41 1: ====================================================================================================
2017.04.13 08:26:27 1: ====================================================================================================
2017.04.13 08:26:27 1: Testlog Input ID: 0 Name des Eingangs, der am Gerät gewählt wurde: InternetRadio
2017.04.13 08:26:27 1: ====================================================================================================
2017.04.13 08:26:38 2: SIRD set Radio input Spotify
2017.04.13 08:26:38 1: ====================================================================================================
2017.04.13 08:26:38 1: Testlog Input ID: 1 Name des Eingangs, der am Gerät gewählt wurde: Spotify
2017.04.13 08:26:38 1: ====================================================================================================
2017.04.13 08:27:28 1: ====================================================================================================
2017.04.13 08:27:28 1: Testlog Input ID: 1 Name des Eingangs, der am Gerät gewählt wurde: Spotify
2017.04.13 08:27:28 1: ====================================================================================================
2017.04.13 08:27:38 2: SIRD set Radio input MediaPlayer
2017.04.13 08:27:38 1: ====================================================================================================
2017.04.13 08:27:38 1: Testlog Input ID: 3 Name des Eingangs, der am Gerät gewählt wurde: DAB-Radio
2017.04.13 08:27:38 1: ====================================================================================================
2017.04.13 08:28:27 1: ====================================================================================================
2017.04.13 08:28:27 1: Testlog Input ID: 3 Name des Eingangs, der am Gerät gewählt wurde: DAB-Radio
2017.04.13 08:28:27 1: ====================================================================================================
2017.04.13 08:28:28 2: SIRD set Radio input DAB-Radio
2017.04.13 08:28:28 1: ====================================================================================================
2017.04.13 08:28:28 1: Testlog Input ID: 4 Name des Eingangs, der am Gerät gewählt wurde: FM-Radio
2017.04.13 08:28:28 1: ====================================================================================================
2017.04.13 08:29:01 2: SIRD set Radio input FM-Radio
2017.04.13 08:29:01 1: ====================================================================================================
2017.04.13 08:29:01 1: Testlog Input ID: 5 Name des Eingangs, der am Gerät gewählt wurde: AUX
2017.04.13 08:29:01 1: ====================================================================================================
2017.04.13 08:29:27 1: ====================================================================================================
2017.04.13 08:29:27 1: Testlog Input ID: 5 Name des Eingangs, der am Gerät gewählt wurde: AUX
2017.04.13 08:29:27 1: ====================================================================================================
2017.04.13 08:29:40 2: SIRD set Radio input AUX
2017.04.13 08:29:40 1: ====================================================================================================
2017.04.13 08:29:40 1: Testlog Input ID: 6 Name des Eingangs, der am Gerät gewählt wurde: keine Änderung
2017.04.13 08:29:40 1: ====================================================================================================
Das könnte bedeuten, daß der Media-Player auf ID 2 oder 6 gemapped wurde. Gibt es keinen Weg, die Einträge direkt vom Gerät zu lesen ?
Tschö,
Oli
Hallo Oli,
du solltest die Eingänge ja auch am Gerät selber auswählen und dann am Gerätedisplay ablesen welcher Eingang es ist. Mit "SIRD set Radio input blabla" kommen wir nicht weiter. Das wird erst richtig funktionieren, wenn ich das in das Modul eingetragen habe.
Wäre nett, wenn du das heute noch machst, dann kann ich das Update fertig machen. ;)
Die fehlende ID 2 kann normal sein, da die zu Reservezwecken, Seitens der Herstellerfirma nicht belegt ist.
Bei meinem SIRD C2 fehlt auch die ID 5.
LG Jörg
Hallo Jörg,
das kommt aber doch auf das gleiche Ergebnis raus, so lange ich daneben schreibe was im Display stand ;D
Der Media-Player ist bei mir tatsächlich auf ID 2. Also nochmal zusammengefasst:
Hama DIR3000
ID0: Internet Radio
ID1: Spotify Steuerung
ID2: Musik-abspieler
ID3: DAB Radio
ID4: FM Radio
ID5: AUX in
Tschö,
Oliver
Hallo zusammen,
hier ist nun das Update. :)
Vorab, die meisten PERL WARNINGS sind beseitigt, aber leider noch nicht alle. Daher sind die für "uninitialized" auch weiterhin noch generell deaktiviert.
Wenn aus welchen Gründen auch immer ein Radio im Netzwerk nicht erreichbar war, quittierte FHEM das mit einer Bootschleife. Das ist gefixt. Wenn jemand mutig ist, kann er das Radio mal von Netz trennen. FHEM läuft durch. ;D
Volume:
Beim ausschalten wurde das Reading für Volume und volumeStraight gelöscht und der Slider auf 0 gesetzt. Nach dem Einschalten wurde aber nichts aktualisiert. Das ist auch gefixt. Wenn man nun die Lautstärke am Gerät ändert, wird das auch im Webinterface angezeigt. Zusätzlich den volumeStraight Slider auf default-Anzeige gesetzt, da die Radios intern mit Werten von 0-20 arbeiten und nicht 0-100.
Zusätzliches Attribut:
Ihr habt nun die Möglichkeit mit Hilfe des Attributs presetListRequestMode die Preset Listen automatisch aktualisieren zu lassen. Das funktioniert auch, wenn man den Eingang wechselt.
Das Attribut wird folgendermaßen gesetzt:
attr <Radioname> presetListRequestMode 3
Möglich sind die Werte 0 / 1 / 2 / 3
0 = deaktiviert (entspricht auch wenn das Attribut nicht gesetzt ist)
1 = nur im eingeschalteten Zustand des Radios
2 = nur im ausgeschalteten Zustand des Radios
3 = im ein und ausgeschalteten Zustand des Radios
Der Status wird in den Readings angezeigt.
Nach einigen Testtagen wäre es gut, wenn ihr dazu ein kurzes Feedback schreiben würdet. ;)
Input:
Der Inputbereich im Modul musste angepasst werden, da sich die Eingangs IDs und Eingangsnamen im Laufe der Zeit durch Firmwareupdates der Hersteller geändert haben.
Dadurch mussten die Radiogeräte etwas feiner unterteilt werden.
Früher reichte bei der Definition der Eitnrag define <Radioname> SIRD 192.168.0.43 1234 sird14.
Wenn man ein zum Beispiel ein SIRD14 B1 hat, muss die Definition jetzt so aussehen: define <Radioname> SIRD 192.168.0.43 1234 sird14b1 !!!
Das ist wichtig, sonst stimmen die Eingangszuordnungen nicht!
Das gilt zur Zeit für folgende Radiotypen:
SIRD 14 A2 / B1 / C2 -> sird14a2 / sird14b1 / sird14c2
HAMA -> IR110
Medion -> MD87238
Die Angaben hinter den Pfeilen entsprechen denen in der Definition.
Wenn da noch jemand einen Exoten hat, bei dem die Eingangszuordnung nicht funktioniert, bitte hier im Forum melden.
Dann testet mal ...
LG Jörg
Zitat von: Oli_t am 13 April 2017, 09:41:43das kommt aber doch auf das gleiche Ergebnis raus...
Hallo Oli,
zwischen ID 6 und ID 2 ist ein gravierender Unterschied !!! ;)
LG Jörg
Du bist ja schneller als die Polizei erlaubt ;D
Auf den ersten Blick funktioniert alles. Vielen Dank !
Tschö,
Oli
Hallo Jörg,
kannst du den SMRS 18 A1 auch in das Modul aufnehmen. Wenn du Infos, bzw. Logs zu dem Gerät brauchst, kann ich gerne weiterhelfen.
Gruß, Sascha
Zitat von: Cybers am 13 April 2017, 13:23:30kannst du den SMRS 18 A1 auch in das Modul aufnehmen...
Hallo Sascha,
na klar doch. Immer her damit. ;D
Wenn nicht schon geschehen, kannst du die 17_sird.pm aus Beitrag 160 nehmen.
Ist SMRS der Firmenname?
LG Jörg
Der SMRS 18 A1 ist auch von Silvercrest. Ist ein WLan Multiroom-Lautsprecher.
Gruß, Sascha
Welche Spezifikationen braucht der denn?
LG Jörg
- Lautstärke
- An / Aus bzw. Deep Standby
- Eingangsmodus: Internetradio, Streamingdienste wie Spotify, Aux in, UPNP/DLNA/USB
- Favoritenliste
Ich beschäftige mich auch erst seit ein paar Tagen mit dem Gerät. An-/Ausschalten geht mit deinem Modul und Sird. Mehr habe ich noch nicht getestet.
Hier mal ein Link zur Homepage: http://www.silvercrest-multiroom.de/produkte/wlan-lautsprecher-18-w/ (http://www.silvercrest-multiroom.de/produkte/wlan-lautsprecher-18-w/)
und hier zur Anleitung: http://www.silvercrest-multiroom.de/fileadmin/user_upload/pdf/handbucher/Bedienungsanleitungen/18%20w/116070_SMRS_18_A1_Multiroom-Lautsprecher_ML4_GB_CZ_DE_V1_22a.pdf (http://www.silvercrest-multiroom.de/fileadmin/user_upload/pdf/handbucher/Bedienungsanleitungen/18%20w/116070_SMRS_18_A1_Multiroom-Lautsprecher_ML4_GB_CZ_DE_V1_22a.pdf)
Gruß, Sascha
Hi Jörg,
danke, dass du soviel zu dem Modul beitragen kannst und das bereitwillig teilst.
Ich habe eine kleine Frage zu der neuen DEF. Du hast es nicht explizit aufgeführt, aber welcher Typ ist anzugeben, wenn ich ein SIRD 14 C1 habe:
ZitatSIRD 14 A2 / B1 / C2 -> sird14a2 / sird14b1 / sird14c2
Muss ich ausprobieren welcher davon zu meinem passt oder kann ich auch sird14c1 angeben?
Danke vielmals und beste Grüße,
Tim
Hallo ihr Beiden,
macht bitte das Log mit der 17_sird.pm aus dem Beitrag 160 https://forum.fhem.de/index.php/topic,32030.msg619329.html#msg619329 (https://forum.fhem.de/index.php/topic,32030.msg619329.html#msg619329)
Die Eingänge bitte am Gerät umschalten.
Logergebnisse hier posten, dann kann ich mehr sagen, oder die 17_sird.pm erweitern. Dort habe ich das aber auch beschrieben.
LG Jörg
ich habe das medion md87180, und wenn ich ir110 auswähle dann nimmt er bei input dab mediaplayer an. sonst funktioniert das update schon gut
Hallo Homer,
für dich gilt auch das, was einen Beitrag vor deinem steht. ;)
LG Jörg
Ich habe hier einen SilverCrest SMRS18A1 eingebunden.
momentan noch so definiert
defmod IRadio SIRD 10.x.x.x 1234 30 60
das steht im Log nach dem Umschalten der Eingänge.
Im Bild siehst du wie die Kanäle in der App benannt sind.
Bekomme später noch einen SMRS30A1, den ich dann auch logge und dir Bescheid gebe was der so ausspuckt.
2017.04.14 13:29:17 2: SIRD Init module
2017.04.14 13:30:00 1: ====================================================================================================
2017.04.14 13:30:00 1: Testlog Input ID: 3 Name des Eingangs, der am Gerät gewählt wurde:
2017.04.14 13:30:00 1: ====================================================================================================
2017.04.14 13:31:00 1: ====================================================================================================
2017.04.14 13:31:00 1: Testlog Input ID: 2 Name des Eingangs, der am Gerät gewählt wurde:
2017.04.14 13:31:00 1: ====================================================================================================
2017.04.14 13:32:01 1: ====================================================================================================
2017.04.14 13:32:01 1: Testlog Input ID: 7 Name des Eingangs, der am Gerät gewählt wurde:
2017.04.14 13:32:01 1: ====================================================================================================
2017.04.14 13:33:01 1: ====================================================================================================
2017.04.14 13:33:01 1: Testlog Input ID: 1 Name des Eingangs, der am Gerät gewählt wurde:
2017.04.14 13:33:01 1: ====================================================================================================
2017.04.14 13:34:01 1: ====================================================================================================
2017.04.14 13:34:01 1: Testlog Input ID: 2 Name des Eingangs, der am Gerät gewählt wurde:
2017.04.14 13:34:01 1: ====================================================================================================
2017.04.14 13:35:01 1: ====================================================================================================
2017.04.14 13:35:01 1: Testlog Input ID: 3 Name des Eingangs, der am Gerät gewählt wurde:
2017.04.14 13:35:01 1: ====================================================================================================
2017.04.14 13:36:04 1: ====================================================================================================
2017.04.14 13:36:04 1: Testlog Input ID: 4 Name des Eingangs, der am Gerät gewählt wurde:
2017.04.14 13:36:04 1: ====================================================================================================
2017.04.14 13:37:04 1: ====================================================================================================
2017.04.14 13:37:04 1: Testlog Input ID: 5 Name des Eingangs, der am Gerät gewählt wurde:
2017.04.14 13:37:04 1: ====================================================================================================
2017.04.14 13:38:04 1: ====================================================================================================
2017.04.14 13:38:04 1: Testlog Input ID: 7 Name des Eingangs, der am Gerät gewählt wurde:
2017.04.14 13:38:04 1: ====================================================================================================
2017.04.14 13:39:09 1: ====================================================================================================
2017.04.14 13:39:09 1: Testlog Input ID: 8 Name des Eingangs, der am Gerät gewählt wurde:
2017.04.14 13:39:09 1: ====================================================================================================
Also Internet Radio ist ID:0 und dann laufend weiter.....
Ahja bitte schmeiss die Lautstärke abfrage auch in die Abfrage wenn die Lautsprecher abgedreht sind dazu.
So wie die presetlist abfrage.
kurze Fragen:
1. Der PIN ist immer 1234?
2. Wie muss ich mein MD87385 einbinden(definieren)? M
Die IP ist mir bekannt.
Danke für das Modul.
Hier noch die Lste für ein TechniSat Digitradio 580
0 InternetRadio
1 Spotify
3 Media Player
4 DAB
5 FM Radio
6 Aux In
7 CD
8 Bluetooth
Beim SilverCrest SMRS30A1 sind dieEingänge die selben wie beim SMRS18A1.
War eigentlich eh klar da die selbe App und eigentlich nur mehr Watt/anderes Aussehen.
LG
Hallo zusammen,
@mrfloppy:
Soll der Eingang "Lokale Musik", Musik über USB bedeuten?
Meintest du , dass die Lautstärke im ausgeschalteten Zustand nicht auf 0 gehen soll?
Ich sage nur gleich, wenn das Gerät aus ist, ist kein Ändern der Lautstärke möglich!
@Thargor:
Werde ich so als TechniSatDR580 einbauen.
@Hoggle:
1234 ist der default Pin, wenn du ihn nicht irgendwie geändert hast.
Was das MD87385 betrifft, bitte mit der SIRD.pm aus dem Beitrag in meiner Signatur ein Log erstellen, damit ich es einbinden kann.
LG Jörg
ZitatSoll der Eingang "Lokale Musik", Musik über USB bedeuten?
Das sind die Lieder die am Handy oder am Tab sind, Sprich dort wo die App benutzt wird.
Und der Eingang Music Player unterteilt sich in der App noch in Shared media und USB playback siehe Screenshot.
ZitatMeintest du , dass die Lautstärke im ausgeschalteten Zustand nicht auf 0 gehen soll?
Ja genau. Hatte es hinzugefügt gehabt und funktioniert ohne Fehlermeldung.
ZitatIch sage nur gleich, wenn das Gerät aus ist, ist kein Ändern der Lautstärke möglich!
Doch funktioniert bei mir zumindest auf den SilverCrest Geräten.
Deswegen würde ich den Zustand auch gern sehen.
Gut, dann möchte ich dich bitten anhand der Screenshots mir eine vernünftige Liste zu erstellen. Sonst stimmt es nachher wieder nicht und ich habe hier die doppelte Arbeit.
ZitatGut, dann möchte ich dich bitten anhand der Screenshots mir eine vernünftige Liste zu erstellen. Sonst stimmt es nachher wieder nicht und ich habe hier die doppelte Arbeit.
Hm ich nehm mal an das ging an mich.
Welche Liste? Also wenn ich shared media abspiele ist die ID auch 7 , ebenso als wenn ich Usb Player abspiele.
Man muss dazu siehe Screenshot, rechts oben auf durchsuchen gehen und dort dann auswählen Laufwerk und Ordner und Mp3.
Weis nicht wie man das so umsetzen kann im Modul.
Sonst sind die Eingänge wie am Screenshot von ID 0-8
Was mir aufgefallen ist:
Der Slider bei Volume ist verschwunden?
Volume nicht mehr der vorgewählte Punkt.
LG und man kann es nicht oft genug wiederholen
DANKEE für deinen Einsatz bei dem Modul
Gerade noch bemerkt nachdem ich die letzte Version wieder installiert habe:
2017.04.14 21:31:09 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:09 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:09 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:10 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:10 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:18 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:19 2: SIRD set IRadio_SMRS30A1 off
2017.04.14 21:31:19 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:34 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:34 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:34 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:34 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:34 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:34 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:34 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:34 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:34 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:34 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:35 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:35 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:35 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:35 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:35 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:35 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:35 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:35 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:35 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:35 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:42 2: SIRD set IRadio_SMRS30A1 volume 25
2017.04.14 21:31:43 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:43 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:43 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:46 2: SIRD set IRadio_SMRS30A1 on
2017.04.14 21:31:47 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:47 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:48 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:48 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:48 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:48 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:48 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:48 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:48 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:48 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:48 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:48 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:49 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:49 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:49 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:49 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:49 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:31:58 2: SIRD set IRadio_SMRS30A1 off
2017.04.14 21:31:58 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:32:04 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:32:04 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:32:04 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:32:04 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:32:04 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:32:04 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:32:04 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:32:04 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:32:04 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:32:04 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:32:05 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:32:05 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:32:05 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:32:05 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:32:05 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:16 2: SIRD set IRadio_SMRS30A1 on
2017.04.14 21:36:16 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:20 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:20 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:21 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:21 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:21 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:21 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:21 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:21 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:21 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:21 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:21 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:21 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:21 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:22 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:22 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:22 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:22 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:22 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:29 2: SIRD set IRadio_SMRS30A1 volume 15
2017.04.14 21:36:29 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:29 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:29 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:30 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:38 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:38 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:38 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:38 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:51 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:36:57 3: CCURPC: CB9292 Received 500 events from CCU since last check
2017.04.14 21:37:09 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:37:23 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:37:34 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:37:35 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:37:35 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:37:39 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:37:53 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:38:09 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:38:18 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:38:23 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:38:23 1: ON ATTR PLR Test: 3
2017.04.14 21:38:23 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:38:41 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:38:54 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:38:56 2: SIRD set IRadio_SMRS30A1 ?
2017.04.14 21:38:56 2: SIRD set IRadio_SMRS30A1 ?
Habe wieder eine alte Version genommen weil so müllt er mir das LOGfile zu.
Da ja versch. Radiotypen im MoDul dann vorhanden sind, möchtest du alle eigens etwas anpassen nehme ich an.
Habe dir mal meine Readings angehängt.
Die SilverCrest Multiroom Speaker haben zb keinen DAB oder FM Radio. Könnte man ev rausnehmen.
Wunsch wäre auch meinerseits das die Readings stehen bleiben zb:
currentAlbum, currentArtist, currentTitle, graphicUri, infoText, input, volume, repeat, shuffle
schönen Abend noch. Gn8 für heute
Hallo Profis
Beim Versuch das HAMA DIR3000 in FHEM einzurichten scheitere ich.
Ich finde leider auch nichts darüber, wie man überprüft ob die
benötigten Module HTTPUTILS, Encode und XML::Simple "vorhanden" sind.
Bei einer Neuinstallation würden die Module wohl automatisch eingerichtet.
Mein FHEM ist aber schon seit einiger Zeit immer nur über Update auf den
neueren Stand gebracht worden. Kann mir da jemand einen guten Tip fürs
weitere vorgehen geben?
Vielen Dank für die super Module die hier im FHEM erstellt werden.
Schöne Grüße
NewRasPi
Die in Antwort 160 geänderte 17_SIRD.pm ergibt im LOG diese Angaben:
2017.04.15 11:35:00 2 : SIRD set HAMARadio on
2017.04.15 11:35:00 5 : SIRD: URL : 'http://xx.xx.xxx.xx:80/fsapi/GET/netRemote.sys.power?pin=1234&sid='
2017.04.15 11:35:00 5 : SIRD: response from device: ''
2017.04.15 11:35:00 5 : SIRD: URL : 'http://xx.xx.xxx.xx:80/fsapi/CREATE_SESSION?pin=1234'
2017.04.15 11:35:00 5 : SIRD: response from device: ''
2017.04.15 11:35:00 5 : SIRD: URL : 'http://xx.xx.xxx.xx:80/fsapi/SET/netRemote.sys.power?pin=?pin=1234&sid=&value=1'
2017.04.15 11:35:00 5 : SIRD: response from device: ''
2017.04.15 11:35:00 5 : SIRD: URL : 'http://xx.xx.xxx.xx:80/fsapi/GET/netRemote.sys.power?pin=1234&sid='
2017.04.15 11:35:00 5 : SIRD: response from device: ''
(xx.xx.xxx.xx = von Hand geändert/versteckt)
Das List:
Internals:
DEF xx.xx.xxx.xx 1234 IR110 [IP versteckt]
INTERVAL 30
IP xx.xx.xxx.xx
Model IR110
NAME HAMARadio
NR 221
PASSWORD 1234
STATE absent
TYPE SIRD
logLevel 2
Readings:
2017-04-15 11:14:11 currentAlbum
2017-04-15 11:14:11 currentArtist
2017-04-15 11:14:11 currentDuration
2017-04-15 11:14:11 currentPosition
2017-04-15 11:14:11 currentTitle
2017-04-15 11:14:11 dABScan
2017-04-15 11:14:11 frequency
2017-04-15 11:14:11 friendlyName
2017-04-15 11:14:11 graphicUri
2017-04-15 11:14:11 infoText
2017-04-15 11:14:11 input
2017-04-15 11:14:49 lastcommand on
2017-04-15 11:14:11 localDate
2017-04-15 11:14:11 localTime
2017-04-15 11:14:11 mute
2017-04-15 11:14:11 navCaps
2017-04-15 11:14:11 navNumItems
2017-04-15 11:14:11 navStatus
2017-04-15 11:14:11 playCaps
2017-04-15 11:14:11 playRate
2017-04-15 11:14:11 playStatus
2017-04-14 14:25:22 power off
2017-04-14 14:25:22 presence absent
2017-04-15 11:14:11 radioID
2017-04-15 11:14:11 remoteState
2017-04-15 11:14:11 repeat
2017-04-15 11:14:11 searchTerm
2017-04-15 11:14:11 shuffle
2017-04-15 11:14:11 signalStrength
2017-04-15 11:14:11 version
2017-04-15 11:14:11 volume
2017-04-15 11:14:11 volumeSteps
2017-04-15 11:14:11 volumeStraight
Helper:
Attributes:
disable 0
room 1.7_Esszimmer
userattr disable
verbose 5
"Version" ergibt diese Auskunft:
Latest Revision: 13995
File Rev Last Change
fhem.pl 13989 2017-04-14 15:01:35Z rudolfkoenig
96_allowed.pm 13492 2017-02-23 09:11:20Z rudolfkoenig
90_at.pm 13840 2017-03-29 07:52:29Z rudolfkoenig
98_autocreate.pm 11984 2016-08-19 12:47:50Z rudolfkoenig
70_BRAVIA.pm 13836 2017-03-28 18:51:45Z vuffiraa
10_CUL_HM.pm 13437 2017-02-18 19:37:01Z martinp876
98_DOIF.pm 13965 2017-04-10 21:07:23Z Damian
98_dummy.pm 12700 2016-12-02 16:49:42Z rudolfkoenig
91_eventTypes.pm 11984 2016-08-19 12:47:50Z rudolfkoenig
72_FB_CALLLIST.pm 13524 2017-02-26 10:37:41Z markusbloch
72_FB_CALLMONITOR.pm 13444 2017-02-19 13:01:48Z markusbloch
93_FHEM2FHEM.pm 13024 2017-01-09 15:16:44Z rudolfkoenig
01_FHEMWEB.pm 13888 2017-04-03 09:46:39Z rudolfkoenig
92_FileLog.pm 13565 2017-03-01 15:54:06Z rudolfkoenig
95_FLOORPLAN.pm 13735 2017-03-19 12:43:53Z UliM
No Id found for 58_GPIO4.pm
98_help.pm 13694 2017-03-13 19:24:13Z betateilchen
98_HMinfo.pm 13686 2017-03-12 16:49:12Z martinp876
00_HMLAN.pm 13605 2017-03-05 10:25:35Z martinp876
51_I2C_BMP180.pm 12059 2016-08-22 21:14:59Z klauswitt
52_I2C_MCP342x.pm 13424 2017-02-16 22:06:16Z klausw
52_I2C_SHT21.pm 12059 2016-08-22 21:14:59Z klauswitt
No Id found for 51_I2C_TSL2561.pm
91_notify.pm 13630 2017-03-06 21:05:08Z rudolfkoenig
11_OWDevice.pm 13114 2017-01-16 19:25:59Z neubert
10_OWServer.pm 13114 2017-01-16 19:25:59Z neubert
21_OWTHERM.pm 13642 2017-03-08 16:41:55Z phenning
00_OWX.pm 11098 2016-03-20 13:03:21Z pahenning
70_Pushbullet.pm 9730 2015-10-30 15:06:41Z fhainz
33_readingsGroup.pm 13721 2017-03-17 09:20:37Z justme1968
00_RPII2C.pm 12566 2016-11-13 17:06:19Z klauswitt
51_RPI_GPIO.pm 12129 2016-09-06 21:47:53Z klauswitt
17_SIRD.pm 41052 2017-03-28 16:41:14Z joergbackus
99_SUNRISE_EL.pm 12485 2016-11-01 15:18:51Z rudolfkoenig
98_SVG.pm 13919 2017-04-07 12:28:11Z rudolfkoenig
98_telnet.pm 13443 2017-02-19 12:51:22Z rudolfkoenig
59_Twilight.pm 12702 2016-12-02 23:14:18Z dietmar63
99_Utils.pm 13259 2017-01-28 17:39:39Z rudolfkoenig
98_version.pm 13628 2017-03-06 20:43:50Z markusbloch
59_Weather.pm 12559 2016-11-13 08:54:54Z borisneubert
98_weblink.pm 13558 2017-03-01 09:42:51Z rudolfkoenig
No Id found for 95_WebViewControl.pm
Blocking.pm 12648 2016-11-24 12:15:25Z rudolfkoenig
Color.pm 11159 2016-03-30 16:08:06Z justme1968
DevIo.pm 13865 2017-04-01 09:10:44Z rudolfkoenig
FritzBoxUtils.pm 6574 2014-09-19 17:32:48Z rudolfkoenig
HMConfig.pm 13261 2017-01-28 18:59:02Z martinp876
HttpUtils.pm 13980 2017-04-12 21:33:35Z rudolfkoenig <<<< 1. Modul also vorhanden?
myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig
# $Id: OWNet.pm,v 1.24 2013/02/02 11:41:28 alfille Exp $
No Id found for ProtoThreads.pm
RTypes.pm 10476 2016-01-12 21:03:33Z borisneubert
SetExtensions.pm 12935 2017-01-02 19:51:46Z rudolfkoenig
TcpServerUtils.pm 13967 2017-04-11 09:32:30Z rudolfkoenig
YahooWeatherAPI.pm 12465 2016-10-29 09:01:31Z borisneubert
fhemweb.js 13887 2017-04-03 08:21:53Z rudolfkoenig
fhemweb_colorpicker.js 13580 2017-03-02 13:03:29Z justme1968
fhemweb_fbcalllist.js 13629 2017-03-06 20:50:43Z markusbloch
fhemweb_readingsGroup.js 13580 2017-03-02 13:03:29Z justme1968
fhemweb_readingsHistory.js 13580 2017-03-02 13:03:29Z justme1968
fhemweb_sortable.js 13629 2017-03-06 20:50:43Z markusbloch
fhemweb_uzsu.js 13580 2017-03-02 13:03:29Z justme1968
Jetzt habe ich noch im MPD Wiki Beitrag diesen Befehl gefunden:
Installiertes Perl-Modul XML:Simple
Die Installation erfolgt mittels
sudo apt-get install libxml-simple-perl
da kommt als Meldung: "libxml-simple-perl ist schon die neueste Version" - also wäre auch dieses Modul schon vorhanden.
Bleibt noch die Frage: ist das Encode Modul vorhanden (und natürlich, warum läuft das Hama Internetradio nicht in FHEM - obwohl es mit der App Hama Smart Radio super klappt)
Hab das SIRD aus Post 160 in /opt/fhem/FHEM/ kopiert, Benutzer und Gruppe angepasst und nach "update" "shutdown restart" "define iradio SIRD xxx.xxx.xxx.xxx 1234" gemacht.
Nach initilize kommt absent im STATE.
Was muss ich jetzt tun? -Wo finde ich die Log Einträge?
Ich hab gerade auch noch mal geschaut, die IP passt.
Zitat von: Hoggle am 15 April 2017, 14:26:05
Hab das SIRD aus Post 160 in /opt/fhem/FHEM/ kopiert, Benutzer und Gruppe angepasst und nach "update" "shutdown restart" "define iradio SIRD xxx.xxx.xxx.xxx 1234" gemacht.
Nach initilize kommt absent im STATE.
Was muss ich jetzt tun? -Wo finde ich die Log Einträge?
Ich hab gerade auch noch mal geschaut, die IP passt.
Hallo Hoggle
Du hast ja den Typ z.B. IR110 oder sird14 etc. nicht angegeben.
Die Log- Einträge bekommt man wenn man links unten auf "Event Monitor" klickt. (ich mal das mit dem Scrollrad der Maus weil diese Seite dann in einem neuen Tab- Fenster geöffnet wird)
"Parameter:
<radio_ip_address>: Die IP-Adresse des Radios.
<password>: Das Passwort des Internetradios, normalerweise 1234.
<mode>: Verschiedene Modi
sird14: SILVERCREST® Stereo-Internetradio SIRD 14 C1 und kompatible
IR110: Hama Internetradio IR110 und kompatible"
Viel Erfolg
Zitat von: Thargor am 14 April 2017, 15:28:07Hier noch die Lste für ein TechniSat Digitradio 580
Hallo Thargor,
teste bitte die Angehängte version und poste, ob es so richtig ist.
define <Radioname> SIRD 192.168.0.43 1234 TechniSatDR580Die IP und den Radionamen natürlich anpassen. ;)
Das gilt zur Zeit in der Version für folgende Radiotypen:
SIRD 14 A2 / B1 / C2 -> sird14a2 / sird14b1 / sird14c2
HAMA -> IR110
Medion -> MD87238
TechniSat DR 580 -> TechniSatDR580
Die Angaben hinter den Pfeilen entsprechen denen in der Definition.
Das Ist die selbe Version, wie im Beitrag https://forum.fhem.de/index.php/topic,32030.msg619894.html#msg619894
Sie ist nur um das TechniSat DR 580 erweitert worden.
LG Jörg
So, mein MD87385 wird erkannt.
Wie folgt definiert: defmod IRadio SIRD xxx.xxx.xxx.xxx 1234 sird14
Folgende IDs werden beim umschalten erkannt:
id0 Internet Radio
id1 Mediaplayer
id2 DAB
id3 FM
id4 AUX
Ist das okay und hilft weiter?
Hallo Hoggle,
ja, das ist ok. Werde es so einbauen. :)
Noch eine Frage, hat das Gerät keinen Input für Spotify, oder ähnliches?
LG Jörg
Hallo Jörg,
schön, dass du dich dem Modul annimmst. Vergangenes Jahr habe es für das Numan Two getestet.
Hatte damals auch in den Grundzügen funktioniert https://forum.fhem.de/index.php/topic,63089.msg547127.html#msg547127 (https://forum.fhem.de/index.php/topic,63089.msg547127.html#msg547127).
Sollte ich einen neuen Test machen?
lg
Gernot
Zitat von: Jörg am 15 April 2017, 20:02:01
Noch eine Frage, hat das Gerät keinen Input für Spotify, oder ähnliches?
Hallo Jörg.
Habe nochmal geschaut.
Nee, kein Spotify oder ähnliches :(
Zitat von: supernova1963 am 16 April 2017, 07:03:05Sollte ich einen neuen Test machen?
Hallo Gernot,
aber sicher doch !!! :)
Nimm dazu bitte die 17_SIRD.pm aus dem Beitrag in meine Signatur, um ein Log zu erstellen. Dort ist auch alles Weitere beschrieben.
@Alle:
In der letzten Version habe ich beim Kopieren eine Klammer übersehen. Das habe ich in dieser Version korrigiert. In der neuen Version ist das MD87385 mit aufgenommen worden.
Die fehlerhafte Datei habe ich aus dem Anhang entfernt.
Es ist zur Zeit ein etwas umständlicher Weg. In den Anfangszeiten gab es wohl nur einige Geräte, die auf SIRD-Basis aufgebaut waren. Mittlerweile ist zum Einen die Anzahl der Geräte und Modelle größer geworden und zum Anderen durch Softwareupdates die älteren Geräte Erweitert und verbessert worden.
Es gibt gewisse Vorgaben, die die Programmierer beim Erstellen der Gerätefirmware einhalten müssen, aber die Eingangszuordnungen gehören nicht dazu. Das kann jeder nach gut düngen selber entscheiden. Dadurch ist für uns, oder besser gesagt hauptsächlich für mich, das Problem entstanden, dass nichts mit nichts kompatibel ist. ;D
Momentan arbeite ich an zwei Versionen der 17_SIRD.pm. Eine, in der ich die Geräte von Hand einpflege und in der Anderen versuche ich das zu automatisieren.
Das gilt zur Zeit in der Version für folgende Radiotypen:
SIRD 14 A2 / B1 / C2 -> sird14a2 / sird14b1 / sird14c2
HAMA -> IR110
Medion MD 87238 / MD 87385 -> MD87238 / MD87385
TechniSat DR 580 -> TechniSatDR580
Die Angaben hinter den Pfeilen entsprechen denen in der Definition.
@Hoggle:
Probier die neue Version aus und gib mir bitte ein Feedback, ob alles ok ist.
LG Jörg
Hallo Jörg
darf ich noch mal nachfragen ob Du für mich vielleicht auch einen Tip hättest, mit dem ich das
Hama Internetradio funktionstüchtig ins FHEM bringen könnte?
Vielen Dank im voraus.
Schöne Grüße
NewRasPi
Zitat von: NewRasPi am 15 April 2017, 11:38:18
Hallo Profis
Beim Versuch das HAMA DIR3000 in FHEM einzurichten scheitere ich.
Ich finde leider auch nichts darüber, wie man überprüft ob die
benötigten Module HTTPUTILS, Encode und XML::Simple "vorhanden" sind.
Bei einer Neuinstallation würden die Module wohl automatisch eingerichtet.
Mein FHEM ist aber schon seit einiger Zeit immer nur über Update auf den
neueren Stand gebracht worden. Kann mir da jemand einen guten Tip fürs
weitere vorgehen geben?
Vielen Dank für die super Module die hier im FHEM erstellt werden.
Schöne Grüße
NewRasPi
Die in Antwort 160 geänderte 17_SIRD.pm ergibt im LOG diese Angaben:
2017.04.15 11:35:00 2 : SIRD set HAMARadio on
2017.04.15 11:35:00 5 : SIRD: URL : 'http://xx.xx.xxx.xx:80/fsapi/GET/netRemote.sys.power?pin=1234&sid='
2017.04.15 11:35:00 5 : SIRD: response from device: ''
2017.04.15 11:35:00 5 : SIRD: URL : 'http://xx.xx.xxx.xx:80/fsapi/CREATE_SESSION?pin=1234'
2017.04.15 11:35:00 5 : SIRD: response from device: ''
2017.04.15 11:35:00 5 : SIRD: URL : 'http://xx.xx.xxx.xx:80/fsapi/SET/netRemote.sys.power?pin=?pin=1234&sid=&value=1'
2017.04.15 11:35:00 5 : SIRD: response from device: ''
2017.04.15 11:35:00 5 : SIRD: URL : 'http://xx.xx.xxx.xx:80/fsapi/GET/netRemote.sys.power?pin=1234&sid='
2017.04.15 11:35:00 5 : SIRD: response from device: ''
(xx.xx.xxx.xx = von Hand geändert/versteckt)
Das List:
Internals:
DEF xx.xx.xxx.xx 1234 IR110 [IP versteckt]
INTERVAL 30
IP xx.xx.xxx.xx
Model IR110
NAME HAMARadio
NR 221
PASSWORD 1234
STATE absent
TYPE SIRD
logLevel 2
Readings:
2017-04-15 11:14:11 currentAlbum
2017-04-15 11:14:11 currentArtist
2017-04-15 11:14:11 currentDuration
2017-04-15 11:14:11 currentPosition
2017-04-15 11:14:11 currentTitle
2017-04-15 11:14:11 dABScan
2017-04-15 11:14:11 frequency
2017-04-15 11:14:11 friendlyName
2017-04-15 11:14:11 graphicUri
2017-04-15 11:14:11 infoText
2017-04-15 11:14:11 input
2017-04-15 11:14:49 lastcommand on
2017-04-15 11:14:11 localDate
2017-04-15 11:14:11 localTime
2017-04-15 11:14:11 mute
2017-04-15 11:14:11 navCaps
2017-04-15 11:14:11 navNumItems
2017-04-15 11:14:11 navStatus
2017-04-15 11:14:11 playCaps
2017-04-15 11:14:11 playRate
2017-04-15 11:14:11 playStatus
2017-04-14 14:25:22 power off
2017-04-14 14:25:22 presence absent
2017-04-15 11:14:11 radioID
2017-04-15 11:14:11 remoteState
2017-04-15 11:14:11 repeat
2017-04-15 11:14:11 searchTerm
2017-04-15 11:14:11 shuffle
2017-04-15 11:14:11 signalStrength
2017-04-15 11:14:11 version
2017-04-15 11:14:11 volume
2017-04-15 11:14:11 volumeSteps
2017-04-15 11:14:11 volumeStraight
Helper:
Attributes:
disable 0
room 1.7_Esszimmer
userattr disable
verbose 5
"Version" ergibt diese Auskunft:
Latest Revision: 13995
File Rev Last Change
fhem.pl 13989 2017-04-14 15:01:35Z rudolfkoenig
96_allowed.pm 13492 2017-02-23 09:11:20Z rudolfkoenig
90_at.pm 13840 2017-03-29 07:52:29Z rudolfkoenig
98_autocreate.pm 11984 2016-08-19 12:47:50Z rudolfkoenig
70_BRAVIA.pm 13836 2017-03-28 18:51:45Z vuffiraa
10_CUL_HM.pm 13437 2017-02-18 19:37:01Z martinp876
98_DOIF.pm 13965 2017-04-10 21:07:23Z Damian
98_dummy.pm 12700 2016-12-02 16:49:42Z rudolfkoenig
91_eventTypes.pm 11984 2016-08-19 12:47:50Z rudolfkoenig
72_FB_CALLLIST.pm 13524 2017-02-26 10:37:41Z markusbloch
72_FB_CALLMONITOR.pm 13444 2017-02-19 13:01:48Z markusbloch
93_FHEM2FHEM.pm 13024 2017-01-09 15:16:44Z rudolfkoenig
01_FHEMWEB.pm 13888 2017-04-03 09:46:39Z rudolfkoenig
92_FileLog.pm 13565 2017-03-01 15:54:06Z rudolfkoenig
95_FLOORPLAN.pm 13735 2017-03-19 12:43:53Z UliM
No Id found for 58_GPIO4.pm
98_help.pm 13694 2017-03-13 19:24:13Z betateilchen
98_HMinfo.pm 13686 2017-03-12 16:49:12Z martinp876
00_HMLAN.pm 13605 2017-03-05 10:25:35Z martinp876
51_I2C_BMP180.pm 12059 2016-08-22 21:14:59Z klauswitt
52_I2C_MCP342x.pm 13424 2017-02-16 22:06:16Z klausw
52_I2C_SHT21.pm 12059 2016-08-22 21:14:59Z klauswitt
No Id found for 51_I2C_TSL2561.pm
91_notify.pm 13630 2017-03-06 21:05:08Z rudolfkoenig
11_OWDevice.pm 13114 2017-01-16 19:25:59Z neubert
10_OWServer.pm 13114 2017-01-16 19:25:59Z neubert
21_OWTHERM.pm 13642 2017-03-08 16:41:55Z phenning
00_OWX.pm 11098 2016-03-20 13:03:21Z pahenning
70_Pushbullet.pm 9730 2015-10-30 15:06:41Z fhainz
33_readingsGroup.pm 13721 2017-03-17 09:20:37Z justme1968
00_RPII2C.pm 12566 2016-11-13 17:06:19Z klauswitt
51_RPI_GPIO.pm 12129 2016-09-06 21:47:53Z klauswitt
17_SIRD.pm 41052 2017-03-28 16:41:14Z joergbackus
99_SUNRISE_EL.pm 12485 2016-11-01 15:18:51Z rudolfkoenig
98_SVG.pm 13919 2017-04-07 12:28:11Z rudolfkoenig
98_telnet.pm 13443 2017-02-19 12:51:22Z rudolfkoenig
59_Twilight.pm 12702 2016-12-02 23:14:18Z dietmar63
99_Utils.pm 13259 2017-01-28 17:39:39Z rudolfkoenig
98_version.pm 13628 2017-03-06 20:43:50Z markusbloch
59_Weather.pm 12559 2016-11-13 08:54:54Z borisneubert
98_weblink.pm 13558 2017-03-01 09:42:51Z rudolfkoenig
No Id found for 95_WebViewControl.pm
Blocking.pm 12648 2016-11-24 12:15:25Z rudolfkoenig
Color.pm 11159 2016-03-30 16:08:06Z justme1968
DevIo.pm 13865 2017-04-01 09:10:44Z rudolfkoenig
FritzBoxUtils.pm 6574 2014-09-19 17:32:48Z rudolfkoenig
HMConfig.pm 13261 2017-01-28 18:59:02Z martinp876
HttpUtils.pm 13980 2017-04-12 21:33:35Z rudolfkoenig <<<< 1. Modul also vorhanden?
myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig
# $Id: OWNet.pm,v 1.24 2013/02/02 11:41:28 alfille Exp $
No Id found for ProtoThreads.pm
RTypes.pm 10476 2016-01-12 21:03:33Z borisneubert
SetExtensions.pm 12935 2017-01-02 19:51:46Z rudolfkoenig
TcpServerUtils.pm 13967 2017-04-11 09:32:30Z rudolfkoenig
YahooWeatherAPI.pm 12465 2016-10-29 09:01:31Z borisneubert
fhemweb.js 13887 2017-04-03 08:21:53Z rudolfkoenig
fhemweb_colorpicker.js 13580 2017-03-02 13:03:29Z justme1968
fhemweb_fbcalllist.js 13629 2017-03-06 20:50:43Z markusbloch
fhemweb_readingsGroup.js 13580 2017-03-02 13:03:29Z justme1968
fhemweb_readingsHistory.js 13580 2017-03-02 13:03:29Z justme1968
fhemweb_sortable.js 13629 2017-03-06 20:50:43Z markusbloch
fhemweb_uzsu.js 13580 2017-03-02 13:03:29Z justme1968
Jetzt habe ich noch im MPD Wiki Beitrag diesen Befehl gefunden:
Installiertes Perl-Modul XML:Simple
Die Installation erfolgt mittels
sudo apt-get install libxml-simple-perl
da kommt als Meldung: "libxml-simple-perl ist schon die neueste Version" - also wäre auch dieses Modul schon vorhanden.
Bleibt noch die Frage: ist das Encode Modul vorhanden (und natürlich, warum läuft das Hama Internetradio nicht in FHEM - obwohl es mit der App Hama Smart Radio super klappt)
Zitat von: NewRasPi am 16 April 2017, 20:54:15darf ich noch mal nachfragen ob Du für mich vielleicht auch einen Tip hättest, mit dem ich das Hama Internetradio funktionstüchtig ins FHEM bringen könnte?
Ich kann nichts versprechen, aber poste hier bitte einmal deine aktuelle Definition des Radios. ;)
Hallo Jörg
gerade eben habe ich das Hama Radio noch mal gelöscht und neu definiert.
define HAMARadio SIRD xx.xx.xxx.xx 1234 IR110
Internals:
CFGFN
DEF xx.xx.xxx.xx 1234 IR110
INTERVAL 30
IP xx.xx.xxx.xx
Model IR110
NAME HAMARadio
NR 233
PASSWORD 1234
STATE absent
TYPE SIRD
logLevel 2
Readings:
2017-04-16 21:35:49 currentAlbum
2017-04-16 21:35:49 currentArtist
2017-04-16 21:35:49 currentDuration
2017-04-16 21:35:49 currentPosition
2017-04-16 21:35:49 currentTitle
2017-04-16 21:35:49 dABScan
2017-04-16 21:35:49 frequency
2017-04-16 21:35:49 friendlyName
2017-04-16 21:35:49 graphicUri
2017-04-16 21:35:49 infoText
2017-04-16 21:35:49 input
2017-04-16 21:38:05 lastcommand on
2017-04-16 21:35:49 localDate
2017-04-16 21:35:49 localTime
2017-04-16 21:35:49 mute
2017-04-16 21:35:49 navCaps
2017-04-16 21:35:49 navNumItems
2017-04-16 21:35:49 navStatus
2017-04-16 21:35:49 playCaps
2017-04-16 21:35:49 playRate
2017-04-16 21:35:49 playStatus
2017-04-16 21:35:49 power off
2017-04-16 21:35:49 presence absent
2017-04-16 21:35:49 radioID
2017-04-16 21:35:49 remoteState
2017-04-16 21:35:49 repeat
2017-04-16 21:35:49 searchTerm
2017-04-16 21:35:49 shuffle
2017-04-16 21:35:49 signalStrength
2017-04-16 21:35:49 version
2017-04-16 21:35:49 volume 0
2017-04-16 21:35:49 volumeSteps
2017-04-16 21:35:49 volumeStraight 0
Helper:
Attributes:
presetListRequestMode 0
Danke für die Hilfe
Ist schon ok. :)
Hast du die 17_SIRD.pm von heute installiert?
Wenn nicht, dann bitte mit der von heute austauschen.
LG Jörg
Hallo Jörg
ja, die neueste 17_SIRD.pm aus Deinem Beitrag von heute.
Auch die Gruppen und Benutzerrechte geändert.
Irgend wo hängt es trotzdem noch.
Danke für die Hilfe
Unter Version bei FHEM steht:
17_SIRD.pm 41052 2017-03-28 16:41:14Z joergbackus
Klemm das Radio mal für einige Minuten vom Strom. Kann sein, dass sich die Firmware im Radio aufgehangen hat. Das hatte ich auch schon einige Male. Dann stand bei presence auch immer absent.
Nach dem Anklemmen des Radios, FHEM einen Neustart genemigen.
Hallo Jörg
leider hat das auch noch nicht zum Erfolg geführt. Vom Handy und vom Tablet aus lässt sich das Hama Radio prima steuern.
Damit ist auch der richtige Sicherheitscode 1234 eingegeben und akzeptiert.
Hoffentlich kennst Du noch weitere Möglichkeiten.
Freundliche Grüße
NewRasPi
Hab da noch eine Frage, ist das momentan immer noch in deinem Log?
2017.04.15 11:35:00 2 : SIRD set HAMARadio on
2017.04.15 11:35:00 5 : SIRD: URL : 'http://xx.xx.xxx.xx:80/fsapi/GET/netRemote.sys.power?pin=1234&sid='
2017.04.15 11:35:00 5 : SIRD: response from device: ''
2017.04.15 11:35:00 5 : SIRD: URL : 'http://xx.xx.xxx.xx:80/fsapi/CREATE_SESSION?pin=1234'
2017.04.15 11:35:00 5 : SIRD: response from device: ''
2017.04.15 11:35:00 5 : SIRD: URL : 'http://xx.xx.xxx.xx:80/fsapi/SET/netRemote.sys.power?pin=?pin=1234&sid=&value=1'
2017.04.15 11:35:00 5 : SIRD: response from device: ''
2017.04.15 11:35:00 5 : SIRD: URL : 'http://xx.xx.xxx.xx:80/fsapi/GET/netRemote.sys.power?pin=1234&sid='
2017.04.15 11:35:00 5 : SIRD: response from device: ''
Hallo Jörg
nein, trotz dem hochsetzen des verbose auf 5 sind diese Meldungen nicht mehr im Log.
Schöne Grüße
Hmm, dann poste mal ein komplettes Log vom FHEM Start.
Wenn bei presence absent steht, ist das Grät für FHEM über das Netzwerk nicht erreichbar. Daher vemute ich mal einen Fehler in deinem Netzwerk, oder der Netzwerkkonfiguration des Rechners, auf dem FHEM läuft. Vielleicht ist die IP aus versehen auch doppelt belegt?
Mach mal einen Ping auf die IP des Radios. Nach dem Pingergebnis den Netzstecker ziehen und den Ping an die selbe IP wiederholen. Beide Ergebnisse hier posten.
Achso, die Mühe, die IP deines internen Netzwerkes mit XXX zu verschleiern, kannst du dir sparen, da damit sowieso keiner was anfangen kann. ;)
Die von meinem Radio lautet 192.168.0.43 :)
Hallo Jörg,
ich habe für unser Küchenradio Numan Two das Modul aus Beitrag #160 geladen und definiert
defmod kueradtest SIRD 192.168.1.12 1234 sird14 60
Die Firmware ist Verion:
Firmware:
ir-mmi-FS2026-0500-0370_V2.11.13c.EX68183-1A30
Das Log-Ergebnis:
==========
2017.04.17 06:33:31 1: ====================================================================================================
2017.04.17 06:33:31 1: Testlog Input ID: 0 Name des Eingangs, der am Gerät gewählt wurde: Internet Radio
2017.04.17 06:33:31 1: ====================================================================================================
2017.04.17 06:34:13 1: ====================================================================================================
2017.04.17 06:34:13 1: Testlog Input ID: 1 Name des Eingangs, der am Gerät gewählt wurde: Spotify
2017.04.17 06:34:13 1: ====================================================================================================
2017.04.17 06:34:31 1: ====================================================================================================
2017.04.17 06:34:31 1: Testlog Input ID: 3 Name des Eingangs, der am Gerät gewählt wurde: Musikplayer
2017.04.17 06:34:31 1: ====================================================================================================
2017.04.17 06:35:11 1: ====================================================================================================
2017.04.17 06:35:11 1: Testlog Input ID: 3 Name des Eingangs, der am Gerät gewählt wurde:
2017.04.17 06:35:11 1: ====================================================================================================
2017.04.17 06:35:33 1: ====================================================================================================
2017.04.17 06:35:33 1: Testlog Input ID: 3 Name des Eingangs, der am Gerät gewählt wurde:
2017.04.17 06:35:33 1: ====================================================================================================
2017.04.17 06:36:11 1: ====================================================================================================
2017.04.17 06:36:11 1: Testlog Input ID: 4 Name des Eingangs, der am Gerät gewählt wurde: DAB
2017.04.17 06:36:11 1: ====================================================================================================
2017.04.17 06:36:33 1: ====================================================================================================
2017.04.17 06:36:33 1: Testlog Input ID: 5 Name des Eingangs, der am Gerät gewählt wurde: FM
2017.04.17 06:36:33 1:
====================================================================================================
2017.04.17 06:37:11 1: Testlog Input ID: 6 Name des Eingangs, der am Gerät gewählt wurde: Bluetooth
2017.04.17 06:37:11 1: ====================================================================================================
2017.04.17 06:37:33 1: ====================================================================================================
2017.04.17 06:37:33 1: Testlog Input ID: 7 Name des Eingangs, der am Gerät gewählt wurde: CD
2017.04.17 06:37:33 1: ====================================================================================================
2017.04.17 06:38:11 1: ====================================================================================================
2017.04.17 06:38:11 1: Testlog Input ID: 8 Name des Eingangs, der am Gerät gewählt wurde: AUX
2017.04.17 06:38:11 1:
Ich hoffe, es ist nicht zu spät und, vielen Dank für Dein Engagement,
Gernot
Hallo Gernot,
zu spät ist es eigentlich nie. ;)
Dein Radio ist in der neuen 17_SIRD.pm eingebaut.
Auch wenn es für die Meisten ein Problem ist, würde ich mich über ein kurzes Feedback, ob es läuft, oder nicht sehr freuen. :D
Zur Zeit sind in der aktuellen 17_SIRD.pm Version folgende Radiotypen eingepflegt:
----------------------------------------------------------------------------------------------
SilverCrest SIRD 14 A2 / B1 / C2 -> sird14a2 / sird14b1 / sird14c2
----------------------------------------------------------------------------------------------
HAMA -> IR110
----------------------------------------------------------------------------------------------
Medion MD 87238 / MD 87385 -> MD87238 / MD87385
----------------------------------------------------------------------------------------------
TechniSat DR 580 -> TechniSatDR580
----------------------------------------------------------------------------------------------
Numan Two -> NumanTwo
----------------------------------------------------------------------------------------------
Die Angaben hinter den Pfeilen entsprechen denen für die Definition in FHEM.
Wenn dein Gerät hier nicht aufgelistet ist, bitte mit der 17_SIRD.pm aus dem unteren Beitrag in meiner Signatur ein Log erstellen.
LG Jörg
EDIT: 17_SIRD.pm ausgetauscht, da ich im Code einen Kommentar vergessen habe zu löschen. Sorry ! >:( >:(
Hallo Jörg!
Kurzer Zwischenstand bzgl. MD87238:
Mit dem SIRD vom 16.4. kann ich FHEM starten, die Version vom 17.4. funktioniert bei mir leider gar nicht.
Folgender Fehler ist bei der Verision vom 17.4. im Log:
Messages collected while initializing FHEM: configfile: Cannot load module SIRD
Da ich über die Ostertage nich zu Hause bin, kann ich den finalen Funktionstest, ob die IDs zur Anzeige im Display passen erst nachträglich machen.
Kommt aber asap, versprochen!
Enstweilen vielen Dank dir und viele Grüße,
weini
Hallo weini,
hattest recht, da hatte ich vergessen, einen Kommentar zu löschen. Habe die Datei ausgetauscht.
@Alle, die die Datei heruntergeladen haben:
Bitte die Datei noch einmal herunterladen und FHEM neustarten. - Sorry!
LG Jörg
Hallo Jörg
heute in den Morgenstunden habe ich erst mal aufgegeben und bin ins Bett.
Mit neuem Schwung zu neuen Versuchen.
Neuste Version geholt und neustart.
Ich habe jetzt die IP-Adresse am Hama Internetradio geändert.
Vom Raspberry Pi mit FHEM über SSH geht der ping 10.63.173.105 (Hama Internetradio) mit ~ 3 ms
vom Raspberry Pi auf die Fritz Box geht der ping 10.63.173.250
vom WinPC aus geht der ping auf das Radio, den Raspberry Pi und zur Fritzbox (auf der aber keine Ports geöffnet sind)
In der /opt/fhem/log/fhem-2017-04.log Datei
ist nach dem server shutdown
nur dieser Eintrag, der auf SIRD hinweist:
2017.04.17 03:06:54 2: SIRD Init module
Internals:
DEF 10.63.173.105 1234 IR110
INTERVAL 30
IP 10.63.173.105
Model IR110
NAME HAMARadio
NR 224
PASSWORD 1234
STATE absent
TYPE SIRD
logLevel 2
Readings:
2017-04-17 13:28:40 currentAlbum
2017-04-17 13:28:40 currentArtist
2017-04-17 13:28:40 currentDuration
2017-04-17 13:28:40 currentPosition
2017-04-17 13:28:40 currentTitle
2017-04-17 13:28:40 dABScan
2017-04-17 13:28:40 frequency
2017-04-17 13:28:40 friendlyName
2017-04-17 13:28:40 graphicUri
2017-04-17 13:28:40 infoText
2017-04-17 13:28:40 input
2017-04-17 13:42:23 lastcommand off
2017-04-17 13:28:40 localDate
2017-04-17 13:28:40 localTime
2017-04-17 13:28:40 mute
2017-04-17 13:28:40 navCaps
2017-04-17 13:28:40 navNumItems
2017-04-17 13:28:40 navStatus
2017-04-17 13:28:40 playCaps
2017-04-17 13:28:40 playRate
2017-04-17 13:28:40 playStatus
2017-04-17 13:26:57 power off
2017-04-17 13:26:57 presence absent
2017-04-17 13:28:40 radioID
2017-04-17 13:28:40 remoteState
2017-04-17 13:28:40 repeat
2017-04-17 13:28:40 searchTerm
2017-04-17 13:28:40 shuffle
2017-04-17 13:28:40 signalStrength
2017-04-17 13:28:40 version
2017-04-17 13:26:57 volume 0
2017-04-17 13:28:40 volumeSteps
2017-04-17 13:26:57 volumeStraight 0
Modulversion:
Helper:
Attributes:
presetListRequestMode 0
Ich versuch jetzt mal auf einem jungfräulichen Raspberry Pi3 mit FHEM ob es dann geht.
Erstmal vielen Dank für die ganzen Tipps - natürlich gebe ich Bescheid wenns läuft.
(wenn nicht muss ich wohl weiter fragen stellen) :-[
Schöne Grüße
Zitat von: NewRasPi am 17 April 2017, 14:06:572017.04.17 03:06:54 2: SIRD Init module
Hallo,
Das ist eine gute Nachricht. Das bedeutet, dass das Modul einwandfrei gestartet ist !!!
presence absent
das bedeutet, dass das Modul bzw. FHEM das Radio nicht findet.
Mal ne andere Frage. Wobei ich von vorne herein sage, dass ich keine pro/kontra Diskusion heraufbeschwören möchte, oder mich darauf einlasse !!!
Hast du irgendwelche Apple Produkte in deinem Netzwerk laufen?
LG Jörg
Hallo Jörg
ja, ein i-Pad liegt hier rum. (das auch im W-Lan angemeldet ist)
stört sowas unter umständen?
Grüße
Kann sein, ich weiß es nicht. Schalte das Pad testweise mal aus.
Ein Versuch wäre, das Radio, wenn es per W-Lan im Netzwerk angeeldet ist, es direkt per Lan anzuschließen, wenn es den Anschluss hat.
Hallo Jörg
leider helfen bisher alle Versuche nicht für mein FHEM, um ans Ziel zu kommen.
Ich habe jetzt noch ein mal die Hama Internet Radio WLAN- IP geändert, die Fritzbox mal stromlos gemacht, die LAN- IP neu eingestellt (ist auch in der Fritzbox unter Netzwerk zu sehen) über ping aus allen Richtungen - geht alles, nur das Radio reagiert nicht und im FHEM steht immer noch "absent"
Ich vermute fast, in meinem Hama Radio ist das fürs Fernsteuern nicht eingebaut.
Über die "Smart Radio App" von Hama (die sich in die Undonk App ersetzt haben soll) geht es über W-LAN und auch über LAN.
Dort wird aber immer der "Friendly Name: HAMA_0022961b5f58e" gefunden (HAMA + MAC-Adresse des Radio)
Freie Ports ins Internet (und zurück) braucht das Modul ja hoffentlich nicht? Ich habe nur eine VPN von aussen.
pi@raspi1 ~ $ ping 10.63.173.110
PING 10.63.173.110 (10.63.173.110) 56(84) bytes of data.
64 bytes from 10.63.173.110: icmp_req=1 ttl=64 time=2.85 ms
64 bytes from 10.63.173.110: icmp_req=2 ttl=64 time=1.90 ms
64 bytes from 10.63.173.110: icmp_req=3 ttl=64 time=1.99 ms
64 bytes from 10.63.173.110: icmp_req=4 ttl=64 time=2.42 ms
64 bytes from 10.63.173.110: icmp_req=5 ttl=64 time=2.19 ms
64 bytes from 10.63.173.110: icmp_req=6 ttl=64 time=3.28 ms
64 bytes from 10.63.173.110: icmp_req=7 ttl=64 time=3.90 ms
64 bytes from 10.63.173.110: icmp_req=8 ttl=64 time=3.39 ms
64 bytes from 10.63.173.110: icmp_req=9 ttl=64 time=2.12 ms
Vieles in FHEM habe ich mit Geduld später eingerichtet (aus den Forenbeiträgen Lösungen
im Laufe der Zeit ...). Vielleicht sollte ich auch bei der Fernsteuerung des Internetradio einfach abwarten.
Deine Zeit die Du hier rein steckst soll ja nicht über Gebühr in Anspruch genommen werden.
Vielen Dank
Hallo NewRasPi,
lass mich da noch mal drüber schlafen...
LG Jörg
Hallo Jörg!
So, endlich wieder zu Hause :)
Also, bzgl. MD87238 haben wir 75% Erfolgsquote:
positiv: FM Radio, Internetradio, AUX in
negativ: Musikplayer
Mein "Musikplayer" am Gerät heißt bei dir im Modul "Mediaplayer", aber nach meinem Verständnis sollte das keinen Unterschied machen. Wenn ich den Eintrag wähle, dann passiert nichts, der bisherige Modus läuft weiter.
Ich bin immer noch mit deiner Version vom 16.4. unterwegs.
Viele Grüße,
Christian
Hallo NewRasPi,
ich hatte ein ähnliches Verhalten als ich unser Küchenradio ohne Modellangabe in Fhem definiert hatte.
Teste mal die verschiedenen Modelle im Parameter Def. Bei mir hat SIRD14:
define IRadio SIRD 192.168.x.xx 1234 sird14 60
bei eingeschalteten Radio funktioniert.
LG
Gernot
Zitat von: supernova1963 am 17 April 2017, 22:50:22define IRadio SIRD 192.168.x.xx 1234 sird14 60
bei eingeschalteten Radio funktioniert.
Hallo,
für dich habe ich das
NumanTwo bereitgetellt.
define IRadio SIRD 192.168.x.xx 1234 NumanTwo 60
@Christian:
Nimm bitte die von heute Morgen. Die habe ich noch einmal neu geuploadet
LG Jörg
Habe gerde eben noch einmal im Code nachgesehen, manche hatten als Bezeichnung MediaPlayer und manche nur Player. Ich habe nun alle auf MediaPlayer umgestellt.
Im Anhang die Änderung, damit alle MediaPlayer laufen sollten.
(Ich bitte um Feedback, damit ich weiss, ob alles richtig ist. :) )
LG Jörg
Zitat von: Jörg am 17 April 2017, 22:56:57
Hallo,
für dich habe ich das NumanTwo bereitgetellt.
define IRadio SIRD 192.168.x.xx 1234 NumanTwo 60
Ich wollte nur NewRasPi helfen, und meine Erfahrungen von damals und bei der Version aus Post #160 weitergeben: Ohne Angabe eines Typs funktionierte es bei mir nicht.
Für die super schnelle Erstellung eines Profils für unser Numan Two danke ich dir.
Ich werde es schnellstmöglich testen und berichten.Ich habe es getestet. Erstes Feedback:
Alle Input Geräte funktionieren perfekt !!!Danke,
Gernot
PS: Ich füge noch ein "list 03Kuechenradio" hinzu wegen:
navStatus fatalError
Internals:
CFGFN
DEF 192.168.1.12 1234 NumanTwo 60
INTERVAL 60
IP 192.168.1.12
Model NumanTwo
NAME 03Kuechenradio
NR 443
PASSWORD 1234
SESSIONID 1232749965
STATE on
TYPE SIRD
logLevel 2
Helper:
Dblog:
Modulversion:
Logdb:
TIME 1492487673.19605
VALUE 17_SIRD.pm V 0.51 Beta (Last edit Date
Currentalbum:
Logdb:
TIME 1492487466.63694
VALUE
Currentartist:
Logdb:
TIME 1492487466.64129
VALUE
Currentduration:
Logdb:
TIME 1492487720.68161
VALUE 0:00
Currentposition:
Logdb:
TIME 1492488669.18443
VALUE 2:09
Currenttitle:
Logdb:
TIME 1492488550.86908
VALUE WDR 4 FM 103.8 Bergisches Country
Dabscan:
Logdb:
TIME 1492487720.86757
VALUE idle
Frequency:
Logdb:
TIME 1492487720.88482
VALUE 4294967.29
Friendlyname:
Logdb:
TIME 1492487467.39017
VALUE Kuechenradio
Graphicuri:
Logdb:
TIME 1492488551.05364
VALUE http://chaltec.wifiradiofrontier.com/setupapp/setup1/logo/logo-73684.png
Infotext:
Logdb:
TIME 1492488550.89169
VALUE WDR 4 Meine Lieblingshits
Input:
Logdb:
TIME 1492488528.07121
VALUE InternetRadio
Localdate:
Logdb:
TIME 1492487466.83481
VALUE 18.04.2017
Localtime:
Logdb:
TIME 1492488669.31628
VALUE 06:11:09
Mute:
Logdb:
TIME 1492487770.47975
VALUE off
Navcaps:
Logdb:
TIME 1492488551.08692
VALUE 3
Navnumitems:
Logdb:
TIME 1492488669.26368
VALUE 6
Navstatus:
Logdb:
TIME 1492488627.95195
VALUE ready
Playcaps:
Logdb:
TIME 1492488551.12315
VALUE stop|addPreset
Playrate:
Logdb:
TIME 1492487770.64429
VALUE 1
Playstatus:
Logdb:
TIME 1492487770.56808
VALUE playing
Power:
Logdb:
TIME 1492487708.61392
VALUE on
Presence:
Logdb:
TIME 1492487708.60835
VALUE present
Presetlistrequestmode:
Logdb:
TIME 1492488253.33415
VALUE 3
Radioid:
Logdb:
TIME 1492487467.51696
VALUE 0022619660D8
Remotestate:
Logdb:
TIME 1492488551.29866
VALUE on
Repeat:
Logdb:
TIME 1492487770.60112
VALUE off
Searchterm:
Logdb:
TIME 1492487466.69713
VALUE
Shuffle:
Logdb:
TIME 1492487714.77902
VALUE off
Signalstrength:
Logdb:
TIME 1492487720.71657
VALUE 0
State:
Logdb:
TIME 1492488550.86908
VALUE input
Version:
Logdb:
TIME 1492487467.45056
VALUE ir-mmi-FS2026-0500-0370_V2.11.13c.EX68183-1A30
Volume:
Logdb:
TIME 1492487710.67903
VALUE 50
Volumesteps:
Logdb:
TIME 1492487720.78886
VALUE 33
Volumestraight:
Logdb:
TIME 1492487710.66975
VALUE 10
Readings:
2017-04-18 05:54:33 Modulversion 17_SIRD.pm V 0.51 Beta (Last edit Date: 17.04.2017)
2017-04-18 05:51:06 currentAlbum
2017-04-18 05:51:06 currentArtist
2017-04-18 05:55:20 currentDuration 0:00
2017-04-18 06:11:09 currentPosition 2:09
2017-04-18 06:09:10 currentTitle WDR 4 FM 103.8 Bergisches Country
2017-04-18 05:55:20 dABScan idle
2017-04-18 05:55:20 frequency 4294967.29
2017-04-18 05:51:07 friendlyName Kuechenradio
2017-04-18 06:09:11 graphicUri http://chaltec.wifiradiofrontier.com/setupapp/setup1/logo/logo-73684.png
2017-04-18 06:09:10 infoText WDR 4 Meine Lieblingshits
2017-04-18 06:08:48 input InternetRadio
2017-04-18 06:08:48 lastcommand input InternetRadio
2017-04-18 05:51:06 localDate 18.04.2017
2017-04-18 06:11:09 localTime 06:11:09
2017-04-18 05:56:10 mute off
2017-04-18 06:09:11 navCaps 3
2017-04-18 06:11:09 navNumItems 6
2017-04-18 06:10:27 navStatus ready
2017-04-18 06:09:11 playCaps stop|addPreset
2017-04-18 05:56:10 playRate 1
2017-04-18 05:56:10 playStatus playing
2017-04-18 05:55:08 power on
2017-04-18 05:55:08 presence present
2017-04-18 06:04:13 presetListRequestMode 3
2017-04-18 06:11:09 presetList_1-5 <P1: 1LIVE><P2: WDR2BergischesLand><P3: SWR3><P4: WDR4FM103.8BergischesCountry><P5: RadioBerg99.7FM>
2017-04-18 06:11:09 presetList_6-0 <P6: SWR1Rheinland-Pfalz><P7: SWR4Koblenz><P8: WDR588.0FMBonn><P9: WDR3FM98.1BergischesCountry>
2017-04-18 05:51:07 radioID 0022619660D8
2017-04-18 06:09:11 remoteState on
2017-04-18 05:56:10 repeat off
2017-04-18 05:51:06 searchTerm
2017-04-18 05:55:14 shuffle off
2017-04-18 05:55:20 signalStrength 0
2017-04-18 05:51:07 version ir-mmi-FS2026-0500-0370_V2.11.13c.EX68183-1A30
2017-04-18 05:55:10 volume 50
2017-04-18 05:55:20 volumeSteps 33
2017-04-18 05:55:10 volumeStraight 10
Helper:
testversion 17_SIRD.pm V 0.51 Beta (Last edit Date: 17.04.2017)
Preset:
status FS_OK
item:
HASH(0x8ade9d8)
HASH(0x82b08e8)
HASH(0x82d9ae8)
HASH(0xd1e0318)
HASH(0x8af3050)
HASH(0x82a11c8)
HASH(0xd29fd38)
HASH(0xd527948)
HASH(0xd3a3d60)
HASH(0xd13f060)
HASH(0x8273ec8)
HASH(0x8ac0bd8)
HASH(0x82a0ad8)
HASH(0xd38ede0)
HASH(0xd47d668)
HASH(0x8ae1aa8)
HASH(0x828ce68)
HASH(0x8af5dc0)
HASH(0x8000f10)
HASH(0x8af30c8)
Listend:
Attributes:
presetListRequestMode 3
Der navStatus fatalError ist weg, nachdem ich manuell navListRequest ausgeführt habe!
Internals:
CFGFN
DEF 192.168.1.12 1234 NumanTwo 60
INTERVAL 60
IP 192.168.1.12
Model NumanTwo
NAME 03Kuechenradio
NR 443
PASSWORD 1234
SESSIONID 654305215
STATE on
TYPE SIRD
logLevel 2
Helper:
Dblog:
Modulversion:
Logdb:
TIME 1492487673.19605
VALUE 17_SIRD.pm V 0.51 Beta (Last edit Date
Currentalbum:
Logdb:
TIME 1492487466.63694
VALUE
Currentartist:
Logdb:
TIME 1492487466.64129
VALUE
Currentduration:
Logdb:
TIME 1492487720.68161
VALUE 0:00
Currentposition:
Logdb:
TIME 1492489753.05821
VALUE 9:11
Currenttitle:
Logdb:
TIME 1492489213.21446
VALUE SWR3
Dabscan:
Logdb:
TIME 1492487720.86757
VALUE idle
Frequency:
Logdb:
TIME 1492487720.88482
VALUE 4294967.29
Friendlyname:
Logdb:
TIME 1492487467.39017
VALUE Kuechenradio
Graphicuri:
Logdb:
TIME 1492489221.37762
VALUE http://chaltec.wifiradiofrontier.com/setupapp/setup1/logo/logo-530.png
Infotext:
Logdb:
TIME 1492489806.97717
VALUE SWR3 DIE MORNINGSHOW
Input:
Logdb:
TIME 1492488528.07121
VALUE InternetRadio
Localdate:
Logdb:
TIME 1492487466.83481
VALUE 18.04.2017
Localtime:
Logdb:
TIME 1492489815.20797
VALUE 06:30:15
Mute:
Logdb:
TIME 1492489390.98934
VALUE off
Navcaps:
Logdb:
TIME 1492488551.08692
VALUE 3
Navnumitems:
Logdb:
TIME 1492489329.16011
VALUE 1
Navstatus:
Logdb:
TIME 1492488627.95195
VALUE ready
Playcaps:
Logdb:
TIME 1492488551.12315
VALUE stop|addPreset
Playrate:
Logdb:
TIME 1492488973.34582
VALUE 1
Playstatus:
Logdb:
TIME 1492487770.56808
VALUE playing
Power:
Logdb:
TIME 1492489509.34856
VALUE on
Presence:
Logdb:
TIME 1492489509.34214
VALUE present
Presetlistrequestmode:
Logdb:
TIME 1492488253.33415
VALUE 3
Radioid:
Logdb:
TIME 1492487467.51696
VALUE 0022619660D8
Remotestate:
Logdb:
TIME 1492488551.29866
VALUE on
Repeat:
Logdb:
TIME 1492487770.60112
VALUE off
Searchterm:
Logdb:
TIME 1492487466.69713
VALUE
Shuffle:
Logdb:
TIME 1492487714.77902
VALUE off
Signalstrength:
Logdb:
TIME 1492487720.71657
VALUE 0
State:
Logdb:
TIME 1492489508.83453
VALUE volumeStraight
Version:
Logdb:
TIME 1492487467.45056
VALUE ir-mmi-FS2026-0500-0370_V2.11.13c.EX68183-1A30
Volume:
Logdb:
TIME 1492489505.79417
VALUE 30
Volumesteps:
Logdb:
TIME 1492487720.78886
VALUE 33
Volumestraight:
Logdb:
TIME 1492489505.78939
VALUE 6
Readings:
2017-04-18 05:54:33 Modulversion 17_SIRD.pm V 0.51 Beta (Last edit Date: 17.04.2017)
2017-04-18 05:51:06 currentAlbum
2017-04-18 05:51:06 currentArtist
2017-04-18 05:55:20 currentDuration 0:00
2017-04-18 06:29:13 currentPosition 9:11
2017-04-18 06:20:13 currentTitle SWR3
2017-04-18 05:55:20 dABScan idle
2017-04-18 05:55:20 frequency 4294967.29
2017-04-18 05:51:07 friendlyName Kuechenradio
2017-04-18 06:20:21 graphicUri http://chaltec.wifiradiofrontier.com/setupapp/setup1/logo/logo-530.png
2017-04-18 06:30:06 infoText SWR3 DIE MORNINGSHOW
2017-04-18 06:08:48 input InternetRadio
2017-04-18 06:25:05 lastcommand volumeStraight 6
2017-04-18 05:51:06 localDate 18.04.2017
2017-04-18 06:30:15 localTime 06:30:15
2017-04-18 06:23:10 mute off
2017-04-18 06:09:11 navCaps 3
2017-04-18 06:22:09 navNumItems 1
2017-04-18 06:10:27 navStatus ready
2017-04-18 06:09:11 playCaps stop|addPreset
2017-04-18 06:16:13 playRate 1
2017-04-18 05:56:10 playStatus playing
2017-04-18 06:25:09 power on
2017-04-18 06:25:09 presence present
2017-04-18 06:04:13 presetListRequestMode 3
2017-04-18 06:11:09 presetList_1-5 <P1: 1LIVE><P2: WDR2BergischesLand><P3: SWR3><P4: WDR4FM103.8BergischesCountry><P5: RadioBerg99.7FM>
2017-04-18 06:11:09 presetList_6-0 <P6: SWR1Rheinland-Pfalz><P7: SWR4Koblenz><P8: WDR588.0FMBonn><P9: WDR3FM98.1BergischesCountry>
2017-04-18 05:51:07 radioID 0022619660D8
2017-04-18 06:09:11 remoteState on
2017-04-18 05:56:10 repeat off
2017-04-18 05:51:06 searchTerm
2017-04-18 05:55:14 shuffle off
2017-04-18 05:55:20 signalStrength 0
2017-04-18 05:51:07 version ir-mmi-FS2026-0500-0370_V2.11.13c.EX68183-1A30
2017-04-18 06:25:05 volume 30
2017-04-18 05:55:20 volumeSteps 33
2017-04-18 06:25:05 volumeStraight 6
Helper:
testversion 17_SIRD.pm V 0.51 Beta (Last edit Date: 17.04.2017)
Navlist:
keyErster 1
keyLetzter 5
status FS_OK
item:
HASH(0x86b52e0)
HASH(0x86b9928)
HASH(0x82b0588)
HASH(0x8adf0c8)
HASH(0x828d4c8)
Listend:
Preset:
status FS_OK
item:
HASH(0x82a0fb8)
HASH(0x8735890)
HASH(0x83276e0)
HASH(0x8af3398)
HASH(0xd3a33b8)
HASH(0xd1e07b0)
HASH(0x8ab7e40)
HASH(0x86f8a80)
HASH(0xd0ff6d8)
HASH(0xd3466a0)
HASH(0x8287ae0)
HASH(0x8286988)
HASH(0x841bda8)
HASH(0x8292118)
HASH(0x86cbd30)
HASH(0x826b9f8)
HASH(0x86cd840)
HASH(0x8af1910)
HASH(0xd18c370)
HASH(0x83d3608)
Listend:
Attributes:
presetListRequestMode 3
Nocheinmal vielen Dank Jörg,
Gernot
Hallo Jörg!
Mit deiner neuesten Version geht jetzt auch der Modus "MediaPlayer" bei meinem MD87238.
Nochmal ein ganz dickes DANKE an dich!
Viele Grüße,
weini
Hi Jörg,
ich habe ein SIRD 14 C1 und habe endlich die Ruhe gefunden alle Eingänge durchzuschalten:
0: Internet Radio
2: Napster
3: Deezer
4: Qobuz
1: Tidal
5: Spotify Connect
7: Musik-Player
8: DAB Radio
9: FM Radio
10: AUX in
Ich war nur etwas verwundert, dass es keine ID 1 gab..
Viele Grüße,
Tim
Hallo zusammen,
@Gernot:
Der fatal Error ist mir bekannt, habe ihn aber nach hinten geschoben, da er die Bedienung nicht einzuschränken scheint.
@Gernot & weini:
Klasse, dass es läuft. Zwei Baustellen weniger . :D
@Timm:
Habe dein Radio aufgenommen. ;)
(Ich bitte um ein Feedback, damit ich weiss, ob alles richtig ist. :) )
@NewRasPi:
Wir machen alles weitere per PM, da es sonst hier zu unübersichtlich wird. ;)
Zur Zeit sind in der aktuellen 17_SIRD.pm Version folgende Radiotypen eingepflegt:
----------------------------------------------------------------------------------------------
SilverCrest SIRD 14 A2 / B1 / C1 / C2 -> sird14a2 / sird14b1 / sird14c1 / sird14c2
----------------------------------------------------------------------------------------------
HAMA -> IR110
----------------------------------------------------------------------------------------------
Medion MD 87238 / MD 87385 -> MD87238 / MD87385
----------------------------------------------------------------------------------------------
TechniSat DR 580 -> TechniSatDR580
----------------------------------------------------------------------------------------------
Numan Two -> NumanTwo
----------------------------------------------------------------------------------------------
Die Angaben hinter den Pfeilen entsprechen denen für die Definition in FHEM. Bitte den Neustart von FHEM nicht vergessen !!!
Wenn dein Gerät hier nicht aufgelistet ist, bitte mit der 17_SIRD.pm aus dem unteren Beitrag in meiner Signatur ein Log erstellen.
LG Jörg
Hallo Jörg,
vielen Dank für Erweiterung des Moduls. :)
Ich habe ein Medion MD 87180 dort sind die ID wie folgt:
MD87180
# InternetRadio = 0
# Spotify = 1
# MediaPlayer = 3
# DAB-Radio = 4
# FM-Radio = 5
# AUX = 6
Diese Reihenfolge der Eingänge gibt es so noch nicht. Kannst diese Radio auch noch aufnehmen?
Ich habe mal alles zusammengefasst was zur Zeit durch dich möglich ist:
#########################
# <mode> sird14a2
# <mode> sird14b1
#------------------------
# InternetRadio = 0
# MediaPlayer = 1
# DAB-Radio = 2
# FM-Radio = 3
# AUX = 4
#########################
# <mode> sird14c1
#------------------------
# InternetRadio = 0
# Tidal = 1
# Napster =2
# Deezer = 3
# Qobuz = 4
# Spotify = 5
# MediaPlayer = 7
# DAB-Radio = 8
# FM-Radio = 9
# AUX = 10
#########################
# <mode> sird14c2
#------------------------
# InternetRadio = 0
# Tidal = 1
# Deezer = 2
# Qobuz = 3
# Spotify = 4
# MediaPlayer = 6
# DAB-Radio = 7
# FM-Radio = 8
# AUX = 9
#########################
# <mode> IR110
#------------------------
# InternetRadio = 0
# Spotify = 1
# MediaPlayer = 2
# DAB-Radio = 3
# FM-Radio = 4
# AUX = 5
#########################
# <mode> MD87385
#------------------------
# InternetRadio = 0
# MediaPlayer = 1
# DAB-Radio = 2
# FM-Radio = 3
# AUX = 4
#########################
# <mode> TechniSatDR580
#------------------------
# InternetRadio = 0
# Spotify = 1
# MediaPlayer = 3
# DAB-Radio = 4
# FM-Radio = 5
# Aux = 6
# CD = 7
# Bluetooth = 8
#########################
# <mode> NumanTwo
#------------------------
# InternetRadio = 0
# Spotify = 1
# MediaPlayer = 3
# DAB-Radio = 4
# FM-Radio = 5
# Bluetooth = 6
# CD = 7
# AUX = 8
Viele Grüße
Maxel
Hallo und lieben Dank an alle die hier fleißig werkeln!
Ich habe mein Medion life P8511 MD87295 durchgeschaltet und komme auf folgendes Ergebniss:
Testlog Input ID: 4 Name des Eingangs, der am Gerät gewählt wurde: DAB Radio
Testlog Input ID: 5 Name des Eingangs, der am Gerät gewählt wurde: FM Radio
Testlog Input ID: 6 Name des Eingangs, der am Gerät gewählt wurde: AUX in
Testlog Input ID: 1 Name des Eingangs, der am Gerät gewählt wurde: Spotify Connect
Testlog Input ID: 3 Name des Eingangs, der am Gerät gewählt wurde: Musik player
Testlog Input ID: 0 Name des Eingangs, der am Gerät gewählt wurde: Internet radio
Das entspricht also dem, was Maxel vorhin für das MD87180 gepostet hat.
Hallo Maxel und Starkstrombastler,
eure Geräte sind aufgenommen.
(Ich bitte um ein Feedback, damit ich weiss, ob alles richtig ist. :) )
Zur Zeit sind in der aktuellen 17_SIRD.pm Version folgende Radiotypen eingepflegt:
-------------------------------------------------------------------------------------------------------------------------------------------------------------
SilverCrest SIRD 14 A2 / B1 / C1 / C2 -> sird14a2 / sird14b1 / sird14c1 / sird14c2
-------------------------------------------------------------------------------------------------------------------------------------------------------------
HAMA -> IR110
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Medion MD 87238 / MD 87385 / MD 87180 / MD 87295 -> MD87238 / MD87385 / MD87180 / MD87295
-------------------------------------------------------------------------------------------------------------------------------------------------------------
TechniSat DR 580 -> TechniSatDR580
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Numan Two -> NumanTwo
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Die Angaben hinter den Pfeilen entsprechen denen für die Definition in FHEM. Bitte den Neustart von FHEM nicht vergessen !!!
Wenn dein Gerät hier nicht aufgelistet ist, bitte mit der 17_SIRD.pm aus dem unteren Beitrag in meiner Signatur ein Log erstellen.
LG Jörg
Hier die Belegung für den Silvercrest SMRS 18 A1:
0 -----> Radio
1 -----> TIDAL
2 -----> Napster
3 -----> Deezer
4 -----> Qobuz
5 -----> Spotify
6 -----> lokale Musik
7 -----> Music Player (USB / Shared Media)
8 -----> Aux in
Gruß Sascha
Hallo Jörg,
anbei ein Patch für das Medion MD 87090. Ich hoffe mal ich habe nichts vergessen. Den Slider für Volume habe ich auf 5er Schritte gestellt da das Gerät nur alle 5 Steps einen Step lauter wird.
Was mir noch aufgefallen ist, es müsste eigentlich 3 Favoritenlisten geben. (DAB, Internetradio und FM) Im Moment wird nur die für DAB angezeigt. Ist das Radio nicht im DAB-Modus wird trotzdem der entsprechende Sender eingestellt. Wähle ich den 3. (DAB)-Sender aus der Liste aus wird im Modus Internetradio der 3 Internetsender gespielt.
Da die natürlich anders heißen ist das etwas irritierend.
Gruß
Steffen
Hallo Sascha,
habe deinen Brüllwürfel SMRS 18 A1 und den größeren Bruder SMRS 30 A1 mit aufgenommen. :D
(Ich bitte um ein Feedback, damit ich weiss, ob alles richtig ist. :) )
Zur Zeit sind in der aktuellen 17_SIRD.pm Version folgende Radiotypen eingepflegt:
-------------------------------------------------------------------------------------------------------------------------------------------------------------
SilverCrest SIRD 14 A2 / B1 / C1 / C2 -> sird14a2 / sird14b1 / sird14c1 / sird14c2
SilverCrest SMRS 18 A1 / 30 A1 -> SMRS18A1 / SMRS30A1
-------------------------------------------------------------------------------------------------------------------------------------------------------------
HAMA -> IR110
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Medion MD 87238 / MD 87385 / MD 87180 / MD 87295 -> MD87238 / MD87385 / MD87180 / MD87295
-------------------------------------------------------------------------------------------------------------------------------------------------------------
TechniSat DR 580 -> TechniSatDR580
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Numan Two -> NumanTwo
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Die Angaben hinter den Pfeilen entsprechen denen für die Definition in FHEM. Bitte den Neustart von FHEM nicht vergessen !!!
Wenn dein Gerät hier nicht aufgelistet ist, bitte mit der 17_SIRD.pm aus dem unteren Beitrag in meiner Signatur ein Log erstellen.
LG Jörg
Hallo Jörg,
mir sind noch 2 Sachen aufgefallen:
- Ich habe eine Fehlermeldung im Log
SIRD set OG_SZ_IRadio_MD87090 navList <<BACK<<
Argument "OK" isn't numeric in int at /usr/local/FHEM/share/fhem/FHEM/17_SIRD.pm line 3984.
Die entsprechende Zeile ist:
if ( $params eq "<<BACK<<" )
{
if ( int( $hash->{helper}->{navList}->{keyErster} ) <= 0 )
{
eval {
SIRD_Com( $hash, "netRemote.nav.action.navigate", 2, "-1", 0 );
SIRD_NavNumItems( $hash, -1 );
};
sleep 2;
-->> SIRD_NavList( $hash, -1, int($helper) );
- Wenn das Radio nicht im Netz ist habe ich viele freezes, jeweils so 4-5 sec.
Gruß
Steffen
Zitat von: steffenp am 20 April 2017, 09:33:31anbei ein Patch für das Medion MD 87090...
Hallo Steffen,
danke für den Patch. :) Die Eingangszuordnung vom MD 87090 ist auch mit den anderen Medion Modellen kompatibel. Somit reichte es die Abfrage zu erweitern.
Was den Volume slider betrifft, habe ich das geändert. Was mir dabei aufgefallen ist, dass ich beim hin und her kopieren nicht bei allen Modellen den Volume Straight Slider als default gesetzt hatte. Volume Straight ist der Wert, mit dem die Geräte arbeiten (0 - 20). Das ist jetzt auch korrigiert.
Was du allerdings damit meinst, habe ich selbst nach intensivem Studium, drei Zigaretten und einer Tasse Kaffee nicht verstanden. :D
if ( $hash->{Model} eq "NumanTwo" )
{
if ( $params eq "InternetRadio" )
@@ -2063,7 +2101,7 @@
$helper = "DAB-Radio";
}
elsif ( int( $ref->{value}->{u32} ) == 3 )
- {
+ {
$helper = "FM-Radio";
}
elsif ( int( $ref->{value}->{u32} ) == 4 )
@@ -2072,6 +2110,34 @@
}
}
Was stimmt denn an dem Numan Two nicht und warum soll die geschweifte Klammer { mitten in den "Wald"?
Was die Aktualisierung und die Anzahl der Favoritenlisten betrifft, da reicht die Eine. Du musst nur etwas Geduld mitbringen. ;)
Ich kenne deine Definition nicht, aber wenn du sie mit z.B. 60, oder 120 Sekunden hast, dann musst du die eingestellte Zeit nach dem Umschalten auf einen anderen Eingang auch abwarten. Danach hast du die entsprechende Favoritenliste. (Gerade noch einmal mit meinem B1 getestet: Internet Radio / DAB+ / FM)
FM-Radio:
presetList_1-5 <P1: 99.20MHz> 2017-04-20 13:57:14
presetList_6-0 2017-04-20 13:57:14
DAB+:
presetList_1-5 <P1: 1LIVE><P2: WDR2><P3: 1LIVEdiGGi><P4: sunshinelive><P5: ENERGY> 2017-04-20 14:17:44
presetList_6-0 <P6: RADIOBOB!><P7: Absolutrelax><P9: SCHLAGERPARADIES><P0: WDR4> 2017-04-20 14:17:44
IntenetRadio:
presetList_1-5 <P1: MixNation><P2: RTL-DeutschlandsHitradio><P3: NRJDance><P4: NRJHits><P5: AbsolutHot> 2017-04-20 14:21:14
presetList_6-0 <P6: CharivariParty-Hit-Mix><P7: Radio90.1FM><P8: Top100Germany><P9: planetradiotheclub><P0: sunshinelive>2017-04-20 14:21:14
Wenn du die dropdownlist meinst, dann wirst du erst einmal nicht um das Klicken auf den Reloadbutton des Browsers herumkommen. Das ist kein Problem des Moduls, sondern Eins von FHEM, bzw. PGM2 ;D
Das mit der NavList - Geschichte ist mir bekannt, ich hoffe, dass ich das mit dem automatischen Einlesen in einem Rutsch mit fixen kann.
Und jetzt zum Update:
(Ich bitte um ein Feedback, damit ich weiss, ob alles richtig ist. :) )
Zur Zeit sind in der aktuellen 17_SIRD.pm Version folgende Radiotypen eingepflegt:
-------------------------------------------------------------------------------------------------------------------------------------------------------------
SilverCrest SIRD 14 A2 / B1 / C1 / C2 -> sird14a2 / sird14b1 / sird14c1 / sird14c2
SilverCrest SMRS 18 A1 / 30 A1 -> SMRS18A1 / SMRS30A1
-------------------------------------------------------------------------------------------------------------------------------------------------------------
HAMA -> IR110
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Medion MD 87090 / MD 87238 / MD 87385 / MD 87180 / MD 87295 -> MD87090 / MD87238 / MD87385 / MD87180 / MD87295
-------------------------------------------------------------------------------------------------------------------------------------------------------------
TechniSat DR 580 -> TechniSatDR580
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Numan Two -> NumanTwo
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Die Angaben hinter den Pfeilen entsprechen denen für die Definition in FHEM. Bitte den Neustart von FHEM nicht vergessen !!!
Wenn dein Gerät hier nicht aufgelistet ist, bitte mit der 17_SIRD.pm aus dem unteren Beitrag in meiner Signatur ein Log erstellen.
LG Jörg
Hallo Jörg,
die Input-Geräte werden richtig erkannt!
Danke!
Gruß Maxel
Hallo zusammen,
die weiteren Tests habe ich mit einer Readingsgroup gemacht. Alle verwendeten Readings und Attribute funktionieren. Es ist nur ein erster und bei Weitem nicht abgeschlossener Test.
Definition Inpiut - Auswahl
define NumanAktion readingsGroup <internet radio>,<fm radio>,<cd>,<dab>,<aux>,<media player>,<blutetooth>,<power> \
<%tvlogos/internetradio.png%set 03NumanTwo input InternetRadio>,<%tvlogos/ukwradio.png%set 03NumanTwo input FM-Radio>,<%tvlogos/cdspielen.png%set 03NumanTwo input CD>,<%tvlogos/dabhoeren.png%set 03NumanTwo input DAB-Radio>,<%tvlogos/airplay.png%set 03NumanTwo input AUX>,<%tvlogos/usbdrive.png%set 03NumanTwo input MediaPlayer>,<%tvlogos/bluetooth.png%set 03NumanTwo input Bluetooth>,<{if(ReadingsVal("03NumanTwo","power","")eq"off"){"%tvlogos/poweoff.png%set+03NumanTwo+on"}else{"%tvlogos/poweoff.png%set+03NumanTwo+off"}}> \
<{if(ReadingsVal("03NumanTwo","input","")eq"InternetRadio") {"%tvlogos/aktiv.png"} else {"%tvlogos/passiv.png"}}>,<{if(ReadingsVal("03NumanTwo","input","")eq"FM-Radio") {"%tvlogos/aktiv.png"} else {"%tvlogos/passiv.png"}}>,<{if(ReadingsVal("03NumanTwo","input","")eq"CD") {"%tvlogos/aktiv.png"} else {"%tvlogos/passiv.png"}}>,<{if(ReadingsVal("03NumanTwo","input","")eq"DAB-Radio") {"%tvlogos/aktiv.png"} else {"%tvlogos/passiv.png"}}>,<{if(ReadingsVal("03NumanTwo","input","")eq"AUX") {"%tvlogos/aktiv.png"} else {"%tvlogos/passiv.png"}}>,<{if(ReadingsVal("03NumanTwo","input","")eq"MediaPlayer") {"%tvlogos/aktiv.png"} else {"%tvlogos/passiv.png"}}>,<{if(ReadingsVal("03NumanTwo","input","")eq"Bluetooth") {"%tvlogos/aktiv.png"} else {"%tvlogos/passiv.png"}}>,<{if(ReadingsVal("03NumanTwo","power","")eq"on") {"%tvlogos/aktiv.png"} else {"%tvlogos/passiv.png"}}>
attr NumanAktion alias Aktion - Küchenradio
attr NumanAktion alwaysTrigger 1
attr NumanAktion group NumanTwo
attr NumanAktion room Küchenradio
attr NumanAktion style style="text-align: center;;width: 100%;;"
attr NumanAktion valueIcon {"InternetRadio" => "tvlogos/internetradio.png"}
Definition Steuerung:
defmod 03NumanTwoPlayer readingsGroup 03NumanTwo:+STATE,input,presetList_1-5,mute,volumeStraight,localTime,localDate
attr 03NumanTwoPlayer alias NumanTwo - Status
attr 03NumanTwoPlayer alwaysTrigger 1
attr 03NumanTwoPlayer commands {\
"power.off" => "set %DEVICE on",\
"power.on" => "set %DEVICE off",\
"presetList_1-5" => "preset:",\
volumeStraight => "volumeStraight:slider,0,1,32",\
"mute" => "set %DEVICE mute toggle"\
}
attr 03NumanTwoPlayer group NumanTwo
attr 03NumanTwoPlayer icon 10px-kreis-gruen
attr 03NumanTwoPlayer noheading 1
attr 03NumanTwoPlayer nonames 1
attr 03NumanTwoPlayer room Küchenradio
attr 03NumanTwoPlayer style style="text-align: center;;"
attr 03NumanTwoPlayer valueIcon {\
"STATE.on" => "10px-kreis-gruen",\
"STATE.off" => "10px-kreis-rot",\
"power.off" => "general_an",\
"power.on" => "general_aus",\
"mute.on" => "audio_volume_high",\
"mute.off" => "audio_volume_mute"\
}
Vielleicht hilft's,
Gernot
P.S. Auf Vorschläge, Anregungen und Verbesserungen freue ich mich
Hi Jörg,
ich habe die 0.55 bei mir installiert und wenn ich einen Input in FHEM setze, wechselt das Radio nicht und im Log steht nur:
2017-04-21 07:14:06 SIRD Badradio input
In den Readings steht dann: lastcommand
input undefined
Ich habe das Radio als sird14c1 definiert.
Mache ich vielleicht etwas falsch?
Danke und viele Grüße,
Tim
Hallo Timm,
schalte bitte am Gerät mal auf AUX und danach mit FHEM auf InternetRadio. Das Ergebnis dann hier posten. :)
LG Jörg
Hallo Jörg,
danke fürs einbauen, auch wenn andere schneller waren. Die Eingänge umschalten funktioniert.
Bei der geschweiften Klammer ist mir wohl ein Leerzeichen dazwischen gekommen, sorry.
Mit den Favoritenlisten, das funktioniert bei mir nicht richtig. Egal wie lange ich Internetradio höre, dort stehen 2 DAB-Sender. Mache ich da was falsch oder kann man da noch irgendwas einstellen? Auch set presetListRequest verändert nichts.
Planst du noch was dagegen zu tun das FHEM ca 5sec hängt wenn das Radio nicht im Netz ist? Das stört zumindest bei Homematic schon sehr.
Gruß
Steffen
Zitat von: steffenp am 21 April 2017, 14:53:41danke fürs einbauen, auch wenn andere schneller waren. Die Eingänge umschalten funktioniert.
Klasse, das freut mich. :)
ZitatBei der geschweiften Klammer ist mir wohl ein Leerzeichen dazwischen gekommen, sorry.
Das ist mir beim hin und herkopieren auch schon passiert. ;)
ZitatEgal wie lange ich Internetradio höre, dort stehen 2 DAB-Sender. Mache ich da was falsch oder kann man da noch irgendwas einstellen? Auch set presetListRequest verändert nichts.
Hast du das Attribut presetListRequestMode auf 3 stehen und wird es auch so in den Readings angezeigt?
ZitatPlanst du noch was dagegen zu tun das FHEM ca 5sec hängt wenn das Radio nicht im Netz ist?
Ist das Radio für das Modul sporadisch nicht erreichbar, oder meinst du was anderes mit "wenn das Radio nicht im Netz ist"?
Hast du die Kombi Radio - W-Lan - FritzBox?
LG Jörg
Meinst du presetListRequestMode? Stand auf 0 aber auch mit 3 ändert sich nichts.
Angezeigt wird es.
Ich meine wenn das Radio vom Strom getrennt ist, also komplett nicht erreichbar. Es hängt bei mir am LAN der Fritzbox.
Gruß
Steffen
Hallo Steffen,
Zitat von: steffenp am 21 April 2017, 15:54:09Meinst du presetListRequestMode? Stand auf 0 aber auch mit 3 ändert sich nichts. Angezeigt wird es.
Es wird also so angezeigt?
presetListRequestMode 3Dann muss es gehen.
Aber wie gesagt, das dauert, da die API im Radio etwas Zeit braucht, bis die Infos zur Verfügung stehen.
Hast du FHEM neu gestartet?
ZitatIch meine wenn das Radio vom Strom getrennt ist, also komplett nicht erreichbar.
Das ist in der Form für das Modul erst einmal nicht vorgesehen. Du kannst dich freuen, dass du das nicht mit einer älteren Version des Moduls ausprobiert hast. Dann hätte FHEM das mit einer Bootschleife quittiert. ;D
LG Jörg
Hallo Jörg,
ein "list OG_SZ_IRadio_MD87090" zeigt mir:
Internals:
DEF 192.168.178.99 1234 MD87090
INTERVAL 30
IP 192.168.178.99
Model MD87090
NAME OG_SZ_IRadio_MD87090
NR 448
PASSWORD 1234
SESSIONID 519106398
STATE on
TYPE SIRD
logLevel 2
Readings:
2017-04-20 23:48:30 Modulversion 17_SIRD.pm V 0.55 Beta (Last edit Date: 20.04.2017)
2017-04-21 16:55:12 currentAlbum
2017-04-21 16:55:12 currentArtist
2017-04-21 16:55:12 currentDuration 0:00
2017-04-21 16:58:42 currentPosition 130:24
2017-04-21 14:48:45 currentTitle 94,3 rs2
2017-04-21 14:48:46 dABScan idle
2017-04-21 14:48:46 frequency 4294967.29
2017-04-20 21:29:01 friendlyName MEDION
2017-04-21 14:48:45 graphicUri http://medion.wifiradiofrontier.com/setupapp/setup1/logo/logo-1461.png
2017-04-21 16:55:12 infoText BACKSTREET BOYS - I WANT IT THAT WAY
2017-04-21 14:48:44 input InternetRadio
2017-04-21 15:45:35 lastcommand presetListRequest
2017-04-21 00:00:00 localDate 21.04.2017
2017-04-21 16:58:43 localTime 16:58:48
2017-04-21 14:48:44 mute off
2017-04-21 14:48:46 navCaps 3
2017-04-21 14:49:15 navNumItems 7
2017-04-21 14:49:15 navStatus ready
2017-04-21 14:48:46 playCaps stop|addPreset
2017-04-21 14:48:45 playRate 1
2017-04-21 14:48:45 playStatus playing
2017-04-21 14:48:15 power on
2017-04-20 21:29:01 presence present
2017-04-21 15:44:46 presetListRequestMode 3
2017-04-19 13:39:42 presetList_1-5 <P1: NDR2><P2: ENERGY>
2017-04-17 23:58:08 presetList_6-0
2017-04-20 21:29:01 radioID 002261324964
2017-04-21 14:48:46 remoteState on
2017-04-21 14:48:45 repeat off
2017-04-21 16:55:13 searchTerm
2017-04-21 14:48:45 shuffle off
2017-04-21 14:48:45 signalStrength 0
2017-04-20 21:29:01 version ir-mmi-FS2026-0500-0097_V2.10.13.EX65638-2RC6
2017-04-21 06:30:35 volume 0
2017-04-21 14:48:46 volumeSteps 21
2017-04-21 06:30:35 volumeStraight 0
Helper:
Attributes:
devStateIcon .*off:it_radio@red .*on:it_radio@green .*:it_radio@yellow .*:it_radio .*:it_radio
icon it_radio
presetListRequestMode 3
Neu gestartet habe ich eben auch noch mal. Keine Änderung. Reichen 30 min?
Nunja, ich halte es nicht für unwahrscheinlich das so ein Radio auch mal wo anders hin getragen oder auch komplett ausgeschaltet wird.
Das Problem ist halt das bei 5 sec der HMLAN und auch der HMLGW (Homematic) gerne aussteigen und sich disconnecten. Damit wird das unzuverlässig.
Gruß
Steffen
Hallo Steffen,
Zitat von: steffenp am 21 April 2017, 17:40:04 Internals:
2017-04-21 15:44:46 presetListRequestMode 3
2017-04-19 13:39:42 presetList_1-5 <P1: NDR2><P2: ENERGY>
2017-04-17 23:58:08 presetList_6-0
Für mich sieht das so aus, als hättest du nur zwei Presets belegt.
ZitatReichen 30 min?
Wenn nur zwei Presets belegt sind, dann kannst du 30 Jahre warten, dann wird da auch nicht mehr angezeigt.
ZitatDas Problem ist halt das bei 5 sec der HMLAN und auch der HMLGW (Homematic) gerne aussteigen und sich disconnecten.
Als Krückenlösung kann ich dir auf die Schnelle nur anbieten, den wdTimer von 25 auf 15 herab zu setzen. Dann steigen der HMLAN und auch der HMLGW nicht mehr so schnell aus.
Da ich nicht der Ursprungsprogrammierer des Moduls bin, muss ich mir erst etwas sinnvolles zu einem Timeout einfallen lassen.
LG Jörg
Hallo Jörg,
ja es sind nur 2 Presets bei Dab+. Wenn jetzt wie oben ja auch Internetradio läuft sind es andere und auch mehr. Das Radio müsste 3 Favoritenlisten haben: Internet, dab+ und Fm.
Timeout runtersetzen wäre evtl. ein würgaround. Je nachdem wie weit man nach unten kommt. Aber das kannst du sicher nicht global machen, dann meckern die mit WLAN.
Gruß Steffen
Hallo Steffen,
Zitat von: steffenp am 21 April 2017, 19:37:09ja es sind nur 2 Presets bei Dab+.
Also stimmt die Anzeige der Presets doch.
ZitatDas Radio müsste 3 Favoritenlisten haben: Internet, dab+ und Fm.
Was bitteschön willst du denn mit deinen drei Listen anfangen ? ? ?
Wenn du im Modus InternetRadio bist, kannst du mit der Favoritenliste von DAB+, oder FM-Radio nichts machen. Am Radio selber siehst du auch nur die Presetliste des eingestellen Modus.
Wenn du den Modus wechselst, werden sie im Modul ordnungsgemäß aktualisiert. So ist es und so bleibt es !!!
LG Jörg
Hallo Jörg
Zitat von: Jörg am 21 April 2017, 19:57:54
Hallo Steffen,Also stimmt die Anzeige der Presets doch.
Was bitteschön willst du denn mit deinen drei Listen anfangen ? ? ?
Wenn du im Modus InternetRadio bist, kannst du mit der Favoritenliste von DAB+, oder FM-Radio nichts machen. Am Radio selber siehst du auch nur die Presetliste des eingestellen Modus.
Wenn du den Modus wechselst, werden sie im Modul ordnungsgemäß aktualisiert. So ist es und so bleibt es !!!
LG Jörg
Eine reicht, da hast du recht. Aber irgendwie reden wir aneinander vorbei. Ich sehe immer die Dab+ Liste, egal was gerade läuft. Oben im List läuft Internetradio, die Favoriten gehören zu Dab+. Schalte ich auf FM sehe ich genau die gleichen Presets (da habe ich gar keine gespeichert). Höre ich dab stimmt es dann natürlich. Jetzt klarer?
Gruß Steffen
Hallo,
vielen Dank für dieses Modul! Besteht die Möglichkeit Spotify und Sync für mehrere Player zu integrieren? Stehe für Tests gerne zur Verfügung.
Danke!
Hallo gravidi,
klar geht das. :)
Nimm die 17_SIRD.pm aus dem zweiten Beitrag in meiner Signatur und wiederhole das für jedes Gerät. Bitte auch bei jedem Log die genaue Geätebezeichnung nicht vergessen. ;)
LG Jörg
Hallo Jörg,
in meinem Fall, Numan Two, ist mir eine Kleinigkeit aufgefallen. Das Attribut "repeat" hat die Stati On und Off. Das Numan Two kennt scheinbar 3 Stati, die jeweils mit "set [device] repeat Off" gewechselt werden.
Der "On-Befehl" hat derzeit keine Funktion.
Gernot
Hallo Gernot,
Zitat von: supernova1963 am 23 April 2017, 07:05:45...Das Numan Two kennt scheinbar 3 Stati, die jeweils mit "set [device] repeat Off" gewechselt werden. Der "On-Befehl" hat derzeit keine Funktion.
Ich hoffe, dass das jetzt nicht so sehr unter deinen Nägeln brennt, da ich vorher noch einige andere Sachen bearbeiten muss. ;) Aber ich werde es mir anschauen. Kann sein, dass ich dir dazu noch einige Fragen stellen werde.
LG Jörg
Hallo Jörg,
Kein Problem, es funktioniert ja mit set... off.
Wir wissen deine bis jetzt schon sehr erfolgreiche Arbeit zu schätzen!
LG
Gernot
Hallo,
ich wollte mich zunächst einmal für die tolle Arbeit an dem Modul bedanken. Echt klasse!
Ich nutze ein Lidl Silvercrest SMRS18A1 (den Brüllwürfel ;-)) und das Modul funktionier echt super damit.
Auch die Inputauswahl klappt sehr zuverlässig.
Ich hab aber trotzdem mal eine Frage zu der ich hier im Thread bisher noch nichts gelesen habe.
Der SMRS18A1 (und ich denke viele andere Geräte hier auch) ist ja multiroomfähig. Also man kan das Ding mit weiteren Geräten im gleichen Netzwerk zu einer Gruppe zusammenfassen und dann den gleichen Inhalt auf diesen Geräten hören.
Ist es irgendwie umsetzbar, diese Funktion in das Modul mitaufzunehmen? Das wäre echt super.
Man könnte zwar auch mehrere Geräte über einen Befehl in Fhem ansteuern, aber dann hat man im einen delay zwischen den einzelnen Geräten. Deshalb wäre die Gruppenfunktion echt 'ne feine Sache.
Falls es in diese Richtung Überlegungen gibt, ich würde das ganze auch gerne testen und hier Rückmeldungen zu geben.
Viele Grüße
RoB
Den kleinen SMRS18A1 kannst du mit einem zweiten kombinieren über einen Schalter hinten am Brüllwürfel.
Sprich als Stereopaar.
Und wenn du bei einem on/off schaltest in fhem, geht der zweite auch on/off.
Jedoch was nicht funktioniert hatte war, wenn ich über fhem laut/leiser geschalten habe,
dann ging nur der angesteuerte laut/leiser.
Kann ich leider nicht mehr testen hatte sie nur mal ausgeborgt.
LG
Kann bitte mal jemand probieren, ob auch die Text2Speech (TTS) Ausgabe mit dem SMRS18A1 funktioniert?
Hallo zusammen,
Multiroom, ja Multiroom. Da gibt es etwas in der API, aber leider nicht viel. Allerdings habe ich da etwas von Multivolume gelesen. ;)
Wie ich sehe besteht da ja doch Interesse, also werde ich versuchen, da das was möglich ist einzubauen. Aber alles hübsch der Reihenfolge nach. Erst ist das mit dem automatischen Inputs dran, dann war da noch was mit den Umlauten in den Programmnamen (von mrfloppy) usw. Wenn das alles soweit läuft, geht es an den Multiroom. :)
Da werde ich mit Sicherheit auch ein, oder zwei Leute zum testen brauchen. Werde zu gegebenen Zeit dann hier noch nachfragen.
LG Jörg
Super,
vielen Dank schonmal für die Antwort.
Wenn es soweit ist, kannst du mich gerne als Tester einplanen.
Viele Grüße
RoB
Hi Jörg,
ich habe es jetzt noch einmal probiert und es geht. Ich hatte meinen Kommentar (s. u.) erst geschrieben, nachdem ich das Modul neugeladen und auch fhem mehrfach neugestartet hatte. Es wollte partout nicht klappen. Es kam immer zu der Meldung "input undefined".
Gestern Abend klappte es wie gedacht und die Inputs sind für das sird14c1 richtig umgesetzt. Wieso es vorher nicht funktionierte kann ich mir nicht erklären, das ist jetzt aber auch egal ;)
Nochmals vielen Dank und entschuldige!
Gruß,
Tim
ZitatHi Jörg,
ich habe die 0.55 bei mir installiert und wenn ich einen Input in FHEM setze, wechselt das Radio nicht und im Log steht nur:
Code: [Auswählen]
2017-04-21 07:14:06 SIRD Badradio input
In den Readings steht dann: lastcommand
input undefined
Ich habe das Radio als sird14c1 definiert.
Mache ich vielleicht etwas falsch?
Danke und viele Grüße,
Tim
Hallo Tim,
das kann auch mit dem Cache des Browsers zusammenhängen. Ist zumindest eine Vermutung von mir. :D
Hallo RoB,
wenn es soweit ist, werde ich auf dich zurückkommen. ;)
LG Jörg
Kann man über das Modul und die unterstützten Lautsprecher/Radios auch Text2Speech nutzen?
Ich bräuchte eine WLAN Lautsprecher Lösung die es mir ermöglicht, jederzeit Sprachansagen auszugeben ohne dass man zuvor am Radio etwas drücken muss.
Zitat von: chunter1 am 03 Mai 2017, 10:23:42Kann man über das Modul und die unterstützten Lautsprecher/Radios auch Text2Speech nutzen?...
Habe mir das Wiki zu Text2Speech mal angesehen und da steht:
Zitat...Es gibt Installationen, bei denen der FHEM-Server z.B. im Keller steht, die Sprachausgabe soll aber räumlich entfernt stattfinden, z.B. im Wohnzimmer. Hierzu ist am Zielort eine FHEM-Instanz anzulegen...
Mit anderen Worten, wenn du es schaffen solltest auf dem Radio FHEM zu installieren, was ich aber für unmöglich halte, dann hättest du eine Chance.
Mit weiteren Worten: Leider nein.
Zitat von: Jörg am 03 Mai 2017, 11:14:08
Habe mir das Wiki zu Text2Speech mal angesehen und da steht:Mit anderen Worten, wenn du es schaffen solltest auf dem Radio FHEM zu installieren, was ich aber für unmöglich halte, dann hättest du eine Chance.
Mit weiteren Worten: Leider nein.
ok, danke!
Das hatte ich befürchtet.
Scheint als könnten das nur die Sonos dank eigener Integration.
NACHTRAG: Nach einem FHEM update mit anschließendem Neustart ist der Spuk im Augenblick vorbei... Seltsam...
Hoppla, nach Update auf die letzte Version der sird.pm habe ich im Sekundentakt das Log voll mit folgenden Einträgen:
Muss mich korrigieren. Die gleichen Logeinträge auch mit der vorletzten Version... Würde die beiden Radios jetzt eigentlich gern deaktivieren, bis ich den Grund kenne. Geht aber leider nicht.
2017.05.05 15:23:07 2: Hash: HASH(0x16caaf8) Command: netRemote.sys.power Mode: 1 Value: 0 Value 1: 0 Name: Helper: http://192.168.1.31:80/fsapi/GET/netRemote.sys.power?pin=1234&sid=2069257597
2017.05.05 15:23:08 2: FALSE 1: 404 Error HELP Counter: 1
2017.05.05 15:23:08 2: Hash: HASH(0x16caaf8) Command: netRemote.sys.power Mode: 1 Value: 0 Value 1: 0 Name: Helper: http://192.168.1.31:80/fsapi/GET/netRemote.sys.power?pin=1234&sid=2069257597
2017.05.05 15:23:09 2: FALSE 1: 404 Error HELP Counter: 2
2017.05.05 15:23:09 2: Hash: HASH(0x16caaf8) Command: netRemote.sys.power Mode: 1 Value: 0 Value 1: 0 Name: Helper: http://192.168.1.31:80/fsapi/GET/netRemote.sys.power?pin=1234&sid=2069257597
2017.05.05 15:23:09 2: (return undef) FALSE 2: 404 Error HELP Counter: 3
2017.05.05 15:23:13 2: FALSE 1: 404 Error HELP Counter: 0
2017.05.05 15:23:13 2: Hash: HASH(0x22c60c8) Command: netRemote.sys.power Mode: 1 Value: 0 Value 1: 0 Name: Helper: http://192.168.1.44:80/fsapi/GET/netRemote.sys.power?pin=1234&sid=1286151459
2017.05.05 15:23:14 2: FALSE 1: 404 Error HELP Counter: 1
2017.05.05 15:23:14 2: Hash: HASH(0x22c60c8) Command: netRemote.sys.power Mode: 1 Value: 0 Value 1: 0 Name: Helper: http://192.168.1.44:80/fsapi/GET/netRemote.sys.power?pin=1234&sid=1286151459
2017.05.05 15:23:15 2: FALSE 1: 404 Error HELP Counter: 2
2017.05.05 15:23:15 2: Hash: HASH(0x22c60c8) Command: netRemote.sys.power Mode: 1 Value: 0 Value 1: 0 Name: Helper: http://192.168.1.44:80/fsapi/GET/netRemote.sys.power?pin=1234&sid=1286151459
2017.05.05 15:23:15 2: (return undef) FALSE 2: 404 Error HELP Counter: 3
Das betrifft beide meiner SIRD-Geräte. Das Log wird derzeit im Sekundentakt vollgeschrieben. Ich wunderte mich schon über den Performancerückgang von FHEM. Was kann der Grund hierfür sein?
Es handelt sich bei den beiden Geräten um:
1.) LIDL: IWR 261, FW: ir-mmi-FS2026-0500-0296_V2.9.10c.EX62921-1A12
2.) ALDI: SIRD 14 C1, FW: ir-mmi-FS2026-0500-0265_V2.12.16c.EX68483-1RC10
Hallo RaspiCOC,
ein 404 Error bedeutet immer: Server nicht erreichbar.
Nehme mal beide Gräte für eine Minute vom Stromnetz, dann sollte der Spuk vorbei sein. Schätze mal, dass die Geräte sich aufgehangen haben. Hatte ich auch schon.
LG Jörg
Hallo zusammen,
es gibt ein neues Update der 17_SIRD.pm.
Diese Liste mit den Definitionen ist mit der neuen Version hinfällig und kann nicht mehr benutzt werden !!!
ZitatZur Zeit sind in der aktuellen 17_SIRD.pm Version folgende Radiotypen eingepflegt:
-------------------------------------------------------------------------------------------------------------------------------------------------------------
SilverCrest SIRD 14 A2 / B1 / C1 / C2 -> sird14a2 / sird14b1 / sird14c1 / sird14c2
SilverCrest SMRS 18 A1 / 30 A1 -> SMRS18A1 / SMRS30A1
-------------------------------------------------------------------------------------------------------------------------------------------------------------
HAMA -> IR110
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Medion MD 87090 / MD 87238 / MD 87385 / MD 87180 / MD 87295 -> MD87090 / MD87238 / MD87385 / MD87180 / MD87295
-------------------------------------------------------------------------------------------------------------------------------------------------------------
TechniSat DR 580 -> TechniSatDR580
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Numan Two -> NumanTwo
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Die Angaben hinter den Pfeilen entsprechen denen für die Definition in FHEM.
Die neue Definition lautet für alle Geräte: define <Radioname> SIRD <IP> 1234 SIRD-AUTOMATIC <ss>Damit werden bei allen Radios, oder Brüllwürfeln die Eingänge automatisch ausgelesen und gesetzt. Somit ist eine Differenzierung der Geräte nicht mehr nötig. Eine Liste der ausgelesenen Eingänge ist auch in den Readings zu sehen.
Zwei Mankos gibt es allerdings noch:
- Bei Streamingdiensten wie Tidal, Napster, usw. sowie im Modus Musikplayer werden die Radio-Favoriten noch angezeigt, obwohl sie keine Funktion haben. Das ist ein kleiner Bug in der ASPI. Ich versuche da noch was zu programmieren, dass das umgeht.
- Im Modus Musikplayer werden die nachfolgenden Optionen, wie z.B. Medienbibliotheken, USB abspielen, usw., nicht angezeigt. Ich habe eine Stelle gefunden, wo ich sie auslesen kann, aber die Funktion ist in dem Modul sehr Buggy! Das muss ich erst in Ordnung bringen und dann eine Möglichkeit finden, das an die entsprechende Stelle zu portieren. (In Kurzform: Das dauert etwas. :D )
Zusätzlich habe ich noch eine Möglichkeit gefunden, den Netzwerktraffic zwischen FHEM und dem Gerät drastisch zu reduzieren. Derzeit habe ich das testweise bei den Inputs und den Favoriten eingebaut.
Die Modulversion wurde mit 6 verschiedenen Geräten getestet. An der Stelle noch ein Dankeschön an SommerSonnenWende und RoB81, die sich die Zeit genommen haben um das Modul zu testen. 8) 8) 8)
Zum Schluss noch mein Lieblingssatz:
Den neustart von FHEM nicht vergessen !!!LG Jörg
Hallo Jörg,
habe es gerade für meine neuen Lidl-Lautsprecher installiert, funktioniert :-)
2 Fragen hätte ich noch:
- wofür steht in der Definition das <ss> ?
- Was ist der Unterschied zwischen "Volume" und "VolumeStraight"?
Habe auch den Silvercrest WLAN Adapter SMRA 5.0 A1, auch den kann ich mit Deiner Version steuern.
Aktuell gibt s übrigens bei Lidl die verschiedenen Multiroom-Lautsprecher im Angebot.
https://www.lidl.de/de/search?query=multiroom (https://www.lidl.de/de/search?query=multiroom)
Hallo Klaus,
Zitat von: Klaus0815 am 07 Mai 2017, 19:32:51habe es gerade für meine neuen Lidl-Lautsprecher installiert, funktioniert :-)
Danke, dass du mir ein Feedback gegeben hast. :)
Zitat- wofür steht in der Definition das <ss> ?
Das bedeutet Sekunden. ;) Wenn du dort 30 einträgst, werden alle 30 Sekunden diverse Funktionen im Modul aufgerufen und die Readings aktualisiert. Habe meine Definition auch auf 30 Sekunden eingestellt.
Zitat- Was ist der Unterschied zwischen "Volume" und "VolumeStraight"?
Ich fange mal mit VolumeStraight an: VolumeStraight kann die Werte 0 - 20 annehmen. Das sind die Lautstärkewerte, mit denen auch alle Geräte arbeiten. Um es jetzt salopp auszudrücken, der normale Lautstärkewert.
Volume kann die Werte 0 - 100 annehmen. Diese Lautstärkewerte berechnen sich aus VolumeStraight-Wert mal 5. Wenn man nun per Volume die Lautstärke ändert, wird der Volumewert einfach durch 5 geteilt, gerundet und dann wie der VolumeStraight-wert gesetzt. :D :D :D
Warum das Verwirrspiel im Modul eingebaut wurde kann ich dir beim besten Willen nicht sagen. Ich weiss nur, dass ich schon länger mit dem Gedanken spiele, es zu entfernen.
ZitatHabe auch den Silvercrest WLAN Adapter SMRA 5.0 A1, auch den kann ich mit Deiner Version steuern.
Klasse, dann scheint ja alles zu laufen. :)
ZitatAktuell gibt s übrigens bei Lidl die verschiedenen Multiroom-Lautsprecher im Angebot.
https://www.lidl.de/de/search?query=multiroom (https://www.lidl.de/de/search?query=multiroom)
Habe in einem Lidl-Newsletter gesehen, dass im Mai in den Filialen wieder das SIRD 14 C2 zu finden sein wird.
LG Jörg
Zitat von: Jörg am 07 Mai 2017, 20:30:06
Warum das Verwirrspiel im Modul eingebaut wurde kann ich dir beim besten Willen nicht sagen. Ich weiss nur, dass ich schon länger mit dem Gedanken spiele, es zu entfernen.
Hallo Jörg, wenn ich mich nicht ganz irre, hat das was damit zu tun, dass alle Module gleich gehalten werden sollen. Also bei allen Modulen die Volume nutzen, sollen dieses von 0 bis 100 gehen.
Jo, hab mal kurz gesucht und es im WIKI gefunden:
https://wiki.fhem.de/wiki/DevelopmentGuidelinesAV (https://wiki.fhem.de/wiki/DevelopmentGuidelinesAV)
Gruß
Ingo
Hallo Jörg,
dann sind die Sekunden auch dafür da, wie oft Sendername usw. gepollt werden?
Kann man das nachträglich ändern?
Mein Problem ist gerade, das ich mit dem Windows-Tool FSRadio Remote meine Favoritenliste editieren will, aber da funkt dann wohl FHEM dazwischen?
Könnte alles so einfach sein ohne die Session-ID :-)
ZitatHabe in einem Lidl-Newsletter gesehen, dass im Mai in den Filialen wieder das SIRD 14 C2 zu finden sein wird
weisst Du da Näheres? Überlege gerade, es mir zu bestellen, vielleicht gilt das Angebot auch nur regional, so wie jetzt bei den Lautsprechern?
Mein Plan ist eigentlich folgender, vielleicht weiss hier jemand ob das überhaupt geht?:
- SIRD 14 über FHEM angesteuert, als DAB+ Empfänger
- Dann vom SIRD 14 zu mehreren Multiroom-Empfängern streamen
Theoretisch müsste es gehen, aber wenn ich schon sehe dass der Haupt-Streaming-Empfänger dann für die Gruppe eine weitere IP erstelltt ...
Dann noch so Kleinigkeiten wie das wenn man an einem Lautsprecher die Power-Taste kurz drückt alle ausgehen, man muss lange drücken....
Ich bin gespannt :-)
Hallo Ingo und Klaus,
Zitat von: automatisierer am 07 Mai 2017, 21:07:34wenn ich mich nicht ganz irre, hat das was damit zu tun, dass alle Module gleich gehalten werden sollen. Also bei allen Modulen die Volume nutzen, sollen dieses von 0 bis 100 gehen.
OK, habe verstanden, es bleibt so wie es ist. :) Aber trotzdem finde ich es vewirrend für den Endbenutzer. :D
Zitat von: Klaus0815dann sind die Sekunden auch dafür da, wie oft Sendername usw. gepollt werden?
Ja.
Wenn es beim Editieren stört, dann setze die Zeit doch solange auf 9000 hoch. Das sind 150 Minuten, die zum Editieren doch ausreichen dürften?
LG Jörg
ZitatWenn es beim Editieren stört, dann setze die Zeit doch solange auf 9000 hoch. Das sind 150 Minuten, die zum Editieren doch ausreichen dürften?
Die Zeit ist vermutlich das Internal "Interval" ?
Wie stelle ich die um, ausser direkt in der fhem.cfg?
Viele Grüße
Klaus
Hallo Klaus,
ja, da hst du recht. Das ist der Internal Interval.
Umstellen geht nur über die Definition des Gerätes.
LG Jörg
Zitat von: Klaus0815 am 08 Mai 2017, 10:08:11
Wie stelle ich die um, ausser direkt in der fhem.cfg?
"fhem.cfg" und "bearbeiten" - ein paar von Uns... ICH NICHT 8)... mögen diese Wörter nicht gern in einem Satz hören...
Also es gibt schon noch andere Möglichkeiten Definitionen zu erstellen und zu ändern. Ich hab das Anfangs auch nur direkt in der .cfg per Editor gemacht, mittlerweile allerdings nur noch über FHEMWEB, z.B. über "Raw definition" (ganz unten auf der Seite) oder mal auf DEF klicken (zu finden in den Internals des Device)
Hallo automatisierer,
Zitat von: automatisierer am 08 Mai 2017, 14:17:16"fhem.cfg" und "bearbeiten" - ein paar von Uns... ICH NICHT 8)... mögen diese Wörter nicht gern in einem Satz hören...
Ich meine mit den folgenden Worten nicht dich!
Mag sein, dass viele so denken, habe ich hier schon oft gelesen, dass das böse und übelst ist. Aber was soll dagegen sprechen, mit einem vernünftigen mit Linux konformen Texteditor zu arbeiten, wenn man weiß, was man tut?
Mache ich grundsätzlich so !!! :D :D
Jeder Raum im Haus hat eine eigene
raumname.pm, die in der fhem.cfg includet ist. Dadurch resultierende Fehler? --> KEINE !!!
Also wüsste ich keinen plausiblen Grund das in irgend einer Form zu ändern.
LG Jörg
Nächste Frage: :-)
Weiss jemand ie man bei den Lidl-Lautsprechern die Presets einstellen kann?
In der Silvercrest und Undok-App finde ich nichts entsprechendes, mit FSRadioRemote kann ich zwar den momentan gespielten Sender als Preset speichern, leider enthält der aber Umlaute :-(
Viele Grüße
Klaus
Ich mache das grundsätzlich nicht mehr so, weil es mir viel zu umständlich ist... aber das ist ja jedem selber überlassen. Es gibt da ein paar hübsche Einstellungen für FHEMWEB, dann bekommt der dort eingebaute Editor so Kleinigkeiten wie Klammerhervorhebung und was das Herz sonst noch so begehrt... und das ist mir viel lieber und bequemer als jedes mal die Datei zu öffnen und anschließend ein reread oder neustart zu machen...
Die intervall Zeit zu ändern ist per FHEMWEB Beispielsweise in 2 Sekunden erledigt, alleine ein rereadcfg oder Neustart von FHEM dauert bei mir 20 Sekunden - ohne die Datei zu öffnen, die Zeile zu suchen ...
Kann und soll ja jeder machen wie er will! Ich habe bei der Frage von Klaus zwischen den Zeilen gelesen, dass ihm der Weg über die FHEM.cfg zu umständlich ist und er die anderen Möglichkeiten nicht kennt...(Ohne ihm das unterstellen zu wollen...)
ZitatIch habe bei der Frage von Klaus zwischen den Zeilen gelesen, dass ihm der Weg über die FHEM.cfg zu umständlich ist und er die anderen Möglichkeiten nicht kennt...(Ohne ihm das unterstellen zu wollen...)
In der Tat kenne ich die Möglichkeiten nicht - habe es bisher halt immer durch editieren der fhem.cfg gelöst, aber DU hast Recht, Neustart usw nervt...
Gehört zwar nicht in diesen Thread, aber wie funktioniert das mit der Raw definition? Einfach was eintragen? Diese erfordert dann keinen Neustart?
Leider finde ich zu solchen Neuerungen hier im Forum relativ wenig, auch die Google-Suche nach fhem raw definition liefert auf Anhieb wenig Aussagekräftiges
Viele Grüße
Klaus
im der Definition von deinem FHEMWEB folgende Attribute eintragen:
attr fhemWeb JavaScripts codemirror/fhem_codemirror.js
attr fhemWeb codemirrorParam { "theme":"blackboard", "lineNumbers":true }
evtl. gibts da auch noch mehr, bei interesse einfach mal in der Comandreff unter FHEMWEB nachschauen...
und die Raw definition, sieht ja quasi genau so aus wie die Definition in der fhem.cfg - nur das da nicht 'define' sondern 'defmod' steht (define > Device anlegen, funktioniert nicht wenn ein Device schon vorhanden ist / defmod > Device ändern funktioniert auch wenn das Device noch nicht vorhanden ist) zusätzlich stehen da noch die aktuellen Readings mit drin (setstate ....). Die Änderungen werden natürlich sofort wirksam - dafür muss man die Aktuelle Konfiguration speichern, bevor man einen Neustart macht.
In den Raw definitions kannst du sogar mit Wildcards arbeiten und somit mehrere Definitionen gleichzeitig abändern... Aber das ist genauso mit vorsicht zu genießen wie das direkte bearbeiten der FHEM.cfg.
Edit:
Zum internen Editor hab ich noch was gefunden:
https://wiki.fhem.de/wiki/Konfiguration#Integrierter_Editor (https://wiki.fhem.de/wiki/Konfiguration#Integrierter_Editor)
Da ja hier einige Besitzer der Silvercrest-Lautsprecher mitlesen - wie schaltet Ihr die Teile eigentlich an- / aus?
Ein Druck auf den Power-Button schaltet komplett alle Lautsprecher in der Gruppe aus, ist ja wohl nicht Sinn der Sache?
Auch wenn ich über das Modul hier versuche einen Lautsprecher auszuschalten gehen alle aus?
Ohne Gruppe geht es natürlich, aber dann spielen die Teile ja nicht mehr synchron?
Viele Grüße
Klaus
Hallo Jörg,
Zitat von: Jörg am 07 Mai 2017, 14:39:58
Hallo zusammen,
es gibt ein neues Update der 17_SIRD.pm.
Diese Liste mit den Definitionen ist mit der neuen Version hinfällig und kann nicht mehr benutzt werden !!!
Die neue Definition lautet für alle Geräte: define <Radioname> SIRD <IP> 1234 SIRD-AUTOMATIC <ss>
Damit werden bei allen Radios, oder Brüllwürfeln die Eingänge automatisch ausgelesen und gesetzt. Somit ist eine Differenzierung der Geräte nicht mehr nötig. Eine Liste der ausgelesenen Eingänge ist auch in den Readings zu sehen.
Das auslesen der Eingänge sieht auch beim MD87090 richtig aus aber umgeschaltet wird teilweise versetzt.
Internetradio und Spotify sind in Ordnung, Musikplayer bewirkt nichts, DAB startet den Musikplayer, FM schaltet auf DAB und Auxin wählt dann FM. Auxin kann ich nicht einschalten.
Dafür funktioniert die presetList jetzt bei DAB und FM. Dort werden jeweils nach einiger Zeit die richtigen Listen angezeigt. Bei Internetradio funktioniert das nicht. Dort bleiben einfach die letzten Einträge bestehen, also die Liste von FM oder DAB, je nach dem was vorher lief.
Gruß Steffen
Hallo.
Mein fhem ist in letzter Zeit häufiger abgestürzt.
Jetzt ist mir aufgefaĺlen, das es immer abstürzt, wenn das Radio lief.
Könnte mal jemand in das folgende Thema klicken, da hab ich im ersten Post die Fehlermeldung kopiert und sagen, ob das am Modul liegt?
https://forum.fhem.de/index.php/topic,71758.0.html (https://forum.fhem.de/index.php/topic,71758.0.html)
Danke.
Holger
Hallo Holger,
Zitat von: Hoggle am 09 Mai 2017, 22:38:08Jetzt ist mir aufgefaĺlen, das es immer abstürzt, wenn das Radio lief.
Nehme mal das (die) Grät(e) für eine Minute vom Stromnetz, dann sollte der Spuk vorbei sein. Schätze mal, dass das (die) Geräte sich aufgehangen haben.
Das hatte ich auch schon.
Dein
Not well-formed (invalid token) at line 3, column 19, byte 58 at /usr/lib/arm-linux-gnueabihf/perl5/5.20/XML/Parser.pm line 187.
bedeutet, dass die XML-Antwort nicht in Ordnung war.
Ist es per LAN, oder W-LAN verbunden?
Hallo Steffen,
ich werde für dich eine modifizierte Version erstellen, mit der ich die Antworten deines Radios genauer sehen kann.
Kann allerdings nicht versprechen, dass ich es heute schaffe. ;)
LG Jörg
Zitat von: Jörg am 10 Mai 2017, 09:01:56
Hallo Holger,Nehme mal das (die) Grät(e) für eine Minute vom Stromnetz, dann sollte der Spuk vorbei sein. Schätze mal, dass das (die) Geräte sich aufgehangen haben.
Das hatte ich auch schon.
Hallo Jörg.
Mal zum Verständnis: Das Radio funktioniert einwandfrei und ich kann am Radio auch zwischen den verschiedenen Eingängen umschalten. Des weiteren kann ich das Radio auch über die APP steuern und trotzdem könnte sich das Gerät aufgehängt haben?
Na gut, kann ja nicht schaden, das Kabel mal zu ziehen. 8)
ZitatDein Not well-formed (invalid token) at line 3, column 19, byte 58 at /usr/lib/arm-linux-gnueabihf/perl5/5.20/XML/Parser.pm line 187.
bedeutet, dass die XML-Antwort nicht in Ordnung war.
Okay, aber was soll mir das dann sagen und wie kann ich das ändern? Oder könnte das mit dem "aufhängen" zu tun haben? ???
ZitatIst es per LAN, oder W-LAN verbunden?
W-LAN ;D
Hallo Holger,
Zitat von: Hoggle am 10 Mai 2017, 13:43:09Des weiteren kann ich das Radio auch über die APP steuern und trotzdem könnte sich das Gerät aufgehängt haben?...
Woran das nun genau liegt, kann ich dir auf die Schnelle auch nicht sagen. Was allerdings Fakt ist, ist die Tatsache, dass jeder Zugriff auf die Geräte mit Hilfe einer Sitzungs ID geschieht. FHEM bekommt mit dem Modul eine und die App bekommt eine Andere. Was nun sein kann, ist das die Nutzung von FHEM und der App gleichzeitig ein Problem in der API erzeugt, da dann zwei Sitzungs IDs genutzt werden müssen.
Das Not well-formed kommt von der Parser.pm, da sie mit irgendwas aus dem Radio "gefüttert" wird, was ihr nicht schmeckt.
Was ich nun nicht herauslesen konnte ist, ob du nun das Radio vom Strom getrennt hast, oder nicht.
Die Frage nach LAN, oder W-LAN deshalb, da der Fehler bisher nur im W-LAN Betrieb aufgetaucht ist. Ich glaube, dass da auch der Fehler zu suchen ist. Wenn ich die letzten Perl Warnings hier im Modul abgefangen habe, versuche ich mich mit dem Programmierer der API in Verbindung zu setzen, da ich da noch einige andere Dinge gefunden habe.
LG Jörg
wegen der SitzungsID bin ich nicht mehr ganz sicher. ich glaube es gibt immer nur eine Sitzung und bei anmeldung eines neuen Gerätes, wird die alte Sitzung geschlossen...
Hallo Jörg,
denkst Du, das Problem mit den Umlauten ist irgendwie lösbar?
Oder weiss jemand, wie man die Favoriten / Presets editieren kann ?
Kann man Prestes evtl auch über z.B. "P1" statt "Rockradio123- der beste Sender aller Zeiten" aufrufen?
Viele Grüße
Klaus
Hallo,
habe folgende LS am Laufen:
1x Speaker SMRS 35 A1
1x Speaker SMRS 30 A1
2x Speaker SMRS 18 A1
1x Soundbar 40 W SMRB 40 A1
Läft alles Perfekt...
Hi,
wenn die die preset nur mit ": " anstelle von <P?: " getrennt sind ist die integration mit tablet-ui einfacher....
Besser gefragt: Warum sind die preset so getrennt ?
Danke für das modul, DIR3110 (HAMA) läuft super.
esk
Zitat
Läft alles Perfekt...
Nervt Dich das nicht, das wenn Du einen Lautsprecher ausmachst, alle mitausgehen?
Oder hast Du da eine Lösung gefunden?
Zitat von: Klaus0815 am 15 Mai 2017, 15:52:01
Nervt Dich das nicht, das wenn Du einen Lautsprecher ausmachst, alle mitausgehen?
Oder hast Du da eine Lösung gefunden?
Das ist die Funktion einer Gruppe... Ich möchte das so ...
Grüßle
Hallo zusammen.
Ich habe ein auna KR-200 Küchenradio.
Das Modul funktioniert auch damit (zumindest an, aus, Lautstärke, den Rest hab ich noch nicht getestet).
Super Arbeit, vielen Dank!
Philipp
Edit: presets, input Abfrage und Wahl geht auch.
Hallo,
ich hatte jetzt schon zwei mal das Problem das sich FHEM komplett verabschiedet hat....
Immer wenn sich die Boxen Aufhängen (kann durchaus alle 2-4 Tage mal passieren) schießt sich FHEM nun selber ab.
Das hatte ich mit der vorherigen SIRD.pm nicht...
Sieht so aus wie bei dem Kollegen weiter vorne ... (XML)
Logs hab ich jetzt nicht parat kann aber welche nachliefern...
Zitat von: raiderxxl am 18 Mai 2017, 08:11:05
Hallo,
ich hatte jetzt schon zwei mal das Problem das sich FHEM komplett verabschiedet hat....
Immer wenn sich die Boxen Aufhängen (kann durchaus alle 2-4 Tage mal passieren) schießt sich FHEM nun selber ab.
Das hatte ich mit der vorherigen SIRD.pm nicht...
Sieht so aus wie bei dem Kollegen weiter vorne ... (XML)
Logs hab ich jetzt nicht parat kann aber welche nachliefern...
Ich habe bei mir ähnliche Probleme bemerkt.
Zweimal ist es bei mir vorgekommen, dass abends bei mir eine zeitgesteuerte Lampe nicht geschaltet wurde.
Als ich dann auf die WEBoberfläche von FHEM nachsehen wollte, was da los ist, konnte ich mich nicht anmelden. Der Raspi lief noch, der FHEM Prozess auch. Aber ein Zugriff war nicht möglich. Erst nach einem Neustart des Raspis war FHEM wieder erreichbar.
Das Log gab dazu nichts her. Ich kann allerdings anhand der Zeitstempel nachvollziehen, dass FHEM sich offenbar zu dem Zeitpunkt aufgehangen hatte, als ich per externer APP auf die Radios zugegriffen habe (zum Abendessen schalte ich immer zwei Radios in einer Gruppe zusammen und lasse WebRadio laufen). Der nächste Eintrag im Log ist dann nach Neustart geschrieben worden.
Wie gesagt, dieses Verhalten hatte ich bisher zweimal, in meinem Log war nichts zu finden. Hab verbose nun mal auf 5 gestellt. Vielleicht gibt das ja was her.
@raiderxxl: Wie äußert sich das Verhalten denn bei dir? Kannst du da mal was genauer werden? Deckt sich das mit meiner Beschreibung??
Gruß
RoB
Zitat von: RoB81 am 18 Mai 2017, 13:09:29
Ich habe bei mir ähnliche Probleme bemerkt.
Zweimal ist es bei mir vorgekommen, dass abends bei mir eine zeitgesteuerte Lampe nicht geschaltet wurde.
Als ich dann auf die WEBoberfläche von FHEM nachsehen wollte, was da los ist, konnte ich mich nicht anmelden. Der Raspi lief noch, der FHEM Prozess auch. Aber ein Zugriff war nicht möglich. Erst nach einem Neustart des Raspis war FHEM wieder erreichbar.
Das Log gab dazu nichts her. Ich kann allerdings anhand der Zeitstempel nachvollziehen, dass FHEM sich offenbar zu dem Zeitpunkt aufgehangen hatte, als ich per externer APP auf die Radios zugegriffen habe (zum Abendessen schalte ich immer zwei Radios in einer Gruppe zusammen und lasse WebRadio laufen). Der nächste Eintrag im Log ist dann nach Neustart geschrieben worden.
Wie gesagt, dieses Verhalten hatte ich bisher zweimal, in meinem Log war nichts zu finden. Hab verbose nun mal auf 5 gestellt. Vielleicht gibt das ja was her.
@raiderxxl: Wie äußert sich das Verhalten denn bei dir? Kannst du da mal was genauer werden? Deckt sich das mit meiner Beschreibung??
Gruß
RoB
Japp genau so.. Meine LS laufen den ganzen Tag über ... und manchmal bleiben Sie halt hängen... Webradio stockt ... erst ein LS dann die Anderen.. Danach ist FHEM nicht mehr per http erreichbar. Nachdem alle LS vom Netz genommen und wieder mit Strom versorgt wurden, kann der FHEM Dienst neu gestartet werden. in den Log hab ich nichts besonderes auser der Fehlermeldung mit der XML gefunden. Die wurde ja bereits schon weiter vorne gemeldet...
Ich sehe gerade das ich auch sowas im Log habe:
2017.05.18 10:44:05 2: (return undef) FALSE 2: 404 Error HELP Counter: 3
@RoB81 du Auch?
Ein Zusammenhang mit der Undok App kann ich nicht nachvollziehen.
Grüßle
Pascal
2017.05.17 18:24:48 2: (return undef) FALSE 2: 404 Error HELP Counter: 3
2017.05.17 18:25:04 2: (return undef) FALSE 2: 404 Error HELP Counter: 3
Ja, hab ich auch gefunden. Der letzte Eintrag bei mir im Log vor dem Absturz ist allerdings:
2017.05.17 18:41:06 1: NavCaps: XML-Error: Could not find fhem.xml in ./ at ./FHEM/17_SIRD.pm line 2204.
2017.05.17 18:41:37 1: Time: XML-Error: Could not find fhem.xml in ./ at ./FHEM/17_SIRD.pm line 737.
2017.05.17 18:41:40 1: DABScan: XML-Error: Could not find fhem.xml in ./ at ./FHEM/17_SIRD.pm line 2521.
Vielleicht hilft das ja weiter.
viele Grüße
RoB
Hallo
ich wollte Heute das neue Modul installieren doch leider kommt eine Fehlermeldung
das steht im Log:
2017.05.21 11:50:02 0: Can't locate XML/Simple.pm in @INC (you may need to install the XML::Simple module) (@INC contains: . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl ./FHEM ./FHEM/lib) at ./FHEM/17_SIRD.pm line 10.
BEGIN failed--compilation aborted at ./FHEM/17_SIRD.pm line 10.
ich habe schon das Installiert https://forum.fhem.de/index.php/topic,55787.msg474160.html#msg474160 (https://forum.fhem.de/index.php/topic,55787.msg474160.html#msg474160) leider ohne Erfolg
Was fehlt noch?
Hat sich erledigt habe auf meinem Raspberry Pi noch
sudo apt-get install libxml-simple-perl
nachinstalliert und nun geht es.
Zitat von: raiderxxl am 15 Mai 2017, 12:45:36
Hallo,
habe folgende LS am Laufen:
1x Speaker SMRS 35 A1
1x Speaker SMRS 30 A1
2x Speaker SMRS 18 A1
1x Soundbar 40 W SMRB 40 A1
Läft alles Perfekt...
Ich habe bisher nur den SMRS 30 A1 installiert und als Device eingebunden. Ein SMRS 18 A1 liegt noch verpackt im Regal. Perfekt würde ich es nicht nennen (was auch für die App gilt).
Ich kann ein- und ausschalten, Lautstärke ändern und einen Radiosender auswählen.
Für perfekt wünsche ich mir, das ich auch mein NAS als Quelle auswählen kann und dort durch die Struktur navigieren kann.
Wenn ich es hier richtig verstanden habe, dann geht das NOCH nicht, oder mache ich was falsch?
Auf jeden Fall ist es ein hoffungsvolles brauchbares Modul. Also Danke für den Einsatz.
Zitat von: rabehd am 25 Mai 2017, 21:00:49
Für perfekt wünsche ich mir, das ich auch mein NAS als Quelle auswählen kann und dort durch die Struktur navigieren kann.
Wenn ich es hier richtig verstanden habe, dann geht das NOCH nicht, oder mache ich was falsch?
Auf jeden Fall ist es ein hoffungsvolles brauchbares Modul. Also Danke für den Einsatz.
Das ist wenn ich nicht falsch liege DLNA (siehe https://de.wikipedia.org/wiki/Digital_Living_Network_Alliance) was du da willst. Das hat nichts mit der eigentlichen Steuerung des Radios zu tun sondern mit dem Streamen von Medien und dafür bräuchtest du ein anderes Modul. Habe mich noch nicht so wirklich damit auseinander gesetzt, ob es da was von FHEM gibt.
Ich würde sagen, da liegst Du falsch.
Die App kann es und es wurde hier ja schon angesprochen.
Ich will nicht streamen, dafür ist ja der NAS da. Das Modul kann zwar als Input die Quelle auswählen, aber dort nicht (wie die App) suchen. Wäre schon ok, wenn sich das Device frühere Zugriffe merken würde.
Zitat von: rabehd am 26 Mai 2017, 12:18:44
Ich würde sagen, da liegst Du falsch.
Die App kann es und es wurde hier ja schon angesprochen.
Ich will nicht streamen, dafür ist ja der NAS da. Das Modul kann zwar als Input die Quelle auswählen, aber dort nicht (wie die App) suchen. Wäre schon ok, wenn sich das Device frühere Zugriffe merken würde.
Dann hat die App DLNA integriert. Nur weil es in der App ist, heißt es nicht in der logischen Konsequenz dass es nicht auch DLNA ist. Jeder Hersteller kann ja nach eigenem Gusto mehr oder weniger DLNA generell oder nur für seine eigenen Geräte implementieren.
Hallo,
ich habe gestern das Modul installiert und war (zunächst) begeistert. Folgende Geräte habe ich installiert:
Technisat DigitRadio 520
und
Technisat Audiomaster MR 1
Ich hatte nur kurz Gelegenheit zu testen. Dabei sind mir 2 Sachen aufgefallen:
- Die Input Modes sind nicht korrekt zugeordnet, funktionieren aber (nicht verwunderlich, da derzeit nur das DR 580 unterstützt wird)
- Die Übertragung der Befehle dauert "gefühlt" etwas lange (bis zu 10s)
Alles nicht so schlimm, aber nach ein paar weiteren Versuchen ist mein Fhem komplett abgestürzt, ließ sich auch durch einen Neustart nicht wieder beleben. Ich habe dann das Modul entfernt und das Backup der fhem.cfg wieder eingespielt, dann war alles wieder ok.
Im log konnte ich lediglich folgenden Hinweis finden:
Could not find fhem.xml in ./ at ./FHEM/17_SIRD.pm line 1566.
Kann ich selbst daran etwas ändern? Ich bin aber leider kein Perl Entwickler...
@prodigy7
Das ist schon mal Quatsch.
Weder die App hat DLNA integriert, noch braucht es das Modul. Die Abspielgeräte brauchen und Können das. Die App dient nur der Steuerung, weil ja keine Bedienelemente dran sind.
(Für Musik vom Handy hat das einen DLNA-Server, nicht die App)
https://de.wikipedia.org/wiki/Digital_Living_Network_Alliance#Zertifizierung
Bei Auswahl "Musikplayer" fungiert das Radio als Digital Media Renderer, welcher Inhalte abspielt, die ihm von der App die als Digital Media Controller fungiert, zugeschickt werden.
Wählst du "Lokale Musik" aus, wird diese via App über einen lokalen Digital Media Server zur Verfügung gestellt (der dann in der App integriert ist) und auf dem Radio abgespielt.
Der DLNA Standard beschreibt, wie die Geräte miteinander "reden" sollen. Das hindert aber keinen Hersteller daran, den Standard so begrenzt für sich auszulegen wie er es braucht oder gerne hätte (z.B. so, das nur Geräte eines Herstellers miteinander funktionieren).
Der DLNA Standard bietet alles was benötigt wird und es würde mich wundern, wenn hier ein anderer Weg gegangen wird, wenn der Hersteller DLNA eh bereits funktionsfähig implementiert wurde. Zudem gibt es in der Open Source Welt bereits so viele Implementierungen, das es einfacher ist sich hier zu bedienen als das Rad neu zu erfinden.
Und Nein, nicht böse gemeint, es geht mir nicht darum recht zu haben. Nur die Behauptung dass meine Ansicht "Quatsch" sei, ist wenig substanziell wie ich versucht habe, zu belegen.
Kann mir jemand sagen, ob ich mit Hilfe des Moduls bzw. mit text2speech eventgesteuert Sprachausgaben auf dem Silvercrest Sird 14 C2 ausgeben kann und ebenfalls eventgesteuert Podcasts abspielen kann?
Spontane Idee (ungeprüft):
Da ein Podcast ja eine Art "Lied" ist und lokal gespeichert sein müsste und man z.B. über die Handy-App lokale Musik zum Gerät streamen kann, müsste das irgendwie gehen.
Das müsste meines erachtens in irgend einer Art von diesem Modul hier unterstützt werden, denn das müsste ja per FHEM command funktionieren. Bei der Sprachausgabe wird ebenfalls ein mp3 auf dem Raspberry erzeugt soweit ich weiss und diesen müsste man mit dem Modul dann irgendwie abspielen können.
Hintergrund: Ich möchte mir so ein Silvercrest Ding nur kaufen wenn diese Dinge funktionieren. Ansonsten werfe ich vielleicht das Geld zum Fenster raus... Ohne Hardware kann ich mir das Modul und seine Funktionen leider nicht im Detail ansehen...
siehe meine Antwort #300 https://forum.fhem.de/index.php/topic,32030.msg640184.html#msg640184 (https://forum.fhem.de/index.php/topic,32030.msg640184.html#msg640184)
Das geht noch nicht.
Hmm schade. Dann muss ich doch tiefer in die Tasche greifen und Sonos kaufen. Da scheint das alles direkt und ohne Umwege zu funktionieren...
Ich habe jetzt noch mal im Internet ein wenig gelesen, allerdings sind die Informationen sehr dürftig. Es scheint aber so zu sein, dass die silicon Geräte die direkte Verwendung von mp3 Dateien per Netzlaufwerk oder die direkte Angabe von irgendwelchen Internet Streams entweder gar nicht erlauben oder aber bisher niemand rausbekommen hat wie das funktioniert. Alles was ich an APIs usw. gefunden habe beschränkt sich auf das Ein/Ausschalten oder das Abspielen vordefinierter Streams (die man auf irgend einer Webseite oder so geadded hat).
Damit ist die Nutzung unter FHEM sehr eingeschränkt bzw. für mich sinnlos.
Hallo Jörg,
ich habe ein HAMA DIR3000. Ebenso wie der user NewRasPi bekomme ich es mit Deinem Modul nicht zum Laufen. Konntest Du die Probleme mit diesem Internetradio inzwischen lösen?
Viele Grüße,
Daniel
Hallo Jörg,
Wie schaut es aus wann gibt es mal wieder ein Update?
LG Thomas
Erstmal danke für das Modul es ist super.
Läuft bei mir einwandfrei. Auch wenn ich noch nicht alles ausprobiert habe, und ich die sender über das Radio selbstverstelle was ich aber ja eje seltener mache.
Gibt es eine möglichkeit die Snoozefunktion einzubinden??
Danke schon mal im vorraus.
Hallo zusammen,
momentan mache ich mich hier etwas dünne, da ein Familienmitglied schwer erkrankt ist. Seid mir nicht böse, aber das hat für mich momentan top Priorität !!!
Wenn ich wieder etwas Luft habe, mache ich selbstverständlich weiter.
Zu dem Modul selber:
Das Modul ist programmiertechnisch an an seine Grenzen gestoßen.
Um es recht einfach zu erklären: In der jetzigen Konstellation dreschen bei jedem Abfragezyklus ohne Punkt, Komma und vor allen Dingen ohne Pausen Anfragen an das Gerät. Das ist eigentlich kein Problem, wenn das Gerät per LAN-Kabel verbunden ist. Wenn es aber per W-LAN verbunden ist und diese Verbindung recht schwach ist, kommt das Gerät bedingt durch die schwache W-LAN Verbindung mit den Antworten nicht nach. Somit kann es unter ungünstigen Bedingungen passieren, dass das Gerät abstürzt, da bevor die Antwort gesendet wird schon die nächste Anfrage kommt. Dann kommen FHEM-Fehlermeldungen wie: "Could not find fhem.xml". Eine fhem.xml gibt es nicht. FHEM versucht sich an der Stelle irgendwo anders zu bedienen, da keine Antwort vom Gerät kommt.
Da hilft nur das Gerät für 10-15 Sekunden vom Stromnetz zu trennen.
Fazit:
Ich werde das Modul komplett neu schreiben müssen und anders aufbauen. Seinerzeit hatte ich damit auch schon angefangen. In groben Zügen wird es so sein, dass die Pausen zwischen den Abfragen dynamisch aufgebaut sein werden. Je besser die W-LAN Verbindung desto kleiner die Pausen bei der Abfrage.
Zusätzlich habe ich auch eine Möglichkeit gefunden das FHEM nicht einfriert, wenn keine Antwort vom Gerät kommt.
Bitte habt Verständnis für meine Situation.
LG Jörg
Hallo Jörg,
privat hat absoluten Vorrang. Alles Gute.
Ich warte einfach ab, bis Du wieder Zeit hast.
Hallo
Ja klar haben wir Verständnis, privates geht immer VOR.
Und soweit bis auf ein paar Kleinigkeiten läuft das Modul ja eigentlich eh ganz gut.
Danke nochmals.
Alles Gute
LG Thomas
Hallo Jörg,
lass Dir Zeit, kümmer Dich erst mal ums Private.
Aber vielleicht hilft folgendes bis dahin anderen:
ZitatZusätzlich habe ich auch eine Möglichkeit gefunden das FHEM nicht einfriert, wenn keine Antwort vom Gerät kommt.
Ich hatte mich gewundert warum mein HMLAN oft nicht empfängt, dann ELKOS getauscht, Netzwerk kontrolliert usw
Letztendlich lag es am Sird-Modul und momentan nicht eingesteckten WLAN-Lautsprechern, habe das Modul erst mal gelöscht, seither geht der HMLAN wieder
Hallo Leute
Ich habe mein Radio in Fhem zum laufen bekommen. Kann auch alles umschalten. Funktoniert echt super.
Nur wie kann ich die in Tablet UI schalten??
Würde gerne
1) inputSelectable
2) presetList_1-5
schalten.
Diesen Code habe.
<div data-type="select"
data-device="OLE_Zimmer"
data-list="preset"
data-get="Stream"
data-set="input"
class="cell">
</div>
<div data-type="switch"
data-device="OLE_Zimmer"
data-set-on="PLAY"
data-set-off="STOP"
data-get-on="playing"
data-get-off="stopped"
data-icon="fa-music"
data-on-color="white"
data-on-background-color="green"
data-off-color="white"
data-Off-background-color="#FF0000"
class="cell">
</div>
Bin noch sehr unerfahren in sachen Tablet ui und Fhem
Hallo Jörg,
Dir, Deinem Familienmitglied und Deiner ganzen Familie alles Gute, Gesundheit und Gottes Segen.
@all,
ich habe ein LIDL Internetradio SIRD 14C2 in FHEM eingebunden und kann es einschalten, ausschalten lauter und leiser machen.
Nun würde ich es gerne als "Wecker/Erinnerer" nutzen, indem ich zu einer bestimmten Uhrzeit eine spezielle Datei abgespielt wird. Die Datei soll entweder im Netzwerk oder auf einem USB-Stick im Radio vorhanden sein.
Kann mir jemand helfen, wie das geht?
Vielen Dank
Martin
Guten Morgen zusammen,
auch ich hab es geschafft dank Jörg mein Median DAB Radio zum laufen zu bekommen. :D
In FHEM läuft alles besten, seit gestern auch in der Tablet-UI, 8)
Einzige Einschränkung sind die preset´s, die musste ich als "data-item" Händisch eingeben, da ansonsten nicht umgeschaltet wurde.
<!-- neues Widget für Multimedia -->
<li data-row="3" data-col="1" data-sizex="2" data-sizey="2">
<header>Musik Küche</header>
<div>
<div class="inline">
<!--
<div data-type="switch" data-device="Pflockys_DAB" data-icon="fa-play" data-size="100px"></div>
-->
<!--
<div data-type="label" class="inline thin">Küchenradio</div>
-->
</div>
<div class="inline">
<div data-type="image" data-device="Pflockys_DAB" data-get="graphicUri" data-size="100px"></div>
</div>
<div data-type="label" data-device="Pflockys_DAB" data-get="infoText"</div>
</div>
</div>
<div data-type="spinner"
data-device="Pflockys_DAB"
data-get="volume"
data-set="volume"
data-max="100"
data-step="5"
data-icon-left="fa-volume-down"
data-icon-right="fa-volume-up"
class="spinner value horizontal centered">
</div>
<div class="inline">
<!--
<div data-type="select" data-device="Pflockys_DAB" data-items='["InternetRadio","Musikplayer","DAB","FM","AUXin"]' data-get="input" data-set="input" ></div>
-->
<div data-type="select" data-device="Pflockys_DAB" data-items='["104.6RTL","94.3rs2","1LIVE","89.0RTL","1LIVEdiGGi","98.8KISSFM","rbbFritz","RadioTEDDY90.2FMBrandenburg","StarFM87.9","sunshinelive","--FREE--"]'
data-get="preset" data-set="preset" ></div>
</div>
</div>
</li>
Vielleicht hilft es dem einen oder anderen.
Viele Grüße
pflock_y
Hat sich schonmal wer daran probiert, die Lautsprecher in die homebridge mit einzubinden? Bis jetzt ist es mir nur gelungen, diese soweit einzurichten, dass ich die Lautsprecher ein- ausschalten kann. Die Rückmeldung passt aber nicht. Sobald ich das HomeKit auf dem iPhone beende und neu aufrufe, sind alle Lautsprecher vom Status her eingeschaltet, aber physikalisch ausgeschaltet.
Hallo zusammen,
zuerst möchte ich mich bei allen bedanken, die an der Erstellung des SIRD-Moduls tätig sind und waren - echt eine klasse Idee! Hätte ich bessere Programmierkenntnisse würde ich mich sofort mit einbringen und das Modul weiterentwickeln. Leider fehlen mir diese vermutlich und so komme ich zu meiner Frage:
Ich besitze ein Hama DIR3100M und versuche seit einigen Tagen das Gerät mit dem SIRD-Modul zum laufen zu bringen. Prinzipiell klappt das auch (Ein/Aus, Lautstärke etc.), aber die Wahl der Eingänge funktioniert nicht wie gewünscht. Zwar sind in FHEM unter "Input" alle verfügbaren Eingänge vorhanden, aber nur "Internetradio" (1) und "Spotify" (2) lassen sich anwählen. Wähle ich "Musikabspieler" (3) passiert nichts, bei "DAB" (4) schaltet er auf Musikabspieler, bei "FM" (5) auf DAB und bei "Auxiliary Input" (6) auf FM.
Sprich, die Reihenfolge stimmt nicht überein und Aux lässt im sich Endeffekt überhaupt nicht anwählen.
Ich habe bereits selbst versucht, in der 17_SIRD.pm selbst Anpassungen vorzunehmen, leider ohne Erfolg. Ebenso habe ich das von Forumsmitglied dora71 an den DIR3100 angepasste Modul versucht - leider mit dem selben Ergebnis.
Kann mir jemand einen Tip geben, wie ich die Eingänge in die korrekte Reihenfolge bringen kann? Ich habe das Gerät wie gefordert als "SIRD-AUTOMATIC" definiert.
Viele Grüße,
Tobi
Hallo zusammen,
ich versuche mich gerade durch diesen Thread zu wühlen.
Bei allem Respekt, wie soll ein Starter das durchblicken?
Im gesamten Thread sind etliche pm's angehangen, ich kapiere nicht welche aktuell ist.
Ob die Erweiterungen die gemacht wurden nur für bestimmte Gerätetypen sind und letztlich alle mit dem Lidl Radio kompatibel sind.
Macht ihr das alle schon seit Jahren oder bin ich einfach zu blöd.
Jedenfalls kommt mir das hier nicht aufgeräumt vor.
Wow reCaptcha selbst beim überarbeiten eines bereits geschriebenen Artikels.
EDIT: Ich glaube ich hab die aktuellste pm gefunden:
https://forum.fhem.de/index.php/topic,32030.msg631617.html#msg631617
EDIT2: ich habe das pm file nach /opt/fhem/FHEM kopiert und fhem neu gestartet,
im Log wird aber nicht angezeigt das, dass Modul geladen wurden, im Bereich 17 taucht nur die 17_EGPM2LAN.pm
nicht aber die 17_SIRD.pm, was muss ich denn noch tun damit ich mit dem Modul arbeiten kann?
Gruß X23
Also wenn du Anfänger bist, dann würde ich nicht mit diesem Modul anfangen. Bei mir hat es die gesamte Fhem Installation lahm gelegt, da es in seinem momentanen Zustand blockierend arbeitet.
Falls di trotzdem versuchen willst, brauchst du zuerst die ip deines Radios nd kannst das Device dann anlegen.
define <Radioname> SIRD <IP> 1234 SIRD-AUTOMATIC
Radioname kannst du beliebig wählen und ip die Adresse deines Radios, also 192.168.x.y.
Hi,
danke für die Antwort und Sorry wenn ich meckerig rübergekommen bin.
Ist nicht gerade einfach einen Einstieg zu finden.
Das device Radio habe ich bereits definiert und sehe es auch und kann es ein/aus schalten.
Wie aber baut man sich mehr Steuerelemente, wie z.B. Lautstärke +/- etc?
(Ich glaube in deinem Bespiel oben hast du die PIN vergessen)
Gruß X23
Die Pin ist die 1234 (das ist der default auch bei meinem Radio). Das Modul bietet in erster Linie immer nur das, was der Author auch vorgesehen hat. Die Lautstärke konnte man über set Befehle einstellen bzw. da gabs einem Schieber im Device.
Gibt es Interesse das Modul komplett zu überarbeiten? Ich habe versucht es bei mir in Betrieb zu nehmen und entweder geht mein fhem in die Knie oder außer an und aus kann ich nichts mit dem Modul machen.
Ziele der Überarbeitung wären:
- non blocking Implementierung
- generischer Ansatz, so das unterschiedliches Verhalten der Radios besser über Attribute eingestellt werden können. Man könnte dann für die verschiedenen Radios einfach nur die einzustellenden Attribute veröffentlichen.
- Performance Optimierungen
- Als Referenz würde ich die Undok App verwenden. Oder gibts aktuell unterstützte Radios die nicht mit der Undok App funktionieren?
- Persönliches Interesse habe ich auch an der Möglichkeit mp3 Dateien abzuspielen. Dann könnte das Radio endlich als tts Device verwendet werden.
ZitatGibt es Interesse das Modul komplett zu überarbeiten?
Auf alle Fälle, nur wer kann sich dem Thema annehmen?
Ich habe schon angefangen. Wird aber noch ein wenig dauern, ich hab nicht so viel Zeit für solche Dinge wie ich gern hätte.
Freut mich sehr, dass du dich der Weiter-/Neu-Entwicklung des Modul annimmst. Ich hab auch großes Interesse an dem Modul. Ich hab leider kaum Programmierkenntnisse, aber falls du jemanden suchst, der das Modul testet, stehe ich Dir hierfür gerne zu Verfügung.
Weiterentwicklung oder Neuentwicklung wäre toll!
Kann gerne als Tester fungieren
LG
Moin Jungs,
ich habe selber auch Interesse an der Umsetzung eines guten Moduls.
Gibt es die Möglichkeit daran mitzuwirken?
Lg Matze
Bin aktuell erst mal dran den zyklischen Task auf non blocking umzustellen. Dabei werde ich erst mal so viel Altcode wie möglich erhalten, in der Hoffnung, das danach noch möglichst viel funktioniert.
Da bei mir mit dem Original so gut wie nichts funktioniert, verstehe ich aber einige der Funktionen wie z.b. preset und navList noch nicht so ganz. Gibt es jemanden bei dem da irgendwas passiert bzw. der mir sagen kann was damit gemacht werden kann?
Also bei meinem DigitRadio werden bei preset die Favoriten angezeigt und bei navList alle Sender
Hallo
testen könnte ich mit einem Medion P85035.
Das steht im Schlafzimmer und soll per FHEM gesteuert Wecktexte ansagen.
Früh Musik einschalten wäre auch ganz nett.
Ich hatte das auch mal mit squeezebox server und SB_SERVER-Modul am laufen.
Das wollte ich mal auf DLNA_Renderer umbauen ... ging nicht.
Dann SIRD ... was auch nur FHEM totbremst...
Wenn es was zu testen gibt, bin ich gern dabei.
Gruß Ralf
Ich kann mit einem Hama DIR3100M beim Testen helfen.
Geplant habe ich, mit dem Internetradio Einschlafmusik für unseren Sohnemann per FHEM abzuspielen - und zwar entweder auf USB-Stick liegende Songs oder per DLNA etc.
Leider bin ich mit den verfügbaren SIRD-Versionen daran gescheitert. Einerseits lassen sich die Quellen mit meinem Hama-Gerät nicht wie gewünscht anwählen (Reihenfolge ist anders und manche Inputs lassen sich gar nicht anwählen), andererseits führt ein Aktivieren des SIRD-Moduls immer wieder zu FHEM Totalabstürzen. Das selbe passiert leider mit aktivem DLNA-Modul.
Grüße,
Tobi
Hi,
so ich hab die letzten 2 Tage mal was zusammen gehackt. Der Task, der für das zyklische Update zuständig ist, sollte jetzt non blocking sein. Ich musste leider sehr sehr viel ändern und es ist aktuell auch nur ein dirty Hack geworden. Ich mag sowas eigentlich nicht, aber für eine vernünftige Lösung müsste man das gesamte Modul neu aufbauen und sowas wie einen Server aufsetzen, dem dann die Änderungen zyklisch vom Radio geschickt werden. Also in etwa wie im Sonos oder Heos Modul. Aktuell pollt das Modul alle x Sekunden das Radio. Hier kann ich vielleicht noch etwas optimieren, aber irgendwann ist das Ende der Fahnenstange erreicht (die im ursprünglcihen Modul bereits implementierten Performance Optimierungen habe ich erst einmal wieder entfernt, da diese das non blocking Konzept torpediert haben).
Bitte schaut euch das Modul mal an und gebt mir Bescheid, ob sich damit alle alten Funktionen weiterhin darstellen lassen oder irgendwas nicht mehr funktioniert. Macht euch bitte unbedingt eine Sicherung des alten SIRD Moduls, so dass ihr dieses Backup wieder einspielen könnt, falls etwas schief geht.
Falls jemand versteht wie das mit der NavList funktionieren soll, dann wäre ich sehr dankbar, wenn mir das jemand erklärt. Diese Funktion verstehe ich absolut nicht. Ich habe allerdings die dunkle Ahnung, dass ich das für die TTS Einbindung brauchen werde...
Bei meinem Radio konnte ich übrigens Play nicht ausführen. Ich musste hier etwas im Modul anpassen, damit es bei mir funktioniert. Da ich aber nicht riskieren wollte, dass es bei anderen dann nicht mehr geht, habe ich in der angehängten Datei die Änderung wieder rückgängig gemacht. Falls noch jemand Play nicht ausführen kann, dann kann einfach in Zeile 2540 das folgende geändert werden:
$helper = '1';
zu
$helper = '0';
An dieser Stelle werde ich wahrscheinlich ein Attribut anlegen müssen, so das man das konfigurieren kann. Teilt mir mal mit, ob es bei euch mit der 1 oder der 0 funktioniert.
Werde das neue Modul mal testen.
Habe mir damals bei der Lidl-Aktion 2 Lautsprecher und 3 Adapter für die Stereoanlage gekauft.
Erstes Problem war dann, das wenn ich einen davon ausschalte alle ausgehen.
Idee war eigentlich, einen zentralen "Server", z.B. DAB, aber auch gerne Raspberry mit DVB-S Stick o.ä. zu haben, von dort in besserer Qualität als UKW zu den einzelnen Clients zu streamen.
Musste dann auch feststellen, das wenn zu viele CLients als Gruppe angelegt sind, alles ewig dauert, es zu aussetzern kommt usw
Hat jemand eine gute Idee? evtl. über DLNA?
Viele Grüße
Klaus
Hallo mumpitzstuff,
der Paramter SIRD-AUTOMATIC
scheint mit deiner Version bei mir nicht zu funktionieren.
2017.11.05 13:17:55 2: SIRD Init module
2017.11.05 13:17:55 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/17_SIRD.pm line 156.
2017.11.05 13:17:55 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/17_SIRD.pm line 178.
2017.11.05 13:17:55 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/17_SIRD.pm line 189.
2017.11.05 13:17:55 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/17_SIRD.pm line 201.
2017.11.05 13:17:55 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/17_SIRD.pm line 213.
2017.11.05 13:17:55 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/17_SIRD.pm line 224.
2017.11.05 13:17:55 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/17_SIRD.pm line 235.
2017.11.05 13:17:55 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/17_SIRD.pm line 246.
power und presence bleiben auf absent.
Medion LIFE P85035 (MD 87090)
Firmware FrontierSilicon ir-mmi-FS2026-0500-0097_V2.10.13.EX67604-2RC10
FHEM läuft aber problemlos weiter.
Sollte man den Typ besser irgendwie hart setzten?
Gruß Ralf
Das wundert mich etwas, denn ich verwende diese Definition ebenfalls. Ich habe noch mal versucht das Device zu löschen und neu anzulegen, das lief problemlos.
define WLAN_RADIO SIRD 192.168.1.101 1234 SIRD-AUTOMATIC 60
Das hier ist meine verwendete Definition.
Ging denn die alte Sird Version bei dir?
Hallo mumpitzstuff,
sorry meine Dummheit. Ich hatte es nur falsch definiert.
Sieht jetzt schon vielversprechender aus. :)
ich teste auch mal...
Moin, beim Testen ist mir aufgefallen, dass das auswählen des input nich korrekt funktioniert.
bei meinem Radio gibts folgende Inputs zur Auswahl:
<InternetRadio><Spotify><Musikplayer><DAB><FM><AUXin>
Das ist so auch richtig, allerdings funktioniert die auswahl nur bis Spotify korrekt, bei set...Musikplayer passiert nix, danach alles einen versetzt, also DAB ergibt Musikplayer, FM ergibt DAB, AUXin ergibt FM und AUXin lässt sich somit gar nicht einstellen.
das ist mir im list aufgefallen:
</item>
<item key="2">
<field name="id"><c8_array>DMR</c8_array></field>
<field name="selectable"><u8>0</u8></field>
<field name="label"><c8_array>DMR</c8_array></field>
<field name="streamable"><u8>0</u8></field>
<field name="modetype"><u8>0</u8></field>
komplettes list vom Radio:
Internals:
DEF 192.168.171.170 1234 SIRD-AUTOMATIC 240
INTERVAL 240
IP 192.168.171.170
Model SIRD-AUTOMATIC
NAME Kueche_Radio
NR 735
PASSWORD 1234
SESSIONID 798738720
STATE on
TYPE SIRD
READINGS:
2017-06-27 06:02:27 Modulversion 17_SIRD.pm V 0.55 Beta (Last edit Date: 20.04.2017)
2017-11-06 10:07:44 currentAlbum
2017-11-06 10:07:44 currentArtist
2017-11-06 10:07:44 currentDuration 0:00
2017-11-06 10:07:44 currentPosition 0:00
2017-11-06 10:07:44 currentTitle WDR 2
2017-11-06 10:07:44 dABScan idle
2017-11-06 10:07:44 frequency 4294967.29
2017-11-06 10:07:44 friendlyName Radio-Kueche
2017-11-06 10:07:44 graphicUri
2017-11-06 10:07:44 infoText Galway girl - Ed Sheeran
2017-11-06 10:07:44 input FM
2017-11-06 10:07:44 inputSelectable <InternetRadio><Spotify><Musikplayer><DAB><FM><AUXin>
2017-11-06 10:07:42 lastcommand statusRequest
2017-11-06 10:07:44 localDate 06.11.2017
2017-11-06 10:07:44 localTime 10:07:45
2017-11-06 10:07:44 mute off
2017-11-06 10:07:44 navCaps 3
2017-11-06 10:07:44 navNumItems -1
2017-11-06 10:07:44 navStatus ready
2017-11-06 10:07:44 playCaps skipNext,skipPrevious,addPreset
2017-11-06 10:07:44 playRate 1
2017-11-06 10:07:44 playStatus playing
2017-11-06 10:07:44 power on
2017-11-06 10:07:44 presence present
2017-06-26 21:50:28 presetListRequestMode 0
2017-11-06 10:07:44 radioID 002261CE7072
2017-11-06 10:07:44 remoteState on
2017-11-06 10:07:44 repeat off
2017-11-06 10:07:44 searchTerm
2017-11-06 10:07:44 shuffle off
2017-11-06 10:07:44 signalStrength 116
2017-11-06 10:07:44 version ir-mmi-FS2026-0500-0142_V2.10.13.EX65638-2RC6
2017-11-06 10:07:44 volume 20
2017-11-06 10:07:44 volumeSteps 21
2017-11-06 10:07:44 volumeStraight 4
helper:
input2 <fsapiResponse>
<status>FS_OK</status>
<item key="0">
<field name="id"><c8_array>IR</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>Internet Radio</c8_array></field>
<field name="streamable"><u8>0</u8></field>
<field name="modetype"><u8>0</u8></field>
</item>
<item key="1">
<field name="id"><c8_array>Spotify</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>Spotify</c8_array></field>
<field name="streamable"><u8>0</u8></field>
<field name="modetype"><u8>0</u8></field>
</item>
<item key="2">
<field name="id"><c8_array>DMR</c8_array></field>
<field name="selectable"><u8>0</u8></field>
<field name="label"><c8_array>DMR</c8_array></field>
<field name="streamable"><u8>0</u8></field>
<field name="modetype"><u8>0</u8></field>
</item>
<item key="3">
<field name="id"><c8_array>MP</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>Musikplayer</c8_array></field>
<field name="streamable"><u8>0</u8></field>
<field name="modetype"><u8>0</u8></field>
</item>
<item key="4">
<field name="id"><c8_array>DAB</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>DAB</c8_array></field>
<field name="streamable"><u8>0</u8></field>
<field name="modetype"><u8>0</u8></field>
</item>
<item key="5">
<field name="id"><c8_array>FM</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>FM</c8_array></field>
<field name="streamable"><u8>0</u8></field>
<field name="modetype"><u8>0</u8></field>
</item>
<item key="6">
<field name="id"><c8_array>AUXIN</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>AUX in</c8_array></field>
<field name="streamable"><u8>0</u8></field>
<field name="modetype"><u8>0</u8></field>
</item>
<listend/>
</fsapiResponse>
inputAll InternetRadio,Spotify,Musikplayer,DAB,FM,AUXin
inputRead <InternetRadio><Spotify><Musikplayer><DAB><FM><AUXin>
preset1_5 <P1: 1LIVE><P2: WDR2><P3: --PRESET-FREE--><P4: --PRESET-FREE--><P5: --PRESET-FREE--><P1: --PRESET-FREE--><P2: --PRESET-FREE--><P3: --PRESET-FREE--><P4: --PRESET-FREE--><P5: --PRESET-FREE-->
preset6_0 <P6: --PRESET-FREE--><P7: --PRESET-FREE--><P8: --PRESET-FREE--><P9: --PRESET-FREE--><P0: --PRESET-FREE--><P6: --PRESET-FREE--><P7: --PRESET-FREE--><P8: --PRESET-FREE--><P9: --PRESET-FREE--><P0: --PRESET-FREE-->
presetAll 1LIVE,WDR2,--PRESET-FREE--,--PRESET-FREE--,--PRESET-FREE--,--PRESET-FREE--,--PRESET-FREE--,--PRESET-FREE--,--PRESET-FREE--,--PRESET-FREE--,--PRESET-FREE--,--PRESET-FREE--,--PRESET-FREE--,--PRESET-FREE--,--PRESET-FREE--,--PRESET-FREE--,--PRESET-FREE--,--PRESET-FREE--,--PRESET-FREE--,--PRESET-FREE--
input1:
status FS_OK
value:
u32 4
preset:
status FS_OK
item:
HASH(0x5f9d2b8)
HASH(0x616dda0)
HASH(0x5022958)
HASH(0x62e0d90)
HASH(0x6306930)
HASH(0x62270e8)
HASH(0x6006e00)
HASH(0x5f60128)
HASH(0x62e63e0)
HASH(0x614d088)
HASH(0x5a43ac0)
HASH(0x593b8b0)
HASH(0x5a445a8)
HASH(0x5024bb8)
HASH(0x62ee6b8)
HASH(0x6306d68)
HASH(0x5ffbb08)
HASH(0x5900bd8)
HASH(0x615aea8)
HASH(0x6119400)
Attributes:
AllesAus alles_abschalten_abwesend
Radios Struct_Radios
event-on-change-reading .*
group Radio
presetListRequestMode 0
room Kueche
userattr AllesAus AllesAus_map Radios Radios_map structexclude
verbose 1
Hat das vorher funktioniert? Also mit dem alten SIRD?
Ich habe eine dunkle Ahnung woran das liegt... Schau doch mal in deiner Handy App nach, aber da wirst du wahrscheinlich vor Musikplayer einen weiteren Eintrag sehen, der in FHEM nicht auftaucht. Ist diese Vermutung richtig? Wenn ja, dann hat diesen Bug wahrscheinlich auch das alte Sird Modul. Ich kann aber auch noch mal rein schauen.
Zitat von: mumpitzstuff am 06 November 2017, 10:28:31
Hat das vorher funktioniert? Also mit dem alten SIRD?
Ich habe eine dunkle Ahnung woran das liegt... Schau doch mal in deiner Handy App nach, aber da wirst du wahrscheinlich vor Musikplayer einen weiteren Eintrag sehen, der in FHEM nicht auftaucht. Ist diese Vermutung richtig? Wenn ja, dann hat diesen Bug wahrscheinlich auch das alte Sird Modul. Ich kann aber auch noch mal rein schauen.
Mit meinem Hama DIR3100M habe und hatte ich dieses Problem auch mit den alten SIRD-Versionen.
Unter Input-Selectable in FHEM habe ich:
<Internetradio><Spotify><Musikabspieler><DAB><FM><AuxiliaryInput>
Auszug aus List:
helper:
input2 <fsapiResponse>
<status>FS_OK</status>
<item key="0">
<field name="id"><c8_array>IR</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>Internetradio</c8_array></field>
<field name="streamable"><u8>1</u8></field>
<field name="modetype"><u8>0</u8></field>
</item>
<item key="1">
<field name="id"><c8_array>Spotify</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>Spotify</c8_array></field>
<field name="streamable"><u8>1</u8></field>
<field name="modetype"><u8>0</u8></field>
</item>
<item key="2">
<field name="id"><c8_array>DMR</c8_array></field>
<field name="selectable"><u8>0</u8></field>
<field name="label"><c8_array>DMR</c8_array></field>
<field name="streamable"><u8>1</u8></field>
<field name="modetype"><u8>0</u8></field>
</item>
<item key="3">
<field name="id"><c8_array>MP</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>Musikabspieler</c8_array></field>
<field name="streamable"><u8>1</u8></field>
<field name="modetype"><u8>1</u8></field>
</item>
<item key="4">
<field name="id"><c8_array>DAB</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>DAB</c8_array></field>
<field name="streamable"><u8>1</u8></field>
<field name="modetype"><u8>0</u8></field>
</item>
<item key="5">
<field name="id"><c8_array>FM</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>FM</c8_array></field>
<field name="streamable"><u8>1</u8></field>
<field name="modetype"><u8>0</u8></field>
</item>
<item key="6">
<field name="id"><c8_array>AUXIN</c8_array></field>
<field name="selectable"><u8>1</u8></field>
<field name="label"><c8_array>Auxiliary Input</c8_array></field>
<field name="streamable"><u8>0</u8></field>
<field name="modetype"><u8>0</u8></field>
</item>
<listend/>
</fsapiResponse>
inputAll Internetradio,Spotify,Musikabspieler,DAB,FM,AuxiliaryInput
inputRead <Internetradio><Spotify><Musikabspieler><DAB><FM><AuxiliaryInput>
preset1_5 0
preset6_0 0
presetAll 0
input1:
status FS_OK
value:
u32 3
navList:
status FS_OK
preset:
status FS_OK
item:
HASH(0x59935b8)
HASH(0x5d19548)
HASH(0x5cbfa20)
HASH(0x5c0d478)
HASH(0x5d1af80)
HASH(0x5ad19b8)
HASH(0x5c029c0)
HASH(0x5c0d670)
HASH(0x5cc02a0)
HASH(0x5d15a60)
HASH(0x5c202e8)
HASH(0x5d1ad28)
HASH(0x5d1b178)
HASH(0x595a450)
HASH(0x5ad16e8)
HASH(0x5d18900)
HASH(0x5d16b80)
HASH(0x5cc0ba0)
HASH(0x5a47248)
HASH(0x5c08518)
In der Undok Android-App habe ich:
Internetradio
Spotify
Lokale Musik
Musikabspieler
DAB
FM
Auxiliary Input
Hast Du eine Idee?
Grüße
Tobi
Zitat von: mumpitzstuff am 06 November 2017, 10:28:31
Hat das vorher funktioniert? Also mit dem alten SIRD?
Ich habe eine dunkle Ahnung woran das liegt... Schau doch mal in deiner Handy App nach, aber da wirst du wahrscheinlich vor Musikplayer einen weiteren Eintrag sehen, der in FHEM nicht auftaucht. Ist diese Vermutung richtig? Wenn ja, dann hat diesen Bug wahrscheinlich auch das alte Sird Modul. Ich kann aber auch noch mal rein schauen.
Ich habe die letzten SIRD Versionen nicht genutzt, nur getestet und wegen den System-Lähmungserscheinungen wieder zurück zu vorherigen gewechselt, in denen die SIRD-AUTOMATIC noch nicht verbaut war.
Also, in der Undock App sind folgende Einträge:
Internet Radio
Spotify
Lokale Musik
Musikplayer
DAB
FM
AUX in
Dieses "Lokale Musik" (DMR) kann ich am Radio selber nicht auswählen, nur von der Undock App aus. Dient dazu, Medien die auf dem Handy sind am Radio wiederzugeben. evtl. ist das für die nutzung mit FHEM sinvoll.
Ja genau das habe ich mir gedacht. Der Bug kommt aus dem Original SIRD. Mir ist auch relativ klar was hier schief geht. Das SIRD Modul verwirft den Eintrag Lokale Musik aus der Liste, da er als nicht selectable angegeben wird. Beim Setzen des Inputs zählt das Modul alle Einträge durch (in denen jetzt ja 1 Eintrag in der Mitte fehlt) und überträgt dann den Index der Auswahl an das Radio. Dadurch ist alles nach Spotify um 1 verschoben.
Lösung: Das Modul muss sich intern die vollständige Liste halten und basierend darauf die Indexberechnung machen und ans Radio weitergeben. Muss ich halt einbauen. Vielleicht kann ich auch einfach den Eintrag lokale Musik hoch reichen. Ob man damit dann was machen kann oder nicht, steht ja auf einem anderen Blatt Papier.
Zitat von: mumpitzstuff am 06 November 2017, 12:44:36
Vielleicht kann ich auch einfach den Eintrag lokale Musik hoch reichen. Ob man damit dann was machen kann oder nicht, steht ja auf einem anderen Blatt Papier.
Ich hab da programmiertechnisch keinen Plan von, aber das sieht für mich nach der Funktion aus die viele haben möchten - von FHEM aus eine Media-Datei auf dem Radio wiedergeben um Durchsagen zu machen...
Ich habe das Modul mal installiert (aus Post 338). Leider bekomme ich keinen Kontakt zu Radio. Als ich damals mal probierte, ist schon seeeeeeeehhhhhrrrr lang ehr, ging es noch.
IP satimmt und das Radio läuft und ist auch per IP über Firefox ansprechbar.
Hat jkemand eine Idee, warum das nicht geht?
Hier mal das List:
Internals:
CFGFN
DEF 192.168.178.48 1234
INTERVAL 30
IP 192.168.178.48
Model
NAME testRadio
NR 667
PASSWORD
STATE absent
TYPE SIRD
READINGS:
2017-11-06 14:00:30 currentAlbum
2017-11-06 14:00:30 currentArtist
2017-11-06 14:00:30 currentDuration
2017-11-06 14:00:30 currentPosition
2017-11-06 14:00:30 currentTitle
2017-11-06 14:00:30 dABScan
2017-11-06 14:00:30 frequency
2017-11-06 14:00:30 friendlyName
2017-11-06 14:00:30 graphicUri
2017-11-06 14:00:30 infoText
2017-11-06 14:00:30 input
2017-11-06 14:00:30 inputSelectable
2017-11-06 13:54:28 lastcommand off
2017-11-06 14:00:30 localDate
2017-11-06 14:00:30 localTime
2017-11-06 14:00:30 mute
2017-11-06 14:00:30 navCaps
2017-11-06 14:00:30 navNumItems
2017-11-06 14:00:30 navStatus
2017-11-06 14:00:30 playCaps
2017-11-06 14:00:30 playRate
2017-11-06 14:00:30 playStatus
2017-11-06 14:00:35 power absent
2017-11-06 14:00:35 presence absent
2017-11-06 14:00:30 radioID
2017-11-06 14:00:30 remoteState
2017-11-06 14:00:30 repeat
2017-11-06 14:00:30 searchTerm
2017-11-06 14:00:30 shuffle
2017-11-06 14:00:30 signalStrength
2017-11-06 14:00:30 version
2017-11-06 14:00:30 volume
2017-11-06 14:00:30 volumeSteps
2017-11-06 14:00:30 volumeStraight
helper:
inputAll 0
inputRead 0
preset1_5 0
preset6_0 0
presetAll 0
Attributes:
Zitat von: Invers am 06 November 2017, 14:02:52
Ich habe das Modul mal installiert (aus Post 338). Leider bekomme ich keinen Kontakt zu Radio. Als ich damals mal probierte, ist schon seeeeeeeehhhhhrrrr lang ehr, ging es noch.
IP satimmt und das Radio läuft und ist auch per IP über Firefox ansprechbar.
Hat jkemand eine Idee, warum das nicht geht?
die definition ist falsch. da steht wie es richtig sein muss:
https://forum.fhem.de/index.php/topic,32030.msg710288.html#msg710288 (https://forum.fhem.de/index.php/topic,32030.msg710288.html#msg710288)
Danmke. Ich hatte mich natürlich am ersten Post orientiert. Ist schon alles sehr verstreut hier.
ja, wenn die Entwicklung des Moduls weiter gehen sollte (ich hoffe sehr darauf), wäre es vielleicht am saubersten, wenn der neue Entwickler einen neuen Thread auf macht und dort, wie üblich, im ersten Post immer die aktuelle Version und die aktuellen Infos bereit hält.
Dafür wäre ich auch.
Ich habe festgestellt, dass das Modul ständig meinen Browser pollt. Ich kann dann nicht mehr ordentlich arbeiten. Deshalb habe ich alles wieder rauswerfen müssen. Eigentlich schade. Ich hatte gehofft, das Radio für meine Durchsagen mit nutzen zu können.
Ja. Ich mache was Neues auf, das ist dann sauberer. Das mit dem Browser ist mir auch schon aufgefallen, das sind leider alles Altlasten. Auch ein App zusammen mit dem fhem device geht nicht, die werfen sich gegenseitig immer raus. Muss ich alles ändern...
TTS geht noch nicht, da muss ich erst raus bekommen wie das geht. Erste Erkenntnis ist, dass es 2 Wege gibt:
1.) UPnP mit DIDL-Lite (das ist der Download in der App)
2.) Dlna über einen Dlna Server (leider kein Samba...)
Beides ist beschissen, da ich weder vom Einen noch vom Anderen eine Ahnung habe. Ich muss erst mal versuchen dahinter zu kommen.
Da warte ich ganz entspannt ab. Aber die Browsergeschichte ist schon nicht ohne.
https://forum.fhem.de/index.php/topic,79168.0.html (https://forum.fhem.de/index.php/topic,79168.0.html)
Ich bin jetzt hierher umgezogen.
In der aktuellen Version wurde hoffentlich das INPUT Problem behoben und auch der Browser Refresh entfernt.