Script zum checken der Fenster- und Türsensoren

Moin zusammen!

Bei dieser Szene werden die Stati der einzelnen Sensoren abgefragt und die geöffneten „Fenter/Türen“ per Push an die Nutzer verschickt. Vielleicht hilft es ja dem Einen oder Anderen, der wie ich, Familienmitglieder hat, die nachts die Haustür offen lassen oder im Winter vergessen nach dem Duschen, die Badezimmerfenster wieder zu schliessen! :laughing:

Viele Grüße

Christian

-- LUA Szene für Fibaro HC3


local fensterSensoren = {
    -- Beispiel-Sensorliste; bitte durch tatsächliche Sensoren ersetzen
    {id = 692, name = "Terrassentür", raum = "Wohnzimmer"},
    {id = 695, name = "Terrassentür", raum = "Küche"},
    {id = 781, name = "Küchenfenster", raum = "Küche"},
    {id = 807, name = "Kleines Fenster", raum = "Esszimmer"},
    {id = 1012, name = "Tür", raum = "Durchgangsraum"},
    {id = 1045, name = "Schlafzimmerfenster 1", raum = "Schlafzimmer"},
    {id = 1125, name = "Schlafzimmerfenster 2", raum = "Schlafzimmer"},
    {id = 1064, name = "Esszimmerfenster", raum = "Esszimmer"},
    {id = 1170, name = "Linkes Fenster", raum = "SoDaRaum"},
    {id = 1216, name = "Rechtes Fenster", raum = "SoDaRaum"},
    {id = 1174, name = "Tür zur Garage", raum = "Garage"},
    {id = 1206, name = "Badezimmerfenster rechts", raum = "Badezimmer"},
    {id = 1233, name = "Badezimmerfenster links", raum = "Badezimmer"},
    {id = 1284, name = "Dachfenster", raum = "Kleiderschrank"},
    {id = 1286, name = "Kellertür außen", raum = "Keller"},
    {id = 2588, name = "Fenster", raum = "Gäste WC"},
    {id = 2594, name = "Nikes Fenster", raum = "Nikes Zimmer"},
    {id = 2598, name = "Tanis Fenster", raum = "Tanis Zimmer"},
    {id = 2605, name = "Haustür", raum = "Flur"},
    {id = 2860, name = "Wohnzimmerfenster 1", raum = "Wohnzimmer"},
    {id = 2863, name = "Wohnzimmerfenster 2", raum = "Wohnzimmer"},
  
}

function pruefeFenster()
    local geoeffneteFenster = {}
    local geschlosseneFenster = {}
    for _, sensor in ipairs(fensterSensoren) do
        local status = fibaro.getValue(sensor.id, "value")

        if status == true then -- Wenn das Fenster offen ist
            table.insert(geoeffneteFenster, sensor.name .. " im " .. sensor.raum)
            print("[GEÖFFNET] " .. sensor.name .. " im " .. sensor.raum)
        elseif status == false then -- Wenn das Fenster geschlossen ist
            table.insert(geschlosseneFenster, sensor.name .. " im " .. sensor.raum)
            print("[GESCHLOSSEN] " .. sensor.name .. " im " .. sensor.raum)
        else
            print("[FEHLER] Unbekannter Status für Sensor " .. tostring(sensor.id) .. ": " .. tostring(status))
        end
    end

    -- Benachrichtigung senden, wenn geöffnete Fenster vorhanden sind
    if #geoeffneteFenster > 0 then
        sendeNachricht("‼️Geöffnete FensterFenster🪟/Türen🚪‼️: Bitte schliessen⚠️" .. table.concat(geoeffneteFenster, ", ") .. ".")
    else
        sendeNachricht("Alle Fenster und Türen sind geschlossen.")
    end
end

function sendeNachricht(nachricht)
    hub.alert('push', {[1] = 2, [2] = 1994, [3] = 1995}, nachricht, false, '')
end

function main()
    pruefeFenster()
end

main()`
2 „Gefällt mir“