Abfrage Fenster auf/zu

Wie würde ich ein 2tes Handy beifügen?

Um welches Script genau geht es bei der Frage?

Dieses hier

--[[
%% properties
%% globals
--]]
 
-- Script läuft nur wenn die Szene gestartet wird
 
-- Fenster/Tür Kontakte --
-- Wohnzimmer --
local FensterWZ1 = (tonumber(fibaro:getValue(444, "value")) == 0);
local FensterWZ2 = (tonumber(fibaro:getValue(450, "value")) == 0);
 
-- Küche --
local FensterKueche = (tonumber(fibaro:getValue(441, "value")) == 0);
 
-- Flur --
local HaustuerFlur = (tonumber(fibaro:getValue(447, "value")) == 0);
 
-- Fenster Bad --
local FensterBad = (tonumber(fibaro:getValue(464, "value")) == 0);
 
--------------------------
 
-- Script --
 
local startSource = fibaro:getSourceTrigger();
 
-- Fenster Status überprüfen --
 
if startSource["type"] == "other"
   then
    -- Wohnzimmer --
    if FensterWZ1 then
     fibaro:debug('Fenster Wohnzimmer 1 ist geschlossen');
     else
     fibaro:debug('Fenster Wohnzimmer 1 ist geöffnet');
     fibaro:call(115, "sendPush", "Fenster Wohnzimmer 1 ist geöffnet, Abwesendheit wird nicht gesetzt");
 
    end
    
    if FensterWZ2 then
     fibaro:debug('Fenster Wohnzimmer 2 ist geschlossen');
     else
     fibaro:debug('Fenster Wohnzimmer 2 ist geöffnet');
     fibaro:call(115, "sendPush", "Fenster Wohnzimmer 2 ist geöffnet, Abwesendheit wird nicht gesetzt");
 
    end
    -- Küche --
    if FensterKueche then
     fibaro:debug('Fenster Küche ist geschlossen');
     else
     fibaro:debug('Fenster Küche ist geöffnet');
     fibaro:call(115, "sendPush", "Fenster Küche ist geöffnet, Abwesendheit wird nicht gesetzt");
 
    end
    -- Flur --
    if HaustuerFlur then
     fibaro:debug('Fenster Haustür ist geschlossen');
     else
     fibaro:debug('Fenster Haustür ist geöffnet');
     fibaro:call(115, "sendPush", " Haustür ist geöffnet, Abwesendheit wird nicht gesetzt");
 
    end
    -- Fenster Badezimmer --
    if FensterBad then
     fibaro:debug('Fenster Badezimmer ist geschlossen');
     else
     fibaro:debug('Fenster Badezimmer ist geöffnet');
     fibaro:call(115, "sendPush", "Fenster Badezimmer ist geöffnet, Abwesendheit wird nicht gesetzt");
 
    end
    
 
      
end
 
 

okay.
Zwar nicht hübsch, aber einfach - Du fügst jedesmal hinter
fibaro:call(115, "sendPush", "Fenster Wohnzimmer 1 ist geöffnet, Abwesendheit wird nicht gesetzt");

die gleiche Zeile erneut ein und änderst bloss Deine Handy-ID, also statt der 115 Dein anderes Handy.
Das würde dann so aussehen:

 fibaro:call(115, "sendPush", "Fenster Wohnzimmer 1 ist geöffnet, Abwesendheit wird nicht gesetzt");
  fibaro:call(xxx, "sendPush", "Fenster Wohnzimmer 1 ist geöffnet, Abwesendheit wird nicht gesetzt");
 

Vielen Dank.
Habs auch so gelöst Gestern.
Man kann bestimmt irgendwo Oben ne Variable setzen und die Handy’s definieren jedoch gehts auch so
Danke

Also das Script läuft Super
Jedoch hätte ich eine Frage zum auslösen des Skriptes

Ich hab an meiner Eingangs-Tür einen Türsensor und draussen einen Bewegungsmelder.

Gibt es eine Möglichkeit zum Auslösen des Skriptes zu sagen dass ERST der Türsensor auslösen muss und dann erst der Bewegungsmelder?
Möchte nämlich das das Script startet wenn ich das Haus verlasse und nicht wenn ich von draussen nach drinnen gehe.

Im Moment hab ich es so gelöst jedoch löst er immer aus wenn der Tür und Motion Sensor auslösen.

Screen-Shot-2016-08-24-at-09.34.43.png

Hi,

hast Du alternativ folgendes in Betracht gezogen:
http://www.siio.de/board/thema/licht-welcome-szene/#post-45265

VG Hoggle

Hallo @campos du hast mir sehr weitergeholfen.
Ich konnte das erwähnte Script abwandeln und es tut FAST was es soll. Nur hänge ich an der letzten if then Abfrage, die das Pop-Up entsprechend befüllen soll. Da stehe ich auf dem Schlauch. typeInfo und titleInfo werden einfach nicht dargestellt. Hmm :slight_smile:

if opened == 0 then
    local typeInfo = "Success";
    local titleInfo = "ALLE FENSTER SIND GESCHLOSSEN";
    OpenWinDoor = ""
  else
    local typeInfo = "Warning";
    local titleInfo = "FOLGENDE FENSTER SIND OFFEN";
  end
  ------------------------------------- POPUP MESSAGE
  HomeCenter.PopupService.publish({
      -- title (required)
      title = "Fenster Check",
      -- subtitle(optional), e.g. time and date of the pop-up call
      subtitle = os.date("%H:%M:%S | %d.%m.%Y."),
      -- content header (optional)
      contentTitle = titleInfo,
      -- content (required)
      contentBody = OpenWinDoor,
      -- notification image (assigned from the variable)
      img = "",
      -- type of the pop-up
      type = typeInfo,
      -- buttons definition
      buttons = { { caption = 'OK', sceneId = 0 } }
    })
end

Hier das komplette “Sind alle Fenster zu und liste mir die offenen Fenster in einem Pop-Up” Script

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

--Making sure that only one instance of the scene is running.
if (fibaro:countScenes() > 1) then
  fibaro:abort();
end

-- first setup some local variables
-- deBug = true then show debug messages or deBug = false then hide debug messages
local deBug = true;
-- First get source trigger
local sourceTrigger = fibaro:getSourceTrigger()

  -- if run manually or started by other scene or VD then run this part of code:
if (sourceTrigger["type"] == "other") then
  local OpenWinDoor = ""
  local opened = 0;
  -- add devices numbers separated by comma
  local winDoorID = {283, 281, 269, 272, 275, 278};
  local winDoorNO = 6;
  -- loop through all doors and windows and check state
  for iVar = 1, winDoorNO do
    -- if found window or door open set flag and get description to show in popup window
    if fibaro:getValue(winDoorID[iVar], "value") == "1" then
      opened = opened + 1;
      local room = 	(winDoorID[iVar]);
      OpenWinDoor = OpenWinDoor .. fibaro:getValue(winDoorID[iVar], "userDescription") .."\n";
      if deBug then fibaro:debug(fibaro:getValue(winDoorID[iVar], "userDescription").. " Fenster ist offen.") end
    end
  end 
  if opened == 0 then
    local typeInfo = "Success";
    local titleInfo = "ALLE FENSTER SIND GESCHLOSSEN";
    OpenWinDoor = ""
  else
    local typeInfo = "Warning";
    local titleInfo = "FOLGENDE FENSTER SIND OFFEN";
  end
  ------------------------------------- POPUP MESSAGE
  HomeCenter.PopupService.publish({
      -- title (required)
      title = "Fenster Check",
      -- subtitle(optional), e.g. time and date of the pop-up call
      subtitle = os.date("%H:%M:%S | %d.%m.%Y."),
      -- content header (optional)
      contentTitle = titleInfo,
      -- content (required)
      contentBody = OpenWinDoor,
      -- notification image (assigned from the variable)
      img = "",
      -- type of the pop-up
      type = typeInfo,
      -- buttons definition
      buttons = { { caption = 'OK', sceneId = 0 } }
    })
end

@avichr : Habe es gerade kurz ausprobiert.Ich erhalte in Zeile 74 den Debug : line74:bad Argument#1 to “match” (string expected,got nil)…
Komme da auch nicht weiter.Hab aber auch kaum einen Plan von Lua. Vielleicht kann jemand der mehr Ahnung von Lua hat mal drüberschauen und helfen ? Wäre super.

Die Szene funktioniert nur, wenn diese manuell ausgelöst wird. Ansonsten hast du Zeile 23/24 nicht angepasst…

Genau - so will ich das auch. Wenn ich auf einen Szenen-Button in der App klicke, soll die Szene laufen. Ausserdem muss man im Advanced Tab des Sensors in “Description” was reinschreiben. Es wird NICHT der Name des Sensors abgefragt (was ja auch ginge). Das muss ich noch auskommentieren.

An sich funktioniert bei mir alles perfekt.
Ich schaffe es nur nicht, dass (abhängig von local opened “0” oder höher) der Pop-Up Teil richtig zusammengebaut wird.

contentTitle = titleInfo,
type = typeInfo,

erscheinen nicht

contentBody = OpenWinDoor,
schon.

Ich hab die Vermutung, dass dieser Teil irgendwie nicht läuft und demzufolge die local variablen leer bleiben.

if opened == 0 then
    local typeInfo = "Success";
    local titleInfo = "ALLE FENSTER SIND GESCHLOSSEN";
    OpenWinDoor = ""
  else
    local typeInfo = "Warning";
    local titleInfo = "FOLGENDE FENSTER SIND OFFEN";

Also ich habs auch gerade nochmal 2 Stunden versucht… Ohne Erfolg. Die wildesten Kombinationen versucht . Komme genau soweit wie du. Die Fenster werden nicht aufgelistet… Ärgerlich - weil alle Sensoren in einem Popup wäre echt super…

@Campos. Dann machst du aber noch was falsch. Denn DAS ist nicht mein Problem. Die Fenster werden SCHON gelistet. “Schlaf, Büro, Balkon”. Siehe Photo.
Hast du denn für alle deinen Sensoren unter Erweitert im Feld “Beschreibung des Moduls” was eingetragen? Steht da nichts drin - wird auch nichts gelistet! Der Vorteil dieser Methode ist, dass man was anders reinschreiben kann als die Bezeichnung des Moduls. z.B. “3-er Sofa” statt “Fenster 3-er Sofa”.

Mein Problem ist, dass Variablen leer bleiben, die das Pop-Up noch weiter beschriften und die Darstellungsart auswählen sollen.
Ich möchte drüber stehen haben “Folgende Fenster sind offen”

Screenshot_2016-08-26-10-24-20.png

Ja,soweit bin ich auch. Er zeigt mir geöffnete Fenster Türen im PoP an. Bekomme es nur nicht hin zwischen zb. grün für “alles zu” und rot für "Achtung offene Fenster "zu wechseln…

@avichr

Kuck mal deine Ends

Ist der Rote gewollt?

Kann auch sein das ich mich irre

Screen-Shot-2016-08-26-at-11.38.50.png

Ja, nein, nicht wirklich :slight_smile: Daran wirds wohl auch liegen. An den ends.
Aber ich hab jetzt schon wieder verschiedene Varianten ausprobiert. Ich bekomme es einfach nicht hin…

Manchmal sind es die kleinen Dinge in der Programmation die einen zum verzweifeln bringen.
Schade das man hier keinen Debugger hat wie in VB zb. Der Zeile für Zeile springt und den Wert der Variabeln anzeigt
Hab deine If’s nochmal gezählt leider hast de Recht…

Hatte auch schon versucht mit den “ends”…
Was hast du für Variablen gesetzt ?

Fortschritt 2 . Geht soweit. Nur noch einen Weg finden die Variabel umzusetzen/umzustellen…

–[[
%% properties
%% events
%% globals
–]]

–Making sure that only one instance of the scene is running.
if (fibaro:countScenes() > 1) then
fibaro:abort();
end

– first setup some local variables
– deBug = true then show debug messages or deBug = false then hide debug messages
local deBug = true;
– First get source trigger
local sourceTrigger = fibaro:getSourceTrigger()

– if run manually or started by other scene or VD then run this part of code:
if (sourceTrigger[“type”] == “other”) then
local OpenWinDoor = “”
local opened = 0;
– add devices numbers separated by comma
local winDoorID = {130, 113};
local winDoorNO = 2;
– loop through all doors and windows and check state
for iVar = 1, winDoorNO do
– if found window or door open set flag and get description to show in popup window
if fibaro:getValue(winDoorID[iVar], “value”) == “1” then
opened = opened + 1;
local room = (winDoorID[iVar]);
OpenWinDoor = OpenWinDoor … fibaro:getValue(winDoorID[iVar], “userDescription”) …"\n";
if deBug then fibaro:debug(fibaro:getValue(winDoorID[iVar], “userDescription”)… " Fenster ist offen.") end
end
end
if opened == 0 then
local typeInfo = “Success”;
local titleInfo = “ALLE FENSTER SIND GESCHLOSSEN”;
OpenWinDoor = “”

-- pop-up call

HomeCenter.PopupService.publish({
– Titel (benötigt)
title = ‘Status Fenster und Türen :’,
– Subtitel (optional), z.B. Uhrzeit und Datum
subtitle = os.date("%I:%M:%S %p | %B %d, %Y"),
– Content header (optional)
contentTitle = ‘Alle Türen und Fenster sind geschloßen.’,
– Content (benötigt)
contentBody = ‘Das Haus ist sicher.’,
– Notification-Image (optional)
img = imgUrl,
– popUp-Typ (benötigt)
type = ‘Success’,
– definierte Buttons (optional; sollten keine definiert werden, wird ein OK-Button erzeugt)
buttons = {
{ caption = ‘OK’, sceneId = 0 }
}
})
else
local typeInfo = “Critical”;
local titleInfo = “Achtung ! Folgende Fenster/Türen sind noch geöffnet:”;

– pop-up call
HomeCenter.PopupService.publish({
– Titel (benötigt)
title = ‘Status Fenster und Türen :’,
– Subtitel (optional), z.B. Uhrzeit und Datum
title = “Status Fenster/Türen:”,
– subtitle(optional), e.g. time and date of the pop-up call
subtitle = os.date("%H:%M:%S | %d.%m.%Y."),
– content header (optional)
contentTitle = titleInfo,
– content (required)
contentBody = OpenWinDoor,
– notification image (assigned from the variable)
img = “”,
– type of the pop-up
type = typeInfo,
– buttons definition
buttons = { { caption = ‘OK’, sceneId = 0 } }
})
end

end

Obwohl : Scheint zu laufen…

Konntest du den Code Butto hier bitte benutzen