HC2 Script Status Türen und Fenster

Hallo,

ich habe schon viel zum Thema Fenster und Fibaro gelesen. Kann sein, dass es das was ich möchte schon gibt. Wenn ja, wäre toll…

Also, ich bin dabei mein Haus nach und nach mit Tür/Fenstersensoren auszustatten. Es gibt leider leine Übersicht, in der man auf der App erkennen kann, welches Fenster offen ist und welche nicht. Man muss in jeden Raum „rein“.
Also, hat, kennt jemand ein Script, dass folgendes „tut“

  1. Es muss einen Button „Status“ geben. Da drückt man dann drauf. Script startet.
  2. Es werden alle Fenster- und Türsensoren ermittelt. (Dann ist man unabhängig, wenn man erweitert)
  3. Es wird von jedem der Status ausgelesen.
  4. Es werden in der APP die angezeigt, die den Status „offen“ haben.
  5. Script startet nur, wenn man auf den Satus button drückt.

Danke

Gruß
Haase

Das kannst du in einer Schleife lösen.
Einfach die ID’s der Kontakte in “DevIDs” gegen deine ersetzen.

if (fibaro:countScenes()>1) then fibaro:debug("zu viele Szenen, gelöscht!!") fibaro:abort() end -- doppelte Szenen löschen
Debug = function ( color, message ) fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span")) end -- farbige Debugmeldungen

DevIDs = {45,147,185}

function CheckDev(IDs)
  for i=1, #IDs do
    local DeviceValue = tonumber(fibaro:getValue(IDs[i],"value"))
    DeviceName   = fibaro:getName(IDs[i])
    DeviceRoom = fibaro:getRoomNameByDeviceID(IDs[i])
    if (DeviceValue == 0) then
      Debug("green",(os.date("%d.%m.%Y - "..DeviceRoom.." - "..DeviceName.." ist geschlossen")))
    elseif (DeviceValue == 1) then
      Debug("red",(os.date("%d.%m.%Y - "..DeviceRoom.." - "..DeviceName.." ist geöffnet")))
    end
  end
end
CheckDev(DevIDs)

Sehr geehrter Herr Professor, :slight_smile:
hi Blacky,
ich häng mich mal an deinen Beitrag dran, weil ich genau oder besser fast genau das gleiche möchte.
Aber erst noch mal zum Prof.:
In meiner Android App hab ich das Icon Türen und Fenster. Wenn ich das anklicke sehe ich die einzelnen Räume und rechts unten neben der Raumbezeichnung einen Punkt. Ist der grün, ist in dem Raum noch eine Tür offen.

So jetzt komm ich:
In der GUI auf dem Pc gibt es das nicht. Ich hätte gerne ein Icon (kann ich mir auch selber basteln), das auf einen Blick zeigt ob auch nur einer von mehreren Tür-Sensoren
auf offen steht. Also @pblacky dein Scriptansatz ist schon mal super, danke. Wenn ich das also nehme und dann wenn nur eine ID auf 1 steht (Zeile 11(DeviceValue > 0) die Schleife verlassen und rote Lampe anzeigen, sonst grüne Lampe. Ich hab zwar ein VD im Einsatz, das habe ich aber ohne Verstand einfach kopiert. Ich denke das müsste man in einem VD lösen oder?

@prof_haase
Man könnte noch alle ID’s abfragen und die herausfiltern die Tür-Fensterkontakte sind. Dann wäre dein Anforderung 2 an “zukünftige” auch abgedeckt.

Gruß
Gerhard

P.S. was macht denn CheckDev?

Von Zeile 6-17 ist die Funktion die alle oben genannten ID’s prüft.
Mit dem Befehl: CheckDev(DevIDs) wird die Funktion gestartet, sobald das Skript aufgerufen wird.

In der Praxis läuft das Skript an, prüft JEDE ID ob offen oder zu und springt dann in die entsprechende Zeile mit dem Debug.
Dort kann man natürlich auch einen Ausschaltebefehl einbauen :wink:

Sorry Blacky,
du definierst eine Tabelle mit 3 Werten (DevIds). Dann rufst du deine Funktion CheckDev() auf und übergibst die Tabelle. Die For-Schleife wird mit step 1 also genau 3mal durchlaufen #ID = 3.
Hab ich da was falsch verstanden?

Statt die IDs manuell einzugeben kann mann dass mit folgendem Filter automatisieren:
local DevIDs = fibaro:getDevicesId({ enabled = true, visible = true, baseType = "com.fibaro.doorWindowSensor" })

Siehe auch folgendes Script: Door_Window_Check
oder dieses:
Door/windows interval check script

@prof_haase

Ich habe mal nach den Vorgaben im ersten Post ein rudimentäres VD gebastelt. Bin kein VD-Experte aber hoffe dass es das ist was gewünscht wurde. Unter Smart stelle ich mir immer noch vor das sich die Geräte bei mir melden und nicht ich bei ihnen. :wink:
Darum mag ich es wenn ich den Status gemeldet bekomme und ihn nicht per VD abholen muss.
Vor dem importieren bitte die Endung .txt entfernen.

Hallo,

Gerhard, ja, genau das ist das Problem. Nur, ich habe ein Apple. Da gibt es die grünen Punkte nur, wenn der Alarm an ist, sonst nicht.

@Jeep, pblacky
Das Script läuft bei mir, auch werden die Fenstersensoren ausgelesen und alle erkannt und der Staus angezeigt.
Leider geht das ganze nur in der Weboberfläche, wo ich den LUNA Code kopiert habe. Wie bekomme ich hier eine „Pop Up“ auf der Handy App?
Danke

Hallo Jeep,

habe soeben erst das VD gesehen, danke.
Also, auf der Weboberfläche geht das, auf dem Apfel Phone App nicht ;(

Gruß
Haase

@prof_hase, das geht bei mir auf IOS und Android. Die Ausgabe ist nicht schön formatiert aber sie ist da.

Hallo,

ja, den richtigen Knopf drücken, dann geht es auch :wink:
Danke