S7 Beispielkonfiguration
Dieser Artikel beschreibt eine Beispielkonfiguration für die Hardware Siemens S5. Ausgangspunkt ist eine in 20 Jahren gewachsene S5 95U-Haussteuerung. Inzwischen wurde begonnen diese an unkritischen Stellen um eine FHEM-Anbindung zu ergänzen. Ich demonstriere die vorhandenen Möglichkeiten, indem ich meinen Arbeitsfortschritt hier dokumentiere.
Status von S5-Ausgängen in FHEM anzeigen
Bei mir wird die biologische Nachklärung des Abwassers mit einem Launhardt-Reaktor erledigt. Drei Pumpen werden durch die S5 zeitgesteuert geschaltet. In FHEM soll der Status der Ausgänge angezeigt werden. Dazu müssen nur die betreffenden Ausgänge in FHEM bekannt gemacht werden. Änderungen am S5-Programm sind nicht notwendig.
define s5test S7 S5 /dev/ttyAMA0
define Abpumpen S7_DRead outputs 0 13.0 attr Abpumpen IODev s5test attr Abpumpen icon icoBaum attr Abpumpen room Abwasser attr Abpumpen sortby 03
define Umpumpen S7_DRead outputs 0 13.1 attr Umpumpen IODev s5test attr Umpumpen icon audio_repeat attr Umpumpen room Abwasser attr Umpumpen sortby 02
define Zupumpen S7_DRead outputs 0 13.2 attr Zupumpen IODev s5test attr Zupumpen icon scene_toilet_alternat attr Zupumpen room Abwasser attr Zupumpen sortby 01
vorhandene S5-Lampensteuerung um FHEM ergänzen
Das S5-Programm für das Schalten der Beleuchtung mittels Taster soll auch bei ausgefallenem FHEM funktionieren wie bisher. Dazu schaltet FHEM spezielle Merker, die dann per ODER mit den anderen Eingängen verknüpft werden, hier Merker M 65.0 (vier ergänzte Zeilen):
NETZWERK 12 Arbeitszimmer 00AC :U( 00AD :U( 00AE :O E 64.7 Taster im Arbeitszimmer 00AF :O M 65.0 Merker für FHEM 00B0 :) 00B1 :UN M 61.4 Flankenmerker 00B2 :S A 65.7 Lampe Arbeiten Giebel 00B3 :U( 00B4 :O E 64.7 Taster im Arbeitszimmer 00B5 :O M 65.0 Merker für FHEM 00B6 :) 00B7 :U M 61.4 Flankenmerker 00B8 :R A 65.7 Lampe Arbeiten Giebel 00B9 :U A 65.7 Lampe Arbeiten Giebel 00BA :) 00BB :UN E 64.7 Taster im Arbeitszimmer 00BC :UN M 65.0 Merker für FHEM 00BD :S M 61.4 Flankenmerker 00BE :UN E 64.7 Taster im Arbeitszimmer 00BF :UN M 65.0 Merker für FHEM 00C0 :UN A 65.7 Lampe Arbeiten Giebel 00C1 :R M 61.4 Flankenmerker 00C2 :NOP 0 :***
zugehörige FHEM-Konfiguration:
define s5test S7 S5 /dev/ttyAMA0 #FHEM Hardwarezugriff konfigurieren
define M65.0 S7_DWrite flags 0 65.0 #S5-Merker M65.0 für FHEM-Schreibzugriff attr M65.0 IODev s5test #M65.0 an /dev/ttyAMA0 ist gemeint attr M65.0 eventMap /on-for-timer 1 /trigger:tasten #1-s-Impuls außerdem Web: trigger -> tasten attr M65.0 icon light_pendant_light #Standard-Icon ersetzen attr M65.0 room Arbeitszimmer #Raumzuordnung zur optischen Gruppierung attr M65.0 webCmd tasten #Button auf Weboberfläche gelabelt als "tasten"
Das Merkerbyte 65 muss für den FHEM-Schreibzugriff reserviert sein. Die Lampe kann nun zusätzlich über das Webinterface oder die Smartphone-App geschaltet werden.
Namenskonvention für S5-FHEM-Projekt
Um ein gewachsenes Projekt mit erträglichem Aufwand in die neue Zeit zu retten, ist es erforderlich nur systematische Änderungen vorzunehmen. Erst Änderungen exemplarisch testen und dann für alle gleichartigen Fälle übernehmen. Um dabei die Übersicht nicht zu verlieren, habe ich mich entschlossen in Anlehnung an FISCHER-NET.DE ein Namensschema einzuführen. Allerdings unterstützt die S5 nur sieben Zeichen lange Namen, deshalb sind die FHEM-Namen als Symbolik-Kommentar der S5 eingesetzt.
FHEM-S5-Lampensteuerung tastbar um ein/aus ergänzen
Bei einem Wandtaster kann entschieden werden, welchen Zustand die Lampe hat, weil man sie sieht. Anders beim Webinterface, hier wäre ein gezieltes ein- bzw. ausschalten besser, weil man eventuell entfernt handelt. Damit läßt sich auch eine zentrales Licht-AUS bzw. eine Alarmbeleuchtung mit ALLES-AN realisieren. Zweckmäßig werden alle Lampen-Merker für Tasten, Ein bzw. Aus, auf je ein Merker-Wort (maximal 16 Lampen) gelegt. Hier also MW164 Tasten, MW166 Ein und MW 168 AUS. M164.7 für das Tasten, M166.7 für Ein und M168.7 für AUS der Giebellampe. Die notwendigen Konfigurationen für weitere Lampen können so kopiert und brauchen nur minimal angepasst werden..
S5-Programm nochmals ergänzt
NETZWERK 12 Arbeitszimmer 00AC :O( 00AD :U( 00AE :U( 00AF :O -AzLiGt E64.7 Lichttaster 00B0 :O -M 164.7 M164.7 OG.Az.M1647.LaGiTast FHEM 00B1 :) 00B2 :UN -AzLaGf M61.4 Flankenmerker 00B3 :) 00B4 :O -M 166.7 M166.7 OG.Az.M1667.LaGiEin FHEM 00B5 :S -AzLaG A65.7 Lampe Arbeiten Giebel 00B6 :O( 00B7 :U( 00B8 :O -AzLiGt E64.7 Lichttaster 00B9 :O -M 164.7 M164.7 OG.Az.M1647.LaGiTast FHEM 00BA :) 00BB :U -AzLaGf M61.4 Flankenmerker 00BC :) 00BD :O -M 168.7 M168.7 OG.Az.M1667.LaGiAus FHEM 00BE :R -AzLaG A65.7 Lampe Arbeiten Giebel 00BF :U -AzLaG A65.7 Lampe Arbeiten Giebel 00C0 :) 00C1 :UN -AzLiGt E64.7 Lichttaster 00C2 :UN -M 164.7 M164.7 OG.Az.M1647.LaGiTast FHEM 00C3 :S -AzLaGf M61.4 Flankenmerker 00C4 :UN -AzLiGt E64.7 Lichttaster 00C5 :UN -M 164.7 M164.7 OG.Az.M1647.LaGiTast FHEM 00C6 :UN -AzLaG A65.7 Lampe Arbeiten Giebel 00C7 :R -AzLaGf M61.4 Flankenmerker 00C8 :NOP 0
zugehöriger Abschnitt aus der fhem.cfg
define s5test S7 S5 /dev/ttyAMA0
define OG.az.M647.LichtGtast S7_DWrite flags 0 164.7 attr OG.az.M647.LichtGtast IODev s5test attr OG.az.M647.LichtGtast alias Giebellampe attr OG.az.M647.LichtGtast eventMap /on-for-timer 1 /trigger:tasten attr OG.az.M647.LichtGtast icon light_pendant_light attr OG.az.M647.LichtGtast room Arbeitszimmer attr OG.az.M647.LichtGtast webCmd tasten
define OG.az.M667.LichtGaus S7_DWrite flags 0 166.7 attr OG.az.M667.LichtGaus IODev s5test attr OG.az.M667.LichtGaus alias Giebellampe.aus attr OG.az.M667.LichtGaus eventMap /on-for-timer 1 /trigger:tasten attr OG.az.M667.LichtGaus icon light_light attr OG.az.M667.LichtGaus room Arbeitszimmer attr OG.az.M667.LichtGaus webCmd tasten
define OG.az.M687.LichtGein S7_DWrite flags 0 168.7 attr OG.az.M687.LichtGein IODev s5test attr OG.az.M687.LichtGein alias Giebellampe.an attr OG.az.M687.LichtGein eventMap /on-for-timer 1 /trigger:tasten attr OG.az.M687.LichtGein icon light_light_dim_100 attr OG.az.M687.LichtGein room Arbeitszimmer attr OG.az.M687.LichtGein webCmd tasten
Das FHEM-Gerät trägt nun einen strukturierten Namen, um es leicht zuordnen zu können. Auf der grafischen Oberfläche ist dies durch die Raumzuordung überflüssig. Hier wird der Alias Giebellampe verwendet. Außerdem kann man es gezielt aus- bzw. eintasten.
FHEM-S5-Rolladensteuerung ergänzen
In meiner S5 existiert bisher ein Programm welches nur einen Taster mit hoch - stop - runter - stop verwendet. Bei der Rolladensteuerung über das Webinterface ist es sinnvoller je einen Button für das Hochfahren, einen für das Runterfahren und einen für STOP zu konfigurieren. Wie bei der Lampenschaltung soll sich auch hier ein zentrales HOCH bzw. RUNTER für alle vorhandenen Rolläden realisieren lassen. Dazu werden in der S5 das Merkerbyte MB176 bzw. M176.3 für HOCH und MB178 bzw. M178.3 für RUNTER und MB177 bzw. M177.3 für STOP für den FHEM-Zugriff konfiguriert. Damit sind maximal acht Rollläden .0 bis .7 möglich.
S5-Programm
NETZWERK 2 RL Schlafen hoch 0012 :O( 0013 :O -XRUPS M19.2 Tasterauswertung RL Schlafen hoc 0014 :O -M 176.3 M176.3 OG.Sz.M1763.RlHo FHEM 0015 :) 0016 :UN -RDNS A10.5 Ausgang RLaden runter Schlafen 0017 :L KT 030.2 0019 :SA T 5 Timer Schlafen hoch 001A :O -RDNS A10.5 Ausgang RLaden runter Schlafen 001B :O -XRDNS M19.3 Tasterauswertung RL Schlafen run 001C :O -RStopS M19.4 RL Stop 001D :O -M 177.3 M177.3 OG.Sz.M1763.RlStop FHEM 001E :O -M 178.3 M178.3 OG.Sz.M1763.RlRu FHEM 001F :R T 5 Timer Schlafen hoch 0020 :NOP 0 0021 :NOP 0 0022 :U T 5 Timer Schlafen hoch 0023 := -RUPS A10.4 Ausgang RLaden hoch Schlafem 0024 :*** NETZWERK 3 RL Schlafen runter 0025 :O( 0026 :O -XRDNS M19.3 Tasterauswertung RL Schlafen run 0027 :O -M 178.3 M178.3 OG.Sz.M1763.RlRu FHEM 0028 :) 0029 :UN -RUPS A10.4 Ausgang RLaden hoch Schlafen 002A :L KT 030.2 002C :SA T 6 Timer Schlafen runter 002D :O -RUPS A10.4 Ausgang RLaden hoch Schlafen 002E :O -XRUPS M19.2 Tasterauswertung RL Schlafen hoc 002F :O -RStopS M19.4 RL Stop 0030 :O -M 177.3 M177.3 OG.Sz.M1763.RlStop FHEM 0031 :O -M 176.3 M176.3 OG.Sz.M1763.RlHo FHEM 0032 :R T 6 Timer Schlafen runter 0033 :NOP 0 0034 :NOP 0 0035 :U T 6 Timer Schlafen runter 0036 := -RDNS A10.5 Ausgang RLaden runter Schlafen 0037 :***
Der Motorschutz-Timer sorgt dafür, dass die Stromversorgung nach der maximalen Laufzeit abgeschaltet wird.
zugehöriger Abschnitt aus der fhem.cfg
define OG.sz.M1763.RlHo S7_DWrite flags 0 176.3 attr OG.sz.M1763.RlHo IODev s5test attr OG.sz.M1763.RlHo alias Rollladen.hoch attr OG.sz.M1763.RlHo eventMap /on-for-timer 1 /trigger:tasten attr OG.sz.M1763.RlHo icon rc_UP attr OG.sz.M1763.RlHo room Schlafen attr OG.sz.M1763.RlHo sortby 01 attr OG.sz.M1763.RlHo webCmd tasten define OG.sz.M1773.RlStop S7_DWrite flags 0 177.3 attr OG.sz.M1773.RlStop IODev s5test attr OG.sz.M1773.RlStop alias Rollladen.stop attr OG.sz.M1773.RlStop eventMap /on-for-timer 1 /trigger:tasten attr OG.sz.M1773.RlStop icon rc_REC attr OG.sz.M1773.RlStop room Schlafen attr OG.sz.M1773.RlStop sortby 02 attr OG.sz.M1773.RlStop webCmd tasten define OG.sz.M1783.RlRu S7_DWrite flags 0 178.3 attr OG.sz.M1783.RlRu IODev s5test attr OG.sz.M1783.RlRu alias Rollladen.runter attr OG.sz.M1783.RlRu eventMap /on-for-timer 1 /trigger:tasten attr OG.sz.M1783.RlRu icon rc_DOWN attr OG.sz.M1783.RlRu room Schlafen attr OG.sz.M1783.RlRu sortby 03 attr OG.sz.M1783.RlRu webCmd tasten
Ergebnis
Der Rolladen kann nun über das Webinterface auf beliebigen Geräten gezielt geschlossen bzw. geöffnet werden.
zurück zum Ausgangs-Artikel