Push bei niedriger Batterie

Hallo,

ist es möglich, dass ich eine Pushmitteilung bekomme, wenn eine Batterie fast leer ist oder bekomme ich es immer nur per Zufall raus, wenn ich mich einlogge?

Danke

Hi,

du kannst das Skript, welches die Batterien prüft, gerne um eine Push-Funktion erweitern :wink:

Gruß

habe ich probiert :wink:

habe diese script kopiert:

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

local scene = 42

local handy = 4

fibaro:debug(„Start – Module Batteriecheck“)
if (fibaro:countScenes()>1) then
fibaro:debug(„stop scene“);
fibaro:abort();
end

if (fibaro:getGlobalValue(„Tageszeit“) == „Morgen“) then

local minBatteryLevel = 25
local maxID = 500

Debug = function ( color, message )
fibaro:debug(string.format(‚%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‘ or deviceType == ‚com.fibaro.thermostatDanfoss‘) then
if tonumber(batteryLevel) <= minBatteryLevel then
Debug( 'red', "ACHTUNG! " ..name.." ("..room..")/Batterie: "..batteryLevel.." %")
fibaro:call(handy, "sendPush", "!!! "..name.." ("..room..")/Batterie: "..batteryLevel.." %")
else
Debug( 'green', name.." ("..room..")/Batterie: "..batteryLevel.." %")
end
end
end
end
end

end
———————————————————————————-
fibaro:debug("Ende – Module Batteriecheck");
fibaro:killScenes(scene);

bekomme aber immer fehler:

[DEBUG] 15:23:37: line 10: unexpected symbol near char(226)

wo liegt da der fehler?

habe das script nochmal abgeändert:

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

local minBatteryLevel = 30
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.." %")
          		fibaro:call(4, "sendPush", "!!! "..name.." ("..room..")/Batterie: "..batteryLevel.." %")
          	else
        		Debug( 'green', name.." ("..room..")/Batterie: "..batteryLevel.." %")
        end
      end
      end 
    end 
  end 

sobald ich nun die Zeile 21 gegen diese tausche (um die Thermostate hinzuzufügen):

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‘ or deviceType == ‚com.fibaro.thermostatDanfoss‘) then

kommt Fehler in der Zeile… finde den Fehler nur nicht :wink:

Hi,

die Zeichen ‚ sind falsch. Es müssen ' sein. Zumindest sieht es auf den ersten Blick so aus.

Gruß

danke, daran lag es