Initial Commit

This commit is contained in:
Nano
2026-06-01 21:28:52 +02:00
parent 456dfae3f1
commit 7be4b88b5b
1046 changed files with 2080 additions and 0 deletions

20
rules/Alarmanlage.rules Normal file
View 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

View 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
View 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
View 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
View 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