Kleine LUA Scripte Teil 3: Farbe des Fibaro Wallplug ändern

Geschrieben von boomx

Mal wieder einen neuen Teil unserer kleinen Serie. Diesmal ist es allerdings ein kleines Virtual Device, mit welchem Ihr die LED-Farbe des Fibaro Wallplug ändern könnt.

Wie bereits oben erwähnt, ist es diesmal keine Szene, sondern ein Virtual Device, welches Ihr einfach in euer Fibaro HomeCenter2 importieren könnt. Dieses findet Ihr zusammen mit einem Icon-Vorschlag am Ende des Artikels. Es können natürlich nur die Farben gesetzt werden, welche auch mit den Parametern eingestellt werden können. Hierbei handelt es sich um Weiß, Rot, Grün, Blau, Gelb, Cyan & Magenta. Ganz aus und "Farbe nach Stromverbrauch" ist natürlich auch möglich.

Import des Virtual Device

Um das Virtual Device zu importieren, geht Ihr auf den Menüpunkt "Module" und klickt in der linken Leiste "Lösche oder füge Gerät hinzu". Hier öffnet sich dann eine neue Ansicht:

vd_importieren

Die Ansicht zum Hinzufügen oder Löschen von neuen Modulen

Hier könnt Ihr mit einem Klick auf "Datei auswählen" das heruntergeladene Virtual Device aus dem Dateisystem heraussuchen und importieren. Nach dem Import findet Ihr auf der Übersichtsseite das neue Modul.

Einstellungen des Wallplug Color-VD

In dem Virtual Device für den Wallplug müssen nicht viele Einstellungen vorgenommen werden. Eigentlich ist es nur eine Einstellung. ;) Wenn Ihr die Konfigurationsseite des Moduls geöffnet habt, dann müsst Ihr nur die device-ID des Wallplugs in die Angabe für den TCP Port eintragen.

config vd wallplug

Hier muss die device-ID des Wallplugs in das Feld für den TCP Port eingetragen werden

Das waren auch schon alle benötigten Einstellungen. :) Beim Testen ist mir allerdings aufgefallen, dass das Icon des Wallplugs auf der Fibaro Übersichtsseite nicht sofort aktualisiert wird. Dies wird wahrscheinlich an dem allgemeinem Aufwach-Intervall liegen. Nach einiger Zeit ist auch die Seite dann wieder aktuell und in der Icon-Vorschau wird die richtige Farbe angezeigt. Der Wallplug selbst übernimmt aber die Einstellungen und ändert die Farbe sofort.

Ihr könnt das VD hier herunterladen. Der Icon-Vorschlag von uns:

wallplug_color_change

Beachtet bitte, dass Ihr das Icon für jeden Button des Virtual Devices setzen müsst, damit dies nicht beim Klick auf einen Button wieder zurückgesetzt wird.

Mit dem Virtual Device könnt Ihr nun aus Szenen heraus die Farbe des LED-Rings des Wallplug ändern. So könntet Ihr zum Beispiel eine kleine und dezente Anzeige, ob zum Beispiel der Alarm aktiv oder inaktiv ist, umsetzen. Vielleicht fällt euch auch noch etwas anderes ein, wobei man dieses kleine Virtual Device einsetzen kann. Wenn ja, dann würden wir uns natürlich über einen Kommentar mit eurer Idee freuen. Diesen könnt Ihr am Ende des Artikels hinterlassen.

Diesen Blogpost hat geschrieben ...

boomx

18 Kommentare

  • Superscript, Klasse! Ich hab es gemacht wie in der Anleitung, und es funktioniert super.
    Nun möchte gerne in einem anderen Lua Script die Farbe ändern, also den Knopf des virtuellen Moduls per Lua Script "drücken". Das habe ich noch nicht hinbekommen. Ich habe die ID des virtuellen Moduls rausbekommen, das ist bei mir die 136. Aber die Methode den Knopf anzusprechen ist mir nicht klar. Der Knopf für Rot hat z. B. im virtuellen Modul die ID "Button22". Ich hab es so probiert:

    fibaro:call(136,"setProperty","ui.Button22.value",1);

    Das hat aber nicht geklappt. Einen Tipp?
    Viele Grüße
    Sascha

  • Hallo Leute,

    super Sache. Vielen Dank, wieder einiges gelernt. Wusste gar nicht, dass man die Graphische Szene so einfach umwandeln kann.

    Viele Grüße!

  • Coole Sache. Würde ich ja gerne zum Anzeigen des Alarmstatus benutzen – hab aber nur das HCL :-/
    Gibt's was ähnliches ohne LUA?

  • Funktioniert super. Vielen Dank!

    Nutze es, um den Status meiner Alarmanlage anzuzeigen (via deinem Alarm-Script).

    Nun ist mir aufgefallen, dass sich die Farbe des Wallplug nach einiger Zeit von bspw. Grün für "Alarm unscharf" auf Rot ändert obwohl ich nicht scharf geschalten habe o.Ä. Woran kann das liegen?

    VG Maik

  • Moin,
    hab mir das VD und das Icon runtergeladen.
    ID des Wallplug unter Port eingetragen.

    Aber es passiert nichts. Wenn ich auf dem VD einen Button drücke wird das Icon geändert und ich bekomme folgende Meldung angezeigt.
    [07:29:28] ID 131: Set parameter 61, value = 3
    [07:29:38] ID 131: No report was received for parameter 61. The device might not have this parameter.

    Mein Wallplug hat aber den Parameter nicht. Ich besitze mehrere FGWP102 Vers.3.2 und diese hat als letzten Parameter die 50.
    Ich denke ich muss im VD die Parameter anpassen von 61 auf 41
    Parameter 41
    LED ring colour when controlled device is ON
    When set to 1 or 2, LED ring colour will change depending on active power and parameter 40. Other colours are set permanently and do not depend on power consumption.

    Ist das der richtige Parameter um die funktionalität des VD herzustellen?
    Gruß

    • Hi,

      das Skript stammt aus einer Zeit, in der es noch keinen Wallplug v2 gab. Von daher musst du es auf den richtigen Parameter (Parameter 40) umstellen.

      Gruß

  • Hallo boomx,
    dann habe ich es ja richtig gemacht. Ich versuche gerade es für mich zu nutzen. Bin mir aber nicht sicher ob ich einen richtigen Weg einschlage.
    Deshalb würde ich dich gern bitten, mal auf meiner Idee rumzudenken und mir das um die Ohren zu hauen, wenn es völliger Unfug ist.
    Folgendes wollte ich umsetzen.
    1. Wenn der WallPlug ausgeschaltet ist soll er angeschaltet werden um die Farbe wechseln zu können
    2. Wenn der MotionSensor unscharf ist dann, soll der LED Ring grün leuchten
    3. Wenn der MotionSensor scharf ist dann, soll der LED Ring rot leuchten
    Ich weiß nur nicht was ich als Trigger nehmen kann und ob ich die anderen Zustände wie „safe“ mit einbinden muss bzw. kann.

    --[[
    %% properties
    75 value
    %% globals
    --]]

    local vdID = 135 -- VD zum Umstellen der LED Farbe am Wallplug
    local wpID = 132 -- Wallplug der die Farbe ändern soll, ja nach Zustand
    local wpStatus = tonumber(fibaro:getValue(wpID, "value"))
    local msID = 75 -- MotionSensor
    local msStatus = tonumber(fibaro:getValue(msID, "value"))

    ----- wenn Wallplug aus ist dann schalte an
    if wpStatus == 0
    then fibaro:call(wpID, "turnOn")
    fibaro:debug("Wallplug ist eingeschaltet")
    end

    ----- wenn MotionSensor unscharf ist dann schalte die Farbe auf grün
    if msStatus == 0 then
    if tonumber(fibaro:getValue(msID, 'armed')) == 0
    then
    fibaro:call(vdID, 'pressButton', '31')
    fibaro:debug('LED Ring leuchtet grün')
    else
    fibaro:debug('Anlage ist scharf geschaltet')
    end
    end
    ----- wenn Motion Sensor scharf ist dann schalte die Farbe auf rot
    if msStatus >= 0 then
    if tonumber(fibaro:getValue(msID, 'armed')) > 0
    then
    fibaro:call(vdID, 'pressButton', '22')
    fibaro:debug('LED Ring leuchtet rot')
    end
    end
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    Ich danke dir
    Gruß secundani

    • Hi,

      hast du das Prinzip von Triggern einer Szene richtig verstanden? Deine Szene wird immer ausgelöst, wenn der MS sicher oder ausgelöst meldet. Soll hier nicht eher der "Armed"-Status deines MS genutzt werden? Wenn ja, dann müsstest du anstatt value armed im Header nutzen.

      Gruß

      • Moin,
        ich denke das Prinzip mit den Triggern habe ich schon "ein wenig" verstanden. Ich habe nur nicht gewusst, dass ich den Zustand "armed" auch triggern kann. Aber es ist klar, dass das Script jetzt erst anläuft, wenn ich scharf schalte. Was natürlich besser ist als bei jeder Zustandsänderung des MS die Scene zu starten.
        Ich habe eher noch das Problem der Zustände richtig einzuordnen und zu verstehen.
        safe - disarmed - armed - breached sowie die möglichen Kombinationen der Zustände Bsp: safe and armed heißt das Sensor ist scharf und keine Bewegung erkannt, oder hat das was anderes zu bedeuten. Gibt es eine Möglichkeit (Beschreibung) das besser zu verstehen, wie ich die Zustände verarbeiten kann.
        Danke
        Gruß secundani

  • cooles VD - genau, was ich gesucht habe :-)
    Aber: kann es sein, dass die Änderung der Farbe nur bei eingeschaltetem WallPlug möglich ist?
    Oder gibt es da einen Trick, damit ich die Farbe auch bei ausgeschaltetem WallPlug ändern kann?
    Vielen Dank im Voraus für Eure Hilfe!

    • Im ausgeschalteten Zustand ist der LED-Ring grundsätzlich aus. Über den Parameter 62 (beim "alten" AP) kannst du das Verhalten beeinflussen.

      Gruß

Gib deinen Senf dazu!

Cookie Consent mit Real Cookie Banner