Türen und Fenster im gegebenen Intervall prüfen

@Martin, Du kannst doch diese Fenster in der Variablen ‘ignoredev’ eintragen. Somit bleiben die Türen geschützt. Auch wenn man im 8-ten Stock wohnt will, man sicher sein das die Tür zu ist. Oder ich hab Dein Anliegen noch nicht verstanden.

@jeep

Grundsätzlich sollen die Fenstersensoren ja funktionieren, aber ab einer bestimmten Temperatur kein Push senden. Sonst bleibt nur manuell im Sommer die Fenster rauszunehmen, wo ich erst einmal aufgrund der Außentemperatur kein Push will, um sie dann wenn wieder kälter draußen, wieder reinzunehmen.

Oder besteht die Möglichkeit einzustellen, dass ich ab einer bestimmten Temperatur kein Push will, weil Fenster aufgrund der Temperatur sowieso ganzen Tag z.B. offen ist.

@Martin, OK, ich habe fast befürchtet das Du dass meinst. Es gibt da mehrere Sichtweisen. Sinn und Zweck des scripts ist es ja zu alarmieren wenn Fenster oder Türen zu lange auf sind. Viele machen im Sommer auf jeden Fall die Fenster und Rollläden zu, um die Bullenhitze draußen zu halten. Erst ab ca 22:00 - 23:00 Uhr wird dann gelüftet.
Andere kühlen die Räume mit einer Klimaanlage. Für die wäre es kontraproduktiv wenn da keine Push käme.
Du kannst auch einige Fenster in der Variablen ‘excludedev’ setzen. Für die wird im angegebenen Zeitraum keine Push verschickt. Es ist ja schon selten dass hierzulande die Temperaturen nachts über 22° liegen. Eventuell kannst Du damit leben.
Für mich ist es kein Problem Dein Anliegen zu implementieren, dass dauert max. 10 Min. Trotzdem sehe ich darin ein Sicherheitsrisiko wenn man das Haus verlässt und Dutzend Fenster oder Türen offen stehen und keine push kommt.

@jeep

Kann ich natürlich nachvollziehen. Ich werde am besten erst einmal Sommer abwarten und schauen wie es läuft. Jedoch ist es bei uns keine Seltenheit, dass Fenster über Nacht offen stehen oder bei angenehmen Temperaturen ganzen Tag offen sind. Wenn meine Frau dann ständig Push bekommt, ist das schon wieder koontraproduktiv für den “Nutzen” des Smarthomes. ^^

Gegebenfalls kann ich, denke ich mal, immer noch „local newInterval" auf einen Tag stellen oder ähnlich.

@martin
gute Idee auf den Sommer zu warten und mit newinterval probieren. Damit Deine Frau nicht mit Pushs geflutet wird, kannst Du die Anzahl der push auf 1 stellen und die Wiederholung (pushagain) auf z.B. 10 Std. (10 * 3600) stellen. Das wäre noch einfacher aber nicht sicherer. Vielleicht wird eine Kombination aus allen eine Lösung für Dich ergeben.

Guten Abend/Morgen Jeep, habe heute auch mal kurz vor 24Uh und kurz danach getestet. Dein Skript läuft bei mir sauber bis 24 Uhr und danach scheint die Uhr (die Periodenzeit nicht mehr zu funktionieren)
Ich habe die Zeiten:
local begPeriod = “21:30” – During this period, no check is performed on the
local endPeriod = “6:30” – sensors contained in the variable “excludedev”.
…da ich halt gerne Nachts lüfte. von 21:30 Uhr bis 24Uhr meldet das Fenster auch nicht, aber ab 24Uhr gehts los (siehe Anhang !)

Ich habe dann die Scene um 0:05:24 Uhr nochmals gestartet, aber wie man sehen kann startet der Check.

Vielleicht kannst du daran noch was ändern?
mfg smg2274

Debug1.png

Hi Sven,

ja da hast Du recht. Ich hatte es aber auch nicht vorgesehen dass es über die Datumsgrenze hinweg geht. Leider habe ich das nicht dokumentiert.
Aber mit diesem kleinen workaround sollte Dein Problem gelöst werden können.
Ersetze in der function excludecheck (Zeile 65) die if Abfrage durch diese:

 if (os.date("%H:%M", os.time())) > begPeriod and (os.date("%H:%M", os.time())) < endPeriod 
    or (os.date("%H:%M", os.time())) > "00:00" and (os.date("%H:%M", os.time())) < "06:30"  then
 

Kannst ja die Werte für Dich anpassen.

Hier ist eine neue Version die einen Fehler mit der Steuerung der Variablen “newInterval” behebt.

Changelog für Version: 0.2.3
– Bugfix, die Variable newInterval wurde erhöht, der Wert bei gefallenen Temperaturen aber beibehalten. Ist gefixt.

 --[[
%% autostart
%% properties
--]]

-- Scene File    : CheckDWinterval.lua
-- Purpose       : Check doors and windows at the given interval.
-- Version       : 0.2.3
-- Release Date  : 15 February 2018
-- Trigger       : autostart
-- License       : Copyleft {jeep} siio-forum

-- Either you enter all the door / window IDs in line 26, or you
-- let the script run in automatic mode. Save the line 26, so
-- you do not have to pick all the IDs again,

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

local version  = '0.2.3' 
local manually = false

if manually then
   devices = {48, 122, 123, 127} --enter your device IDs here
   Debug('green', 'Checking is in manual mode.')
else  
   devices = fibaro:getDevicesId({ enabled = true, visible = true, baseType = "com.fibaro.doorWindowSensor" })
   Debug('green', 'Checking is in automatic mode.' )
end 
  
local interval    = 10   -- Interval after which the first push message is sent.
local numPushMsg  = 3    -- number of push messages
local pushAgain   = 3600 -- Activate pushMsg again after specified time.
local IDtempOut   = 243  -- IMPORTANT! ID of your outside temperatur sensor (e.g. Yahoo)
local excludedev  = {123,259,360} --This device(s) are exclcuded temporary from check
local ignoredev   = {}      -- This devices are never checked
local begPeriod   = "08:00" -- During this period, no check is performed on the 
local endPeriod   = "20:15" -- sensors contained in the variable "excludedev".
local TempOutType = 'Temperature' --IMPORTANT 'Temperature' or 'value'
local tThreshold  = 17   -- nn° Celsius
local newInterval = 15   -- minutes to increase interval counter  
local phoneID     = {8, 20} -- mobile-IDs 
local debug       = false   -- Debug messages yes/no 
local advdebug    = false   -- advanced debug
-- Don't change anything below this line.
local pushMsg = 1
local warning = 1
local counter = 0  
local prevwarning = 0

if (fibaro:countScenes()>1) then
   fibaro:debug('Only one instance allowed!')
   fibaro:abort(); 
end

if (fibaro:getValue(IDtempOut, TempOutType)) == nil then
   Debug('red', 'No outside temperature detected!')
   Debug('red', 'Please correct. Scene is canceled!') 
   fibaro:abort() 
end    

local function excludecheck(excludedev, devid)
  if (os.date("%H:%M", os.time())) > begPeriod and (os.date("%H:%M", os.time())) < endPeriod then
     for i=1,#excludedev do
        if excludedev[i] == devid then 
           return true
        end
     end --for
  end  
  return false
end  

local function ignorecheck(ignoredev, devid)
  for i=1,#ignoredev do
        if ignoredev[i] == devid then 
           return true
        end
     end --for
  return false
end  

local function tempcheck()
  local outsideTemp = tonumber( fibaro:getValue(IDtempOut, TempOutType));
  local stringTemp = string.format("%.2f", outsideTemp)
  if outsideTemp >= tThreshold then
     currInterval = newInterval
  else
     currInterval = interval    
  end  
  return stringTemp, currInterval
end

local outsideTemp = tempcheck()
Debug('white', "Check for open doors and windows... Version ".. version)
Debug('white', "Outside temperature is " .. tempcheck() .. '°C')
Debug('green', "Current Interval is: " .. currInterval) 
if not debug then print('Debug is disabled.') end;

function checkOpenDW()
  local outsideTemp,curInterval = tempcheck()
  local currentDate = os.date("*t");
  local datum = os.date("%d.%m.%Y")
  counter = counter + 1
  local devopen = 0
  for id = 1, #devices do
     if (tonumber(fibaro:getValue(devices[id], 'value')) == 1) then
        local name  = fibaro:getName(devices[id])
        local room  = fibaro:getRoomNameByDeviceID(devices[id])
        if excludecheck(excludedev, devices[id]) ~= true 
           and ignorecheck(ignoredev,devices[id]) ~= true then      
           devopen = devopen + 1
           status  = " ACHTUNG! " ..name.. " im Raum " ..room.. " ist offen! Temp. = " .. outsideTemp.."°"
           Debug('yellow',datum .. status)
           warning = warning + 1
        end  
     end
            
     if (warning == prevwarning and warning > 0) then
         -- Tür wurde geschlossen
         warning = 1; counter = 1; prevwarning = 0; pushMsg = 1; 
     end     
     
     if (warning == 0) then 
        -- Keine Tür geöffnet, Zähler beginnt von vorn 
         counter = 1; prevwarning = 0; pushMsg = 1; 
     end
      
     if (counter > currInterval+1 and warning > 0) then 
         -- Tür wurde geöffnet und wieder geschlossen, Warnungen werden zurückgesetzt   
         counter = 1; warning = 1; prevwarning = 0; pushMsg =1;
     end 
  end --for
  if devopen == 0 then
     counter = 1; warning = 1; prevwarning = 0; pushMsg =1;
     if debug then Debug('green', 'Alle Türen und Fenster geschlossen.') end;
  end  
  prevwarning = prevwarning +1  
  -- Tür/Fenster mehr als Interval-Min. offen. Meldung schicken 
  if counter > currInterval then
     if (devopen > 1) then
        status = status .. ' Total: '.. devopen 
     end
     if pushMsg <= numPushMsg then
        Debug('red',datum .. ' Tür/Fenster seit mehr als '.. curInterval ..' Minuten geöffnet, sende Push Nr. '..pushMsg)
        status = status .. ',Push-Nr.: ' .. pushMsg
        if pushMsg == numPushMsg then status = status ..' Letzte!' end 
        pushMsg = pushMsg + 1
        uxtime = os.time(dt);
        for k=1, #phoneID do
           if phoneID[k] ~= nil then
              fibaro:call(phoneID[k], 'sendPush', status )
           end
        end --for
     end
     warning = 1; counter = 1; prevwarning = 0
  end 
  if advdebug then Debug('withe', 'Counter: '.. counter) end;
  if advdebug then Debug('withe', 'Warning: '.. warning) end;
  if advdebug then Debug('withe', 'PreWarning: '.. prevwarning) end;
  if advdebug then Debug('withe', 'PushMsg : '.. pushMsg) end;
  
  if pushMsg > numPushMsg and (os.time() - uxtime) >  pushAgain and pushAgain > 0 then 
     pushMsg = 1 
  end
  setTimeout(checkOpenDW, 60*1000)
end --function

if (sourceTrigger["type"] == "autostart") then
   checkOpenDW()
else
  local currentDate = os.date("*t");
  local startSource = fibaro:getSourceTrigger();
  checkOpenDW()
end

Danke dir, werde es versuchen!

Hallo zusammen,

es gibt eine neuere Version des Scripts. Durch eine kleine Änderung bei der Behandlung der Variablen ‘newInterval’ ist das Verschieben des Meldungsintervalls ein wenig intelligenter geworden. Es wird jetzt automatisch auf steigende oder fallenden Temperaturen reagiert.
Bitte das PDF beachten wo die Variable nochmal mit der neuen Funktion beschrieben ist.

Changelog für Version 0.2.4
– Behandlung der Variablen ‘newInterval’ geändert.

--[[
%% autostart
%% properties
--]]

-- Scene File    : CheckDWinterval.lua
-- Purpose       : Check doors and windows at the given interval.
-- Version       : 0.2.4
-- Release Date  : 30 Jul. 2018
-- Trigger       : autostart
-- License       : Copyleft {jeep} siio-forum

-- Either you enter all the door / window IDs in line 26, or you
-- let the script run in automatic mode. Save the line 26, so
-- you do not have to pick all the IDs again,

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

local manually = false

if manually then
   devices = {48, 122, 123, 127} --enter your device IDs here
   Debug('green', 'Checking is in manual mode.')
else  
   devices = fibaro:getDevicesId({ enabled = true, visible = true, baseType = "com.fibaro.doorWindowSensor" })
   Debug('green', 'Checking is in automatic mode.' )
end 
  
local interval    = 10   -- Interval after which the first push message is sent.
local numPushMsg  = 3    -- number of push messages
local pushAgain   = 3600 -- Activate pushMsg again after specified time.
local IDtempOut   = 243  -- IMPORTANT! ID of your outside temperatur sensor (e.g. Yahoo)
local excludedev  = {123,202,259,360} --This device(s) are exclcuded temporary from check
local ignoredev   = {205}      -- This devices are never checked
local begPeriod   = "08:00" -- During this period, no check is performed on the 
local endPeriod   = "20:15" -- sensors contained in the variable "excludedev".
local TempOutType = 'Temperature' --IMPORTANT 'Temperature' or 'value'
local tThreshold  = 15   -- nn° Celsius 
local newInterval = 5    -- minutes to increase or decrease interval counter  
local phoneID     = {8, 20} -- mobile-IDs 
local debug       = false   -- Debug messages yes/no 
local advdebug    = false   -- advanced debug

-- No changes needed below this line.
local version = '0.2.4' 
local pushMsg = 1
local warning = 1
local counter = 0  
local prevwarning = 0

if (fibaro:countScenes()>1) then
   fibaro:debug('Only one instance allowed!')
   fibaro:abort(); 
end

if (fibaro:getValue(IDtempOut, TempOutType)) == nil then
   Debug('red', 'No outside temperature detected!')
   Debug('red', 'Please correct. Scene is canceled!') 
   fibaro:abort() 
end    

local function excludecheck(excludedev, devid)
  if (os.date("%H:%M", os.time())) > begPeriod and (os.date("%H:%M", os.time())) < endPeriod then
     -- workaround for checking time after midnight
     -- or (os.date("%H:%M", os.time())) > "00:00" and (os.date("%H:%M", os.time())) < "06:30"  then
     for i=1,#excludedev do
        if excludedev[i] == devid then 
           return true
        end
     end --for
  end  
  return false
end  

local function ignorecheck(ignoredev, devid)
  for i=1,#ignoredev do
        if ignoredev[i] == devid then 
           return true
        end
     end --for
  return false
end  

local function tempcheck()
  local outsideTemp = tonumber( fibaro:getValue(IDtempOut, TempOutType));
  local stringTemp = string.format("%.2f", outsideTemp)
  if outsideTemp > tThreshold then
      currInterval = interval + newInterval
    elseif  outsideTemp < tThreshold  then
      currInterval = interval - newInterval   
  else
      currInterval = interval    
  end  
  if (currInterval < 5) then 
     currInterval = 5
  end  
  return stringTemp, currInterval
end

local outsideTemp = tempcheck()
Debug('white', "Check for open doors and windows... Version ".. version)
Debug('white', "Outside temperature is " .. tempcheck() .. '°C')
Debug('green', "Current Interval is: " .. currInterval) 
if not debug then print('Debug is disabled.') end;

function checkOpenDW()
  local outsideTemp,curInterval = tempcheck()
  local currentDate = os.date("*t");
  local datum = os.date("%d.%m.%Y")
  counter = counter + 1
  local devopen = 0
  for id = 1, #devices do
     if (tonumber(fibaro:getValue(devices[id], 'value')) == 1) then
        local name  = fibaro:getName(devices[id])
        local room  = fibaro:getRoomNameByDeviceID(devices[id])
        if excludecheck(excludedev, devices[id]) ~= true 
           and ignorecheck(ignoredev,devices[id]) ~= true then      
           devopen = devopen + 1
           status  = " ACHTUNG! " ..name.. " im Raum " ..room.. " ist offen! Temp. = " .. outsideTemp.."°"
           Debug('yellow',datum .. status)
           warning = warning + 1
        end  
     end
            
     if (warning == prevwarning and warning > 0) then
         -- Tür wurde geschlossen
         warning = 1; counter = 1; prevwarning = 0; pushMsg = 1; 
     end     
     
     if (warning == 0) then 
        -- Keine Tür geöffnet, Zähler beginnt von vorn 
         counter = 1; prevwarning = 0; pushMsg = 1; 
     end
      
     if (counter > currInterval+1 and warning > 0) then 
         -- Tür wurde geöffnet und wieder geschlossen, Warnungen werden zurückgesetzt   
         counter = 1; warning = 1; prevwarning = 0; pushMsg =1;
     end 
  end --for
  if devopen == 0 then
     counter = 1; warning = 1; prevwarning = 0; pushMsg =1;
     if debug then Debug('green', 'Alle Türen und Fenster geschlossen.') end;
  end  
  prevwarning = prevwarning +1  
  -- Tür/Fenster mehr als Interval-Min. offen. Meldung schicken 
  if counter > currInterval then
     if (devopen > 1) then
        status = status .. ' Total: '.. devopen 
     end
     if pushMsg <= numPushMsg then
        Debug('red',datum .. ' Tür/Fenster seit mehr als '.. curInterval ..' Minuten geöffnet, sende Push Nr. '..pushMsg)
        status = status .. ',Push-Nr.: ' .. pushMsg
        if pushMsg == numPushMsg then status = status ..' Letzte!' end 
        pushMsg = pushMsg + 1
        uxtime = os.time(dt);
        for k=1, #phoneID do
           if phoneID[k] ~= nil then
              fibaro:call(phoneID[k], 'sendPush', status )
           end
        end --for
     end
     warning = 1; counter = 1; prevwarning = 0
  end 
  if advdebug then Debug('withe', 'Counter: '.. counter) end;
  if advdebug then Debug('withe', 'Warning: '.. warning) end;
  if advdebug then Debug('withe', 'PreWarning: '.. prevwarning) end;
  if advdebug then Debug('withe', 'PushMsg : '.. pushMsg) end;
  
  if pushMsg > numPushMsg and (os.time() - uxtime) >  pushAgain and pushAgain > 0 then 
     pushMsg = 1 
  end
  setTimeout(checkOpenDW, 60*1000)
end --function

if (sourceTrigger["type"] == "autostart") then
   checkOpenDW()
else
  local currentDate = os.date("*t");
  local startSource = fibaro:getSourceTrigger();
  checkOpenDW()
end

Danke dir @Jeep.

Werde auch dieses testen. Kann man auch dieses kleine Programm mit da ein bringen, bzw. die Variablen um Empfindlichkeiten zu steuern? Dieses nutze ich für meine Heiztherme, um einfach andere Heizkurven zu schalten.


--[[
%% autostart
%% properties
%% weather
Temperature
%% events
%% globals
--]]

local sommertemp = 17 --Sommertemperatur >= 18
local wintertemp = 8 --Sommertemperatur <= 13

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

local startSource = fibaro:getSourceTrigger();

if 		
	(( tonumber(api.get('/weather')['Temperature']) >= tonumber(sommertemp)  or
		tonumber(fibaro:getValue(250, "value")) >= sommertemp )	or startSource["type"] == "other") then
		
		fibaro:setGlobal("Jahreszeit", "Sommer")
		Debug("gold",'setze Jahreszeit auf Sommer')
	
elseif	
	(( tonumber(api.get('/weather')['Temperature']) <= tonumber(wintertemp)  or
		tonumber(fibaro:getValue(250, "value")) <= wintertemp )	or startSource["type"] == "other") then
			
		fibaro:setGlobal("Jahreszeit", "Winter")
		Debug("cyan",'setze Jahreszeit auf Winter')
			
else	
		fibaro:setGlobal("Jahreszeit", "Herbst");
		Debug("orange",'setze Jahreszeit auf Frühling bzw. Herbst')
end

Hi Sven,

habe mir den Code oben angeschaut. Ich weiß nicht ob Du Dir einen eigenen Wetter-Provider erstellt hast, oder ob Du die Temperatur von Yahoo oder Yr-Wetter nimmst. Dein Script wird durch die Temperatur getriggert und meins prüft minütlich eine Veränderung der Fenster- oder Türposition. Daher fände ich es nicht so gut minütlich den gleichen Wert in der globalen Variable zu aktualisieren.
Ich würde an Deiner Stelle so wie so die Abfragen erweitern, also mit fibaro:getGlobalValue(‘Jahreszeit’) abfragen ob der richtige Wert schon drin steht und wenn ja, die Globale Variable nicht mehr aktualisieren.

Hallo Jeep, ich bin aber leider keine so Programmierkanone wie du, aber lerne gerne dazu. Ich nutze die Temperatur vom HC selber (wahrscheinlich von Yahoo ?!? ) und einen Türkontakt im Briefkasten, der vor Sonne geschützt im Norden sitzt. Das Skript triggert so zwischen 5-15 Minuten durch Änderung der Temperatur. Wenn du für mein Skript Erweiterungen hast, nehme ich die gerne…danke Sven

Hi Sven,
hab mal Deinen Code so umgestaltet wie ich es für richtig halte.
Kannst ja mal Testen ob es passt.
EDIT: Natürlich noch die ID des Sensors wieder rauf Deine umstellen.

Hallo,
die Szene (Version: 0.2.4) funktioniert soweit TOP nur… ich bekomme die Puschnachrichten ständig ohne Berücksichtigung von Außentemperatur :frowning:
Soll die Scene nicht die Nachricht schicken nur wenn kälter als 15° ist?

Danke und Gruß,
Gregor

Hi @Gregor,

die Temperatur wird nur verwendet um das Meldungsinterval zu verlängern oder kürzen. Die Push Nachricht wird immer geschickt wenn ein Fenster über den Intervall hinaus geöffnet ist. Neben der Lüftung für Sommer und Winter, soll ja auch der Sicherheitsaspekt berücksichtigt werden.

Hallo Jeep, ich habe jetzt Deine open Door Ver. 0.2.4 auch bei mir am laufen. Funktioniert einwandfrei.

Mich würde nur mal so von den Usern, nach ca. 1 Jahr testen interessieren, welche Parameter ja von Fall zu Fall anzupassen sind bei den meisten sich als praktikabel ergeben haben.

local interval = XX – Interval after which the first push message is sent.
local numPushMsg = X – number of push messages
local pushAgain = XX – Activate pushMsg again after specified time.
local IDtempOut = XX – IMPORTANT! ID of your outside temperatur sensor (e.g. Yahoo)
local begPeriod = “08:00” – During this period, no check is performed on the
local endPeriod = “20:15” – sensors contained in the variable “excludedev”.
local TempOutType = ‘Temperature’ --IMPORTANT ‘Temperature’ or ‘value’
local tThreshold = XX – nn° Celsius
local newInterval = X – minutes to increase or decrease interval counter
local debug = false – Debug messages yes/no
local advdebug = false – advanced debug

Ich finde Jeep du machst eine sehr gute Programmierarbeit.

Ciao

Hallo Jeep, bin grad immer noch am Testen, dabei ist mir (meiner Frau) aufgefallen, das wenn wir Zuhause sind ( Am WE) sie ja ständig Push Meldungen erhält, wenn Fenster, Türen geöffnet sind.
Könnte man das Programm noch so weit erweitern, das man an Wochentagen, wo man Zuhause ist ( meist eben Sam/Son) keine Pushmeldungen erhält.

Oder habe ich das Türen/Fenster Skript falsch verstanden, für welchen Einsatzzweck dies gedacht ist.

@Trigorint

die neueste Version (0.2.5) des Scripts gibt es hier

Bitte beachte auch das angehängte PDF mit der Erklärung der Variablen. Dann verstehst Du auch die Push-Meldungen und wie Du den mehrfachen Erhalt der Meldungen drosseln oder abschalten kannst.
Und wenn Du Dein Haus verlassen willst und trotzdem was offen bleiben soll, dann auch die Variablen ‘excludev’ und ‘ignoredev’ beachten.

Hallo Jeep, danke, habe mir natürlich gleich die neueste 0.2.5 aufgespielt und bin am testen. Gibts die nur in der englischen Version, oder habe ich nur nicht die deutsche Version gefunden?

Ja, die excludev und ignordev habe ich jetzt auch befüllt. Klappt sehr gut.

Hallo Zusammen,
nachdem der Beitrag offensichtlich noch “lebt” (letzter Eintrag 19.8.19) versuch ich mein Glück.
Aber erst mal vielen Dank für das Skript.

Was ich mir vorstelle:
In der neuen als “Fibaro Home Center” bezeichneten App hat man ja im oberen Bereich eine separate Übersicht wie viele Türen und wie viele Fenster (zb offene Türen: 1/4) offen sind. Aber dazu muss ich die App aufrufen und die Icons auswählen.

Mir schwebt jetzt ein Widget vor dass mir auf einen Blick anzeigt ob ein Sensor (von den ausgewählten IDs) offen anzeigt, das Widget wird dann rot bzw, wenn alles zu ist bleibt es grün.

Wäre vermutlich am einfachsten zu lösen wenn das Skript eine öffentlich Variable setzt und diese Variable vom Widget abgefragt wird?
Oder hat jemand eine bessere Idee?

Gruß
Gerhard