Website-Icon Dein Smart Home Blog

Kleine LUA Scripte Teil 1: Batterie-Check

Von Zeit zu Zeit werden wir euch in dieser neuen Serie ein paar kleine, nützliche  LUA-Skripte zeigen. Hier erfahrt Ihr mehr.

In der ersten Folge der neuen Serie stellen wir euch ein kleines Skript vor, mit welchem Ihr den Status aller batteriebetriebenen Geräte prüfen könnt. Das Skript zeigt euch an, ob der Batterie-Status noch in Ordnung ist, oder ob Ihr darüber nachdenken solltet, die Batterien vielleicht in der nächsten Zeit auszutauschen. Die unterschiedlichen Status werden in Grün (Batterie in Ordnung) und in Rot (Batterie unter 25% Kapazität) aufgelistet. Auf dem folgenden Bild könnt Ihr das veranschaulicht erkennen:

Unter einem bestimmten Batterie-Wert (25 %) wird der Debug in Rot dargestellt

Das LUA Skript

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

local minBatteryLevel = 25
local maxID = 1000

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

for id = 1, maxID do 
   local batteryLevel = fibaro:get(id, 'batteryLevel') 
	if batteryLevel ~= nil 
    then 
      local name = fibaro:getName(id) 
      local room = fibaro:getRoomNameByDeviceID(id) 
      if not(room == "unassigned") then
      	local deviceType = fibaro:getType(id)
      	if (deviceType == 'com.fibaro.FGFS101' or deviceType == 'com.fibaro.remoteSwitch' or deviceType == 'com.fibaro.doorLock' or deviceType == 'com.fibaro.FGMS001' or deviceType == 'com.fibaro.windowSensor' or deviceType == 'com.fibaro.doorSensor' or deviceType == 'com.fibaro.binarySwitch' or deviceType == 'com.fibaro.FGSS001') then
        	if tonumber(batteryLevel) <= minBatteryLevel then
          		Debug( 'red', "ACHTUNG! " ..name.." ("..room..")/Batterie: "..batteryLevel.." %")
          	else
        		Debug( 'green', name.." ("..room..")/Batterie: "..batteryLevel.." %")
        end
      end
      end 
    end 
  end 

Das LUA Skript prüft alle Geräte, welche Ihr auf eurem Fibaro HomeCenter 2 eingerichtet - und einem Raum zugeordnet habt in einer Schleife und erkennt, ob es sich um ein batteriebetriebenes Gerät handelt. Damit zum Beispiel bei einem MotionSensor nicht noch die LUX und Temperatur extra angezeigt werden, erfolgt noch eine Prüfung um welche Modulart es sich handelt. Unterstützt werden derzeit folgende device-Typen:

Sollten euch beim Test noch weitere device-Typen auffallen, welche nicht durch das oben gezeigte Skript abgedeckt sind, dann schaut doch bitte in der API nach dem device-Type. Dies könnt Ihr über die URL http://IP-HC2/api/devices?=ID_des_devices. Hier sucht Ihr dann nach der ID, welche nicht im Skript auftaucht. In der darauf erscheinenden Ansicht, kopiert euch bitte den Reiter "type"

 

Stellt uns diesen bitte in den Kommentaren zur Verfügung, dann können wir das Skript immer weiter updaten. Vielen Dank für eure Mithilfe und nun viel Spass mit dem Skript :)

Die mobile Version verlassen