Lichtsteuerung in Abhängigkeit von Dämmerung und Fernseher / Mediaplayer

Begonnen von Ascos, 02 Oktober 2016, 19:21:12

Vorheriges Thema - Nächstes Thema

Ascos

Hi,

schon vor einer Weile habe ich mir meine Lichtsteuerung gebastelt, die automatisch schalten soll, wenn es Dunkel wird, der Fernseher an ist oder mein Mediaplayer einen Film abspielt.
Diesen Code möchte ich euch gerne zeigen, vielleicht kann ihn ja jemand gebrauchen.
Ich bitte dabei um Rücksicht, ich bin kein Programmierer und habe mir den Code aus dem Wiki und eigenen Testen zusammen gebastelt.

Die verschiedenen Möglichkeiten meiner Beleuchtung ist in verschiedenen Lichtszenen gespeichert, die dann in Abhängigkeit geschaltet werden.
Anbei die beiden notifys, die das alles schalten.

Als Erklärung des Codes, habe ich noch eine PDF angehängt.

TVLicht ist allgemein für das Licht, wenn der Fernseher eingeschaltet ist

define TVLicht notify (Tageslicht|Samsung|Heimkino|TV_Licht|TinoHandy) {
my $r1 = Value("Tageslicht");;
my $r2 = Value("Samsung");;
my $r3 = Value("WZ.MediaPlayer");;
my $r4 = Value("TV_Licht");;
my $r5 = Value("schlaflicht");;
my $r6 = ReadingsVal("WZ.LightScene","state","aus");
my $isPlaying = ReadingsVal("WZ.MediaPlayer","playStatus","n/a");
my $r7 = Value("TinoHandy");;

if ($r1 eq "off" && $r2 eq "on" && $r4 eq "on" && $r7 eq "on") {
  if($isPlaying eq "playing")
  {
   fhem "set WZ.LightScene scene Kino";
   fhem "set du_daemmerung 1";
  } else
  {
  sleep 5;
  my $r8 = Value("Samsung");;
    if($r8 eq "on")
    {
      fhem "set WZ.LightScene scene TV";
    }
  }
}
if ($r2 eq "off" && $r4 eq "on" && $r6 ne "aus" && $r5 eq "on") {
  fhem "set WZ.LightScene scene Schlafen";
  fhem "define schlafen at +00:02:00 set WZ.LightScene scene aus";
}
}


Das folgende Notify ist hauptsächlich für das Schalten des Lichts, wenn der Mediaplayer an ist.

define Kodi_Status notify WZ.MediaPlayer:playStatus.* {
my $isPlaying = ReadingsVal("WZ.MediaPlayer","playStatus","n/a") eq "playing";
my $currentLightScene = Value("WZ.LightScene");
my $daemmerung = Value("du_daemmerung");
my $kodi = Value("kodi_licht");

if ($currentLightScene ne "aus") {
  if ($isPlaying) {
     if ($currentLightScene ne "Kino" && $kodi eq "on") {       
        fhem("set WZ.LightScene save Sicherung;");
        fhem("set WZ.LightScene scene Kino;");   
     }   
  } elsif ($currentLightScene eq "Kino") {
      if($daemmerung eq "1")
      {
        fhem("set WZ.LightScene scene TV;");
        fhem "set du_daemmerung 0";
      } else {
         fhem("set WZ.LightScene scene Sicherung;");
        }
    }
}

}


Viele Grüße
Tino
1x RaspberryPi 3, HMUART, HMLAN
4x HM-CC-RT-DN, 4x HM-Sec-SCo, 4x HM-TC-IT-WM-W-EU, 1 Jeelink, 4 Lacrosse Fühler, 2 LD382A
1x ZBox mit Kodibuntu, mehrere schaltbare Steckdosen

P.A.Trick

Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Ascos

Zitat von: P.A.Trick am 03 Oktober 2016, 09:26:49
Hi Tino, vielen Dank für deine Mühe. ich habe den Thread mal im Wiki verlinkt! (http://www.fhemwiki.de/wiki/XBMC#Lichtsteuerung_durch_KODI_oder_PLEX)

Dankeschön :)
Allerdings hast du 2x zu dem Post "Fragen zu Lightscene" verlinkt. Vielleicht kannst du das noch ändern.
1x RaspberryPi 3, HMUART, HMLAN
4x HM-CC-RT-DN, 4x HM-Sec-SCo, 4x HM-TC-IT-WM-W-EU, 1 Jeelink, 4 Lacrosse Fühler, 2 LD382A
1x ZBox mit Kodibuntu, mehrere schaltbare Steckdosen

P.A.Trick

Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn