Das Modul sieht ja im Wiki wirklich Spitze aus. aber wie bekomme ich es geladen?
Also update wurde gemacht 95_remotecontrol.pm ist da.
Habe es wie folgt probiert:
In 99_myUtils.pm :
use 95_remotecontrol;
und in der fhem.cfg :
define PCM remotecontrol
Gibt aber jeweils Fehlerhinweise
Sorry bin noch Anfänger
Hi,
hast Du nach dem update ein shutdown restart gemacht?
Der "use"-Eintrag in 99_myUtils ist nicht erforderlich.
Gruß, Uli
Nein erst jetzt. Danke kein Fehler mehr bei define PCM remotecontrol
Jetzt wolte ich mir eine kleine Fernbedienung schreiben, aber ich glaube, ich habe Schwierigkeiten eine string Variable zu übergeben. Kann jamand helfen?
fhem.cfg:
define Pioneer remotecontrol
attr Pioneer rc_iconpath icons/remotecontrol
attr Pioneer rc_iconprefix black_btn_
attr Pioneer room PioneerRE
attr Pioneer row00 vu\\n2spk:VOLUP,vu\\nVD:VOLDOWN2,vu\\nVU:VOLUP2,vu\\n1spk:MUTE
define weblink_Pioneer weblink htmlCode {fhem("get Pioneer htmlcode", 1)}
attr weblink_Pioneer room PioneerRE
define n_rcl notify Pioneer {Receiver("$EVENT")}
99_myUtils.pm
sub
Receiver($)
{
my ($Befehl) = shift;
use Net::Telnet();
my $tab = new Net::Telnet (Timeout => 50,Port => 8102);
my $fh1 = $tab->dump_log("telnetclient.txt");
my $fh2 = $tab->input_log("telnetclient_input.txt");
my $fh3 = $tab->output_log("telnetclient_output.txt");
$tab->open("192.168.178.23");
$tab->print($Befehl);
}
Zitat von: Paul schrieb am Sa, 29 Juni 2013 20:24ich habe Schwierigkeiten eine string Variable zu übergeben.
Welche string-Variable?
Bau mal in Deine Routine in der ersten Zeile ein:
Log 1, "Receiver wurde aufgerufen mit $Befehl";
und dann ins Log schauen. Wurde aufgerufen?
Die \\ im Befehl sind schon was außergewöhnlich.
Vll kannst Du ja in Deiner Routine das vu\\ voranstellen, also
$Befehl = 'vu\\'.$Befehl;
und in der Definition der rc nur den eigentlichen Befehl angeben?
Gruß, Uli
also den Satz kann ich nicht einfügen erscheint:
Global symbol "$Befehl" requires explicit package name at ./FHEM/99_myUtils.pm line 42. BEGIN not safe after errors--compilation aborted at ./FHEM/99_myUtils.pm line 44.
Wenn ich nur "Receiver wurde aufgerufen" eingebe erscheint es im Logfile.
ich dachte $Event übergibt die Zeichenfolge in die sub Routine.
Eigentlich brauche ich vu\n..... habe gesehen, wenn ich das so in deiner Routine eingabe steht in STATE vu.... deshalb das doppelte \\.
Vor deinem Modul hatte ich es so:
define schalteron notify Schalter:on {fhem("{Kanal_Garten}")}
define schalteroff notify Schalter:off {fhem("{Kanal_Wohnzimmer}")}
sub
Kanal_Garten()
{
use Net::Telnet();
my $tab = new Net::Telnet (Timeout => 50,Port => 8102);
my $fh1 = $tab->dump_log("telnetclient.txt");
my $fh2 = $tab->input_log("telnetclient_input.txt");
my $fh3 = $tab->output_log("telnetclient_output.txt");
$tab->open("192.168.178.23");
$tab->print("vu\n2spk");
}
sub
Kanal_Wohnzimmer()
{
use Net::Telnet();
my $tab = new Net::Telnet (Timeout => 50,Port => 8102);
my $fh1 = $tab->dump_log("telnetclient.txt");
my $fh2 = $tab->input_log("telnetclient_input.txt");
my $fh3 = $tab->output_log("telnetclient_output.txt");
$tab->open("192.168.178.23");
$tab->print("vu\n1spk");
}
und das klappte
Einmal überarbeitet:
fhem.cfg:
define Pioneer remotecontrol
attr Pioneer rc_iconpath icons/remotecontrol
attr Pioneer rc_iconprefix black_btn_
attr Pioneer room PioneerRE
attr Pioneer row00 n2spk:VOLUP,nVD:VOLDOWN2,nVU:VOLUP2,n1spk:MUTE
define weblink_Pioneer weblink htmlCode {fhem("get Pioneer htmlcode", 1)}
attr weblink_Pioneer room PioneerRE
define n_rcl notify Pioneer {Receiver("$EVENT")}
99_myUtils.pm
sub
Receiver($)
{
my ($Befehl) = shift;
Log 1, "Receiver aufgerufen mit: $Befehl";
$Befehl = 'vu\'.$Befehl;
use Net::Telnet();
my $tab = new Net::Telnet (Timeout => 50,Port => 8102);
my $fh1 = $tab->dump_log("telnetclient.txt");
my $fh2 = $tab->input_log("telnetclient_input.txt");
my $fh3 = $tab->output_log("telnetclient_output.txt");
$tab->open("192.168.178.23");
$tab->print($Befehl);
}
attr row00 und zwei Zeilen in der Routine angepasst.
=8-)
Habe jetzt probiert
Log 1, "receiver wurde aufgerufen";
Log 1, $Befehl
und im Logfile erscheint:
2013.06.29 22:17:40 1: Receiver wurde aufgerufen
2013.06.29 22:17:40 1: vu\n1spk
2013.06.29 22:17:40 3: n_rcl return value: 1
2013.06.29 22:17:42 1: Receiver wurde aufgerufen
2013.06.29 22:17:42 1: vu\nVU
2013.06.29 22:17:42 3: n_rcl return value: 1
also wird alles richtig übernommen!
Also müßte wohl der Fehler bei:
$tab->print($Befehl);
sein
Moin,
wenn gar nix hilft vielleicht mal so?
Gruß,
Uli
fhem.cfg:
define Pioneer remotecontrol
attr Pioneer rc_iconpath icons/remotecontrol
attr Pioneer rc_iconprefix black_btn_
attr Pioneer room PioneerRE
attr Pioneer row00 VOLUP,VOLDOWN2,VOLUP2,MUTE
define weblink_Pioneer weblink htmlCode {fhem("get Pioneer htmlcode", 1)}
attr weblink_Pioneer room PioneerRE
define n_rcl notify Pioneer {Receiver("$EVENT")}
99_myUtils.pm
sub
Receiver($)
{
my ($Befehl) = shift;
use Net::Telnet();
my $tab = new Net::Telnet (Timeout => 50,Port => 8102);
my $fh1 = $tab->dump_log("telnetclient.txt");
my $fh2 = $tab->input_log("telnetclient_input.txt");
my $fh3 = $tab->output_log("telnetclient_output.txt");
$tab->open("192.168.178.23");
$tab->print("vu\\n2spk") if ($Befehl = "VOLUP");;
$tab->print("vu\\nVD") if ($Befehl = "VOLDOWN2");;
$tab->print("vu\\nVU") if ($Befehl = "VOLUP2");;
$tab->print("vu\\n1spk") if ($Befehl = "MUTE");;
}
Besten Dank für die viele Arbeit, klappt aber leider auch nicht. Werde es wohl mit dem alten Schalter belassen.
Hallo zusammen,
ich mache gerade meine erste Versuche mit FHEM und hab da so ein bisschen Startschwierigkeiten.
FHEM läuft jetzt erst mal auf meinem Laptop und ich möchte meinen Panasonic Fernseher fernsteuern. Aber irgendwie hapert es an der Kommunikation von REMOTECONTROL-> VIERA
Was ich bisher getestet hatte:
# Fernbedienung mit einem Button zum Testen
define rc1 remotecontrol
attr rc1 rc_iconpath icons/remotecontrol
attr rc1 rc_iconprefix black_btn_
attr rc1 row00 channelUp:CHUP
# VIERA Fernseher mit IP hinzufügen
define myTV1 VIERA 192.168.178.26
# erfolgreicher Test mit myTV1 – mit nachfolgendem Befehl schaltet der TV einen Kanal höher :-)
set myTV1 channelUp
# Verbindung zwischen Fernbedienung und Fernseher herstellen (passt das so?)
set rc1 makenotify myTV1
# wird nun an der Fernbedienung der Button gedrückt wird als STAT auch ,,channelUp" angezeigt, #aber der Fernseher schaltet nicht um :-(.
Neuer versuch:
# VIERA Layout verwenden
Set rc1 layout VIERA_TV
#Auch jetzt lässt sich das Programm nicht umschalten.
#Komischer weise steht jetzt als STATE ,,ch_up" aber bei VIERA heißt der Befehl doch ,,channelUp"?
Irgendwie schein mit dem ,,notify" was nicht zu passen, würde mich freuen wenn mir jemand einen Tipp geben könnte.
Hi,
um helfen zu können müsste man das erzeugte notify sehen.
Kannst Du's mal posten? (Vll hast Du zB nach dem Erzeugen des notify nicht save durchgeführt aber neu gestartet -> notify weg?)
Gruß, Uli
Hallo Uli,
in der "fhem.cfg" wurde folgendes notify angelegt:
define notify_rc1 notify rc1 set myTV1 remoteControl $EVENT
vor ab schon mal danke für die Hilfe
Gruß, Roland
Hey Roland,
hast du ein update von FHEM gemacht? Vor 2 oder 3 Wochen habe. Im VIERA Modul einen Bug behoben, der dazu führte, dass remoteControll gar keine Funktion hatte.
Das remoteControll Modul verwendet nicht channelUp etc, sondern die Befehle "remoteControl" per set.
Das wird vermutlich der Grund sein, warum channelUp funktioniert, remiteControl aber nicht.
einfach mal update in der FHEM Befehlszeile eingeben.
Zitat von: TeeVau am 17 Januar 2014, 23:40:41
einfach mal update in der FHEM Befehlszeile eingeben.
Hallo TeeVau,
update hatte ich zwar schon mal eingegeben, aber irgendwie scheint es da Probleme zu geben.
2014-01-18 02:36:11 Global global update get http://fhem.de/fhemupdate4/svn/FHEM/FhemUtils/release.pm
2014-01-18 02:36:11 Global global update check Releases => local: Fhem 5.5 (DEVELOPMENT) remote: Fhem 5.5 (DEVELOPMENT)
2014-01-18 02:36:11 Global global update get http://fhem.de/fhemupdate4/svn/controls_fhem.txt
2014-01-18 02:36:11 Global global update saving statefile
2014-01-18 02:36:12 Global global update Backup: The operation was canceled. Please check manually!
habe die Dateien jetzt manuell mit dem Download von "fhem-cvs.tgz" aktualisiert.
Mit dem aktualisiertem Modul funktioniert es :-) danke für den Tip!
bleibt nur noch die Frage wieso das update nicht funktioniert......
Super. Wegen dem update Problem such am besten mal im Forum oder poste einen neuen Eintrag.
Das Forum wählst du am besten aus nach der MAINTAINER.txt