IRTrans Modul zum verbessern

Begonnen von groeg, 02 August 2015, 20:47:12

Vorheriges Thema - Nächstes Thema

groeg

Hallo Leute,

da ich leider kein Modul für das Infrarotempfangsgerät von IRTrans gefunden habe versuchte ich mal ein eigenes zu Programmieren.
Das ist mir soweit auch gelungen. Es gibt aber noch einiges daran zu verbessern.
Leider sind meine Programmierkenntnisse besch......

Vieleicht findet sich ja hier jemand der das Modul weiter entwickeln möchte.

Was geht:
Es können Befehle empfangen und auch gesendet werden.
Das IRTrans Gerät braucht aber eine Datenbank dafür mit den programmierten Befehlen.

Was mir noch fehlen würde: Falls die Verbindung abbricht ein automatisches Reconnect.

Viel Spass damit.

dirkeden

Danke für das Modul IRTrans. Ich Nutze es um die Befehle tv on und tv off von der IR Fernbedienung zu empfangen.

groeg

Oder du kannst auch wenn du z.B. eine Harmony besitzt ein Profil erstellen und über das Befehle an Fhem zu schicken. Ich steuere so mit der Fernbedienung noch das Wohnzimmerlicht und Hintergrundbeleuchtung und auch meine Rollos  ;)

dirkeden

Ok, eine Harmony hab ich, das Wohnzimmerlicht steuere ich  ich über den Zustand vom  dummy d_Fernseher und der Helligkeit (twilight).

define myIRTrans IRTrans 192.168.xxx.yyy 21000
attr myIRTrans room System
define di_Fernseheronoff DOIF ([myIRTrans:ir_remote] eq "tv" and [myIRTrans:ir_command] eq "on") ( set d_Fernseher on) DOELSEIF ([myIRTrans:ir_remote] eq "tv" and [myIRTrans:ir_command] eq "off") ( set d_Fernseher off)
define n_d_Fernseher_change notify d_Fernseher {Fernsehonoff()}


in 99_myUtils.pm
sub Fernsehonoff()
{
  my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
  $Monat+=1;
  $Jahrestag+=1;
  $Jahr+=1900;
my $helligkeit = ReadingsVal("myTwilight","light",6);
my $TVonoff = ReadingsVal("d_Fernseher","state","off");
my $hueonoff = ReadingsVal("Alle_HUE","state","off");
if ($TVonoff eq "on")
   {
     if ($helligkeit < 4) {fhem("set Alle_HUE on")}
   }
if ($TVonoff eq "off")
   {
    if ($hueonoff eq "on") {fhem("set Alle_HUE off")}
   }
}

justme1968

wenn du einen harmony hub hast kannst du den fernseher doch als harmony device in fhem anlegen und über das reading powerState gehen. ohne dummy und ir empfänger. den brauchst du nur wenn du direkt über eine harmony taste etwas in fhem auslösen möchtest.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

dirkeden

Den Harmony Hub habe ich noch nicht sondern eine Harmony 890 Remote, daher der Weg über IRTrans.
Danke für den Tipp.

marvin78

#6
Da der Thread ja heißt "IRTrans Modul zum verbessern", und eine verbesserte Version bei mir schon eine Weile sehr sehr zuverlässig ihren Dienst tut, erlaube ich mir, hier die genannte Version anzuhängen. Wobei das eventuell so nicht mehr in die Rubrik Codeschnipsel passt, sondern eher unter "Unterstützende Dienste".

Es arbeitet jetzt mit DevIo und ich habe einiges an DefFn_X ReadFn_X und SetFn_X geschraubt. Es sollte deutlich zuverlässiger sein. Es ist möglich, das Device zu deaktivieren. Die vorhandenen Remotes und Commands werden nun vom IRTRans-Device in den hash geladen und auch als set Kommandos direkt zur Verfügung gestellt. Dafür wurde das get entfernt. Die Doku habe ich angepasst.

Hier gibt es das Modul: >> Klick <<