Website-Icon Dein Smart Home Blog

Kleine LUA Scripte Teil 6: Luftfeuchtigkeit im Raum überwachen

In unserem letzten Artikel haben wir den Aeotec MultiSensor 6 und den dazugehörigen Recessor vorgestellt. Dort hatten wir bereits erwähnt, dass man diesen Sensor zur Überwachung der Luftfeuchtigkeit nutzen kann. Hier kommt das dazugehörige Skript dazu.

Das Skript könnt Ihr euch einfach von dieser Seite kopieren und bei euch in eine neue Szene auf dem HomeCenter 2 einfügen. Dies findet Ihr am Ende des Artikels.

Hier müssen aber noch ein paar Anpassungen vorgenommen werden.

--[[
%% properties
142 value
%% globals
--]]

local humID = 142
local pro = 60

Zum einen muss der Trigger oben in dem Header durch euren Luftfeuchtigkeitssensor (Zeile 3) ersetzt werden. Dies kann neben dem MultiSensor 6 auch ein anderer Sensor, wie zum Beispiel eine netatmo Wetterstation sein. Andere Sensoren funktionieren mit diesem Skript ebenfalls ohne Probleme. Zum anderen muss dann die lokale Variable "humID" (Zeile 7) ebenfalls an euren Sensor angepasst werden. Die Variable "pro" (Zeile 8) steht für den Prozentwert, ab wann die Luftfeuchtigkeit im Raum als zu hoch eingestuft werden soll.

Wie Ihr auf dieser "Messinstrument"-Darstellung erkennen könnt, liegt der ideale Wert zwischen 40 und 60%. Deshalb haben wir oben in den Einstellungen des Skriptes den Wert 60 gewählt. Diesen könnt Ihr natürlich nach Belieben verändern. Solltet Ihr über das Thema "Optimale Luftfeuchtigkeit" in Wohnräumen mehr erfahren wollen, dann würden wir euch einen Blick auf diese Seite hier empfehlen.

Neben den oben erläuterten Anpassung, gibt es noch eine Funktion, welche ausgeführt wird, wenn eine zu hohe Luftfeuchtigkeit erkannt wird. Diese findet Ihr in den Zeilen 10-12:

function actionToHigh()
  -- Aktionen bei Erkennung zu hoher Luftfeuchtigkeit
end

Hier könnt Ihr beliebigen LUA-Code ausführen lassen. Zum Beispiel können Push-Mitteilungen oder bestimmte Lampen eingeschaltet werden. In meiner Konstellation würde ich mir gern Push-Mitteilungen auf das Handy schicken lassen, weshalb ich die Funktion mal beispielhaft hier poste:

function actionToHigh()
  -- Aktionen bei Erkennung zu hoher Luftfeuchtigkeit
  -- Sende Push an alle Handys
  local phoneID = {62,164}
  local room = fibaro:getRoomNameByDeviceID(humID)
  for x=1, 1000 do
    if phoneID[x] ~= nil then
      fibaro:call(phoneID[x], 'sendPush', 'Luftfeuchtigkeit im ' .. room .. ' ist zu hoch.')
    end
  end
end

In das Array "phoneID" müssen die IDs eurer Handys eingetragen werden. Diese findet Ihr heraus, indem Ihr euch eine Blockszene erstellt, welche eine Push-Nachricht versendet und diese dann in LUA konvertiert. Eine andere Möglichkeit besteht darin, die API eurer HomeCenters (http://IP-HC/api/devices?type=iOS_device) aufzurufen und dort die benötigten IDs suchen. Sollten es mehr als zwei Handys sein, dann könnt Ihr einfach weitere IDs, mit einem Komma getrennt, hinzufügen.

Das vollständige Skript findet Ihr hier:

--[[
%% properties
142 value
%% globals
--]]

local humID = 142
local pro = 60

function actionToHigh()
  -- Aktionen bei Erkennung zu hoher Luftfeuchtigkeit
end

-- Ab hier nichts mehr ändern

Debug = function ( color, message )
  fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span"))
end

local hum = tonumber(fibaro:getValue(humID, "value"))

fibaro:debug('Check Luftfeuchtigkeit v.01 gestartet.')
  
if (hum > pro) then
  local room = fibaro:getRoomNameByDeviceID(humID)
  Debug( 'blue', 'Luftfeuchtigkeit im Raum: ' .. room .. ' ist mit ' ..hum.. ' % zu hoch.')
  actionToHigh()
else
  local room = fibaro:getRoomNameByDeviceID(humID)
  Debug( 'green', 'Luftfeuchtigkeit im Raum: ' .. room .. ' ist mit ' ..hum.. ' % ok.')
end

Das Skript wird immer ausgeführt, wenn der Sensor einen veränderten Wert der Luftfeuchtigkeit feststellt und diesem dem HomeCenter mitteilt. Dieser Wert wird dann gegen euren gewünschten Wert geprüft und dann entschieden, ob der Wert zu hoch, oder in Ordnung ist. Sollte er zu hoch sein, dann wird die Funktion actionToHigh() ausgeführt und abgearbeitet.

Wir wünschen euch nun viel Spass bei der Umsetzung. :)

Wie immer an dieser Stelle findet Ihr das passende Icon für die Szene.

Für den MultiSensor 6 haben wir für euch auch noch nachträglich ein paar Icons erstellt:

Die mobile Version verlassen