Technisat Promo

Startseite Foren Fibaro Forum (Z-Wave) Fibaro LUA Scripts für HC2 Alarm Szene löst nicht aus HC2 FW 4.530

Dieses Thema enthält 10 Antworten und 4 Teilnehmer. Es wurde zuletzt aktualisiert von  Stefan vor 4 Monate, 2 Wochen.

Ansicht von 11 Beiträgen - 1 bis 11 (von insgesamt 11)
  • Autor
    Beiträge
  • #103031

    madmaxx12345
    Teilnehmer

    Guten Morgen,
    habe grade mal geschaut ob meine Alarm szene noch läuft. leider passiert nix mehr nach auslösen des Alarms.

    Habt Ihr eine Ahung woran das liegen kann?
    Wenn ich die Szene manuell starte kommt auch ein Fehler.

    würde mich freuen wenn jemand einen Ansatz hat

    `–[[
    %% properties
    %% globals
    –]]

    — Einstellungen für die Sensoren (Zwingend erforderlich)
    local sensorID = {135,178,138,143,146,151,156,161,164,167,170} — ID der Sensoren(n)

    — Einstellungen für die Sirene(n) (Wenn keine IDs eingetragen sind, wird die Funktion nicht genutzt)
    local sireneID = {49} — ID der Sirene(n)

    — Einstellungen für Push-Benachrichtigungen (Wenn keine IDs eingetragen sind, wird die Funktion nicht genutzt)
    local phoneID = {43} — ID der Handys

    — soll ein stiller Alarm genutzt werden? (true = ja/false = nein; silent_alarm_time: Sekunden wie lang der stille Alarm bestehen soll)
    — hier werden die Sirenen/Licht erst nach einer bestimmten Zeit aktiv. Bild der Kamera, Push und Meldung des Alarmpanels wird VOR dem stillen Alarm ausgeführt
    local silent_alarm = false
    local silent_alarm_time = 30

    — soll ein Bild der Kamera versendet werden (true = ja/false = nein)
    local camera_support = true

    — an welche Mail soll ein Bild der Kamera gesendet werden
    local email = ‚MAIL‘

    — Einstellungen für RGBW-Notfallbeleuchtung (Wenn keine IDs eingetragen sind, wird die Funktion nicht genutzt)
    local rgbwID = {} — ID RGBW
    local mode = ‚programm‘ — Auswahl: color = Farbwert setzen; programm = Programm starten
    local programm = 5
    local color = ‚255,255,255,255‘ — welche Farbe eingestellt werden soll

    — Sollen eigene Aktionen ausgeführt werden? (true = ja/false = nein; Bei true müssen die beiden nächsten Funktionen befüllt werden)
    local own_action = false

    function ownaction_alarm()
    — eigene Aktion bei Alarm
    fibaro:debug(‚Eigene Aktionen bei Alarm ausgeführt‘)
    end

    function ownaction_afteralarm()
    — eigene Aktion nach dem Alarm
    fibaro:debug(‚Eigene Aktionen nach dem Alarm ausgeführt‘)
    end

    local countID = 500

    — AB HIER NICHTS MEHR ÄNDERN

    Debug = function ( color, message )
    fibaro:debug(string.format(‚<%s style=“color:%s;“>%s</%s>‘, „span“, color, message, „span“))
    end

    — Funktion zum Versenden der Push
    function sendPush(text)
    if (phoneID[1] ~= nil) then
    for k=1, countID do
    if phoneID[k] ~= nil then
    fibaro:call(phoneID[k],’sendPush‘, text, ‚alarm‘)
    end
    end
    end
    end

    — Funktion zum Ein-/Ausschalten der Sirene
    function onoffSirene(status)
    if (sireneID[1] ~= nil) then
    if (status) then
    fibaro:debug(‚Sirenen einschalten‘)
    for a=1, countID do
    if sireneID[a] ~= nil then
    fibaro:call(sireneID[a],’turnOn‘)
    end
    end
    else
    if (sireneID[1] ~= nil) then
    fibaro:debug(‚Sirenen ausschalten‘)
    for a=1, countID do
    if sireneID[a] ~= nil then
    fibaro:call(sireneID[a],’turnOff‘)
    end
    end
    end
    end
    end
    end

    — Funktion zum Ein-/Ausschalten der RGBW-Notfallbeleuchtung
    function emergencyRGBW(status)
    if (rgbwID[1] ~= nil) then
    if (status) then
    if (mode == ‚color‘) then
    fibaro:debug(‚RGBW-Notfallbeleuchtung einschalten – Setze Farbe‘)
    local RGBWTable = {}
    local i = 1
    for value in string.gmatch(color,“(%d+)“) do
    RGBWTable[i] = value
    i = i + 1
    end
    for o=1, countID do
    if rgbwID[o] ~= nil then
    fibaro:call(rgbwID[o], „setColor“, RGBWTable[1], RGBWTable[2], RGBWTable[3], RGBWTable[4])
    end
    end
    elseif (mode == ‚programm‘) then
    fibaro:debug(‚RGBW-Notfallbeleuchtung einschalten – Starte Programm‘)
    for o=1, countID do
    if rgbwID[o] ~= nil then
    fibaro:call(rgbwID[o], ’startProgram‘, programm)
    end
    end
    end
    else
    if (rgbwID[1] ~= nil) then
    fibaro:debug(‚RGBW-Notfallbeleuchtung ausschalten‘)
    for o=1, countID do
    if rgbwID[o] ~= nil then
    fibaro:call(rgbwID[o], „setColor“, 255,0,0,0)
    end
    end
    end
    end
    end
    end

    function cameracheck(roomID)
    for x=1, countID do
    if (fibaro:getType(x) == ‚com.fibaro.ipCamera‘) then
    if (roomID == fibaro:getRoomID(x)) then
    fibaro:debug(‚Kamera ‚ ..x.. ‚ im betroffenen Raum erkannt. Sende Mail an ‚ ..email)
    fibaro:call(x, ’sendPhotoToEmail‘, email)
    else
    fibaro:debug(‚Keine Kamera im betroffenden Raum gefunden.‘)
    end
    end
    end
    end

    function checkSensor()
    for j=1, countID do
    if sensorID[j] ~= nil then
    if (tonumber(fibaro:getValue(sensorID[j], ‚value‘)) == 1) then
    return sensorID[j]
    end
    end
    end
    end

    function checkSensorArmed()
    local armed_counter = 0
    for j=1, countID do
    if sensorID[j] ~= nil then
    if (tonumber(fibaro:getValue(sensorID[j], ‚armed‘)) == 1) then
    armed_counter = armed_counter+1
    end
    end
    end
    if (armed_counter == 0) then
    return false
    elseif (armed_counter > 0) then
    fibaro:debug(armed_counter..‘ Sensoren noch nicht entschärft …‘)
    return true
    end
    end
    Debug( ‚red‘, ‚___________________________‘)
    Debug( ‚red‘, ‚Alarm-Szene 2.0 wurde ausgelöst.‘)
    Debug( ‚white‘, ‚Aktionen werden ausgeführt.‘)
    Debug( ‚white‘, ‚Sensor im Raum ‚ ..fibaro:getRoomNameByDeviceID(checkSensor()).. ‚ausgelöst‘)
    sendPush(‚ACHTUNG: Alarm ausgelöst!‘)

    if camera_support then
    cameracheck(fibaro:getRoomID(checkSensor()))
    else
    Debug( ‚red‘, ‚Keine Kameras im Einsatz‘)
    end

    if silent_alarm then
    fibaro:debug(‚Stiller Alarm wurde aktiviert. Dauer: ‚ ..silent_alarm_time)
    counter = 0
    while (counter <= silent_alarm_time and checkSensorArmed()) do
    counter = counter + 1
    fibaro:sleep(1*1000)
    end
    else
    Debug( ‚white‘, ‚Stiller Alarm wird nicht genutzt.‘)
    end
    if checkSensorArmed() then
    if (own_action) then
    ownaction_alarm()
    end
    onoffSirene(true)
    emergencyRGBW(true)
    elseif silent_alarm then
    Debug(‚green‘, ‚Stiller Alarm beendet, Geräte entschärft.‘)
    end

    while checkSensorArmed() do
    Debug( ‚red‘, ‚Alarm weiterhin ausgelöst.‘)
    fibaro:sleep(2*1000)
    end
    fibaro:debug(‚Alle Sensoren entschärft.‘)
    Debug(‚green‘, ‚Alarm wurde beendet.‘)
    if (own_action) then
    ownaction_afteralarm()
    end
    emergencyRGBW(false)
    onoffSirene(false)

    Dateianhänge:
    You must be logged in to view attached files.
    #103283

    Sven Gomann
    Teilnehmer

    Hallo madmax…tue dir und uns den Gefallen einen so langen Code richtig hier einzufügen, damit man ihn richtig lesen kann…über dem Nachrichtenfeld hast du den die Buttons:“ b i link und auch code“ so kann dir keiner helfen! Grüße Sven

    • Diese Antwort wurde geändert vor 5 Monate, 4 Wochen von  Sven Gomann.
    #103553

    madmaxx12345
    Teilnehmer

    Dann halt so mal sehen ob sich jetzt was tut

    • Diese Antwort wurde geändert vor 5 Monate, 3 Wochen von  madmaxx12345.
    • Diese Antwort wurde geändert vor 5 Monate, 3 Wochen von  madmaxx12345.
    #103560

    jeep
    Teilnehmer

    Der Fehler im Debug-Fenster der beim manuellen Starten erscheint ist normal und hat keine Bedeutung. Kann es sein dass das Script im Alarmpanel
    deaktiviert ist?


    Grüße, Jeep
    #103586

    madmaxx12345
    Teilnehmer

    Danke dir Jeep
    Die einfachsten Sachen sind es meistens

    Danke

    #104566

    Stefan
    Teilnehmer
    • Diese Antwort wurde geändert vor 4 Monate, 2 Wochen von  Stefan.
    • Diese Antwort wurde geändert vor 4 Monate, 2 Wochen von  Stefan.
    • Diese Antwort wurde geändert vor 4 Monate, 2 Wochen von  Stefan.
    #104571

    Stefan
    Teilnehmer

    Hallo, bei mir kommt folgender Debug:
    [DEBUG] 19:49:35: 2019-02-28 19:49:35.880693 [ fatal] Unknown exception: /opt/fibaro/scenes/46.lua:1: unexpected symbol near char(226)
    [DEBUG] 19:50:19: 2019-02-28 19:50:19.870171 [ fatal] Unknown exception: /opt/fibaro/scenes/46.lua:1: unexpected symbol near char(226)
    [DEBUG] 19:52:53: 2019-02-28 19:52:53.891859 [ fatal] Unknown exception: /opt/fibaro/scenes/46.lua:1: unexpected symbol near char(226)

    #104581

    jeep
    Teilnehmer

    Wenn Du was aus diesem Threads kopiert hast, wird es nicht funktionieren da alle Anführungszeichen falsch sind.
    Am besten suchst Du das Original Alarmscript und versuchst es damit.


    Grüße, Jeep
    • Diese Antwort wurde geändert vor 4 Monate, 2 Wochen von  jeep.
    #104584

    Stefan
    Teilnehmer

    Moin Jeep,

    hab ich nun gemacht.

    Folgender Degbu erscheint:
    [DEBUG] 06:35:11: 2019-03-01 06:35:11.761267 [ fatal] Unknown exception: /opt/fibaro/scenes/46.lua:30: unexpected symbol near ‚local‘
    Grüße
    Stefan

    #104594

    jeep
    Teilnehmer

    @stefan,
    der Fehler liegt eine Zeile oberhalb der gemeldeten. Zeile 29 braucht einen Wert. Oder wenn man die Variable nur initialisieren will, dann ohne „=“
    also nur local programm


    Grüße, Jeep
    #104613

    Stefan
    Teilnehmer

    @jeep

    Vielen Dank jetzt funktioniert es.

    Kannst du mir evtl bei einem anderen Problem auch eiterhelfen?

    Gru0
    Stefan

Ansicht von 11 Beiträgen - 1 bis 11 (von insgesamt 11)

Du musst angemeldet sein, um auf dieses Thema antworten zu können.