Kleine LUA Scripte Teil 8: Parameter von Modulen per Szene ändern

lua change parameter
lua change parameter
Geschrieben von boomx

Hier ist mal wieder ein kleiner Artikel zu der beliebten Reihe "Kleine LUA Scripte". Diesmal zeigen wir euch, wie Ihr in einer Szene die Parameter von Modulen verändern könnt.

Ganz neu ist das Thema ja nicht. Wir hatten euch (hier) in einem älteren Beitrag mal ein Virtuelles Device vorgestellt, mit welchem Ihr die Farbe des Fibaro Wallplugs ändern könnt. Im nächsten Step gehen wir allerdings ein Schritt weiter und ändern die Parameter von Modulen in einer Szene. So könnt Ihr zum Beispiel den Alarmsound eurer Sirene kurz vor dem Einschalten verändern. Die notwendigen Angaben zu den Parametern findet Ihr in den entsprechenden Anleitungen der Geräte.

Das LUA Skript

Kommen wir nun zu dem kleinen Skript. Dies könnt Ihr hier heraus kopieren und in eine neue Szene auf dem Fibaro HomeCenter 2 einfügen.

Im ersten Step könnt Ihr nun die lokalen Variablen ID, parameter, size und value anpassen. Die Angaben sind zwingend erforderlich und müssen gesetzt werden. Diese bedeuten folgendes:

Das waren auch schon alle benötigten Informationen und nach einem manuellen ausführen der Szene, wird der Parameter 37 von dem Modul mit der ID 137 auf den Wert 771 mit der Größe 2 gesetzt. Sollten die Werte nicht zu 100% stimmen, dann werdet Ihr oben in dem Debugfeld des HC2 eine Fehlermeldung erhalten, dass der Wert in der Form bei dem Modul nicht existent ist. In so einem Fall müssen die Werte erneut überprüft werden.

[alert variation="alert-info" dismiss="dismiss"]INFO: Es können natürlich auch die Parameter von batteriebetriebenen Modulen geändert werden. Diese werden aber erst bei der nächsten WakeUp-Time des Moduls übertragen. Bei strombetriebenen Modulen, sowie bei Modulen, welche FLIRS unterstützen, werden die Parameter sofort übertragen.[/alert]

Nutzung der Funktion in einer Szene

Wie Ihr sicherlich bereits erkannt habt, wird die oben gepostete Szene nur beim manuellen Ausführen aktiv. Dies ist ja nicht wirklich Sinn und Zweck des Ganzen. Wir geben euch aber mit dieser Szene eine function() (Zeile 6 - 32) mit, welche Ihr einfach in eine beliebige Szene kopieren könnt und dort dann diese Funktion einfach über den Aufruf

aufrufen könnt. Die notwendigen Angaben, welche Werte wo und wie gesetzt werden, findet Ihr wie oben beschrieben am Beginn der Szene. Eine andere Alternative wäre natürlich die erstelle Szene von einer anderen Szene aus zu starten. Dies könnt Ihr mit dem Befehl

durchführen.

Und nun wünschen wir euch viel Spass mit dem kleinen Skript. Über Kommentare würden wir uns sehr freuen.

Diesen Blogpost hat geschrieben ...

boomx

8 Kommentare

  • Hallo boomx,

    vielen Dank für Deine tollen Tutorials und der vielen Arbeit die Du Dir machst.

    Mir kam beim lesen die Idee, mit diesem Script den Parameter Aufwachintervall der Danfoss LC-13 für in der Sommerphase damit anzupassen (von 900 z.B.: 86400). Dachte mir es würde langfristig die Batterien ein wenig schonen.

    Was hälst Du von der Idee!

    Gruß
    ChrisBet

    • Hi,

      danke, mach ich gern :)

      Das würde funktionieren, dafür müsstest du allerdings das Skript anpassen. Das Aufwachintervall ist kein Parameter, sondern ein eigener Punkt in der API.

      Gruß

  • noch weniger code geht mit api.get, api.put und api.post funktionen.

    Beispiel, die Batterie Warnung abschalten mit

    --[[
    %% properties
    %% globals
    --]]

    function setNoNotification(deviceId)
    local dev = api.get('/devices/' .. deviceId)
    dev.properties.batteryLowNotification = false
    api.put('/devices/' .. deviceId, dev)
    end

    setNoNotification(288)

  • Hallo zusammen,

    habe das Script mit einer AEOTEC SirenGen5 realisiert. Funktioniert.
    Nachteilig ist jedoch, dass die Änderung nicht "still" abläuft, d.h. bei jeder Parameteränderung springt die Sirene einmal an und muss erst wieder ausgeschalten werden..
    Liegt der Grund hierführ im Gerät? Habe so eine Vermutung, da die Sirene schon beim Inkludieren ansprang.
    (HC2 / 4.100)

  • Hallo.
    Wie kann ich denn berechnen, welchen Wert ich bei "value" eingeben muss, wenn die Parametergröße 2 bzw. 4 ist?
    Danke!!!

Gib deinen Senf dazu!

Cookie Consent mit Real Cookie Banner