Hauptmenü

Remotecontrol

Begonnen von Paul, 29 Juni 2013, 14:43:34

Vorheriges Thema - Nächstes Thema

Paul

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

Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

UliM

Hi,
hast Du nach dem update ein shutdown restart gemacht?
Der "use"-Eintrag in 99_myUtils ist nicht erforderlich.
Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Paul

Nein erst jetzt. Danke kein Fehler mehr bei define PCM remotecontrol
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

Paul

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);
}
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

UliM

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
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Paul

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
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

UliM

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-)
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Paul

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
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

UliM

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");;
}
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Paul

Besten Dank für die viele Arbeit, klappt aber leider auch nicht. Werde es wohl mit dem alten Schalter belassen.
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

mister1980

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.



UliM

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
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

mister1980

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

TeeVau

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.
FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen

mister1980

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......