Zeit & Astroabhängige Lichtszenenschaltung

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Luemmelpaeppi
Beiträge: 21
Registriert: 20. Mär 2020 09:46
Answers: 0

Re: Zeit & Astroabhängige Lichtszenenschaltung

Beitrag von Luemmelpaeppi »

Hab es gefunden, habe den Eintrag nicht als Item deklariert.

Aber noch was, wie kann ich mir den Wert vom Counter_Switch01 im Log anzeigen lassen? Damit ich weiß auf welchem wert er steht.

Darkwin101
Beiträge: 424
Registriert: 6. Mär 2019 11:19
Answers: 14

Re: Zeit & Astroabhängige Lichtszenenschaltung

Beitrag von Darkwin101 »

Bin mir nicht sicher ob mann eine Variable zum Triggern einer Rule nehmen kann ich würde das in einer Rule Machen

Code: Alles auswählen

rule "HmIP Schalter Terasse Taster 1 (Zählwerk)"
when
    Channel 'homematic:HmIP-WRC6:3014F711A0001F5A4993FBA7:000B5A49A07A4E:1#BUTTON' triggered DOUBLE_PRESSED
then
    Counter_Switch01 = Counter_Switch01 + 1
    switch(Counter_Switch01){
    	case 1 : {//Hier rein alle Befehle die Bei 1 Ausgeführt werden sollen}
    	case 2 : {//Hier alles rein was bei 2 ausgeführt werden soll}
    	//Das ganze beliebig erweitern
    	}
end

Luemmelpaeppi
Beiträge: 21
Registriert: 20. Mär 2020 09:46
Answers: 0

Re: Zeit & Astroabhängige Lichtszenenschaltung

Beitrag von Luemmelpaeppi »

Danke Darkwin101, habe mich auch gerade mit der Case Geschichte befasst, kann da Quasi so viele Szenen setzten wir ich möchte? Dann probier ich das mal aus.

Danke sehr!

Benutzeravatar
peter-pan
Beiträge: 2573
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: Zeit & Astroabhängige Lichtszenenschaltung

Beitrag von peter-pan »

...ganz einfach mit "logInfo" z.B.

Code: Alles auswählen

logInfo("myRule","Wert von Switch ist: " + Counter_Switch01)
nach der Veränderung des Wertes
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

Luemmelpaeppi
Beiträge: 21
Registriert: 20. Mär 2020 09:46
Answers: 0

Re: Zeit & Astroabhängige Lichtszenenschaltung

Beitrag von Luemmelpaeppi »

Okay, danke dir! Das Zählen funktioniert. Habe aber das Problem, das er nicht umschaltet auf die erwartete Lichteinstellung, weder bei der Zeit/Astro gesteuerten Steuerung, noch bei den mit den Tastern. Wo könnte da der Wurm drin sein?

Automation.rules

Code: Alles auswählen

var Number Dimmer_Global = 100
var Number ColorTemp_Global = 63
var String Color_Global = "30,64,100"
var Number Dimmer_Gedimmt = 31  // Variablen an Anfang der Datei setzen
var Number ColorTemp_Gedimmt = 62
var String Color_Gedimmt = "30,64,31"
var Number Dimmer_Hell = 100
var Number ColorTemp_Hell = 62
var String Color_Hell = "30,64,100"
var Number Dimmer_Nachtlicht = 1
var Number ColorTemp_Nachtlicht = 85
var String Color_Nachtlicht = "27,100,1"

// Automation Lichtsteuerung mit Bewegungsmelder
rule "Automation Dimming Sunrise" // erster Zeitpunkt jeder Zeitpunkt bekommt eigene Rule mit entsprechenden Helligkeitswerten
when
        Channel 'astro:sun:local:rise#event' triggered START
then
        Dimmer_Global = Dimmer_Gedimmt
        ColorTemp_Global = ColorTemp_Gedimmt
        Color_Global = Color_Gedimmt
        
end

rule "Automation Dimming Day"
when 
        Time cron "1 0 10 * * ?"
then
        Dimmer_Global = Dimmer_Hell
        ColorTemp_Global = ColorTemp_Hell
        Color_Global = Color_Hell
end

rule "Automation Dimming Sunset"
when 
        Channel 'astro:sun:local:set#event' triggered START
then
        Dimmer_Global = Dimmer_Gedimmt
        ColorTemp_Global = ColorTemp_Gedimmt
        Color_Global = Color_Gedimmt
end

rule "Automation Dimming Night"
when 
        Time cron "1 0 23 * * ?"
then
        Dimmer_Global = Dimmer_Nachtlicht
        ColorTemp_Global = ColorTemp_Nachtlicht
        Color_Global = Color_Nachtlicht
end

rule "Automation Light Ankleide"
when 
        Item MotionSensorPresence_Ankleide changed to ON
then
        if(Automation_Ankleide.state == ON)
        {
        GLight_Dimmer_Ankleide.sendCommand(Dimmer_Global)
        GLight_ColorTemp_Ankleide.sendCommand(ColorTemp_Global)
        }
end

rule "Automation Light Bad"
when 
        Item MotionSensorPresence_Bad changed to ON
then
        if(Automation_Bad.state == ON)
        {
        GLight_ColorTemp_Bad.sendCommand(ColorTemp_Global)        
        GLight_Color_Bad.sendCommand(Color_Global)
        }
end

rule "Automation Light Flur"
when 
        Item MotionSensorPresence_Flur changed to ON
then
        if(Automation_Flur.state == ON)
        {
        GLight_Dimmer_Flur.sendCommand(Dimmer_Global)
        GLight_ColorTemp_Flur.sendCommand(ColorTemp_Global)
        }
end
Homematic.rules

Code: Alles auswählen

var Number Dimmer_HmIP_Global = 100
var Number ColorTemp_HmIP_Global = 64
var String Color_HmIP_Global = "30,64,100"
var Number Counter_Switch01 = 0

// Homematic IP Schaltersteuerung

// HmIP Schalter Terrasse Taster 1
rule "HmIP Schalter Terrasse Taster 1 (EIN)"
when
    Channel 'homematic:HmIP-WRC6:3014F711A0001F5A4993FBA7:000B5A49A07A4E:1#BUTTON' triggered SHORT_PRESSED
then
    Light11_ColorTemp.sendCommand(ColorTemp_HmIP_Global)
    Light11_Color.sendCommand(Color_HmIP_Global)  
    logInfo("Homematic.rules","Wert von Switch ist: " + Counter_Switch01)   
end

rule "HmIP Schalter Terrasse Taster 1 (AUS)"
when
    Channel 'homematic:HmIP-WRC6:3014F711A0001F5A4993FBA7:000B5A49A07A4E:1#BUTTON' triggered LONG_PRESSED
then
    Light11_Toggle.sendCommand(OFF)
    Counter_Switch01 = 0
    logInfo("Homematic.rules","Wert von Switch ist: " + Counter_Switch01)     
end

rule "HmIP Schalter Terasse Taster 1 (Zählwerk)"
when
    Channel 'homematic:HmIP-WRC6:3014F711A0001F5A4993FBA7:000B5A49A07A4E:1#BUTTON' triggered DOUBLE_PRESSED
then
    Counter_Switch01 = Counter_Switch01 + 1
    logInfo("Homematic.rules","Wert von Switch ist: " + Counter_Switch01)
    switch(Counter_Switch01){
    	case 1 : {  Light11_ColorTemp.sendCommand(67)        
                    Light11_Color.sendCommand(11,87,78)}
    	case 2 : {}
    	//Das ganze beliebig erweitern
    	}
    
end
Danke für eure Zeit und Hilfe!

Benutzeravatar
peter-pan
Beiträge: 2573
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: Zeit & Astroabhängige Lichtszenenschaltung

Beitrag von peter-pan »

... wenn "Counter_Switch01"ein Iem ist geht natürlich auch

Code: Alles auswählen

logInfo("Homematic.rules","Wert von Counter_Switch01 ist: " + Counter_Switch01.state)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

Darkwin101
Beiträge: 424
Registriert: 6. Mär 2019 11:19
Answers: 14

Re: Zeit & Astroabhängige Lichtszenenschaltung

Beitrag von Darkwin101 »

Bitte nehme mal in der Homatic.rules folgende Änderung vor
var Integer Counter_Switch01 = 0

Ich schaue mal ob ich die anderen testen kann

Luemmelpaeppi
Beiträge: 21
Registriert: 20. Mär 2020 09:46
Answers: 0

Re: Zeit & Astroabhängige Lichtszenenschaltung

Beitrag von Luemmelpaeppi »

Okay, ich probier es mal =)

Ich glaube in der Automation.rules gibt es einen Syntaxfehler mit den Astrodaten, denn nach Zeit funktioniert es doch.Habe jetzt triggered Start in START geändert und schau mal was passiert. Muss dazu halt bis morgen früh warten ^^

Benutzeravatar
peter-pan
Beiträge: 2573
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: Zeit & Astroabhängige Lichtszenenschaltung

Beitrag von peter-pan »

Ohne jetzt zu tief in die Materie einzudringen, könntest du ja mal beginnen deine Regeln folgendermaßen zu prüfen.

Lege ein Test-Item an:

Code: Alles auswählen

Switch Dummy1             "Testschalter 1"
und erweitere deine Regeln, z.B. so:

Code: Alles auswählen

rule "Automation Light Ankleide"
when 
        Item MotionSensorPresence_Ankleide changed to ON or
        Item Dummy1 changed to ON
then
        logInfo("Ankleide","Rule triggert auf {}", triggerinItem.label)
        if(Automation_Ankleide.state == ON || Dummy1.state == ON)
        {
        GLight_Dimmer_Ankleide.sendCommand(Dimmer_Global)
        GLight_ColorTemp_Ankleide.sendCommand(ColorTemp_Global)
        logInfo(("Ankleide","If wurde ausgeführt Status "Ankleide" ist {} - Dummy1 Status ist {}",Automation_Ankleide.state, Dummy1.state)
        }
end
über den Dummy-Schalter kannst du dann die Regel auslösen und sehen, ob dein Ablaufteil überhaupt funktioniert. Du kannst natürlich auch ins Bad gehen und den Bewegungsmelder aktivieren ;)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

Darkwin101
Beiträge: 424
Registriert: 6. Mär 2019 11:19
Answers: 14

Re: Zeit & Astroabhängige Lichtszenenschaltung

Beitrag von Darkwin101 »

Ja und bedenke bei jeder Änderung der Datei nimmt er wieder die Start Daten die du oben am Anfang deklariert hast

Antworten