Push Nachricht bei Batteriewarnung

Hallo,
wie der Titel schon sagt, hätte ich gerne eine Pushnachricht aufs iPhone wenn der Batterstatus eines beliebigen Gerätes unter einen
voreingestellten wert sinkt.

Ich habe mir jetzt das hier aus verschiedenen Tutorials zusammengebastelt:

--[[ 
%% properties
%% events
%% globals 
--]]
----- Auslesen der Batteriestatuse ----
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' or deviceType == 'com.fibaro.FGMS001v2') then
        	if tonumber(batteryLevel) <= minBatteryLevel then
          		Debug( 'red', "ACHTUNG! " ..name.." ("..room..")/Batterie: "..batteryLevel.." %")
          	else
        		Debug( 'green', name.." ("..room..")/Batterie: "..batteryLevel.." %");
				local message = 'testeintrag'
          		----- Variablen zum senden der PushMitteilung
				local phoneID = {59}
				local title = 'Achtung Batterie geht zu Neige!'
				local category = 'RUN_CANCEL' -- or 'YES_NO'
				local sceneID = 7
          		for i=1, #phoneID do
   				if phoneID[i] ~= nil then
    				fibaro:debug('Versende Interactive Push an ID ' ..phoneID[i])
     				api.post('/mobile/push', {["mobileDevices"]={phoneID[i]}, ["message"]=message, ["title"]=title, ["category"]=category, ["data"]={["sceneId"]=sceneID}});
              	
     				end
				end
        	end
      	end
      end 
    end 
  end

Leider bekomme ich es nicht hin das mir das was mir:
Debug( 'green', name…" ("…room…")/Batterie: "…batteryLevel…" %");
ausgibt in diese variable geschrieben wird:
local message = 'testeintrag'
damit diese Info dann in:
api.post('/mobile/push', {["mobileDevices"]={phoneID[i]}, ["message"]=message, ["title"]=title, ["category"]=category, ["data"]={["sceneId"]=sceneID}});
geschrieben wird.

Hi,

was soll denn in die Var message eingetragen werden?

Gruß

Na in die variabel message (var meinte das doch?) soll das gespeichert/geschrieben werden was:

Debug( 'green', name…" ("…room…")/Batterie: "…batteryLevel…" %");

hervorragend im Debugfenster ausgibt. Das ist die Codezeile direkt nach dem else.
In dem Fall steht da: [DEBUG] 23:22:22: AZ_Motion_Bewegung (Arbeitszimmer)/Batterie: 85 %
Natürlich würde das dann, wenn es funktioniert, aus der else rauskommen.
Da ich es ja zum testen in der Schleife probiere wo das script auch reingeht. :slight_smile:

Das was in der Variabel message dann gespeichert ist soll ja hier:

api.post('/mobile/push', {["mobileDevices"]={phoneID[i]}, ["message"]=message, ["title"]=title, ["category"]=category, ["data"]={["sceneId"]=sceneID}});

dann per Push gesendet werden.

Dann musst du das auch in die Var schreiben:

local message = ""…name…" ("…room…")/Batterie: "…batteryLevel…" %"

Gruß

Was soll ich sagen … Es funktioniert :smiley:

Kannst du mir, in verständlich, erklären was die … vor und hinter den Namen bewirken?

Hi,

damit werden Variablen im Fließtext gekenzeichnet:

local message = name
local message = "Modul: " ..name
local message = "Modul "..name.." ist leer!"

Hoffe an dem Beispiel wird es klar. :slight_smile:

Gruß

Also dann jetzt mal das was ich verstehe:

Alles was in “” steht ist normaler Text
wenn die Variable das letzte in der Zuweisung ist reicht … davor
wenn es hinter der variable noch mit text weitergehen soll, dann die variablen “Kennzeichenung” auch mit … wieder beenden?

Right?

Ja, so ist es richtig…