S7 Beispielkonfiguration

Aus FHEMWiki

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.

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

FUP-Giebellampe.png

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.

Ergebnis Giebellampe2.png

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 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 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      :***
      

FUP-RL.png

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

Rl-web.png

Der Rolladen kann nun über das Webinterface auf beliebigen Geräten gezielt geschlossen bzw. geöffnet werden.

zurück zum Ausgangs-Artikel