Fire detection

Fire detection

This rule will check all temperature sensors in an item group to see if any exceed a specified threshold (in my case 45oC). This means you can add/remove temperature sensors to your config whenever you like and be confident that they will all be monitored by this rule.

If the rule is triggered an alarm item is set, which can send notifications or activate a siren. In my case I turn on all lights in my house, to help any occupants find a way out!

Items

Group    SensorTemperature    "Temperatures"    <temperature>

Number   Sensor_Temperature1  "Bedroom [%.1f °C]"    <temperature> (SensorTemperature) { <some-binding> }
Number   Sensor_Temperature2  "Kitchen [%.1f °C]"    <temperature> (SensorTemperature) { <some-binding> }
Number   Sensor_Temperature3  "Living [%.1f °C]"     <temperature> (SensorTemperature) { <some-binding> }

Rules

    rule "Fire detection"
    when
        Item SensorTemperature received update
    then
        // check for any temperature sensors in the house that are very high
        if (SensorTemperature.members.filter(s | s.state > 45).size > 0) {        
            if (Alarm_Fire.state != ON) {
                logInfo("sensor.rules", "Fire alarm tripped by temperature sensor!")
                Alarm_Fire.postUpdate(ON)
            }    	
        }
    end

    rule "Fire alarm"
    when
        Item Alarm_Fire received update ON
    then
        // turn on all lights
        callScript("lights_on")
    
        // send notifications
        notifyMyAndroid("Security", "FIRE alarm has been tripped!!!", 2)
        sendTweet("*** FIRE alarm - someone call the fire dept!!! ***")
    
        // send an email
        sendMail("ben@home.com", "FIRE ALARM!!", "The fire alarm has been activated!!!")
    end

Rollos automatisch fahren mit openHAB

Rollladen automatisch fahren mit openHAB

Jeden Abend einmal jeden Rollladen manuell herunterfahren – das muss nicht sein. Mit Hilfe von openHAB und einer Regel können die Rollläden im Haus ganz einfach in Abhängigkeit des Sonnenstandes heruntergefahren werden. In meinem Fall fahre ich die Rollläden nach Sonnenuntergang herunter und zu einer festen Zeit am Morgen wieder hoch. Die Zeit am Morgen entspricht meiner Morgenroutine, am Abend kann mir sicher sein, dass ich nicht zu früh im Dunkeln sitze.

Rollladen mit dem Astro Binding herunterfahren

Damit wir nicht für jeden Rollladen einzeln eine Regel zum herunterfahren anlegen müssen, ist es am besten eine Gruppe für alle Rollläden anzulegen. In meinem Haus ist KNX verbaut, daher sieht ein Rollladen Item in der .items Datei meinem Fall so aus

Hier wird der Rollladen der Gruppe „RollladenGesamt“ zugeordnet. Die Gruppe muss natürlich allen Items zugeordnet werden, die man später gemeinsam fahren möchte.

Als nächstes muss das entsprechende Group Item für die Gruppe RollladenGesamt angelegt werden.

Jetzt sind alle notwendigen Items angelegt und die gewünschte Regel kann definiert werden. Ich habe für die Rollläden eine separate .rules Datei angelegt. Das ist kein Muss, sorgt aber für mehr Übersicht.

Die Regel sagt hier: Wenn das Astro Binding Event Nacht startet, dann fahre die Gruppe RollladenGesamt herunter. Warum das Event Nacht? – Hier kann ich sicher sein, dass es bereits dunkel ist. Ich möchte so lange wie möglich den Ausblick nach draußen genießen. Gerade im Sommer wäre es sehr störend, wenn alles zu früh abgedunkelt wird, während draußen noch „hell“ ist.

Selbstverständlich können sämtliche andere Events des Astro Binding verwendet werden wie :set#event (Sonnenuntergang). Wenn man einen Zeitversatz einbauen möchte, z.B. Sonnenuntergang + 30 Minuten kann das über einen Timer in der Regel gelöst werden. Am Beispiel der Rollläden sähe die Regel dann so aus:

Rollladen per Zeitschaltuhr hochfahren

Zum hochfahren der Rollläden nutze ich eine einfache Zeitschaltuhr. In meinem Fall soll der Rollladen von Montag bis Freitag am Morgen um 07:30 Uhr hochfahren.

Mit der Einschränkung von Montag bis Freitag stelle ich sicher, dass ich nicht am Wochenende durch den Rollladen geweckt werde. Die gewünschten Cron Expressions können mit dem Onlinetool CronMaker ganz einfach erzeugt werden. Wenn du zusätzlich zu den Rollläden deine Beleuchtung in Abhängigkeit des Astro Bindings steuern möchtest, schau doch einmal in diesen Artikel.

KNX Time

In Things:

I

ntp:ntp:binder:dateTime [ ntp="Europe/Berlin:de_DE", refreshInterval=600, refreshNtp=600 ] 

ntp:ntp:binder:dateTime [ ntp=“Europe/Berlin:de_DE“, refreshInterval=600, refreshNtp=600 ]

 

 

In Items:

DateTime Binder_Date „Date & Time [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]“ { channel=„ntp:ntp:binder:dateTime“, knx=„10.001:1/0/11, 11.001:1/0/10“ }

DateTime Binder_Date "Date & Time [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]"	 { channel="ntp:ntp:binder:dateTime", knx="10.001:1/0/11, 11.001:1/0/10" }

 

 

rule:

rule „Time to KNX“
when

Item Time_Local received update

then
logDebug(„toby“, Time_Local.state as string)
sendCommand(KNX_Time_Date, Time_Local.state)
end

 

Squeezebox Server installieren

sudo apt-get update

sudo apt-get install libio-socket-ssl-perl libnet-libidn-perl libnet-ssleay-perl perl-openssl-defaults

wget http://downloads.slimdevices.com/nightly/7.9/sc/a714182fb8f8589eb7a83523339fc6a6675ee9ed/logitechmediaserver_7.9.2~1551709029_all.deb

 

sudo dpkg -i logitechmediaserver_7.9.2~1551709029_all.deb