Regelerstellung für die Hausautomatisierung Forschungsseminar Sommersemester 2014 23. Juni 2014 Studenten: Betreuer: Toni Kanther Felix Pistorius Prof. J. Vogt
Regelerstellung für die Hausautomatisierung
Forschungsseminar
Sommersemester 2014
23. Juni 2014
Studenten: Betreuer:
Toni KantherFelix Pistorius
Prof. J. Vogt
Inhalt
1. Einleitung
2. Benutzeroberfläche zur Regelerstellung Toni Kanther
3. Back-End für die Regelverwaltung Felix Pistorius
4. Zusammenfassung
Weblinks
23.06.2014 Regelverarbeitung - T. Kanther & F. Pistorius 2
1. Einleitung
1. Motivation
2. Bestehende Lösungen
3. Zielsetzung
23.06.2014 Regelverarbeitung - T. Kanther & F. Pistorius 3
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
1.1 Motivation
• Hausautomatisierung soll:• Komfort erhöhen
• Anforderungen des Benutzers erfüllen
• Herausforderung für die Regelverarbeitung:• Benutzer sind sehr unterschiedlich
Regeln können sehr unterschiedlich und komplex sein
• Allgemeine Regeln sind nicht ausreichend
Regeln zur Automatisierung müssen individuell anpassbar sein
23.06.2014 Regelverarbeitung - T. Kanther & F. Pistorius 4
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
1.2 Bestehende Lösungen
• Regeln werden meist programmiert
• Einfache Regeln können grafisch erstellt werden• Tlw. Zeitunabhängig
• Eingeschränkte Verknüpfungen
23.06.2014 Regelverarbeitung - T. Kanther & F. Pistorius 5
OpenHAB - Rules(Quelle: openhab.org/features-rules.html)
Ergebnis Regelverarbeitung FS2013(Quelle: Abschlusspräsentation SS 2013, Seite 86)
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
1.3 Zielsetzung
• Untersuchung der Möglichkeiten zur grafischen Regelerstellung für die Hausautomatisierung.
• Regelerstellung:• Erstellung von komplexen Regeln
• Benutzerfreundlichkeit durch Programmiersprachenunabhängigkeit
• Verwendung des Hausautomatisierungsservers FHEM
• Komponenten:
23.06.2014 Regelverarbeitung - T. Kanther & F. Pistorius 6
Graf. OberflächeRegelerstellung
Back-EndRegelverwaltung
FHEM ServerRegelausführung, Geräteverwaltung
Regeldefinition
Liste von Aktorenund Sensoren
FHEMRegel
(Toni Kanther) (Felix Pistorius) (GPL lizensierter Server)
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
2. Erstellung von Konzepten zum Aufbau und zur Integration eines universell einsetzbaren Web-basierten UI zur Regelgenerierung
1. Präzisierte Aufgabenstellung
2. Zum Einstieg: „Das Sommerszenario“
3. Anbindungs- / Kommunikationsschema
4. Lösungsansätze1. Nice-To-Know
2. Import der Geräteinformationen
3. Abbildung der Regel-Daten
4. Export der Regeldaten
5. Visualisierung (API‘s), Design-Entwurf
5. Weiter Vorgehensweise
23.06.2014 Regelverarbeitung - T. Kanther 7
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
2.1 Präzisierte Aufgabenstellung
• Erstellung eines Web-basierten Regeleditors,unter Nutzung von Basistechnologien gem. HTML5-Standard
• Verfolgung eines grafisch/ Wizard-basierten Ansatz
• Schaffung eines einfachen Austauschformates auf JSON-/XML-Basis
• Keine Programmierkenntnisse für Regelerstellung erforderlich
23.06.2014 Regelverarbeitung - T. Kanther 8
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
2.2 Zum Einstieg: „Das Sommerszenario“
• Betrachte man exemplarisch:
Bei einer Außentemperatur (S1) größer 30 °C und/oder einer äußeren Luftfeuchtigkeit (S2) > 70°C sollen alle Fenster (A1, A2) geschlossen werden/ bleiben. Klimaanlage (A3) an auf 21,5 °C.
Zudem sind alle Räume im Hochsommer (Juli/August) täglich im Zeitraum (Timer - T3) von 05 - 06 Uhr zu lüften (A1, A2 -> auf).
23.06.2014 Regelverarbeitung - T. Kanther 9
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
2.3 Anbindungs-/ Kommunikationsschema
23.06.2014 Regelverarbeitung - T. Kanther 10
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
2.4 Lösungsansätze – Nice-To-Know
• Eine Vielzahl von Sensoren liefern eine Vielzahl unterschiedlicher physikalischer Parameter, deren Werte in wiederum einer Vielzahl unterschiedlicher Maßeinheiten angegeben sein können.
• Unzählige spezifische Besonderheiten erzwingen spezifische Reaktionen, welche in die Regelanwendung sukzessive integriert werden müssen.
• Modellierung sehr komplex Verallgemeinerung• Bezug auf Schwerpunkte Raumklimatisierung / Lichtsteuerung
• Definition von Datentypen
• Operationen in Abhängigkeit von Datentypen
23.06.2014 Regelverarbeitung - T. Kanther 11
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
2.4 Lösungsansätze – Import der Geräteinformationen (JSON)
23.06.2014 Regelverarbeitung - T. Kanther 12
{
"Dev1":{ ## Idealerweise = Eindeutige Kennung
"_UNIQUE_ID":"Dev1", ## Eindeutige Kennung
"name":"Klimaanlage",
"properties":{
"_humidty":{
"type":{
"readable":true, ## Sensor (Hygrosensor)
"writeable":false
},
"value-type":"int", ## Information, über Datencharakteristik,
"unit":"percent" ## hier: Ganzzahl, Maßeinheit
},
…
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
2.4 Lösungsansätze – Import der Geräteinformationen (JSON)
23.06.2014 Regelverarbeitung - T. Kanther 13
…
"properties":{
"_humidty":{
"type":{
"readable":true, ## Sensor (Hygrosensor)
"writeable":false
},…
"_temperature":{
"type":{
"readable":true, ## Sensor (Messung der Temperatur)
"writeable":true ## Aktor (Hier: Setzen der Zieltemperatur)
},… },
"_switch":{
"type":{
"readable":false,
"writeable":true ## Aktor (Hier: Kühlfunktionalität)
},…
…
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
2.4 Lösungsansätze – Abbildung der Regel-Daten
• Realisierung durchk-Bäume
• Sensoren stetslinksseitig
• Aktoren stetsrechtsseitig
• Zusatzelementebeiderseits möglich(virtuelle Devices z.B. Timer - reine Schaltuhr, zur Schaltverzögerung)
23.06.2014 Regelverarbeitung - T. Kanther 14
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
2.4 Lösungsansätze – Export der Regeldaten
23.06.2014 Regelverarbeitung - T. Kanther 15
{
"RULES": {
"RULE1": {
"_UNIQUE_ID": "RULE1",
"rulename" : "Kühlungsprozess Raum XY",
"ruleDescr" : ""
}
"RULE2": {
"_UNIQUE_ID": "RULE2",
"rulename" : "Lüftungsprozess Raum XY",
"ruleDescr" : ""
}
},
…
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
2.4 Lösungsansätze – Export der Regeldaten
23.06.2014 Regelverarbeitung - T. Kanther 16
…
"RULE1": {
"COND": {
"OR": { "S1": { "_temperature": { "op": ">", "value": "30" } },
"S2": { "_humidty": { "op": ">", "value": "70" } }
}
},
"EXEC": { "A1": { "state": "close" },
"A2": { "state": "close" },
"A3": { "state": "on" }
}
},
…
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
2.4 Lösungsansätze – Visualisierung (API‘s)
• Wesentlichste Anforderungen:
• Nutzung von JavaScript
• Drag-&-Drop oder zumindest Maus-Event um dieses zu simulieren
• Interaktion mittels Formular-Elemente
• 1. Variante, rein HTML-basiert (ohne HTML-Canvas)
• jQuery UI, benötigt jQuery
• 2. Variante, grafisch unter Nutzung von HTML5-Canvas
• Verschiedene API‘s: wie EasyLJS, KineticJs …
• Graphik-API‘s haben keine Formular-Elemente!
• Lösung 1: durch Emulation HTML5-Form-Elemente auf Canvas-Graphik
Zuordnungsproblem – Wie saubere Bildschirmdarstellung erzwingen?
• Lösung 2: über Zusatz-API „CanvasInput“ [1]
[1] https://github.com/claydotio/Canvas-Input
23.06.2014 Regelverarbeitung - T. Kanther 17
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
2.4 Lösungsansätze – Design-Entwurf
23.06.2014 Regelverarbeitung - T. Kanther & F. Pistorius 18
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
2.5 Weitere Vorgehensweise
• Fertigstellung eines Prototypen, auf reine HTML5-Basis ohne Canvas• Konzentration auf Funktionen rein funktionaler Art
• Keine visueller Schnick-Schnack!
• Validierung der bisherigen Konzepte
• Implementierung des Regeleditors• Idealerweise: durch Erweiterung/ Anpassung des Prototypen
• Nice-To-Have: verbesserte Grafische Visualisierung
23.06.2014 Regelverarbeitung - T. Kanther 19
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
3. Back-End für die Regelverwaltung
1. Präzisierte Aufgabenstellung
2. Vorgehensweise
3. Ergebnis der Analyse
4. Lösungsansatz
5. Weitere Vorgehensweise
23.06.2014 Regelverarbeitung - F. Pistorius 20
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
Graf. OberflächeRegelerstellung
Back-EndRegelverwaltung
FHEM ServerRegelausführung, Geräteverwaltung
Regeldefinition
Liste von Aktorenund Sensoren
FHEMRegel
(Toni Kanther) (Felix Pistorius) (GPL lizensierter Server)
3.1 Präzisierte Aufgabenstellung
• Regeln werden bereits in FHEM verwaltet.Warum nun eine zusätzliche Regelverwaltung?
Verwaltung von FHEM Regeln in Perl-Skripten und Konfigurationsdateien
Umfangreicher Syntax
• Regelverwaltung in einem geeigneten Format• Speichern
• Laden
• Manipulieren
• FHEM Regeln erstellen
• Geräteinformationen von FHEM an UI weiterleiten
23.06.2014 Regelverarbeitung - F. Pistorius 21
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
3.2 Vorgehensweise
Analyse FHEM
•Definition und Verwaltung von Regeln
•Möglichkeiten zur Anbindung
•Verwaltung von Geräten
Format der Regeln
•Anforderungen definieren
•Mögliche Formate und bestehende Lösungen ermitteln
•Bewertung der Formate
Übersetzung der Regeln
•Zielformat
•Validierung von Regeln
Umsetzung & Fazit
•Prototypische Umsetzung
•Kritische Reflektion
23.06.2014 Regelverarbeitung - F. Pistorius 22
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
3.3 Ergebnis der Analyse
• FHEM – Freundliche Hausautomatisierung und Energie-Messung
• In Perl geschriebener Server
• Modular aufgebaut
• Verwaltung der Module in Hauptmodul fhem.pl• define
• reload
• delete
• Verwaltung von Aktoren und Sensoren in Perl Hashes
23.06.2014 Regelverarbeitung - F. Pistorius 23
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
(Quelle: fhem.de)
3.3 Ergebnis der Analyse
• FHEM Regelverwaltung• Kurze Regeln: Konfigurationsdatei
• Komplexe Regeln: Perl-Hilfsmodul
• Anbindung an FHEM• Integriert: Perl Modul
• Extern: Weblink, Telnet
• FHEM Module• Webserver
• FHEMWEB zur Integration von eigenen Seiten
23.06.2014 Regelverarbeitung - F. Pistorius 24
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
define LampeAnUm1700 at 17:00:00 set lamp on
(Quelle: Dokumentation „Hausautomatisierung mit fhem“, Seite 26)
(Quelle: fhem.de)
3.4 Lösungsansatz - Komponenten
• Umsetzung als FHEM-Modul
• UI I/O: CGI als Schnittstelle zum UI
• Rule Repository: Verwaltung von Regeln in geeignetem Format
• Compiler: Übersetzen von Regeln
• Neue Konfigurationsdatei und Perl-Modul in FHEM für Regeln
23.06.2014 Regelverarbeitung - F. Pistorius 25
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
3.4 Lösungsansatz - Anforderungen
• Abbildung von Regeln, ohne Beschränkungen
• Leicht interpretierbares Format für Rule Repository (Laden, Speichern, Manipulieren)
• Identifikation von gleichen Regeln in FHEM und Rule Repository
• Ändern und löschen von FHEM Regeln
23.06.2014 Regelverarbeitung - F. Pistorius 26
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
3.5 Weitere Vorgehensweise
• Bewertungskriterien für Rule Repository
• Bewertung der Möglichkeiten• DBMS
• XML
• Eigenes Format
• Prototypische Umsetzung
• Kritische Reflektion
23.06.2014 Regelverarbeitung - F. Pistorius 27
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
4. Zusammenfassung
• Regelerstellung ist zurzeit mit hohem Programmieraufwand verbunden
• Ziel: Vereinfachung der Regelerstellung
• Aktueller Stand:• Grobentwurf
• Tlw. prototypische Umsetzung begonnen
• Nächste Schritte • Feinentwurf
• Umsetzung
• Bewertung der Ergebnisse
23.06.2014 Regelverarbeitung - T. Kanther & F. Pistorius 28
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
23.06.2014 Regelverarbeitung - T. Kanther & F. Pistorius 29
Vielen Dank für Ihre Aufmerksamkeit.
Fragen?
Weblinks
• HTW Dresden: www.htw-dresden.de
• FHEM Hausautomatisierungsserver: fhem.de
• OpenHAB: www.openhab.org
• iP-Symcon: www.ip-symcon.de
• openRemote: www.openremote.org
• Forschungsseminar Sommersemester 2014 – Regelverarbeitung: HTW Dresden - Wiki Sensornetze / Regelverarbeitung
• JS-Libraries: http://medleyweb.com/web-dev/top-7-javascript-canvas-libraries-and-tutorials
• JQuery UI: http://jqueryui.com
• JQuery: http://api.jquery.com
• EasyLJS: http://www.createjs.com/#!/EaselJS
• KineticJS: http://kineticjs.com
23.06.2014 Regelverarbeitung - T. Kanther & F. Pistorius 30
Backup Folien
23.06.2014 Regelverarbeitung - T. Kanther & F. Pistorius 31
Übersicht über die bisher geprüften JavaScript-API‘s
23.06.2014 Regelverarbeitung - T. Kanther & F. Pistorius 32
Framework Preis Wesentliche Funktionen
kost
en
los
Erw
eit
erte
Sele
kto
ren
Dra
g-&
-Dro
p
Mau
s-In
tera
ktio
nen
Form
ula
r-el
emen
te
HTM
L5-C
anva
s-A
PI
HTM
L5-G
rap
h-A
PI Nur HTML5-Canvas
Ob
jekt
-
Ver
sch
ach
telu
ng
Laye
r
Ob
jekt
-Gru
pp
en
Vo
rdef
inie
rte
An
imat
ion
en
Variante 1 (auch im Prototyp):
JQuery UI
http://jqueryui.com
Benötigt JQuery
http://api.jquery.com
X (X) X X X - - - - - -
Variante 2 (grafisch):
EasyLJS
http://www.createjs.com/#!/EaselJSX - X X - X - X - - -
KineticJS
http://kineticjs.comX - - X - X - X X X X
Raphaël
http://raphaeljs.comX - - X - X - - - - X
OCanvas
http://ocanvas.orgX - - X - X - X (X) - X
ProcressingJS
http://processingjs.orgX - (-) X - X - X (3D) - X
GoJS (reine Graph-API)
http://www.gojs.net(1.350,- $) - X X - - X - - - -
2.3 Anbindungs-/ Kommunikationsschema
23.06.2014 Regelverarbeitung - T. Kanther 33
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
2.4 Lösungsansätze – Import der Geräteinformationen (JSON)
23.06.2014 Regelverarbeitung - T. Kanther 34
{
"Dev1":{ ## Idealerweise = Eindeutige Kennung
"_UNIQUE_ID":"Dev1", ## Eindeutige Kennung
"name":"Klimaanlage",
"properties":{
"_humidty":{
"type":{
"readable":true, ## Sensor (Hygrosensor)
"writeable":false
},
"value-type":"int", ## Information, über Datencharakteristik,
"unit":"percent" ## hier: Ganzzahl, Maßeinheit
},
…
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
2.4 Lösungsansätze – Import der Geräteinformationen (JSON)
23.06.2014 Regelverarbeitung - T. Kanther 35
…
"properties":{
"_humidty":{
"type":{
"readable":true, ## Sensor (Hygrosensor)
"writeable":false
},…
"_temperature":{
"type":{
"readable":true, ## Sensor (Messung der Temperatur)
"writeable":true ## Aktor (Hier: Setzen der Zieltemperatur)
},… },
"_switch":{
"type":{
"readable":false,
"writeable":true ## Aktor (Hier: Kühlfunktionalität)
},…
…
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
2.4 Lösungsansätze – Export der Regeldaten
23.06.2014 Regelverarbeitung - T. Kanther 36
{
"RULES": {
"RULE1": {
"_UNIQUE_ID": "RULE1",
"rulename" : "Kühlungsprozess Raum XY",
"ruleDescr" : ""
}
"RULE2": {
"_UNIQUE_ID": "RULE2",
"rulename" : "Lüftungsprozess Raum XY",
"ruleDescr" : ""
}
},
…
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
2.4 Lösungsansätze – Export der Regeldaten
23.06.2014 Regelverarbeitung - T. Kanther 37
…
"RULE1": {
"COND": {
"OR": { "S1": { "_temperature": { "op": ">", "value": "30" } },
"S2": { "_humidty": { "op": ">", "value": "70" } }
}
},
"EXEC": { "A1": { "state": "close" },
"A2": { "state": "close" },
"A3": { "state": "on" }
}
},
…
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung
2.4 Lösungsansätze – Export der Regeldaten
23.06.2014 Regelverarbeitung - T. Kanther 38
…
"RULE2": {
"COND": {
"TIMER": {
"first_date": "XXXX-07-01",
"finish_date": "XXXX-08-31",
"space": "0500|0600|PM"
}
},
"EXEC": { "A1": { "state": "open" },
"A2": { "state": "open" },
"A3": { "state": "off" }
}
}
}
Einleitung – Regelerstellung – Regelverwaltung - Zusammenfassung