Initial Commit
This commit is contained in:
20
rules/Alarmanlage.rules
Normal file
20
rules/Alarmanlage.rules
Normal file
@@ -0,0 +1,20 @@
|
||||
//Meldung Präsenzmelder ausgelöst, obwohl keiner im Haus ist.
|
||||
rule Alarm_Benachrichtigung_an
|
||||
when Item grp_Bewegungsmelder changed to ON
|
||||
then
|
||||
if (settings_alarmanlage.state==ON && grp_Anwesenheit.state==OFF)
|
||||
{
|
||||
sendNotification("cjanitzek@gmx.de", "Alarm: Bewegung im Haus")
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
//Meldung Feueralarm ausgelöst ans Handy, wenn keiner im Haus ist.
|
||||
rule Alarm_Feuermelder_an
|
||||
when Item Feuermelder_Alarm changed to ON
|
||||
then
|
||||
if (settings_Feuermelder.state==ON && grp_Anwesenheit.state==OFF)
|
||||
{
|
||||
sendNotification("cjanitzek@gmx.de", "Feuermelder hat ausgelöst!")
|
||||
}
|
||||
end
|
||||
20
rules/Weihnachtsbeleuchtung.rules
Normal file
20
rules/Weihnachtsbeleuchtung.rules
Normal file
@@ -0,0 +1,20 @@
|
||||
//Weihnachtsbeleuchtung Steckdosensteuerung nach Uhrzeit
|
||||
rule "Steckdose Hauseingang um 16:45 Uhr einschalten"
|
||||
when
|
||||
Time cron "0 45 16 * * ?" // Um 16:45 Uhr
|
||||
then
|
||||
if (settings_SteckdoseAutomatik==ON)
|
||||
{
|
||||
Schaltaktor3_8Fach_SA3_Kanal_C_Schalten.sendCommand(ON)
|
||||
}
|
||||
end
|
||||
|
||||
rule "Steckdose Hauseingang um 23:00 Uhr ausschalten"
|
||||
when
|
||||
Time cron "0 0 23 * * ?" // Um 23:00 Uhr
|
||||
then
|
||||
if (settings_SteckdoseAutomatik==ON)
|
||||
{
|
||||
Schaltaktor3_8Fach_SA3_Kanal_C_Schalten.sendCommand(OFF)
|
||||
}
|
||||
end
|
||||
129
rules/binaeraktor.rules
Normal file
129
rules/binaeraktor.rules
Normal file
@@ -0,0 +1,129 @@
|
||||
var Timer stopAlarmTimer = null
|
||||
|
||||
rule Binaraktor_BA_Kanal_C_Wechselt
|
||||
when Item Binaraktor_BA_Kanal_C changed
|
||||
then
|
||||
if (Binaraktor_BA_Kanal_C.state == ON)
|
||||
{
|
||||
Fensterkontakt_Badezimmer.sendCommand(CLOSED)
|
||||
}
|
||||
else
|
||||
{
|
||||
Fensterkontakt_Badezimmer.sendCommand(OPEN)
|
||||
}
|
||||
end
|
||||
|
||||
rule Binaraktor_BA_Kanal_D_Wechselt
|
||||
when Item Binaraktor_BA_Kanal_D changed
|
||||
then
|
||||
if (Binaraktor_BA_Kanal_D.state==ON)
|
||||
{Fensterkontakt_Esszimmer_links.sendCommand(CLOSED)}
|
||||
else
|
||||
{Fensterkontakt_Esszimmer_links.sendCommand(OPEN)}
|
||||
end
|
||||
|
||||
rule Binaraktor_BA_Kanal_E_Wechselt
|
||||
when Item Binaraktor_BA_Kanal_E changed
|
||||
then
|
||||
if (Binaraktor_BA_Kanal_E.state==ON)
|
||||
{Fensterkontakt_Esszimmer_rechts.sendCommand(CLOSED)}
|
||||
else
|
||||
{Fensterkontakt_Esszimmer_rechts.sendCommand(OPEN)}
|
||||
end
|
||||
|
||||
rule Binaraktor_BA_Kanal_F_Wechselt
|
||||
when Item Binaraktor_BA_Kanal_F changed
|
||||
then
|
||||
if (Binaraktor_BA_Kanal_F.state==ON)
|
||||
{Fensterkontakt_Wohnzimmer.sendCommand(CLOSED)}
|
||||
else
|
||||
{Fensterkontakt_Wohnzimmer.sendCommand(OPEN)}
|
||||
end
|
||||
|
||||
rule Binaraktor_BA_Kanal_G_Wechselt
|
||||
when Item Binaraktor_BA_Kanal_G changed
|
||||
then
|
||||
if (Binaraktor_BA_Kanal_G.state==ON)
|
||||
{Fensterkontakt_Kueche.sendCommand(CLOSED)}
|
||||
else
|
||||
{Fensterkontakt_Kueche.sendCommand(OPEN)}
|
||||
end
|
||||
|
||||
rule Binaraktor_BA_Kanal_H_Wechselt
|
||||
when Item Binaraktor_BA_Kanal_H changed
|
||||
then
|
||||
if (Binaraktor_BA_Kanal_H.state==ON)
|
||||
{Fensterkontakt_Kinderzimmer.sendCommand(CLOSED)}
|
||||
else
|
||||
{Fensterkontakt_Kinderzimmer.sendCommand(OPEN)}
|
||||
end
|
||||
|
||||
rule Binaraktor_BA_Kanal_I_Wechselt
|
||||
when Item Binaraktor_BA_Kanal_I changed
|
||||
then
|
||||
if (Binaraktor_BA_Kanal_I.state==ON)
|
||||
{Fensterkontakt_Schlafen_r.sendCommand(CLOSED)}
|
||||
else
|
||||
{Fensterkontakt_Schlafen_r.sendCommand(OPEN)}
|
||||
end
|
||||
|
||||
rule Binaraktor_BA_Kanal_J_Wechselt
|
||||
when Item Binaraktor_BA_Kanal_J changed
|
||||
then
|
||||
if (Binaraktor_BA_Kanal_J.state==ON)
|
||||
{Fensterkontakt_Schlafen_l.sendCommand(CLOSED)}
|
||||
else
|
||||
{Fensterkontakt_Schlafen_l.sendCommand(OPEN)}
|
||||
end
|
||||
|
||||
rule Binaraktor_BA_Kanal_K_Wechselt
|
||||
when Item Binaraktor_BA_Kanal_K changed
|
||||
then
|
||||
if (Binaraktor_BA_Kanal_K.state==ON)
|
||||
{Fensterkontakt_Buero.sendCommand(CLOSED)}
|
||||
else
|
||||
{Fensterkontakt_Buero.sendCommand(OPEN)}
|
||||
end
|
||||
|
||||
rule Kellerlicht_schalten
|
||||
when Item Binaraktor_BA_Kanal_L changed
|
||||
then
|
||||
if (Binaraktor_BA_Kanal_L.state==ON)
|
||||
{
|
||||
Schaltaktor2_12Fach_SA2_Kanal_E_Schalten.sendCommand(ON)
|
||||
Schaltaktor2_12Fach_SA2_Kanal_F_Schalten.sendCommand(ON)
|
||||
}
|
||||
else
|
||||
{
|
||||
Schaltaktor2_12Fach_SA2_Kanal_E_Schalten.sendCommand(OFF)
|
||||
Schaltaktor2_12Fach_SA2_Kanal_F_Schalten.sendCommand(OFF)
|
||||
}
|
||||
end
|
||||
|
||||
rule Klingel_Benachrichtigung_an
|
||||
when Item Binaraktor_BA_Kanal_A changed
|
||||
then
|
||||
if (settings_Klingel.state==ON && Binaraktor_BA_Kanal_A.state==ON)
|
||||
{
|
||||
Schaltaktor2_12Fach_SA2_Kanal_C_Schalten.sendCommand(ON)
|
||||
if(Anwesenheit_CJ.state==OFF){
|
||||
sendNotification("cjanitzek@gmx.de", "Jemand an der Haustür")
|
||||
}
|
||||
if(Anwesenheit_Moni.state==OFF){
|
||||
sendNotification("MJanitzek@gmx.de", "Jemand an der Haustür")
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Schaltaktor2_12Fach_SA2_Kanal_C_Schalten.sendCommand(OFF)
|
||||
}
|
||||
end
|
||||
|
||||
rule Klingel_Benachrichtigung_aus
|
||||
when Item Binaraktor_BA_Kanal_A changed
|
||||
then
|
||||
if (Binaraktor_BA_Kanal_A.state==OFF)
|
||||
{
|
||||
Schaltaktor2_12Fach_SA2_Kanal_C_Schalten.sendCommand(OFF)
|
||||
}
|
||||
end
|
||||
192
rules/praesenzmelder.rules
Normal file
192
rules/praesenzmelder.rules
Normal file
@@ -0,0 +1,192 @@
|
||||
var Number PM_WZ_geschaltet = 0
|
||||
var Number PM_Flur_oben_geschaltet = 0
|
||||
var Number PM_Flur_unten_geschaltet = 0
|
||||
var Number PM_Schlafzimmer_geschaltet = 0
|
||||
var Number PM_Hausflur_geschaltet = 0
|
||||
var Number PM_Kinderzimmer_geschaltet = 0
|
||||
var Number PM_Bad_geschaltet = 0
|
||||
var Number PM_aussen_geschaltet = 0
|
||||
|
||||
rule "Präsenzmelder Badezimmer Bewegung"
|
||||
when Item PM_Bad changed to ON
|
||||
then
|
||||
last_activity_pm_badezimmer.postUpdate(now.toString)
|
||||
if (settings_pm_badezimmer.state==ON && Dimmaktor2_DA2_Kanal_D_Dimmen.state == 0 && Schaltaktor1_16Fach_SA1_Kanal_A_Schalten.state == OFF && Helligkeit_Bad.state <= 110)
|
||||
{
|
||||
Dimmaktor2_DA2_Kanal_D_Dimmen.sendCommand(80)
|
||||
Schaltaktor1_16Fach_SA1_Kanal_A_Schalten.sendCommand(ON)
|
||||
PM_Bad_geschaltet = 1
|
||||
}
|
||||
end
|
||||
|
||||
rule "Präsenzmelder Badezimmer Aus"
|
||||
when Item PM_Bad changed to OFF
|
||||
then
|
||||
if (PM_Bad_geschaltet == 1)
|
||||
{
|
||||
Dimmaktor2_DA2_Kanal_D_Dimmen.sendCommand(OFF)
|
||||
Schaltaktor1_16Fach_SA1_Kanal_A_Schalten.sendCommand(OFF)
|
||||
PM_Bad_geschaltet = 0
|
||||
}
|
||||
end
|
||||
|
||||
rule "Präsenzmelder Wohnzimmer Bewegung"
|
||||
when Item PM_Wohnzimmer changed to ON
|
||||
then
|
||||
last_activity_pm_wohnzimmer.postUpdate(now.toString)
|
||||
if (settings_pm_wohnzimmer.state==ON && Dimmaktor1_DA1_Kanal_C_Dimmen.state == 0 && Dimmaktor1_DA1_Kanal_D_Dimmen.state == 0 && Helligkeit_Wohnzimmer.state <= 250)
|
||||
{
|
||||
Dimmaktor1_DA1_Kanal_C_Dimmen.sendCommand(ON)
|
||||
Dimmaktor1_DA1_Kanal_D_Dimmen.sendCommand(ON)
|
||||
PM_WZ_geschaltet = 1
|
||||
}
|
||||
end
|
||||
|
||||
rule "Präsenzmelder Wohnzimmer Aus"
|
||||
when Item PM_Wohnzimmer changed to OFF
|
||||
then
|
||||
if (PM_WZ_geschaltet == 1)
|
||||
{
|
||||
Dimmaktor1_DA1_Kanal_C_Dimmen.sendCommand(OFF)
|
||||
Dimmaktor1_DA1_Kanal_D_Dimmen.sendCommand(OFF)
|
||||
PM_WZ_geschaltet = 0
|
||||
}
|
||||
end
|
||||
|
||||
rule "Präsenzmelder Schlafzimmer Bewegung"
|
||||
when Item PM_Schlafzimmer changed to ON
|
||||
then
|
||||
last_activity_pm_schlafzimmer.postUpdate(now.toString)
|
||||
if (settings_pm_schlafzimmer.state==ON && Dimmaktor2_DA2_Kanal_B_Dimmen.state== 0 && Helligkeit_Schlafzimmer.state <= 250)
|
||||
{
|
||||
Dimmaktor2_DA2_Kanal_B_Dimmen.sendCommand(ON)
|
||||
PM_Schlafzimmer_geschaltet = 1
|
||||
}
|
||||
end
|
||||
|
||||
rule "Präsenzmelder Schlafzimmer Aus"
|
||||
when Item PM_Schlafzimmer changed to OFF
|
||||
then
|
||||
if (PM_Schlafzimmer_geschaltet == 1)
|
||||
{
|
||||
Dimmaktor2_DA2_Kanal_B_Dimmen.sendCommand(OFF)
|
||||
PM_Schlafzimmer_geschaltet = 0
|
||||
}
|
||||
end
|
||||
|
||||
rule "Präsenzmelder Flur oben Bewegung"
|
||||
when Item PM_Flur_oben changed to ON
|
||||
then
|
||||
last_activity_pm_flur_og.postUpdate(now.toString)
|
||||
if (settings_pm_flur_og.state==ON && Dimmaktor1_DA1_Kanal_A_Dimmen.state== 0 && Helligkeit_Flur_oben.state <= 50)
|
||||
{
|
||||
Dimmaktor1_DA1_Kanal_A_Dimmen.sendCommand(60)
|
||||
PM_Flur_oben_geschaltet = 1
|
||||
}
|
||||
end
|
||||
|
||||
rule "Präsenzmelder Flur oben Aus"
|
||||
when Item PM_Flur_oben changed to OFF
|
||||
then
|
||||
if (PM_Flur_oben_geschaltet == 1)
|
||||
{
|
||||
Dimmaktor1_DA1_Kanal_A_Dimmen.sendCommand(OFF)
|
||||
PM_Schlafzimmer_geschaltet = 0
|
||||
}
|
||||
end
|
||||
|
||||
rule "Präsenzmelder Flur unten Bewegung"
|
||||
when Item PM_Flur_unten changed to ON
|
||||
then
|
||||
last_activity_pm_flur_unten.postUpdate(now.toString)
|
||||
if (settings_pm_flur_unten.state==ON && Schaltaktor1_16Fach_SA1_Kanal_D_Schalten.state == OFF && Helligkeit_Flur_unten.state <= 40)
|
||||
{
|
||||
Schaltaktor1_16Fach_SA1_Kanal_D_Schalten.sendCommand(ON)
|
||||
PM_Flur_unten_geschaltet = 1
|
||||
}
|
||||
end
|
||||
|
||||
rule "Präsenzmelder Flur unten Aus"
|
||||
when Item PM_Flur_unten changed to OFF
|
||||
then
|
||||
if (Schaltaktor1_16Fach_SA1_Kanal_D_Schalten.state == ON)
|
||||
{
|
||||
Schaltaktor1_16Fach_SA1_Kanal_D_Schalten.sendCommand(OFF)
|
||||
PM_Flur_unten_geschaltet = 0
|
||||
}
|
||||
end
|
||||
|
||||
rule "Präsenzmelder Flur unten Aus 2"
|
||||
when Item PM_Flur_unten changed to OFF
|
||||
then
|
||||
if (PM_Flur_unten_geschaltet == 1)
|
||||
{
|
||||
Schaltaktor1_16Fach_SA1_Kanal_D_Schalten.sendCommand(OFF)
|
||||
PM_Flur_unten_geschaltet = 0
|
||||
}
|
||||
end
|
||||
|
||||
rule "Präsenzmelder Hauseinang innen Bewegung"
|
||||
when Item PM_Hauseingang changed to ON
|
||||
then
|
||||
last_activity_pm_hauseingang.postUpdate(now.toString)
|
||||
if (settings_pm_hauseingang.state==ON && Schaltaktor1_16Fach_SA1_Kanal_L_Schalten.state == OFF && Helligkeit_Hauseingang.state <=50)
|
||||
{
|
||||
Schaltaktor1_16Fach_SA1_Kanal_L_Schalten.sendCommand(ON)
|
||||
PM_Hausflur_geschaltet = 1
|
||||
}
|
||||
end
|
||||
|
||||
rule "Präsenzmelder Hauseingang innen Aus"
|
||||
when Item PM_Hauseingang changed to OFF
|
||||
then
|
||||
if (PM_Hausflur_geschaltet == 1)
|
||||
{
|
||||
Schaltaktor1_16Fach_SA1_Kanal_L_Schalten.sendCommand(OFF)
|
||||
PM_Flur_unten_geschaltet = 0
|
||||
}
|
||||
end
|
||||
|
||||
rule "Präsenzmelder Kinderzimmer"
|
||||
when Item PM_Kinderzimmer changed to ON
|
||||
then
|
||||
last_activity_pm_Kinderzimmer.postUpdate(now.toString)
|
||||
if (settings_pm_Kinderzimmer.state==ON && Dimmaktor2_DA2_Kanal_C_Dimmen.state== 0 && Helligkeit_Kinderzimmer.state <= 300)
|
||||
{
|
||||
Dimmaktor2_DA2_Kanal_C_Dimmen.sendCommand(ON)
|
||||
PM_Kinderzimmer_geschaltet = 1
|
||||
}
|
||||
end
|
||||
|
||||
rule "Präsenzmelder Kinderzimmer Aus"
|
||||
when Item PM_Kinderzimmer changed to OFF
|
||||
then
|
||||
if (PM_Kinderzimmer_geschaltet == 1)
|
||||
{
|
||||
Dimmaktor2_DA2_Kanal_C_Dimmen.sendCommand(OFF)
|
||||
PM_Kinderzimmer_geschaltet = 0
|
||||
}
|
||||
end
|
||||
|
||||
rule "Präsenzmelder Hauseingang außen"
|
||||
when Item Ausgang_Praesenz changed to ON or Item Ausgang_Nahfeld changed to ON
|
||||
then
|
||||
last_activity_pm_Garage.postUpdate(now.toString)
|
||||
if (settings_pm_Garage.state==ON && Schaltaktor3_8Fach_SA3_Kanal_A_Schalten.state == OFF && Helligkeit_Hauseingang_aussen.state <= 100)
|
||||
{
|
||||
Schaltaktor3_8Fach_SA3_Kanal_A_Schalten.sendCommand(ON)
|
||||
Schaltaktor3_8Fach_SA3_Kanal_B_Schalten.sendCommand(ON)
|
||||
PM_aussen_geschaltet = 1
|
||||
}
|
||||
end
|
||||
|
||||
rule "Präsenzmelder Hauseingang außen Aus"
|
||||
when Item Ausgang_Praesenz changed to OFF or Item Ausgang_Nahfeld changed to OFF
|
||||
then
|
||||
if (PM_aussen_geschaltet == 1 && (Ausgang_Praesenz.state ==OFF && Ausgang_Nahfeld.state == OFF))
|
||||
{
|
||||
Schaltaktor3_8Fach_SA3_Kanal_A_Schalten.sendCommand(OFF)
|
||||
Schaltaktor3_8Fach_SA3_Kanal_B_Schalten.sendCommand(OFF)
|
||||
PM_aussen_geschaltet = 0
|
||||
}
|
||||
end
|
||||
65
rules/rolladen.rules
Normal file
65
rules/rolladen.rules
Normal file
@@ -0,0 +1,65 @@
|
||||
//Rolladen Morgens hoch
|
||||
rule Rolladen_hoch_fahren
|
||||
when Channel 'astro:sun:local:rise#event' triggered START
|
||||
then
|
||||
if(settings_rolladenautomatik.state==ON)
|
||||
{
|
||||
//Rolladenaktor_Rollo_Kanal_A.sendCommand(UP)
|
||||
Rolladenaktor_Rollo_Kanal_B.sendCommand(UP)
|
||||
Rolladenaktor_Rollo_Kanal_C.sendCommand(UP)
|
||||
Rolladenaktor_Rollo_Kanal_D.sendCommand(UP)
|
||||
Rolladenaktor_Rollo_Kanal_E.sendCommand(UP)
|
||||
//Rolladenaktor_Rollo_Kanal_F.sendCommand(UP)
|
||||
Rolladenaktor_Rollo_Kanal_G.sendCommand(UP)
|
||||
Rolladenaktor_Rollo_Kanal_H.sendCommand(UP)
|
||||
TagNacht.sendCommand(ON)
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
//Rolladen Abends runter
|
||||
rule Rolladen_runter_fahren
|
||||
when Channel 'astro:sun:local:set#event' triggered START
|
||||
then
|
||||
if(settings_rolladenautomatik.state==ON)
|
||||
{
|
||||
//Rolladenaktor_Rollo_Kanal_A.sendCommand(DOWN)
|
||||
Rolladenaktor_Rollo_Kanal_B.sendCommand(DOWN)
|
||||
Rolladenaktor_Rollo_Kanal_C.sendCommand(DOWN)
|
||||
Rolladenaktor_Rollo_Kanal_D.sendCommand(DOWN)
|
||||
Rolladenaktor_Rollo_Kanal_E.sendCommand(DOWN)
|
||||
//Rolladenaktor_Rollo_Kanal_F.sendCommand(DOWN)
|
||||
Rolladenaktor_Rollo_Kanal_G.sendCommand(DOWN)
|
||||
Rolladenaktor_Rollo_Kanal_H.sendCommand(DOWN)
|
||||
TagNacht.sendCommand(OFF)
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
// when Time cron "0 30 6 ? * * *"
|
||||
// then
|
||||
// Rolladenaktor_Rollo_Kanal_A.sendCommand(UP)
|
||||
// Rolladenaktor_Rollo_Kanal_B.sendCommand(UP)
|
||||
// Rolladenaktor_Rollo_Kanal_C.sendCommand(UP)
|
||||
// Rolladenaktor_Rollo_Kanal_D.sendCommand(UP)
|
||||
// Rolladenaktor_Rollo_Kanal_E.sendCommand(UP)
|
||||
// Rolladenaktor_Rollo_Kanal_F.sendCommand(UP)
|
||||
// Rolladenaktor_Rollo_Kanal_G.sendCommand(UP)
|
||||
// Rolladenaktor_Rollo_Kanal_H.sendCommand(UP)
|
||||
// end
|
||||
|
||||
|
||||
// rule Rolladen_runter_fahren
|
||||
// when Time cron "0 0 18 ? * * *"
|
||||
// then
|
||||
// Rolladenaktor_Rollo_Kanal_A.sendCommand(DOWN)
|
||||
// Rolladenaktor_Rollo_Kanal_B.sendCommand(DOWN)
|
||||
// Rolladenaktor_Rollo_Kanal_C.sendCommand(DOWN)
|
||||
// Rolladenaktor_Rollo_Kanal_D.sendCommand(DOWN)
|
||||
// Rolladenaktor_Rollo_Kanal_E.sendCommand(DOWN)
|
||||
// Rolladenaktor_Rollo_Kanal_F.sendCommand(DOWN)
|
||||
// Rolladenaktor_Rollo_Kanal_G.sendCommand(DOWN)
|
||||
// Rolladenaktor_Rollo_Kanal_H.sendCommand(DOWN)
|
||||
// end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user