JVC DILA über LAN on/off

Begonnen von tschimi, 25 Februar 2019, 09:50:20

Vorheriges Thema - Nächstes Thema

tschimi

Hi,
da ich es mit dem IR-Blaster nicht hinbekommen hab, hab ich es nun via LAN hinbekommen. Wen es interessiert und es gebrauchen kann....

Es ist mein erstes Koding mit Perl - sicher gibt es da noch ne Menge Verbesserungspotential - aber es läuft.

Einfach {JVC_on} bzw. {JVC_off} eingeben in der FHEM Zeile. Vorher noch die IP des Beamers im Coding anpassen.. Die anderen Routinen im PM sind noch experimental :-)

Lg und viel Spaß, tschimi

dts66

Hi,

wie schön das sich jemand mit der Steuerung der JVC Pj. beschäftigt. Aber leider ist das nicht so einfach nur die IP Adresse ändern. Da steckt wohl noch ein bissl mehr dahinter. Denn ich hab es nicht hinbekommen...  ich hab das ganze so umgeswetzt


define JVC_ON_OFF dummy

attr JVC_ON_OFF webCmd on:off

define ON_JVC notify JVC_ON_OFF:on {system('sudo /opt/fhem/99_myJVCCutils.pm')}

define OFF_JVC notify JVC_ON_OFF:off {system('sudo /opt/fhem/99_myJVCCutils.pm')}




dts66

Ich habe mich nochmal damit beschäftigt. Und rausgekommen ist, dass ich aus FHEM jeweils eine on und off .pm Datei benutze.

define JVC_ON_OFF dummy
attr JVC_ON_OFF userattr room_map structexclude
attr JVC_ON_OFF alias JVC Beamer
attr JVC_ON_OFF group Kino
attr JVC_ON_OFF icon IR
attr JVC_ON_OFF room 06 Wohnzimmer
attr JVC_ON_OFF webCmd on:off
define ON_JVC notify JVC_ON_OFF:on {system('sudo perl /opt/fhem/99_myJVCutils_JVC_ON.pm')}
define OFF_JVC notify JVC_ON_OFF:on {system('sudo perl /opt/fhem/99_myJVCutils_JVC_OFF.pm')}


viel spass beim testen :)

Grüße
Dts66

Freeride

Danke für das Script,

ich hab meine IP Adresse ausgetauscht, bekomme den Projektor aber nicht zum schalten.
Es ist ein N5, wurden da die Befehle vielleicht geändert?
Kann mir da mal bitte jemand helfen =)

Freeride

#------ JVC_on ------------------------
sub JVC_on() {

$socket = new IO::Socket::INET (PeerHost => '192.168.178.107',PeerPort => '20554',Proto => 'tcp',) or die fhem("set teleBot _msg JVC - Connection failure :-(");;

$socket->recv($data,1024);
fhem("set teleBot _msg JVC - Connection success: $data");

# write on the socket to server.
$data = "PJREQ";

# we can also send the data through IO::Socket::INET module,
$socket->send($data);
$socket->recv($data,1024);
fhem("set teleBot _msg JVC - Received: $data");

# send command
# $data = $ARGV[0]."\r\n";

$data = "\x2189015057310A\r\n";
fhem("set teleBot _msg JVC - Send ON-command");

$data =~ s/([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;
$socket->send($data);
$socket->recv($data,1024);

## convert each character from the string into HEX code
$data =~ s/(.)/sprintf("%02X",ord($1))/seg;
fhem("set teleBot _msg JVC - Received: $data");

sleep (1);

$socket->close();
}

#------ JVC_off ------------------------
sub JVC_off()
{

$socket = new IO::Socket::INET (PeerHost => '192.168.178.107',PeerPort => '20554',Proto => 'tcp',) or die fhem("set teleBot _msg JVC - Connection failure :-(");;
$socket->recv($data,1024);$socket = new IO::Socket::INET (PeerHost => '192.168.178.107',PeerPort =>  the socket to server.;
$data = "PJREQ";

# we can also send the data through IO::Socket::INET module,
$socket->send($data);
$socket->recv($data,1024);
fhem("set teleBot _msg JVC - Received: $data");

# send command
# $data = $ARGV[0]."\r\n";

$data = "\x2189015057300A\r\n";
fhem("set teleBot _msg JVC - Send OFF-command");

$data =~ s/([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;
$socket->send($data);
$socket->recv($data,1024);

## convert each character from the string into HEX code
$data =~ s/(.)/sprintf("%02X",ord($1))/seg;
fhem("set teleBot _msg JVC - Received: $data");

sleep (1);

$socket->close();
}


Diesen Code habe ich von tschimi zur Verfügung gestellt bekommen.
Leider funktioniert er nicht bei mir. Könnte da mal jemand drüber schauen?
Vielleicht liegt es auch an meiner FHEM Definition?

Ich habe von einem Bekannten ein Tool bekommen in C++ geschrieben - da geht der Beamer an und aus.
Die HEX Zahlen stimmen also. Ich weiß nur nicht warum es bei mir nicht läuft.
Kann man das Script laufen lassen und auf Fehler prüfen?

All-Ex

Ich habe ein Modul für JVC Projektoren erstellt, vielleicht hilft es dir ja:
https://forum.fhem.de/index.php/topic,108314.msg1022959.html

Alex