https://community.openhab.org/t/3d-printer-status-from-octoprint-via-mqtt/62962
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
If your webcam offers a still picture in your local LAN e.g. at: „http://192.168.0.2/jpg/image.jpg
you can simply send it as an attachment in a rule by e-mail with a line like:
sendMail(„me@gmail.com“,“Frontdoor“, „There is motion at the frontdoor“,“http://192.168.9.2/jpg/image.jpg“)
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.
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
1
|
Rollershutter Rollladen_UG_Schlafen „Rollladen Schlafen“ (RollladenGesamt) { knx=„2/0/3, 2/0/103“ }
|
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.
1
|
Group:Rollershutter RollladenGesamt „Alle Rollläden“
|
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.
1
2
3
4
5
6
7
8
|
rule „Rollladen Gesamt runter“
when
Channel ‚astro:sun:37f6fe1d:night#event‘ triggered START
then
sendCommand(RollladenGesamt, DOWN)
end
|
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:
1
2
3
4
5
6
7
8
9
10
11
|
rule „Rollladen Gesamt runter mit Timer“
when
Channel ‚astro:sun:37f6fe1d:set#event‘ triggered START
then
createTimer(now.plusMinutes(30))
[|
sendCommand(RollladenGesamt, DOWN)
]
end
|
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.
1
2
3
4
5
6
7
|
rule „Rolladen Mo-Fr AUF“
when
Time cron „0 30 7 ? * MON,TUE,WED,THU,FRI“
then
sendCommand(RolladenGesamt, UP)
end
|
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.
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“
whenItem Time_Local received update
then
logDebug(„toby“, Time_Local.state as string)
sendCommand(KNX_Time_Date, Time_Local.state)
end
sudo apt-get install squeezelite
If you want to use alsa-mixer you need to install the alsa-utils as well
sudo apt-get install alsa-utils
sudo apt-get update
sudo apt-get install libio-socket-ssl-perl libnet-libidn-perl libnet-ssleay-perl perl-openssl-defaults
sudo dpkg -i logitechmediaserver_7.9.2~1551709029_all.deb
sudo apt-get install -y mosquitto mosquitto-clients