Anrufe als Auslöser für Aktionen

Nachdem man die FritzBox mit FHEM verbunden hat und erste RGB-Lampen definiert hat, liegt es doch nahe, die Lampen abhängig von Anrufe zu schalten. Zum Beispiel die Farbe ändern sobald eine bestimmte Nummer anruft. In diesem Beitrag erkläre ich euch, wie ihr die Farbe einer RGB-Lampe je nach Name des eingehenden Anrufers ändert.

Abhängigkeiten lassen sich am einfachsten mit if-Abfragen realisieren. Diese lassen sich in FHEM in einem „notify“ definieren. Mit „notifys“ lassen sich demnach komplexe Logikfunktionen in FHEM abbilden. Dies machen wir uns zu Nutzen und erstellen uns für das Ereignis eines ankommenden Anrufes und für das Beenden eines Anrufes ein Notify.

Voraussetzung

Damit Anrufe als ein Event angezeigt werden, ist es notwendig, dass die FritzBox mit FHEM verbunden ist. In meinem Beitrag dazu kann man nachlesen wir dies funktioniert. Zusätzlich wird das Hilfsmodul „CallMonitor“ benötigt. Erst dieses Modul macht es möglich, dass Anrufe in FHEM angezeigt werden.

Im CallMonitor lässt sich nun die Anrufliste der FritzBox auslesen.

CallMonitor Readings

Man erhält als Reading die benötigten Daten „event“ und „external_name“. Je nach Wunsch kann man die nachfolgenden Notifys auch mit anderen Readings erstellen. Zum Beispiel „external_number“.  Da ich jedoch das interne Telefonbuch der FritzBox eingelesen habe, verwende ich die Namen für die Abfrage.

Erstellen der Notifys

Zur besseren Verständnis erstellen wir uns das Notify „TelefonAN“ zunächst ohne direkte Definition :

Die Definition geben wir nun über den Definition-Editor auf der Detailseite des Notifys.

Licht(farbe) je nach Anrufer ändern

Notify Definition

Das Notify reagiert auf das Event „ring“ vom „CallMonitor“. Wurde das Hilfsmodul „CallMonitor“ mit einem anderen Namen definiert muss dieser natürlich angepasst werden. Danach wird die Variable „$name“ mit dem Namen des Anrufers erstellt. Nun beginnen die eigentlichen Abfragen. Zuerst wird abgefragt ob die Lampe überhaupt an ist (Helligkeit größer 0). Ist dies nicht der Fall, wird sie bei Anrufe auch nicht angeschaltet. Danach wird für die gewünschten Anrufer je eine if-Abfrage erstellt. Je nach Name des Anrufers wird dann  die Farbe der RGB-Lampe „WZ_Haengelampe“ geändert. Man kann so für jeden Anrufer eine extra Farbe definieren. Nachdem die Farbe geändert wurde, wird noch die Helligkeit auf 100% gestellt.

Nun wird das Notify für die Beendung des Gesprächs erstellt.

Hier reagiert das Notify auf das Event „disconnect“. Über den DEF-Editor wird nun die eigentliche Definition hinzugefügt.

Auch hier wird zu erst überprüft, ob die Lampe eingeschaltet ist. Ist dies der Fall, wird die Lampe auf weiß mit einer Helligkeit von 100% gestellt.

Die oben beschrieben Lösung ist natürlich nur eine Anregung. Der Fantasie sind keine Grenzen gesetzt. Aber ich hoffe ich konnte euch die Grundidee näher bringen und eine kleine Anregung schaffen.

Update 07.03.2016: Farbe und Helligkeit „merken“

Ich persönlich habe FHEM so konfiguriert, dass eine RGB-Lampe im Wohnzimmer und in der Küche auf Anrufe reagieren. Nach ein paar Tagen Einsatz der oben beschriebenen Konfiguration, habe ich mich für  eine Optimierung entschieden.

Bevor die beiden RGB-Lampen bei einem eingehende Anruf geschaltet werden, speichere ich die aktuelle Farbe und Helligkeit ab, um die Lampen nach dem Anruf wieder auf diese zurück zusetzen.

Dazu habe ich mir ein Dummy definiert, welche die Backup-Werte als Readings bekommt:

RGBbackup

Damit die Werte auch abgespeichert werden, müssen die beiden Notifys angepasst werden. Dies geschieht einfach über den DEF-Editor:

TelefonAN:

Als Bedingung, dass die Lampen geschaltet werden, habe ich mein Hauptlicht im Wohnzimmer genommen, welches durch eine PCA301-Steckdose geschaltet wird. Ist diese Lampe an, kann davon ausgegangen werden, dass es draußen dunkel ist. Im oberen Teil werden die Farb- und Helligkeitswerte der Lampen in RGBbackup abgespeichert.

TelefonAUS:

Die Backup-Werte werden in Variablen geladen und danach die Lampen entsprechend eingestellt. Sollte die Lampe vorher aus gewesen sein (Helligkeit = 0), wird die Lampe wider ausgeschaltet.

Text2Speech – Sprachausgabe bei Anrufen

Neben der Möglichkeit Lampen bei eingehenden Anrufen zu schalten, kann man natürlich auch eine Sprachausgabe starten. So lässt sich zum Beispiel der Name des Anrufers ausgeben.

In diesem Kapitel erkläre ich euch, wie ihr eine solche Sprachausgabe einrichtet.

Voraussetzung für die Sprachausgabe ist das Einrichten des „Text2Speech-Moduls“ unter FHEM. Mehr dazu in meinem Blog-Beitrag.

Wie bei der Lampensteuerung ist hier auch hier ein Notify nötig.

Über den Definition-Editor kann man nun das Notify anpassen:

Sobald nun ein Anrufer mit den Namen „Daniel Waschto“ oder „Max Musterman“ anruft, dann wird über die Sprachausgabe folgendes ausgegeben:

Voraussetzung ist natürlich, dass der CallMonitor eingerichtet wurde und die Telefonnummern entsprechend im Telefonbuch stehen.

18 Kommentare zu “Anrufe als Auslöser für Aktionen

  1. Top Artikel, keine Frage. Das mit Fritzbox & Co. klappt alles bestens. Vielen Dank dafür.
    Jetzt aber eine Frage – ich brauche das Script nicht in Verbindung mit Licht(farben sondern mit Text2Speech. Folgenden Code habe ich eingefügt:
    CallMonitor:event:.ring {
    my $name=(ReadingsVal("CallMonitor","external_name",0));;
    if($name eq "Tom Handy") {fhem ("set MyTTS tts :gong: $name ruft an. Geht mal einer ran. $name wartet.")};;
    if($name eq "Tommi Handy") {fhem ("set MyTTS tts :gong: $name ruft an. Geht mal einer ran. $name wartet.")}}

    Wo ist hier der Wurm drin? Ich muss dazu sagen, ich bin Neuling bei FHEM. Kannst Du mir hier vielleicht weiterhelfen, auch wenn ich Deine Arbeit hier zweckentfremde?

    • Hallo Thomas,

      Danke für das Lob. Ich hab das „Text2Speech-Modul“ noch nicht im Einsatz. Ich werden es mal auf meiner Testumgebung versuchen zum Laufen zu bringen. Heute Abend kann ich dann hoffentlich mehr Infos geben, wie man es am besten umsetzen kann. Also bitte noch etwas Geduld 😉
      Gruß Daniel

    • Danke für die rasche Antwort…. ich warte gerne. Denn ich komm hier nicht mehr weiter.

    • Hallo, habe es auf meiner Testumgebung ausprobiert. Es ging ohne Probleme. Habe das Notify genau wie du definiert. Bis auf das „:gong:“ hat alles geklappt. Habe den Beitrag entsprechend erweitert.

      Sollte es trotzdem nicht funktionieren kann es vielleicht an der Konfiguration der Audioausgabe liegen. Über „sudo raspi-config“ und dann unter „9-Advance Options“ / „A8-Audio“ kann ausgewählt werden, über welchen Ausgang die Soundausgabe erfolgen soll. Lass mich wissen, ob alles geklappt hat, sonst suchen wir weiter nach möglichen Fehlern 😉
      Gruß Daniel

  2. Auch die Einstellungen in der „sudo raspi-config“ überprüft, da passt soweit alles. FHEM macht das… Anruf und er wird entsprechend gemeldet. Aber nur einmal….. ein wiederholter Anruf bringt nur den Gong-Ton, aber keine Sprache mehr hinterher. Es macht den Eindruck, dass sich irgendetwas aufhängt, verschluckt oder was auch immer.

    Auch ein Neustart behebt das nicht…. anscheinend funktioniert das nur sporatisch. Geht… geht nicht. Weiß der Geier warum.

    • Komisch. Einzig was ich anders hab ist der verkürzte Text und halt ohne diesen Gong, da dieser bei mir nur als „template gong“ ausgegeben wird. Ansonsten wird der Text wie gewünscht ausgegeben, auch bei wiederholten Anrufen. Vielleicht liegt es also an dem Gong, dass wiederholte Anrufe unterdrückt werden. Du kannst ja mal testweise den Text verkürzen und den Gong rausnehmen.

  3. Hm, hab den Gong nun entfernt. shutdown/restart durchgeführt. Gleiches Phänomen. Es wird nichts angesagt. Das Ding hier macht mich noch kirre.

    Das mit dem Gong hatte ich deswegen eingebaut, weil ich es persönlich besser finde wenn vor einer Ansage – welche auch immer – ein Gong kommt um die Aufmerksamkeit auf die Ansage zu lenken. Geht – Geht, geht nicht.

    Es macht jedoch den Eindruck, dass es daran auch nicht liegt, jetzt nachdem der Gong entfernt wurde und TTS nur noch Text hat…. eigentlich.

    • Mh…aber eine Ausgabe unabhängig von einem Anruf funktioniert?

      set MyTTS tts Dies ist ein Test

      Müsste ja, wenn er beim ersten Anruf etwas „sagt“. Da kann ich dir sonst leider auch nicht weiter helfen. Wie gesagt, ich habe es wie im Beitrag beschrieben eingerichtet und es funktioniert auf anhieb. Habe nochmal ausprobiert, auch längere Texte werden problemlos ausgegeben, auch bei einem wiederholten Anruf.

      Was ich dir noch empfehlen kann ist das FHEM-Forum zum Text2Speech-Modul. Vielleicht kann dir ja dort einer weiterhelfen.

      Gruß Daniel

    • Auch wenn wir keine Lösung gefunden haben, trotzdem vielen Dank für Deine Überlegungen und Tipps. Ich werde es schon irgendwie zu rennen bringen. Wie gesagt, schön wäre es, wenn vor einer Sprachmeldung ein akustisches Signal käme. Mal sehen….

      Das mit dem Forum ist einerseits ein guter Tipp. Erfahrungswerte zeigten aber, dass man entweder bewusst überlesen wird oder die pampige Antwort „Lies das Wiki“ bekommt. Wiki schön und gut und auch die Forensuche – nicht zu allen Fragen gibt es dort die passenden Antworten. Das will man Foren aber nicht wahrhaben. Ist leider so.

      Schönes Wochenende Dir.
      Thomas

  4. Hallo Leute,

    erstmal danke für dieses wunderbare Tutorial!

    Ich habe die o.a. Lösung etwas adaptiert. Bei mir sagt einer meiner Sonos-Lautsprecher „Das Telefon klingelt“.

    Was natürlich ziemlich cool wäre, ist ein notify, der dann erstmal alle Sonos gruppiert, dann sagt „Anruf von $name“ und danach die zuvor verwende Gruppierung inkl. Lautstärke und ggf. Wiedergabe widerherstellt. Da ich noch neu im Thema FHEM bin, ist das noch ne Nummer zu hoch für mich. Kann mir hier jemand helfen?

    Anrufliste:event:.ring set Sonos_Arbeitszimmer Speak 40 de Das Telefon klingelt

    Ich verwende FHEM seit wenigen Tagen auf einem RPi3 und arbeite mich langsam in die Thematik ein. Weitere Felder, die ich persönlich noch mit FHEM angehen will sind: Telegram, weitere Sonos-Geschichten, Logitech Harmony, Philips Hue und div. web scrapings

     

    Vielen Dank im Voraus

    VG und schönen Sonntag

    Christian

     

    • Hallo Christian,

      ich habe zwar selber keine Sonos-Geräte, habe mich aber mal bisschen in die Commad-Ref und ins FHEM-Wiki eingelesen.

      Korrigiere mich, wenn ich falsch liege. So wie ich das verstehe, gibt es zwei Module für die Sonos-Geräte. Zum Einen das Modul „SONOS“ für die Kommunikation und dann für die einzelnen Sonosplayer ein Device mit dem Modul „SONOSPLAYER“.

      Ich gehe nun mal von folgendem aus:
      SONOS-Modul: Ein Device mit dem Namen „Sonos“
      SONOSPLAYER-Modul: Ein Device mit dem Namen „Sonos_Arbeitszimmer“
      SONOSPLAYER-Modul: Ein Device mit dem Namen „Sonos_Bad“
      SONOSPLAYER-Modul: Ein Device mit dem Namen „Sonos_Schlafzimmer“

      Eine Gruppe mit allen Playern lässt sich dann mit folgendem Befehl erstellen:

      set Sonos Groups [Sonos_Arbeitszimmer, Sonos_Bad, Sonos_Schalfzimmer]

      Der Device „Sonos“ beinhaltet dann im Reading „ZoneGroupState“ die aktuelle Gruppen-Konfiguration. Mit folgendem Befehl lässt sich die Gruppenkonfiguration als Liste abrufen:

      get Sonos Groups

      Diese Liste sieht dann zum Beispiel so aus:

      [Sonos_Arbeitszimmer], [Sonos_Bad, Sonos_Schlafzimmer]

      Also eine Gruppe mit dem Player „Sonos_Arbeitszimmer“ und eine Gruppe mit den beiden Playern „Sonos_Bad“ und „Sonos_Schlafzimmer“. Wobei der Player im Bad die Wiedergabe vorgibt und der im Schlafzimmer alles vom Bad übernimmt.

      Dein gewünschtes Notify muss nun also beim auslösen, die aktuelle Gruppenkonfiguration abspeichern, alle Einstelllungen (Lautstärke, Wiedergabe etc.) abspeichern, alle Sonosplayer gruppieren, Sprechmeldung ausgeben und zum Schluss dann die abgespeicherte Gruppenkonfiguration und Einstellungen wiederherstellen.

      Habe mir erstmal Gedanken gemacht, welches die Gruppenkonfiguration abspeichert und wiederherstellt:

      define Anruf_Sonos notify Anrufliste:event:.ring {
      my $GruppenKonfi = fhem{"get Sonos Groups"};;
      fhem{"set Sonos Groups [Sonos_Arbeitszimmer, Sonos_Bad, Sonos_Schlafzimmer]"};;
      my $name=(ReadingsVal("Anrufliste","external_name",0));;
      fhem{set Sonos_Arbeitszimmer Speak 40 de $name ruft an};;
      fhem{set Sonos Groups $GruppenKonfi};;

      $GruppenKonfi beinhaltet die aktuelle Gruppenkonfiguration. Danach werden alle drei Sonos-Geräte zu einer Gruppe zusammen gefasst mit dem Device „Sonos_Arbeitszimmer“ als Hauptplayer.
      Dann wird auf dem Hauptplayer die Sprachnachricht abgespielt, die anderen Gruppenmitglieder müssten das ja dann nachmachen. Anschließend wird dann die alte Gruppenkonfiguration wiederhergestellt.

      Mit dem Abspeichern der Einstellungen ist es glaube ich bisschen komplizierter. Man muss ja dann irgendwie die Gruppen untersuchen und schauen welcher Player in der Gruppe jeweils die Wiedergabe bzw. die Lautstärke vorgibt

      Das Reading „MasterPlayer“ beinhalten den Masterplay jedes Players –> also sozusagen den Gruppenanführer. In diesem Fall beinhaltet also das Reading „MasterPlayer“ vom Device „Sonos_Schlafzimmer“ das Device „Sonos_Bad“. Und da das Device „Sonos_Arbeitszimmer“ alleine in der Gruppe ist, beinhaltet hier das Reading das Device „Sonos_Arbeitszimmer“ selbst.

      Man könnte also jedes Device nach seinem Masterplayer abfragen und von diesem dann die Einstellungen abspeichern und später wiederherstellen.

      my $Master1 = (ReadingsVal("Sonos_Arbeitszimmer","MasterPlayer",0));;
      my $Master2 = (ReadingsVal("Sonos_Bad","MasterPlayer",0));;
      my $Master3 = (ReadingsVal("Sonos_Schlafzimmer","MasterPlayer",0));;

      Was eventuell ein Problem sein kann, das ja in diesem Fall Master2 und Master3 jeweils das Device „Sonos_Bad“ beinhaltet. Dann werden ja die Einstellungen dieses Masters doppelt wiederhergestellt. Aber denke das passt schon. Dann wird halt der Master zweimal auf seine alte Lautstärke gesetzt. Müsste ja kein Problem sein.

      Es lassen sich dann aber von jedem MasterPlayer die gewünschten Einstellungen abspeichern, welche da genau interessant sind, kann ich dir jetzt nicht sagen. Aber das sieht dann ungefähr so aus:

      my $Master1volume = (ReadingsVal("$Master1","volumen",0));;
      my $Master2volume = (ReadingsVal("$Master2","volumen",0));;
      my $Master3volume = (ReadingsVal("$Master3","volumen",0));;
      ...

      Ich weiß jetzt nicht wie Sonos das so macht mit den Wiedergaben. Wenn man zum Beispiel ein Lied vom Handy zum Player streamt, wird dann die Verbindung getrennt, sobald der Player eine Sprachnachricht wiedergibt? Wenn ja, dann ist es glaube ich relativ schwierig diese Verbindung durch FHEM wieder aufzubauen.

      Oder unterbricht der Player einfach kurz alles und kehrt danach automatisch wieder zur alten Wiedergabe zurück? Dann braucht man ja gar nicht die Einstellungen abspeichern. Aber durch die Neugruppierung wird bestimmt jede Wiedergabe abgebrochen.

      Denke aber so ein Internetstream, welcher der Player selber aufgebaut hat (z.B. Internetradio oder so), kann man bestimmt durch FHEM wieder aufbauen.

      Dies kann ich leider ohne eigene Sonos-Player schwer testen.

      Am Ende können dann die gespeicherten Einstellungen wiederhergestellt werden:

      fhem{set $Master1 volume $Master1volume};;
      fhem{set $Master2 volume $Master2volume};;
      fhem{set $Master3 volume $Master3volume};;
      ...

      Das gesamte Notify könnte dann ungefähr so aussehen:

      define Anruf_Sonos notify Anrufliste:event:.ring {
      my $GruppenKonfi = fhem{"get Sonos Groups"};;
      my $Master1 = (ReadingsVal("Sonos_Arbeitszimmer","MasterPlayer",0));;
      my $Master2 = (ReadingsVal("Sonos_Bad","MasterPlayer",0));;
      my $Master3 = (ReadingsVal("Sonos_Schlafzimmer","MasterPlayer",0));;
      my $Master1volume = (ReadingsVal("$Master1","volumen",0));;
      my $Master2volume = (ReadingsVal("$Master2","volumen",0));;
      my $Master3volume = (ReadingsVal("$Master3","volumen",0));;
      fhem{"set Sonos Groups [Sonos_Arbeitszimmer, Sonos_Bad, Sonos_Schlafzimmer]"};;
      my $name=(ReadingsVal("Anrufliste","external_name",0));;
      fhem{set Sonos_Arbeitszimmer Speak 40 de $name ruft an};;
      fhem{set Sonos Groups $GruppenKonfi};;
      fhem{set $Master1 volume $Master1volume};;
      fhem{set $Master2 volume $Master2volume};;
      fhem{set $Master3 volume $Master3volume};;}

      INFO: Das oben genannte Notify kann nicht so einfach in die FHEM-Kommandozeile kopiert werden. Am besten einfach das Notify definieren: define Anruf_Sonos notify a b und dann die Definition im DEF-Editor anpassen.

      Naja, das waren so meine Gedanken zu diesem Thema 😉 Wie gesagt, ich habe leider keine Sonos-Geräte und kann es deswegen schwer selber mal testen bzw. einrichten. Aber vielleicht hilft es dir ja und du bekommst es selber hin.

      Gruß Daniel

  5. Hallo Daniel.

    Vielen Dank für die Anleitung. Läuft alles wie gewünscht.
    Kleine Anmerkung für Alle, die ihr Licht per wifilight statt milight eingebunden haben.
    In meinem Fall ein RGBW-Stripe mit LD382a.
    Hier funktioniert rgb (Kleingeschrieben) nicht, es muss RGB heissen.

    Also:
    if($name eq „Daniel Waschto“) {fhem („set WZ_Haengelampe RGB FF0000“)};;“

    Viele Grüße und freu mich auf neue Projekte.

    thomas

  6. Hey Daniel,

     

    vielen, vielen Dank für deine sehr ausführliche Antwort zu meiner Frage. Ich hatte gar nicht gemerkt, dass du geantwortet hast, bis ich gerade mal wieder zufällig auf deiner Seite war.

     

    Ich hab mittlerweile einen brauchbaren Stand. Der sieht im Wesentlichen so aus:

    CallMonitor:event:.ring {

    my $name = (ReadingsVal(„CallMonitor“, „external_name“, „“));

    if ($name ne „“) {

    fhem(„set Sonos_Arbeitszimmer,Sonos_Wohnzimmer,Sonos_Bad,Sonos_Kueche Speak 50 de $name ruft an“);

    }

    }

    Das einzige Problem ist nun: sind die Geräte vorher gruppiert,  läuft alles supi. Sind die vorher allerdings nicht gruppiert, quatschen mich alle Geräte im Abstand von 0,5-2,5 Sekunden gleichzeitig voll.

    Zur Lösung des Problems habe ich bereits versucht vorher zu groupen bzw. zu ungroupen. Dabei sind die SONOS aber so langsam, dass die Sprachausgabe danach gar nicht mehr ausgegeben wird. Falls man das mit nem delay macht, vermute ich, dass man bereits längst telefoniert oder der Anrufer bereits aufgelegt hat, wenn die Durchsage kommt.

    Hättest du ne Idee, was ich hier machen könnte?

     

    Nochmals vielen Dank

    VG

    Christian

    • Hallo Christian,

      ich denke das Einzige was hilf, ist eine Verzögerung zwischen der Gruppierung und dem Speak zu machen. Die Sonos-Lautsprecher brauchen wohl einfache eine gewisse Zeit für die Gruppierung.
      Da muss man dann wohl bisschen experimentieren. Vielleicht kann man ja die Verzögerung so klein wie möglich machen, gerade so, dass die die Lautsprecher gruppiert sind es aber immer noch nicht zu spät für die Ausgabe ist.
      Oder du misst jede einzelne Verzögerung deiner Lautsprecher und verzögerst dann die Ausgabe entsprechend, ohne zu gruppieren, aber ich denke perfekt bekommt man das nie hin.

      Oder du gibst die Ausgabe nur über einen Lautsprecher aus, der Lautsprecher der am zentralsten steht.

      Gruß Daniel

  7. Danke für die schnelle Antwort.

    Mittlerweile tendiere ehger zu Alternative zwei. Ich werde mir wahrscheinlich nen zusätzlichen Sonos anschaffen, den ich im Flur platziere. Den will ich dann dafür verwenden und den vllt. per FHEM stets aus der Gruppierung mit den anderen Lautsprechern raushalten. Muss ich mal sehen.

    Eben hab ich ne weitere HUE-Lampe zu meiner HUEBridge hinzugefügt. Dann in Fhem gepackt und entsprechend in den Homekit – Raum, damit ich auch über siri usw. steuern kann. –> Lampe da, sagt aber „keine Antwort“. RPi3 neu gestartet, fhem neu gestartet, homebridge neugestartet. Immer das gleiche. Homekit Überbrückung aufgehoben und neu hinzugefügt. Alles weg, nur die Lampe noch da. Auch nicht entfernbar.

    Jetzt hab ich das „ganze Haus“ rausgeschmissen um meine fhem-homebridge neu hinzuzufügen. Jetzt kann er die nicht mehr finden. Ich dreh durch. Hast du da ggf. ne Idee?

     

    • Hallo Christian,
      das Problem hatte ich auch schon mal, nachdem ich neue Geräte zur Homebridge hinzufügt habe, kam nur noch „keine Antwort“ Auch ein Neustart etc. hat nichts gebracht.
      Hab dann folge Befehle nochmal ausgeführt, Homebridge zuerst beenden.

      sudo chmod 755 /etc/init.d/homebridge
      sudo update-rc.d homebridge defaults

      Nachdem ich Homebridge wieder gestartet habe, funktionierte es wieder. Sollte weiterhin Probleme bestehen, dann einfach ein Kommentar im dazugehörigen Beitrag –> Homebridge

      Gruß Daniel

  8. Hallo zusammen ich nutze folgenden Hardware

    XCSOURCE Magic UFO-WiFi LED-Controller DC12-24 V, LD382

    https://www.amazon.de/gp/product/B00Q7STR4E/ref=oh_aui_detailpage_o07_s00?ie=UTF8&psc=1

    Das Problem ist das die Farbe die ich vorher eingestellt hatte nicht mehr aus dem Backup wiederhergestellt wird

    Folgendes steht im Log
    class="log">2017.01.08 00:11:41 3: TV_LED set HSV 116, 83, 100 with ramp: 0, flags:
    2017.01.08 00:11:54 3: TV_LED set HSV 8, 100, 100 with ramp: 0, flags:
    2017.01.08 00:11:54 3: Couch set HSV 8, 100, 100 with ramp: 0, flags:
    2017.01.08 00:11:54 3: set TV_LED brightness 100 : unknown command (brightness): choose one of on off dim dimup dimdown HSV RGB hue redye saturation tinge
    2017.01.08 00:11:54 3: TelefonAN return value: unknown command (brightness): choose one of on off dim dimup dimdown HSV RGB hue redye saturation tinge
    2017.01.08 00:12:02 3: TelefonAUS return value: Global symbol "$HL_helligkeit" requires explicit package name at (eval 8684) line 5.
    Global symbol "$HL_helligkeit" requires explicit package name at (eval 8684) line 5.

    Meine DEF sieht so aus
    Telefon AN

    CallMonitor:event:.ring {
    my $name=(ReadingsVal("CallMonitor","external_name",0));;
    my $status=(ReadingsVal("Stehlampe","state",0));;
    my $HL_helligkeit=(ReadingsVal("TV_LED","brightness",0));;
    my $HL_farbe=(ReadingsVal("TV_LED","rgb",0));;
    my $LL_helligkeit=(ReadingsVal("Couch","brightness",0));;
    my $LL_farbe=(ReadingsVal("Couch","RGB",0));;
    fhem("setreading RGBbackup HL_farbe $HL_farbe");;
    fhem("setreading RGBbackup HL_helligkeit $HL_helligkeit");;
    fhem("setreading RGBbackup LL_farbe $LL_farbe");;
    fhem("setreading RGBbackup LL_helligkeit $LL_helligkeit");;
    if($status eq "on"){
    if($name eq "Frank") {fhem ("set TV_LED RGB FF2200;set Couch RGB FF2200")};;
    if($name eq "Becca") {fhem ("set TV_LED RGB FF69B4;set Couch RGB FF69B4")};;
    fhem("set TV_LED brightness 100")}}

    Telefon AUS
    CallMonitor:event:.disconnect {
    my $HL_farbe=(ReadingsVal("RGBbackup","HL_farbe",0));;
    my $LL_farbe=(ReadingsVal("RGBbackup","LL_farbe",0));;
    my $LL_helligkeit=(ReadingsVal("RGBbackup","LL_helligkeit",0));;
    if($HL_helligkeit > 0){fhem ("set TV_LED RGB $HL_farbe;set TV_LED brightness $HL_helligkeit")} else {fhem ("set TV_LED off")};;
    if($LL_helligkeit > 0){fhem ("set Couch RGB $LL_farbe;set Couch brightness $LL_helligkeit")} else {fhem ("set Couch off")}}

    Hat jemand eine Idee ?

    Gruß Frank

    • Hallo Frank,

      hast du beide Devices (TV_LED und Couch) über den LD382 eingebunden? Wenn ja, dann lautet für beide Devices das Reading mit den Farbwert „RGB“. Beim TelefonAUS sagst du zwar:
      set TV_LED RGB $HL_farbe;set TV_LED brightness $HL_Helligkeit
      und
      set Couch RGB $LL_farbe;set Couch brightness $LL_helligkeit
      Dies ist auch richtig, jedoch speicherst du bei TelefonAN beim Device TV_LED das Reading „rgb“:
      my $HL_farbe=(ReadingsVal("TV_LED","rgb",0))
      Dort musst du dann auch das Reading „RGB“ abspeichern. In meinem Fall (siehe Beitrag) ist das Device „WZ_Haengelampe“ ein MiLight-Device, welches das Reading „rgb“ hat. Das Device „LEDLeiste“ wurde über einen ESPEasy-Controller eingebunden. Hier habe ich das Reading „RGB“ genannt. Bei den LD382 lautet das Reading ebenfalls „RGB“.
      Hast du beide Devices über den LD382 eingebunden, dann musst du bei beiden Devices das Reading „RGB“ abfragen.

      Des Weiteren hat der LD382 zwar ein Reading mit dem Namen „brightness“, aber leider keinen direkten Set-Befehl diese zu setzen. Deswegen die Fehlermeldung:
      set TV_LED brightness 100 : unknown command (brightness): choose one of on off dim dimup dimdown HSV RGB hue redye saturation tinge
      In diesem Fall läuft die Helligkeitssteuerung über „dim“.
      set TV_LED dim 50
      Dimmt zum Beispiel das Device „TV_LED“ auf die Helligkeit 50.

      Gruß Daniel

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Hinweis: Das Betreiben dieser Homepage kostet einiges an Zeit und Geld. Ich bitte euch deswegen von eigenen Affiliate-Links abzusehen. Vielen Dank.

*