Neues Modul für Epson-Projektoren

Begonnen von henryk, 31 Mai 2013, 18:26:09

Vorheriges Thema - Nächstes Thema

henryk

Moin,

Ich habe nach längerer Rumfummelei (Liebe Güte ist Perl eine schlimme Sprache) ein Modul geschrieben für meinen Epson-Projektor. Es benutzt einen internen Timer um den Projektor nach seinem Zustand zu pollen (Lampenbetriebszeit, Betriebszustand, angezeigter Eingang, ...) und erlaubt die wichtigsten Funktionen zu steuern: An/Aus, Eingang ändern, Bild schwarzschalten.

Das ESCVP21-Kommunikationsinterface ist, soweit ich der Doku entnehmen kann, an vielen, wenn nicht sogar den meisten Epson-Projektoren vorhanden. Diese Grundfunktionen sollten überall gehen. Es gibt 3 verschiedene Anschlussmöglichkeiten: USB (soweit ich sehen kann wird das dann doch wieder ein COM-Port, für Windows mit einem Epson-Treiber, für Linux geht es evt. einfach so? hat jemand ein Gerät zum Testen?), RS-232 und Ethernet. Die ersten beiden müssten mit dem Modul einfach so funktionieren. Selbst teste ich mit einem EH-TW3000 und RS232 an einem RS232-USB-Konverter. Das Ethernet ist ein bisschen anders, da bräuchte ich jemanden der so ein Gerät hat um das unterstützen zu können.

Die Eingänge des Projektors werden normalerweise durch zweistellige Hex-Werte bezeichnet. Ich habe eine Tabelle eingebaut, aus der Doku, die das in vermutlich genehmere Zeichenfolgen übersetzt (also etwa analog-rgb2 statt 21 für den VGA-Eingang).


Ein Problem habe ich noch: Wenn ich in FHEMWEB longpoll auf 1 setzt bekomme ich asynchron die Veränderungen der Readings im Webinterface angezeigt. Sehr schön. Ausser für state. Mache ich da was falsch im Modul oder hab ich was falsch konfiguriert oder ist das einfach nur konterintuitiv?

--
Henryk Plötz
Grüße aus Berlin

henryk

Moin,

ich hab das Modul etwas weiter angepasst um sich an die allgemeinen Konventionen der anderen AV-Module zu halten (YAMAHA, Denon, VIERA): Eingänge umgeschaltet werden jetzt mit "set ... input ..." (statt vorher mit source, wie das im Protokoll heisst), und das "set ... mute" nimmt jetzt ein optionales on/off-Argument, dafür gibt's kein unmute mehr. Ausserdem habe ich die Magie von webCmd und devStateIcon halbwegs durchschaut, so dass jetzt bessere Darstellung/Kommandos in FHEMWEB zu sehen ist/sind.

Die Berechnung von state habe ich auch geändert, das ist jetzt status-eingang (dank devStateIcon wird trotzdem ein "on"-Icon angezeigt). Diese Form wird auch von set akzeptiert, so dass LightScene den aktuellen Zustand lesen und schreiben können sollte (ungestet).

Weil Anhängen hier doof ist, hab ich's auf github getan: https://raw.github.com/henryk/fhem-escvp21/master/FHEM/70_ESCVP21.pm
(Eine controls-Datei für update habe ich nicht angelegt, weil ich hoffe dass das Modul in FHEM integriert werden kann.)

--
Henryk Plötz
Grüße aus Berlin

rudolfkoenig

Hallo Henryk,

wenn ich es in fhem/contrib einchecken soll, sag Bescheid.
Wenn Du bereit bist das Modul hier zu supporten, dann schick mir bitte Dein sourceforge account.

Gruss,
  Rudi

henryk

Moin,

Zitat von: rudolfkoenig schrieb am Sa, 01 Juni 2013 10:22Wenn Du bereit bist das Modul hier zu supporten, dann schick mir bitte Dein sourceforge account.

Ja, gerne. Mein Sourceforge-Name ist "henryk". Was ist der Unterschied zwischen contrib/ und nicht?

Bitte die aktuelle Version von github nehmen, hab da jetzt alles drin was ich drin haben wollte, inkl. Doku auf Deutsch und Englisch.

--
Henryk Plötz
Grüße aus Berlin

rudolfkoenig

Hab Dich in sourceforge hinzugefuegt.

fhem/FHEM: hierher gehoeren nur dokumentierte und in Forum betreute (neudeutsch supportete) Module. Alles andere kommt nach fhem/contrib. FHEM wird per update aktualisiert, contrib nicht.

>  Bitte die aktuelle Version von github nehmen...

Das ist jetzt Deine Aufgabe :) Bitte auch fhem/MAINTAINER.txt aktualisieren.

hatamoto

Hallo Henryk,

bin seit kurzem auch Besitzer eines Epson Beamers und würde gerne deine Steuerung bei mir einbauen.
Einen USB-RS232-Adapter habe ich mir schon besorgt. Wie hast Du den Adapter in der .cfg definiert (Type)?
define rs232 <type> /dev/ttyUSB0

Gruß Chris

hatamoto

Nach längerem Ausprobieren und Testen habe ich den USB-RS232-Adapter und das Modul nun zum Laufen gebracht.
Funktioniert alles wie gewünscht.
Jedoch taucht im log ein Fehler auf:
"Use of uninitialized value in split at ./FHEM/70_ESCVP21.pm line 454"
Auswirkungen konnte ich jedoch bisher keine feststellen.

Gruß Chris

gandy

Wird das Modul noch weiterentwickelt? Ich hätte einen patch parat, der obigen Fehler behebt.

Grüße,
Andy.
fhem (svn) auf i5-4210U NUC
2x HMLAN, 19x HM-SEC-RHS, 15x HM-LC-Bl1PBU-FM, etc.
ODYS Neron Tablet / Android 4.2
Samsung Galaxy Tab 2 10.1N / Android 4.1.2
Samsung Galaxy Note / Android 6.0.1

volschin

Hallo Andy,
hast Du ein Feedback bekommen? Ich möchte das Modul auch einsetzen und wäre an dem Patch interessiert.

Kannst Du ihn hier posten?

Die Datei habe ich nur auf github gefunden, nicht aber in contrib. Stand 1 Jahr alt.

Gruß,
Veit
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

hillbicks

Wird sicher nicht jeder einen HTPC mir Linux am Beamer betreiben, aber für diejenigen die das haben reicht der cec-cient vollkommen aus.  Mache damit meinen Epson tw7200 an und aus wenn das mediacenter an oder ausgeschaltet wird. Bei Interesse kann  ich hier den Code einstellen

Sent from my Xperia Z2 Tablet Wifi using Tapatalk


gandy

@Veit: Ich habe nur eine kleine Abfrage in ESCVP21_IssueQueuedCommand() eingebaut, vor dem unglücklichen split-Kommando in besagter Zeile 454:

sub ESCVP21_IssueQueuedCommand($)
{
  my ($hash) = @_;
  # If a command is still active we can't do anything
  if($hash->{ActiveCommand}) {
    return;
  }
  return unless defined $hash->{CommandQueue};

  ($hash->{ActiveCommand}, $hash->{CommandQueue}) = split(/\|/, $hash->{CommandQueue}, 2);


Beste Grüße,
Andy.
fhem (svn) auf i5-4210U NUC
2x HMLAN, 19x HM-SEC-RHS, 15x HM-LC-Bl1PBU-FM, etc.
ODYS Neron Tablet / Android 4.2
Samsung Galaxy Tab 2 10.1N / Android 4.1.2
Samsung Galaxy Note / Android 6.0.1

volschin

Hallo Andy,
super, danke. Mein RasPi serial Port Modul ist angekommen und ich werde am Wochenende mal ein bisschen testen.

Gruß
Veit
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

Astrofreak85

Hi...hat das Modul noch jemand am laufen?
klappt bei mir nämlich aktuell nicht so richtig  :-/

hab ein USB->RS232 Adapter

Astrofreak85

Auf wundersame weise klappt es auf einmal...komisch

Genial :) Jetzt geht endlich das komplette Heimkino mit nur einem Knopfdruck^^

tobi_555

Hallo,

ich versuche gerade die Betriebsstunden auf den EIB zu bringen, das klappt aber nicht wirklich.

hier meine conf:
define Bea_2_KNX_2 notify Beamer:LAMP:.* set 12_Beamer_Betriebsstunden value $VALUE
attr Bea_2_KNX_2 group Beamer zu KNX
attr Bea_2_KNX_2 room Gateway

define 12_Beamer_Betriebsstunden EIB 12/0/0
attr 12_Beamer_Betriebsstunden IODev tul
attr 12_Beamer_Betriebsstunden alias 12_Beamer_Betriebsstunden_12/0/0
attr 12_Beamer_Betriebsstunden model dpt7
attr 12_Beamer_Betriebsstunden room EIB


In den Readings habe ich bei LAMP 884 Stunden
Die Eib-Adresse kann ich auch beschreiben.

Jetzt muss ich den Reading Wert auf die Adresse bekommen.