Rollladensteuerung für HM/ROLLO inkl. Abschattung und Komfortfunktionen in Perl

Begonnen von Cluni, 06 Juli 2017, 11:14:28

Vorheriges Thema - Nächstes Thema

Cluni

[Stand der Informationen: 08.06.2018 - Stand der Datei "99_myUtils_Shutter.pm": 16.05.2018 - Version der Datei: v0.9.4.8]

Hallo zusammen,

ich würde euch gerne meine Lösung zur Steuerung der Homematic-Rollladen-Aktoren und nun auch für das ROLLO-Modul vorstellen. Die Steuerung von Rollladen über das ROLLO-Modul ist noch in der Erprobung, aber ich denke, dass es mittlerweile schon sehr gut läuft. Bei der Erprobung des Codes, der Fehlersuche und auch Ideenfindung wurde ich sehr von Frini und MarkusHiba unterstützt! Vielen Dank dafür!

Vorweg möchte ich noch sagen, dass eine spezielle Behandlung von Jalousien (Stellung der Lamellen) nicht vorhanden ist, da keine entsprechende Hardware bei mir / uns vorhanden ist. Gerne darf aber jeder den Code als Basis für Weiterentwicklungen oder für die Erweiterung/Änderung bei eigenen Bedürfnissen nutzen.

Das alles kann der Code bereits:
- fahren morgens/abends: (versch Modi: aus, immer oder nur bei Abwesenheit oder Anwesenheit)
  * nach fester Zeit
  * Sonnenauf- bzw -untergang (Astrofunktion mit unterschiedlichen Presets REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON)
  * +/- Zufallszeit (damit die Rollladen 1. nicht alle gleichzeitig und 2. an unterschiedlichen Tagen auch in unterschiedlicher Reihenfolge fahren)
  * + bzw. - Offset (damit ich einen Rollladen z.B. abends gezielt als letztes fahren kann trotz Zufallszeiten und Astrofunktion)
  * vordefinierbare Position fürs Öffnen
  * vordefinierbare Position fürs Schließen
  * Feiertags-/Wochenend-/Urlaubs-Modus
- zuschaltbarer Aussperrschutz, der die Taster blockiert (damit z.B. ein Kleinkind nicht den Rollladen herunter fahren kann, wenn man draußen ist)
- automatisches Lüften auf vordefinierbare Position beim Öffnen eines Fensters / einer Tür aktivierbar (setzt Fenster- bzw. Drehgriffkontakt voraus)
- automatisches Öffnen auf vordefinierbare Position beim Öffnen eines Fensters / einer Tür aktivierbar (setzt Fenster- bzw. Drehgriffkontakt voraus)
  * zusätzlich ist es z.B. bei einer Balkontür möglich, dass der Rollladen nicht automatisch zurück fährt, wenn die Tür geschlossen wird oder dass eine vordefinierte Position angefahren wird
- Automatische Abschattung (Möglichkeiten: ja, nein, verspätet, bei Anwesenheit, bei Abwesenheit  - setzt eine Messung der Sonneneinstrahlung voraus)
  * frei pro Aktor definierbare Schwellen
  * frei definierbare Wartezeit (man will ja nicht, dass direkt gefahren wird, wenn die jeweilige Schwelle unter/überschritten wird)
  * einstellbarer Winkel, auf dem das Fenster liegt (es werden nur die Seiten abgeschattet, die in der Sonne sind)
  * frei definierbarer Vor- und Nachlaufwinkel (d.h. die Abschattung geschieht um die Fensterposition +/- den Winkeln (nützlich, wenn ein Baum oder Gebäude schon Schatten wirft)
  * Höhe der Sonne (Elevation) einstellbar, ab bzw. bis zu der abgeschattet wird (wenn z.B. Gebäude Schatten werfen, kann man so die Abschattung früher beenden)
  * Helligkeitssensoren können jedem Aktor separat zugeordnet werden
  * Sperrzeit vor Nacht einstellbar (ich will ja nicht, dass der Rollladen wegen Abschattungsende öffnet und z.B. 2min später regulär schließt - dann bleibt er, wo er grade ist)
  * Frostschutz einstellbar
  * Partymodus (Fahrten werden nach Beendigung nachgeholt)


Bevor ihr anfangt und wild euer System verändert: Macht ein Backup eures Systems und prüft, dass dieses auch wiederherstellbar ist!!! Die Nutzung meiner bzw. unserer Lösung geschieht komplett auf eure eigene Verantwortung!

Da ich meinen Sourcecode manchmal auch unter Mac-OS bearbeite, kann es schon mal sein, dass die Zeilenumbrüche z.B. unter Windows nicht ganz passen. Dieses Problem könnt ihr umgehen, wenn ihr meinen Sourcecode grundsätzlich mit einem Editor öffnet, der dies automatisch erkennt und handhabt. Ich nutze deshalb unter Windows den freien Editor Notepad++, der mit vielen verschiedenen Programmiersprachen umgehen kann und den Code auch übersichtlich in Farbe darstellt. Man kann Notepad++ kostenlos auf der Seite https://notepad-plus-plus.org/ herunterladen.

Erstmal möchte ich mein System beschreiben:

- 11 Rollladen-Aktoren vom Typ HM-LC-BL1-FM
- diverse Fensterkontakte vom Typ HM-SEC-SCo und HM-SEC-SC-2
  - Sind an einem Rollladen mehrere Fenster bzw. Kontakte verbaut, so sind diese in einem structure zusammengefasst
- 2 Helligkeitssensoren vom Typ HM-Sen-LI-O
- Twilight-Modul (um Position und Höhe der Sonne zu bestimmen)
- Außentemperatur (Herkunft egal)
- Ferien- und Feiertagskalender
- Anwesenheitserkennung per WLAN und BT für bestimmte Geräte



*** Update einer vorhanden Installation ***

Solltet ihr bereits eine aktuelle Version installiert haben (d.h. die Rollladenaktoren haben bereits das Attribut "Rollladensteuerung = ja"), dann könnt ihr die neue Version nach Aktualisierung der Datei "99_myUtils_Shutter.pm" relativ einfach auf den neusten Stand bringen.

Testet einfach mal, ob alle Rollladenaktoren über den Befehl "{Rollladensteuerung_update_existing_group('list_group')}" angezeigt werden. Wenn ja, dann könnt ihr das Update über die folgenden Befehle durchführen:


{Rollladensteuerung_create_update_global_dummy()}
{Rollladensteuerung_update_existing_group('update_group')}





*** Vorbedingungen ***

Grundsätzlicher Aufbau:

Als erstes muss die Datei "99_myUtils_Shutter.pm" ins System eingebunden bzw. aktualisiert werden (also wie bei der "99_myUtils.pm" anlegen und den Inhalt hinein kopieren). Diese Datei findet ihr am Ende dieses Posts als Download. Nach dem Anlegen und später bei jeder Änderung des Inhalts dieser Datei muss sie in Fhem über den Befehl "reload 99_myUtils_Shutter.pm" oben in der Befehlseingabezeile neu geladen werden! Darin enthalten sind verschiedene Perl-Routinen, die die einzelnen Steuerungen übernehmen.  Nach der Schaffung der korrekten Vorbedingungen (siehe weiter unten) muss nur eine Routine einmalig per Hand aufgerufen werden und alle weiteren Dinge (Erzeugung der Timer für die einzelnen Rollläden, benötigte Notifies, benötigte Readings, ...) werden automatisch angelegt.

Sollte eine Vorversion der Rollladensteuerung bereit laufen, so löscht bitte einmal die vorhandenen und nicht mehr benutzten Dinge über den Befehl:

   {Rollladensteuerung_del_Timer_and_Dummies()}

1.) Ein Dummy "Rollladensteuerung", wo alle Einstellungen jetzt und in Zukunft eingepflegt werden.

   Dieser Dummy wird mit dem Befehl "{Rollladensteuerung_create_update_global_dummy()}" in der Befehls-Zeile von fhem angelegt und mit Default-Werten vorbesetzt. Dieser Befehl kann auch zur Aktualisierung
   eines bereits vorhandenen Dummies benutzt werden - bereits definierte Attribute werden nicht verändert. Lediglich das Attribut "userattr" wird mit dem aktuellen Attributesatz aktualisiert.
   
   Hier eine Auflistung und Beschreibung der Attribute:
   
   alias: Rollladensteuerung Einstellungen         # dies ist der Anzeigename in fhem
   Telegram_Bot_Name: teleBot                  # Name des Telegram Bots (Messenger Dienst für Nachrichten aufs Handy)
   Logfile_Abschattung: 1                     # Loglevel für Abschattungsroutine in der Logdatei (0,1,2) - (je höher die Zahl, desto mehr Infos)
   Telegram_Abschattung: 0                     # Loglevel für Abschattungsroutine im Telegram-Messenger (0,1,2) - (je höher die Zahl, desto mehr Infos)
   Logfile_Komfort: 1                        # Loglevel für Komfortroutine in der Logdatei (0,1,2,3) - (je höher die Zahl, desto mehr Infos)
   Telegram_Komfort: 0                        # Loglevel für Komfortroutine im Telegram-Messenger (0,1,2,3) - (je höher die Zahl, desto mehr Infos)
   Logfile_Oeffnen: 1                        # Loglevel für Oeffnenroutine in der Logdatei (0,1,2,3,4) - (je höher die Zahl, desto mehr Infos)
   Telegram_Oeffnen: 0                        # Loglevel für Oeffnenroutine im Telegram-Messenger (0,1,2,3,4) - (je höher die Zahl, desto mehr Infos)
   Logfile_Schliessen: 1                     # Loglevel für Schliessenroutine in der Logdatei (0,1,2,3,4) - (je höher die Zahl, desto mehr Infos)
   Telegram_Schliessen: 0                     # Loglevel für Schliessenroutine im Telegram-Messenger (0,1,2,3,4) - (je höher die Zahl, desto mehr Infos)
   Gast_anwesend: nein                        # Auf ja setzen, wenn ein Gast da ist und im Gästezimmer schläft (wird am Rollladen definiert)
   Helligkeit_min_Val: 500                     # Mindestwert, ab dem erst die Abschattungsroutine aufgerufen wird (unterhalb einer bestimmten Helligkeit ja nicht sinnvoll)
   Automatik_morgens: on                     # schaltet die Automatik für morgens ein/aus
   Automatik_abends: on                     # schaltet die Automatik für abends ein/aus
   Automatik_Abschattung: on                  # schaltet die Automatik für die Abschattung ein/aus
   Temperatursensor: Aussentemperatur            # Name des Gerätes, welches die Außentemperatur kennt
   Temperaturreading: temperature               # Name des Readings für die Außentemperatur
   Sonne_Pos_Device: T_N_Wetter               # Name des Gerätes, welches die Sonnenposition kennt - z.B. Name des Twilight-Device
   Sonne_Hoehe_Device: T_N_Wetter               # Name des Gerätes, welches die Höhe der Sonne kennt - z.B. Name des Twilight-Device
   Sonne_Pos_Reading: azimuth                  # Name des Readings für die Sonnenposition
   Sonne_Hoehe_Reading: elevation               # Name des Readings für die Sonnenhöhe
   Anwesenheit: jemand_zu_Hause               # Name des Gerätes für die Anwesenheitserkennung
   Anwesenheit_Reading: state                  # Name des Readings für die Anwesenheitserkennung
   Meldung_anwesend: present                  # Meldung, wenn jemand anwesend ist
   Meldung_abwesend: absent                  # Meldung, wenn alle abwesend sind
   Automatik_Astro_Modus_morgens: REAL,CIVIL,NAUTIC,ASTRONOMIC oder HORIZON   # Zusatzparameter für die Astro-Funktion (siehe https://wiki.fhem.de/wiki/SUNRISE_EL)
   Automatik_Astro_Modus_abends: REAL,CIVIL,NAUTIC,ASTRONOMIC oder HORIZON      # Zusatzparameter für die Astro-Funktion
   Automatik_Astro_Modus_morgens_Horizont: 0                           # Zusatzparameter für die Astro-Funktion
   Automatik_Astro_Modus_abends_Horizont: 0                           # Zusatzparameter für die Astro-Funktion
   Frostschutz_Temp: 0                        # Temp., unter der bei aktiviertem Frostschutz der Rollladen nicht gefahren wird
   Automatik_Partymodus: off                  # schaltet den Partymodus ein/aus


   Hinweis zum Loggin (in der Logdatei oder auch über Telegram-Messenger):

   0: kein Log  1: minimaler Log (nur Vormerkung zur Aktion und Aktion selber)  2: erweiterter Log
   oder
   0: keine Logdatei-Ausgaben; logging == 1: nur die Fahrten; logging == 2: auch weitere Ausgaben, aber nicht unwichtige Messages; logging == 3: alle Ausgaben
   oder auch
   0: keine Logdatei-Ausgaben; logging == 1: Meldung, wenn alle Rollladen geöffnet bzw geschlossen sind; logging == 2: nur die Fahrten; logging == 3: auch weitere Ausgaben, aber nicht unwichtige Messages; logging == 4: alle Ausgaben

   (je nach dem, was vorhanden ist als Auswahl bei dem Attribut)

   

2.) Ferienkalender für das entsprechenden Bundesland (siehe hier: https://wiki.fhem.de/wiki/Wochenende,_Feiertage_und_Schulferien)
   define NRW_Ferien Calendar ical url https://www.schulferien.eu/downloads/ical4.php?land=10&type=1&year=2017 10800 <== anpassen auf eigene Gegebenheiten!

3.) Notify, um dem Dummy einen Wert zuzuweisen:
   define Ferien.notify notify NRW_Ferien { my $Rueckgabe = ReadingsVal("NRW_Ferien", "modeStart", "");; my $setval = 0;; if (index($Rueckgabe,"schulferieneu") > 0) {$setval = 1;;};; fhem ("setreading Rollladensteuerung Ferientag $setval")} <== anpassen auf eigene Gegebenheiten!

4.) Feiertagkalender für das entsprechenden Bundesland
   define NRW_Feiertage Calendar ical url https://www.schulferien.eu/downloads/ical4.php?land=NW&type=0&year=2017 10800 <== anpassen auf eigene Gegebenheiten!

5.) Notify, um dem Dummy einen Wert zuzuweisen:
   define Feiertag.notify notify NRW_Feiertage { my $Rueckgabe = ReadingsVal("NRW_Feiertage", "modeStart", "");; my $setval = 0;; if (index($Rueckgabe,"schulferieneu") > 0) {$setval = 1;;};; fhem ("setreading Rollladensteuerung Feiertag $setval")} <== anpassen auf eigene Gegebenheiten!





*** Attribute ***

Zuerst muss allen Rollladen die nötigen User-Attribute hinzugefügt werden. Dazu habe ich eine kleine Routine geschrieben, die die nötigen User-Attribute anlegt und vorbesetzt. Bereits vorhandene Attribute werden nicht üerschrieben (mit Außnahme des Attributs "userattr" - dieses wird immer auf den aktuellen Stand gebracht). Um einen Rollladenaktor mit den benötigten Attributen zu versehen kann man den folgenden Befehl (oben bei fhem in die Befehls-Zeile eingeben) benutzen:

   {Rollladensteuerung_update_device('[Name_des_Rollladen]')}

Für [Name_des_Rollladen] muss man natürlich den Namen des Rollladens einsetzen - also beispielsweise: {Rollladensteuerung_update_device('Rol_Bad')}

Dies muss für jeden einzelenen Rollladen gemacht werden, es sei denn man hat eine eigene Namensgebung mit einheitlichem Anfang des Namens gewählt bei der Benennung der Rollladenaktoren. In diesem Fall hat man es etwas einfacher. Die Routine Rollladensteuerung_update_group('[Gruppenname]', 'list_group'/'update_group') erleichtert das Setzen der Attribute der einzelnen Rollläden, wenn man einen einheitlichen Namensanfang (wie bei früheren Versionen) hat. Bevor man     diese Geräte automatisch updaten (bzw. initialisieren) lässt, kann man sich eine Liste der Geräte ausgeben lassen, die bei übergebenen Parameter 'update_group' bearbeitet würden. Hat man also (wie z.B. bei mir) einen einheitlichen Anfang der Namen (bei mir fangen die Namen mit "Rol." an - also z.B. "Rol.Bad"), dann kann man sich mit folgendem Befehl die Liste der Geräte anzeigen lassen:

   {Rollladensteuerung_update_group('Rol\..*','list_group')}

Sind nur alle gewünschten Geräte in dieser Liste, dann kann man mit folgendem Befehl diese Geräte updaten lassen:

   {Rollladensteuerung_update_group('Rol\..*','update_group')}

Mit diesem Befehl wird dann für jedes einzelene Gerät die Routine Rollladensteuerung_update_device('[Name_des_Rollladen]) aufgerufen und ausgeführt.


Hat man dies abgeschlossen, so muss man nur noch bei jedem Rollladen die Einstellungen anpassen (individuelle Zeiten, Fenstersensor, gewünschte Positionen, ...). Bitte geht also jeden Aktor der Reihe nach durch und passt die Parameter euren Bedürfnissen an. Zusätzliche Parameter können über das Dropdown-Menü bei den Attributen ausgewählt und verändert werden (wie z.B. den Namen (nicht Alias!) des Fenster- und/oder Helligkeitssensors - falls vorhanden). Eine Beschreibung der einzelnen Attribute findet ihr hier:

Auto_Pos_Befehl pct               # Befehl, mit dem der Rollladen gefahren wird (bei Homatic 'pct' (default), bei ROLLO-Modul 'position')
Auto_Modus_hoch immer            # Modus für das automatische Öffnen (aus, immer oder nur bei Abwesenheit)
Auto_Modus_runter immer            # Modus für das automatische Schließen (aus, immer oder nur bei Abwesenheit)
Auto_hoch Astro                  # Modus für das automatische Öffnen (feste Zeit oder Astro)
Auto_runter Astro               # Modus für das automatische Schließen (feste Zeit oder Astro)
Auto_Lueften_Pos 30               # Position des Rollladen, fürs automatische Lüften bei gekipptem Fenster
Auto_Geoeffnet_Pos 80            # Position des Rollladen, fürs automatische Öffnen bei geöffnetem Fenster (z.B. Drehgriffkontakt)
Auto_offen_Pos 100               # Position des Rollladen, wenn morgens automatisch geöffnet wird
Auto_Zeit_hoch_frueh 07:30:00      # früheste Öffnen-Zeit an Wochentagen
Auto_Zeit_hoch_spaet 09:00:00      # späteste Öffnen-Zeit an Wochentagen
Auto_Zeit_hoch_WE_Urlaub 09:30:00   # früheste Öffnen-Zeit an Wochenenden/Urlaub/Ferien/Feiertagen
Auto_Zeit_runter_frueh 16:30:00      # früheste Schließen-Zeit
Auto_Zeit_runter_spaet 21:30:00      # späteste Schließen-Zeit
Auto_Luft_Fenster_offen ja         # auf Lüften, wenn Fenster gekippt/geöffnet wird und aktuelle Position unterhalb der Lüften-Position
Auto_Aussperrschutz ja            # Aussperrschutz ja/nein für diese Tür bzw dieses Fenster
Auto_Offset_Minuten_morgens 0      # Offset Rollladen morgens
Auto_Offset_Minuten_abends 0      # Offset Rollladen abends
Auto_Zufall_Minuten 20            # max. Zufallszeit in Minuten, die zu Fahrzeitpunkt dazu gerechnet wird
Auto_geschlossen_Pos 0            # Position, auf den der Rollladen beim Schließen fahren soll
Auto_Pos_nach_KomfortOeffnen -1      # Angabe der Position nach dem automatischen Öffnen über Fensterkontakt. -1 = vorherige Position anfahren -2 = geöffnet-Position behalten
Auto_Gaestezimmer nein            # dieser Rollladen ist Gästezimmer ==> bei Anwesenheit eines Gastes (im globalen Dummy "Rollladensteuerung ein-/ausschalten) wird morgens nicht automatisch geöffnet
Auto_Fensterkontakt Sensor.Bad      # Name des Fensterkontaks am entsprechenden Fenster (Name! nicht Alias!)
Auto_Fensterkontakttyp twostate      # Typ des verwendeten Fensterkontakts: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt)
Auto_Frostschutz aus            # Modus für den Frostschutz
Auto_Partymodus nein            # wird bei aktiviertem Partymodus nicht gefahren (ja/nein)

Spezielle Attribute für die Abschattung:

Auto_Abschattung_Pos 30                              # Position des Rollladen, für die automatische Abschattung
Auto_Himmelsrichtung 178                           # Position in Grad, auf der das Fenster liegt - genau Osten wäre 90, Süden 180 und Westen 270 - wird bei der Abschattung berücksichtigt
Auto_Abschattung_Winkel_links 85                     # Vorlaufwinkel im Bezug zum Fenster, ab wann abgeschattet wird. Beispiel: Fenster 180° - 85° ==> ab Sonnenpos. 95° wird abgeschattet
Auto_Abschattung_Winkel_rechts 85                     # Nachlaufwinkel im Bezug zum Fenster, bis wann abgeschattet wird. Beispiel: Fenster 180° + 85° ==> bis Sonnenpos. 265° wird abgeschattet
Auto_Abschattung nein                              # Modus der automatischen Abschattung (ja,nein,verspaetet,bei_Abwesenheit,bei_Anwesenheit)
Auto_Abschattung_Wartezeit 20                        # Wartezeit nach der Über-/Unterschreitung, bis wieder geprüft und ggf. gefahren wird
Auto_Abschattung_Helligkeitssensor Helligkeitssensor_Sued   # diesem Rollladen zugeordneter Helligkeitssensor
Auto_Abschattung_Helligkeits_Reading brightness            # Reading, auf dem der Helligkeitswert abgelegt wurde - default ist brightness
Auto_Abschattung_Schwelle_sonnig 60000                  # obere Schwelle für die Helligkeit
Auto_Abschattung_Schwelle_wolkig 40000                  # untere Schwelle für die Helligkeit
Auto_Abschattung_min_Temp_aussen 18                     # Mindest-Außentemperatur für die Abschattung. Ist die Temperatur darunter, wird nicht abgeschattet
Auto_Abschattung_Sperrzeit_nach_manuell 20               # Sperrzeit nach manueller Rollladenfahrt
Auto_Abschattung_Sperrzeit_vor_Nacht 20                  # Sperrzeit vor dem automatischen Schließen am Abend, damit der Rollladen nicht geöffnet und ein paar Minuten später eh ganz geschlossen wird
Auto_Abschattung_Pos_nach_Abschattung -1               # Position des Rollladen, wenn Abschatten beendet wird. Bei -1 wird die vorherige Position angefahren
Auto_Abschattung_min_elevation 0                     # vertikale Höhe, die die Sonne mindestens haben muss, damit abgeschattet wird



Damit nicht ständig die Komfort-Routine aufgerufen und abgearbeitet wird, setzt bitte noch das folgende Attribut:

event-on-change-reading motor

   bzw. beim ROLLO-Modul:

attr Rol\..* event-on-change-reading state


Möchte man, dass sich der Rollladen mit ein normaler Fensterkontakt (twostate) beim Öffnen des Fensters / einer Tür wie beim Öffnen über einen Drehgriff verhält (also nicht auf die Lüften-Position, sondern auf die Geöffnet-Position fährt), dann kann man auch dort als Typ threestate auswählen. Für den Fall, dass jemand zwei einzelne Fensterkontakte hat - einen für gekippt und einen für geöffnet - dann muss man sich einen Dummy mit entsprechenden Notifies basteln, der einen einzelnen treestate-Kontakt vorgaukelt. Die Zustände, die abgefragt werden, lauten (Oo)pen, (Tt)ilted und (Cc)losed. Hat man andere Kontakte, die andere Zustände annehmen, dann muss man diese entweder per Notifies entsprechend auf Dummies abbilden oder man muss den kompletten Sourcecode in der Datei "99_myUtils_Shutter.pm" entsprechend bearbeiten und abändern. Dies würde aber dann bei einer Änderung meines Codes zum späteren Zeitpunkt wieder eure eigene Anpassung erfordern...

Im Fall der Nutzung eines Dummies wie auch bei Fensterkontakten einer anderen Marke muss man auf jeden Fall darauf achten, dass am Fensterkontakt bzw. am Dummy ein Attribut "subType" (ggf. dem Attribut "userattr" hinzufügen) vorhanden ist und dass dieses Attribut den Wert "threeStateSensor" hat. Dieses Attribut ist notwendig, damit der Code korrekt abgearbeitet werden kann. Ist es nicht vorhanden oder nicht korrekt gesetzt, so wird die Ausführung der Komfort-Steuerung (z.B. Aktionen beim Öffnen/Schließen von Fenstern) nicht reagieren!

Wichtiger Hinweis bei der Verwendung eines Drehgriff-Sensors
Schaut euch bitte die Einrichtung dieses Sensors nochmal an - insbesondere die "Hinweise zum Betrieb mit FHEM": https://wiki.fhem.de/wiki/HM-Sec-RHS_Funk-Fenster-Drehgriffkontakt#Hinweise_zum_Betrieb_mit_FHEM
Dort muss das Sendeverhalten "eventDlyTime" angepasst werden (z.B. auf 2s setzen). Ansonsten kommt es zu einem merkwürdigem Verhalten bei der Komfort-Steuerung, weil z.B. beim Drehen des Griffs von geschlossen auf gekippt auch der Zustand geöffnet durchlaufen wird und dementsprechend eine Reaktion hervorrufen wird.


Genauere Erklärung zur Zeitberechnung der ats für morgens und abends:
Mit der Einstellung "Astro" bei den Attributen "Auto_hoch" und "Auto_runter" erreicht man, dass genau zum Sonnenauf- bzw -untergang den Rollladen gefahren wird. Damit würde alle Rollladen exakt zum gleichen Zeitpunkt fahren und auch im Sommer morgens verdammt früh hoch und abends verdammt spät herunter gehen. Im Winter wäre es genau anders herum - morgens würde erst verdammt spät gefahren und abends wären die Schotten schon extrem früh dicht.

Um dieses Verhalten zu entschärfen, habe ich die Parameter Auto_Zeit_hoch_frueh, Auto_Zeit_hoch_spaet, Auto_Zeit_hoch_WE_Urlaub, Auto_Zeit_runter_frueh, Auto_Zeit_runter_spaet und noch zusätzlich Auto_Zufall_Minuten eingebaut.

Auto_Zeit_hoch_frueh: Damit kann man den Zeitpunkt eingeben, an dem frühestens der Rollladen morgens gefahren wird (auch wenn es auf Astro steht und der Sonnenaufgang viel früher ist). In der Einstellung für Auto_hoch gleich Zeit ist diese Zeit immer maßgebend (d.h. damit kann man das ganze Jahr zum gleichen Zeitpunkt fahren).

Auto_Zeit_hoch_spaet: Damit kann man den Zeitpunkt eingeben, an dem spätestens der Rollladen morgens gefahren wird (auch wenn es auf Astro steht und der Sonnenaufgang viel später ist).

Auto_Zeit_hoch_WE_Urlaub: Um diese Zeit wird an Wochenenden, Feiertagen und in den Ferien erst gefahren. Ein Urlaubskalender habe ich noch nicht implementiert. Das muss ich mir noch anschauen, wie ich das am einfachsten und besten realisiere.

Auto_Zeit_runter_frueh: Damit kann man den Zeitpunkt eingeben, an dem frühestens der Rollladen abends gefahren wird (auch wenn es auf Astro steht und der Sonnenuntergang viel früher ist).

Auto_Zeit_runter_spaet : Damit kann man den Zeitpunkt eingeben, an dem spätestens der Rollladen abends gefahren wird (auch wenn es auf Astro steht und der Sonnenuntergang viel später ist). In der Einstellung für Auto_runter gleich Zeit ist diese Zeit immer maßgebend (d.h. damit kann man das ganze Jahr zum gleichen Zeitpunkt fahren).

Auto_Zufall_Minuten: Hiermit kann man mehrere Dinge erreichen. Zum einen fahren durch Eingabe eines Wertes > 0 die ganzen Rollladen nicht gleichzeitig. Der angegebene Wert ist die maximale Zeit in Minuten, um die die berechnete Zeit vereinfacht gesagt nachher variiert. Bei mir steht dieses Attribut bei allen Rollladen auf dem Wert 15. Der zweite Effekt bei der Verwendung ist, dass die Reihenfolge der Rollladen jeden Tag unterschiedlich ist. Mal fährt der eine Rollladen früher, mal der andere.


Besonderheiten beim ROLLO-Modul

Grundsätzlich sei erstmal zu sagen, dass auch ein Mischbetrieb möglich sein sollte. Das heißt es können sowohl Homematic-Rollladen-Aktoren verbaut sein, als auch andere Aktoren, die über das ROLLO-Modul abgebildet werden. Aber wie die ganze Zeit schon gilt auch hier, dass der ganze Code sich noch im beta-Stadium befindet! Gerade der ROLLO-Teil ist recht neu und ich selber habe es nicht getestet.

Ihr müsst für die Nutzung mit dem ROLLO-Modul ein paar Dinge konfigurieren:
   - Am Aktor muss das Attribut Auto_Pos_Befehl auf position gesetzt werden
   - Im Attribut userReadings bitte folgendes eintragen: pct {100-ReadingsNum($name,'position',0)}
   - Im Attribut userattr bitte folgendes eintragen: subType
   - Im Attribut subType bitte folgendes eintragen: blindActuator
   - Das Attribut type von normal auf HomeKit umstellen. Dadurch dreht sich das Verhalten um und wird einigermaßen kompatibel zu meinem Code.
     Bedenkt dabei bitte - für den fall, dass ihr irgendwo Befehle zu Fahren der Rollladenhinterlegt habt: Hat man vorher "set <name> position 30" ausgeführt, so muss man nun den Befehl "set <name> position 70" schicken, um die gleiche Wirkung zu erziehlen...
   - Außerdem das Attribut "blockMode" an den ROLLO-Geräten bitte auf blocked setzen - dies bewirkt, dass bei eingeschaltetem Aussperrschutz der Rollladen nicht gefahren werden kann.




*** Installation ***

Zur Installation ist nun eigentlich nur noch der Befehl

{Auto_Rol_group_at()}

nötig. Ab nun werden nachts um 03:05Uhr automatisch die Neuberechnungen für die einzelenen Rollladen vorgenommen. Außerdem wird die Funktion automatisch beim Start von Fhem ausgeführt. Dies ist notwendig, weil die berechneten at nur temporär sind. Diese werden nicht nur nach der Ausführung, sondern auch bei einem Neustart des Systems gelöscht (weil sie nicht in der Config-Datei gespeichert werden).

Sollte man irgendwann an einem oder mehreren Rollladen-Aktoren z.B. Änderungen der Zeiten vornehmen, so kann man an dem erzeugten at "TimerErzeuger_Rol" (mit dem blauen Uhrensymbol) im Raum "Timer", Gruppe "at" einfach zur Neuberechnung den WebCmd-Button "execNow" drücken. Alle ggf. noch vorhandenen at (Raum Timer) und/oder notifys (siehe im Raum "Notify" in der Gruppe "Rollladen_Lueftenbenachrichtigung") werden automatisch gelöscht und neu angelegt.

Bitte nehmt zur Kenntnis, dass die Routine "Auto_Rol_group_at" bei jeder Ausführung (egal ob manuell, bei Neustart des Systems oder nachts per at um 03:05 Uhr) automatisch ein "save" ausführt. Damit werden auch die von euch selbst irgendwo anders gemachten Ändereungen, die noch nicht gespeichert sind, gespeichert!



*** Weitere Informationen ***

Sollten es Änderungen am Code oder an den Attributen und Informationen geben, so werde ich diese immer in diesem Post hier einpflegen und dies in einer Antwort ankündigen auf der aktuell letzten Seite. So finden die Leute, die meine Lösung ausprobieren wollen, immer den aktuellen Stand in diesem Post hier.

Sollte ein Logging in der allgemeinen Logdatei oder über Telegram Messenger gewünscht sein, so ist das auch möglich:


Meldet euch, wenn ich was vergessen haben sollte. Über positive und auch negative Kritik würde ich mich sehr freuen.
Ich hoffe, dass unsere Arbeit euch hilft eure Haussteuerung mit Fhem noch ein wenig smarter zu machen und wünsche euch viel Spaß beim Ausprobieren und experimentieren! ;)


Grüße
Cluni


Änderungen:
16.05.2018 ( v0.9.4.8 ):
               - Bug beseitigt im Zusammenhang mit Nachtschließen beim Schließen eines Fensters nach einer manuellen Aktion oder dem morgendlichen, automatischen Öffnen
                 Dies ist aber noch ungetestet und könnte Fehler enthalten.
23.02.2018 ( v0.9.4.7 ):
               - neue Routine: Rollladensteuerung_delete_all('delete_all')    ### ACHTUNG - experimentell und ungetestet ###
                 Löschroutine zur Löschung der gesamten Rollladensteuerung. Es werden alle zusätzlichen Attribute und Readings bei den Aktoren entfernt und es werden auch
                 alle der Rollladensteurung zugehörigen Dummies, Timer und Notifies gelöscht. Der Übergabeparameter "delete_all" muss dem Befehl zur Sicherheit mitgegeben
                werden. Fehlt dieser oder ist dieser falsch geschrieben, so passiert einfach nichts...
                Zum Löschen der gesamten Rollladensteuerung also den Befehl "{Rollladensteuerung_delete_all('delete_all')}" oben in die Befehlszeile eingeben.
                Sollten zusätzliche User-Attribute vorhanden sein, die von denen der Rollladensteuerung abweichen, so werden die kopletten User-Attribute in das Reading
                "userattr_bak" kopiert und so gesichert.
07.01.2018 ( v0.9.4.6 ):
               - Partymodus eingebaut: Am Rollladenaktor wird der Partymodus für diesen Rollladen aktiviert. Der Partymodus selber wird am globalen Dummy aktiviert. Alle anstehenden
                Fahrten werden dann nicht durchgeführt. Nach Deaktivierung des Partymodus werden die letzten Fahrbefehle der jeweiligen Aktoren spätestens nach 2 Minuten (technisch
                bedingte Wartezeit) nachgeholt.
09.12.2017 ( v0.9.4.5 ):
               - Frostschutz für morgens eingebaut: Im Dummy kann nun über das Attribut "Frostschutz_Temp" die Temperatur eingestellt werden. Am Rollladen selber kann man dann
                 über das Attribut "Auto_Frostschutz" von "aus" auf "morgens" wechseln.
17.11.2017 ( v0.9.4.3 ):
               - Kleinere Änderungen beim Logging (Nummern bei Telegram-Log in der Routine Auto_Rollladen_schliessen entfernt)
16.11.2017 ( v0.9.4.2 ):
               - Logging bei automatischen Öffnen bzw Schließen leicht angepasst. Mit mit dem Wert 1 auf dem Attribut Logfile_Oeffnen/Telegram_Oeffnen bzw
                Logfile_Schliessen/Telegram_Schliessen wird nun nur der Abschluss des kompletten Öffnens bzw Schließens gemeldet, nachdem der letzte Rollladen
                abgearbeitet wurde. Die Loglevel dieser Werte schieben sich also um eins nach hinten.
               - die Routine "Auto_Rol_create_dummies_and_attributes" wurde entfernt
               - neue Routine: Rollladensteuerung_create_update_global_dummy() - diese erzeugt den globalen Dummy "Rollladensteuerung" bzw. bringt die Attribute
                 auf den neusten Stand.  Ist ein Attribut bereits angelegt, so wird es nicht überschrieben (Ausnahme das Attribut "userattr")
               - neue Routine: Rollladensteuerung_update_device('[Name_des_Rollladen]) - diese bringt die User-Attribute auf den aktuellen Stand und belegt bestimmte
                 Attribute mit dem dafür vorgesehenen Default. Ist ein Attribut bereits angelegt, so wird es nicht überschrieben (Ausnahme das Attribut "userattr")
                Beispiel: Um den Rollladen mit dem Namen "ug_wz_Jal_rechts" (für z.b: Jalousie im Untergeschoß, Wohnzimmer, rechts) mit den Attributen zu versehen den Befehl
                "{Rollladensteuerung_update_device('ug_wz_Jal_rechts')}" in die Eingabezeile oben in fhem eingeben.
               - neue Routine: Rollladensteuerung_del_Timer_and_Dummies() - löscht alle momentan angelegten Rollladen-Timer, löscht das TimerErzeuger-at, löscht das Notify zur
                 Timer-Erzeugung bei Sytem-Start, überflüssige Dummies und gibt anschließend eine Liste der Rollläden aus, die durch eine aktivierte Rollladensteuerung gesteuert
                werden (nach einmaligem {Auto_Rol_group_at()} oben in der Befehlszeile)
               - neue Routine: Rollladensteuerung_update_group('[Gruppenname]', 'list_group'/'update_group')
                 Diese Routine erleichter das Setzen der Attribute der einzelnen Rollläden, wenn man einen einheitlichen Namenbeginn (wie bei früheren Versionen) hat. Bevor man
                diese Geräte automatisch updaten (bzw. initialisieren) lässt, kann man sich eine Liste der Geräte ausgeben lassen, die bei übergebenen Parameter 'update_group'
                bearbeitet würden. Hat man also (wie z.B. bei mir) einen einheitlichen Anfang der Namen (bei mir fangen die Namen mit "Rol." an - also z.B. "Rol.Bad"), dann kann
                man sich mit folgendem Befehl die Liste der Geräte anzeigen lassen:
                     {Rollladensteuerung_update_group('Rol\..*','list_group')}
                Sind nur alle gewünschten Geräte in dieser Liste, dann kann man mit folgendem Befehl diese Geräte updaten lassen:
                     {Rollladensteuerung_update_group('Rol\..*','update_group')}
                Mit diesem Befehl wird dann für jedes einzelene Gerät die Routine Rollladensteuerung_update_device('[Name_des_Rollladen]) aufgerufen und ausgeführt.
               - neue Routine: Rollladensteuerung_update_existing_group('list_group'/'update_group')
                 Diese Routine macht genau das selbe, wie die Routine "Rollladensteuerung_update_group". Sie ist aber erst nutzbar, wenn es bereits Geräte gibt, die das Attribut
                "Rollladensteuerung = ja" haben. Die Routine dient vorrangig zur Aktualisierung der User-Attribute bei neuen Versionen der Rollladensteuerung. Mit dem folgenden
                Befehl kann man sich die Liste der Rollladen ansehen, die bei Übergabe des Parameters 'update_group' aktualisiert würden:
                     {Rollladensteuerung_update_existing_group('list_group')}
                Und hier der eigentliche Befehl zur Aktualisierung:
                     {Rollladensteuerung_update_existing_group('update_group')}
13.10.2017 ( v0.9.3.22 ):
               - Ich habe die Steuerung umgebaut, so dass nun auf die Rollläden OHNE Namen (z.B. die Angabe von "Rol\..*") zugegriffen wird. Dazu habe ich ein neues Attribut "Rollladensteuerung"
                [nein/ja] in den Userattributen der einzelnen Rolladen hinzugefügt. Nur wenn dieses explizit auf ja gesetzt wird, wird der Rollladen auch bearbeitet.
               - Es gibt ein paar neue Userattribute (Automatik_Astro_Modus_morgens, Automatik_Astro_Modus_morgens_Horizont Automatik_Astro_Modus_abends, Automatik_Astro_Modus_abends_Horizont)
                beim Dummy, damit der Modus (REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON) für Sonnenauf- und -untergang eingestellt werden kann. Beim Modus "HORIZON" kann noch der Wert im jeweiligen
                Attribut eingestellt werden.
               - Behebung kleinerer Fehler...
10.10.2017 ( v0.9.3.21 ):
                   - zusätzliches Attribut "Rollladensteuerung:nein/ja" für die Aktoren eingefügt um die Erkennung daran fest zu machen (damit freie Namensgebung möglich wird)
               - zusätzliches Attribut "Automatik_Astro_Modus_morgens/abends" mit den möglichen Werten REAL,CIVIL,NAUTIC,ASTRONOMIC und HORIZON
                 für HORIZON gibt es eine weiteres Attribut "Automatik_Astro_Modus_morgens/abends_Horizont", wo man den zugehörigen Wert eintragen kann

14.09.2017 ( v0.9.3.16..19 ):
                   - beheben diverser kleiner Fehler (Mehrfachmeldungen bei Aussperrschutz, dass nach dem Schließen abgeschattet wird, Reihenfolge der Abarbeitung in der Komfortfunktion, ...)
17.08.2017 ( v0.9.3.15 ):
                   - beheben diverser kleiner Fehler
                   - Änderung der Abfrage nach [Oo]pen auf [Oo]pen.*
                   - um einen fälschlichen Eintrag einer manuellen Fahrt des Rollladens zu vermeiden, sollte das Attribut "event-on-change-reading" auf "motor" (bzw. beim ROLLO-Modul auf
                     "state") gesetzt werden (siehe Abschnitt "Attribute")
07.08.2017 ( v0.9.3.12 ):
                   - Großer Umbau im Blick auf Dummies - die Dummies für morgens, abends und Abschattung entfallen ab sofort. Die Sensoren (Temperatur, Twilight-Modul, Telegram-Bot) und
                     deren Readings können nun namentlich in diesem Dummy eingetragen werden.
                   - 5er-Schritte aus Komatibilitätsgründen zum ROLLO-Modul aus den auswählbaren Positionen entfernt (ROLLO-Rollladen ignorieren Zwischenschritte)
                   - Routine Auto_Rol_create_dummies_and_attributes entwas umgebaut und mit weiterem Aufruf-Parameter versehen. Es werden automatisch die alten Dummies (für morgens,
                     abends und Abschattung) gelöscht und das neue große Dummy angelegt und initialisiert.
                   - neues Attribut Auto_Pos_nach_KomfortOeffnen - dieses Attribut ist z.B. für Balkontüren sinnvoll. Beispiel: Rollladen ist geschlossen und Tür zum Balkon wird geöffnet
                      => Rollladen fährt auf geöffnet Position. Nun geht man raus und zieht die Tür zu => der Rollladen würde sich wieder schließen und man wäre ausgesperrt. Der default
                        für dieses Attribut ist -1. Damit fährt der Rollladen wie gewohnt in die vorherige Position. Stellt man das Attribut auf -2, dann bleibt der Rollladen nach Schließen
                        der Tür auf der aktuellen Position. Stellt man einen anderen Wert (z.B. 50) ein, so wird dieser nach dem Schließen der Tür angefahren.
                   - Behebung mehrerer kleiner Fehler
24.07.2017 ( v0.9.2.7 ):
                   - Fehler beim Lesen des neuen Attributs Auto_geschlossen_Pos behoben (habe statt dem Attribut versucht ein Reading zu lesen...)
24.07.2017 ( v0.9.2.6 ):
                   - ROLLO-Modul wurde intigriert (noch beta-Stadium)
                     - Dazu wurde ein neues Attribut hinzugefügt: Auto_Pos_Befehl - hier kann der Befehl übergeben werden (bei Homematic nicht notwendig) - für ROLLO-Modul hier "position"
                       (natürlich ohne die Anführungszeichen) eintragen.
                     - Bitte bei den ROLLO-Geräten im Attribut userReadings bitte folgendes eintragen:
                       pct {100-ReadingsNum($name,'position',0)}
                     - Bitte bei den ROLLO-Geräten  das Attribut type von normal auf HomeKit umstellen. Dadurch dreht sich das Verhalten um und wird einigermaßen kompatibel zu meinem Code.
                       Hat man vorher also "set <name> position 30" ausgeführt, so muss man nun den Befehl "set <name> position 70" schicken, um die gleiche Wirkung zu erziehlen...
                     - Außerdem das Attribut "blockMode" an den ROLLO-Geräten bitte auf blocked setzen
                   - neues Attribut Auto_geschlossen_Pos - hier kann der Wert hinterlegt werden, auf den geschlossen werden soll
19.07.2017 ( v0.9.1.8 ):
                   - Kleiner Fehler in der Komfortfunktion behoben - es wurde ein Fahr-Befehl in einer bestimmten Situation beim Schließen eines Fensters abgesetzt, obwohl der Rollladen bereits
                     auf der korrekten Position war
                   - Logging etwas angepasst in der Komfortfunktion - bei Telegram_Log_Komfort = 1 sollte nur noch bei wirklichen Fahrten des Rollos geloggt werden
                   - Die Modulversionsangabe in den Dummies wird nun auch in der Komfortfunktion und in der Abschattungsfunktion gesetzt. Die aktuelle Version wird im Normalfall also recht zügig
                     auf den aktuellen Stand gebracht und nicht erst nachts bei der Neuberechnung der Timer.
17.07.2017 ( v0.9.1.6 ):
                   - Behebt diverse kleinere Fehler (nichts, was zwingend ein Update nötig machen würde...)
14.07.2017 ( v0.9.1.3 ):
                   - Logging über Telegram Messenger in der Routine "Auto_Fenster_Komfort" eingebaut (war noch nicht drin). Steuerung über das neue Attribut "Telegram_Log_Komfort" im Dummy
                     "Rollladen.Automatik.morgens"
                   - Der Telegram Bot kann nun auch einen anderen Namen als "teleBot" haben. Bitte im neuen Attribut "Telegram_Bot_Name" im Dummy "Rollladen.Automatik.morgens" eintragen
14.07.2017 ( v0.9.1.2 ):
                   - Kleinere Änderung - alle Umlaute aus den Loggings entfernt
11.07.2017: Versionsnummer eingepflegt. Diese ist an folgenden Stellen zu finden
                   - Ganz oben im Header der Datei.
                   - in den drei Dummies "Rollladen.Automatik.morgens", "Rollladen.Automatik.abends" und "Rollladen.Automatik.Abschattung" - hier wird die aktuelle Versionsnummer hinkopiert,
                     sobald die Timer neu angelegt werden.
10.07.2017: Datei 99_myUtils_Shutter.pm geändert - neue Routine "Auto_Rol_create_dummies_and_attributes". Diese wird über: {Auto_Rol_create_dummies_and_attributes("Rol")}
                   (in diesem Beispiel fangen alle Rollladennamen mit "Rol." an) in der Eingabezeile aufgerufen. Es werden automatisch die Dummies "Automatik morgens", "Automatik abends"
                   und "Automatik Abschattung" angelegt. Außerdem werden die meisten Attribute für die Rollladenbereits vordefiniert.

majestro84

Super danke für deine mühen. Werde die Steuerung bei Gelegenheit mal ausprobieren und auf die Fibaro Aktoren anpassen falls nötig . Nochmal vielen Dank spart mir eine Menge programmier Arbeit.[emoji28]

Gesendet von meinem D5803 mit Tapatalk

Server: Fujitsu ESPRIMO Q920 - aktuellen FHEM-Docker Image:Z-Wave (RollerShutter,DoorWindow,Socket,PIR,....) | ENIGMA2 | EGPM2LAN | BLE-Tag(PRESENCE) | HUE | alexa-fhem | Shelly | MQTT2
1.Pi-Zero:Viessmann(optolink) mit 89_VCONTROL300.pm
2.Pi3 Dongle Server: Zigbee2MQTT(CC1352P-2), Z-Wave(UZB1), BT

Chris8888

Hallo Bernd, Hallo Frini,

ich habe das eben installiert bzw von der alten Version upgedatet und die Attr angepasst.
Hat Problemlos geklappt.

Die Tests laufen an einer Terrassentüre.
Ich berichte!

Besten Dnak vorab für euer Engagement! TOP!

Viele Grüße
Christian
FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

Cluni

Zitat von: Chris8888 am 06 Juli 2017, 22:28:03
ich habe das eben installiert bzw von der alten Version upgedatet und die Attr angepasst.
Hat Problemlos geklappt.

Das hört sich ja schon mal gut an!


Zitat von: Chris8888 am 06 Juli 2017, 22:28:03
Die Tests laufen an einer Terrassentüre.

Bedenke bitte, dass das Attribut "Auto_Drehgriffkontakt" nicht mehr benutzt wird. Trage alle vorhandenen Kontakte unter "Auto_Fensterkontakt" ein und setze das Attribut "Auto_Fensterkontakttyp" bei "normalen" Fensterkontakten auf "twostate" und bei Drehgriffkontakten auf "threestate". Einzige Ausnahme hat man bei Verwendung normaler Fensterkontakte, wenn man dort aus irgendeinem Grund gerne hätte, dass der Rollladen beim Öffnen des Fensters oder der Tür auf die Öffnen- statt auf die Lüften-Position fahren soll (z.B. bei einer Terrassentür mit normalem Kontakt). Dort muss man dann "threestate" auswählen.


Zitat von: Chris8888 am 06 Juli 2017, 22:28:03
Ich berichte!
Besten Dnak vorab für euer Engagement! TOP!

Das ist doch Ehrensache - ich habe ja auch einiges von anderen gelernt und benutze ja auch Fhem - das und die ganzen Module würde es ja auch nicht geben, wenn das nicht irgendwelche Leute programmiert und zur Verfügung gestellt hätten... ;)

Gruß Cluni

Chris8888

#4
Zitat von: Cluni am 07 Juli 2017, 08:54:30
Bedenke bitte, dass das Attribut "Auto_Drehgriffkontakt" nicht mehr benutzt wird. Trage alle vorhandenen Kontakte unter "Auto_Fensterkontakt" ein und setze das Attribut "Auto_Fensterkontakttyp" bei "normalen" Fensterkontakten auf "twostate" und bei Drehgriffkontakten auf "threestate". Einzige Ausnahme hat man bei Verwendung normaler Fensterkontakte, wenn man dort aus irgendeinem Grund gerne hätte, dass der Rollladen beim Öffnen des Fensters oder der Tür auf die Öffnen- statt auf die Lüften-Position fahren soll (z.B. bei einer Terrassentür mit normalem Kontakt). Dort muss man dann "threestate" auswählen.
Genau so habe ich das auch verstanden und gemacht. An der Türe habe ich einen normalen Türkontakt, konfiguriert als Threestate um eine automatische Öffnung bei Türöffnung zu bekommen.

Heute war es abwechselt sonnig und schattig und die Beschattungsfunktion hatte gut zu tun. :-)
Hat bisher tadellos gearbeitet!

Eine Kleinigkeit:
Bei Log 1 für den TeleBot kommt keine Meldung über das Öffnen der Rollos. Nur Schließung und Vormerkungen...
Dies hier fehlt:
====================== Automatik-Abschattung ======================
TestRolloTerassenTuerWZ --- wird nicht mehr abgeschattet ==> zur�ck zu 100 %
==================== Automatik-Abschattung Ende ===================

und Folgendes:
Im Beschattungsmodus wird bei Öffnung der Türe das Rollo nicht hochgefahren, trotz:
Auto_Lueften_POS 100
Auto_Luft_Fenster_offen ja
Auto_Fensterkontakttyp threestate
   
Das war mit der alten Version nicht so, oder?

VG
Christian
FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

Franz Tenbrock

#5
Hallo
danke das du einen neuen Thread aufgemacht hast,  ;)
versuche mich gerade daran
Hab leider mit der deutschen Rechtschreibung so meine Differenzen.
Hab gerade im Duden nachgeschaut.
Tatsächlich Rollladen, Inflation der l
Schreibweise ist ja meist wichtig ?!

ist mir aufgefallen als ich alles gespeichert hatte und dann Rolladen und Rollladen hatte.

so alles umbenannt

bisher hab ich das anders gemacht, kannst du kurz einfach ein Beispiel mit angeben, für deine Stadt zB ich denke dann ist es schnell für alle Anfänger verständlich wie das aussehen kann/muss

define Sonnenposition dummy
   define ntfy.sunpos notify (T_N_Wetter:azimuth.*) set Sonnenposition $EVTPART1      <== anpassen auf eigene Gegebenheiten!
   define Sonnenhoehe dummy
   define ntfy.sunheight notify (T_N_Wetter:elevation.*) set Sonnenhoehe $EVTPART1      <== anpassen auf eigene Gegebenheiten!efine Sonnenposition dummy


Anwesenheitserkennung hab ich nicht lass ich einfach weg...

https://wiki.fhem.de/wiki/Twilight
da muss ich erst mal was lesen , und dann wohl auch definieren

so nun für Waltrop
define T_N_Wetter twilight 51.6216271 7.4030797 1 703843

T_N_Wetter  richtig für dein Modul ??


"Bitte kopiert nicht die Beschreibungen inkl der # mit!"
ich kann also nicht den Code wie sonst üblich komplett übernehmen ?!

nur das was man benötigt ??

so bin nun 1 Stunde dran, alles soweit geklappt, aber schon extrem umfangreich, was ja wenn man alles verstanden hat sehr smart sein wird ( großes Lob, habt ja scheinbar alles berücksichtigt. )

hab aber noch nciht raus wie ich die Automatik morgen früh auf 8 Uhr einstelle
Automatik ist an und das rEading zeigt mir das morgen um 6:30 gefahrne werden soll,. Readings mit allen Rolladen hab ich auch schon gefunden.
so erst mal Abendbrot
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Chris8888

Hi,

liegt vermutlich hier:
Auto_Zeit_hoch_WE_Urlaub oder Auto_hoch oder Auto_Offset_Minuten_morgens
noch nicht gesetzt.

Das dauert etwas bis man alle Attr gepflegt hat.. ;-)

VG
Christian
FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

Franz Tenbrock

muss ich das Zeile für Zeile einfügen bis jeweils zur # ?

attr Rol\..* Auto_Modus_hoch immer # Modus für das automatische Öffnen (aus, immer oder nur bei Abwesenheit)
attr Rol\..* Auto_Modus_runter immer # Modus für das automatische Schließen (aus, immer oder nur bei Abwesenheit)
attr Rol\..* Auto_hoch aus # Modus für das automatische Öffnen (feste Zeit oder Astro)
attr Rol\..* Auto_runter aus # Modus für das automatische Schließen (feste Zeit oder Astro)
attr Rol\..* Auto_Lueften_Pos 30 # Position des Rollladen, fürs automatische lüften
attr Rol\..* Auto_offen_Pos 100 # Position des Rollladen, wenn automatisch geöffnet wird
attr Rol\..* Auto_Zeit_hoch_frueh 07:30:00 # früheste Öffnen-Zeit an Wochentagen
attr Rol\..* Auto_Zeit_hoch_spaet 09:00:00 # späteste Öffnen-Zeit an Wochentagen
attr Rol\..* Auto_Zeit_hoch_WE_Urlaub 09:30:00 # früheste Öffnen-Zeit an Wochenenden/Urlaub/Ferien/Feiertagen
attr Rol\..* Auto_Zeit_runter_frueh 16:30:00 # früheste Schließen-Zeit
attr Rol\..* Auto_Zeit_runter_spaet 21:30:00 # späteste Schließen-Zeit
attr Rol\..* Auto_Luft_Fenster_offen ja # auf Lüften, wenn Fenster gekippt/geöffnet wird und aktuelle Position unterhalb der Lüften-Position
attr Rol\..* Auto_Aussperrschutz ja # Aussperrschutz ja/nein für diese Tür bzw dieses Fenster
attr Rol\..* Auto_Offset_Minuten_morgens 0 # Offset Rollladen morgens
attr Rol\..* Auto_Offset_Minuten_abends 0 # Offset Rollladen abends


attr Rol\..* Auto_Abschattung_Pos 30 # Position des Rollladen, für die automatische Abschattung
attr Rol\..* Auto_Himmelsrichtung 178 # Position in Grad, auf der das Fenster liegt - genau Osten wäre 90, Süden 180 und Westen 270 - wird bei der Abschattung berücksichtigt
attr Rol\..* Auto_Abschattung_Winkel_links 85 # Vorlaufwinkel im Bezug zum Fenster, ab wann abgeschattet wird. Beispiel: Fenster 180° - 85° ==> ab Sonnenpos. 95° wird abgeschattet
attr Rol\..* Auto_Abschattung_Winkel_rechts 85 # Nachlaufwinkel im Bezug zum Fenster, bis wann abgeschattet wird. Beispiel: Fenster 180° + 85° ==> bis Sonnenpos. 265° wird abgeschattet
attr Rol\..* Auto_Abschattung nein # Modus der automatischen Abschattung (ja,nein,verspaetet,bei_Abwesenheit,bei_Anwesenheit)
attr Rol\..* Auto_Abschattung_Wartezeit 20 # Wartezeit nach der Über-/Unterschreitung, bis wieder geprüft und ggf. gefahren wird
attr Rol\..* Auto_Abschattung_Helligkeitssensor Helligkeitssensor_Sued # diesem Rollladen zugeordneter Helligkeitssensor
attr Rol\..* Auto_Abschattung_Schwelle_sonnig 60000 # obere Schwelle für die Helligkeit
attr Rol\..* Auto_Abschattung_Schwelle_wolkig 40000 # untere Schwelle für die Helligkeit
attr Rol\..* Auto_Abschattung_min_Temp_aussen 18 # Mindest-Außentemperatur für die Abschattung. Ist die Temperatur darunter, wird nicht abgeschattet
attr Rol\..* Auto_Abschattung_Sperrzeit_nach_manuell 20 # Sperrzeit nach manueller Rollladenfahrt
attr Rol\..* Auto_Abschattung_Sperrzeit_vor_Nacht 20 # Sperrzeit vor dem automatischen Schließen am Abend, damit der Rollladen nicht geöffnet und ein paar Minuten später eh ganz geschlossen wird
attr Rol\..* Auto_Abschattung_Pos_nach_Abschattung -1 # Position des Rollladen, wenn Abschatten beendet wird. Bei -1 wird die vorherige Position angefahren
attr Rol\..* Auto_Fensterkontakttyp twostate # Typ des verwendeten Fensterkontakts: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt)



und dann bei jedem Fenster definieren ?
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Chris8888

Ich habe das für meine Testtüre so gemacht...:-)
Einfach alle UseAttr in der Liste abarbeiten....
FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

Franz Tenbrock

#9
dann auf ins copy paste.... ;)
bisher hat ja alles auf Anhieb geklappt


attr Rol.Bad Auto_Fensterkontakt Sensor.Bad
attr Rol.Bad Auto_Fensterkontakttyp twostate


das hab ich nun kapiert.
Einfach den Rolladen aufrufen und dann die attr auswählen und den passenden Sensor zuordnen
einfacher wird es wenn man die Bezeichnung der Sensoren übernimmt, geht ja mit rename recht schnell.

jetzt hab ich also die TürFenstersensoren mit den Rolladen verknüpft.
mal schauen wo ich was wie einstellen muss, die früh und spät Zeiten hab ich angepasst
nun noch hinter das Prnzip der Automatik kommen.

Ich glaub das ist richtig cool wenn man es verstanden hat, etwas Arbeit zwar, ein paar kleine Hinweise  ( zb Definition Twillight ) im 1.Post noch dazu und dann ist es auch was für Anfänger  ;)

hier hab ich wohl noch ein Problemchen:
Rollladen.Automatik.morgens: unknown attribute genericDeviceType. Type 'attr Rollladen.Automatik.morgens ?' for a detailed list.
Rollladen.Automatik.abends: unknown attribute genericDeviceType. Type 'attr Rollladen.Automatik.abends ?' for a detailed list.


den timer und exec now hab ich nun auch gefunden und ausprobiert    8)
und schon ändern sich die Zeiten....

wo kann ich Einstellen wieviel Minuten vor oder nach Sonnenuntergang was passieren soll

das reicht für heute

klasse    :D
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Frini

Zitat von: Chris8888 am 07 Juli 2017, 15:50:56
Genau so habe ich das auch verstanden und gemacht. An der Türe habe ich einen normalen Türkontakt, konfiguriert als Threestate um eine automatische Öffnung bei Türöffnung zu bekommen.

Heute war es abwechselt sonnig und schattig und die Beschattungsfunktion hatte gut zu tun. :-)
Hat bisher tadellos gearbeitet!

Eine Kleinigkeit:
Bei Log 1 für den TeleBot kommt keine Meldung über das Öffnen der Rollos. Nur Schließung und Vormerkungen...
Dies hier fehlt:
====================== Automatik-Abschattung ======================
TestRolloTerassenTuerWZ --- wird nicht mehr abgeschattet ==> zur�ck zu 100 %
==================== Automatik-Abschattung Ende ===================

und Folgendes:
Im Beschattungsmodus wird bei Öffnung der Türe das Rollo nicht hochgefahren, trotz:
Auto_Lueften_POS 100
Auto_Luft_Fenster_offen ja
Auto_Fensterkontakttyp threestate
   
Das war mit der alten Version nicht so, oder?

VG
Christian
Wenn du den Fensterkontakt als threestate definierst um ein öffnen der Rolllade zu erhalten. Musst du dazugehörig auch Auto_Geoeffnet_Pos auf 100 setzten.
Bei mir läuft das ganze jetzt mit einem sehr sehr hohen WAF Faktor. Kein Meckern oder ähnliches.

Franz Tenbrock

klasse Automatik funktioniert dank der Hinweise im letzten Post. 
einzig die Vielzahl an Möglichkeiten macht es am Anfang etwas schwer das Zusammenspiel zu checken..
aber es wird
THx
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Chris8888

#12
Zitat von: Frini am 08 Juli 2017, 01:39:35
Wenn du den Fensterkontakt als threestate definierst um ein öffnen der Rolllade zu erhalten. Musst du dazugehörig auch Auto_Geoeffnet_Pos auf 100 setzten.
Bei mir läuft das ganze jetzt mit einem sehr sehr hohen WAF Faktor. Kein Meckern oder ähnliches.

das war es....da habe ich doch glatt ein Attribut übersehen...DANKE!

Update:
Zu früh gefreut. Es bleibt leider so. Sobald die Beschattung aktiv ist, wird bei öffnen der Türe das Rollo nicht hoch gefahren. Die beiden Notifies sind "inactive". Gibt es dazu noch weitere Attribute? 

VG
Christian
FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

Franz Tenbrock

#13
ich hatte das attr auto_hoch Astro Civil   gerade erst gefunden,
wo kann man nun die Zeitverschiebung zum Sonnenuntergang einstellen ?
"
Beschrieben schon. Ich verstehe zB das hier nicht:
attr Rol\..* Auto_Offset_Minuten_morgens 0            # Offset Rollladen morgens
attr Rol\..* Auto_Offset_Minuten_abends 0            # Offset Rollladen abends
Was bewirkt das? Eine Verschiebung um X Min?
"

hatte ich ausprobiert, aber keine Veränderung bemerkt wenn ich 60 zb eingebe, sind doch 60 Minuten.

es passiert doch was
aber in der Übersicht werden die Zeitne noch nciht angezeigt, daher hab ich es erst nicht gesehen, anbei ein Snapshot
ich hatte
set TimerErzeuger_Rol  execnow
ausgeführt
die Zeiten bei den Rollladen ändern sich auch wie gewünscht  aber in der Übersicht stehen noch die alten Zeiten

nach kurzer Zeit werden Sie dann doch geändert, hatte mich aber beim testen irritiert udn ich dachte es klappt nicht

Sorry

ich werde noch etwas von den Möglichkeiten erschlangen, ist halt alles neu für mich
aber eher positiv auffassen!

man muss damit einfach nur mal spielen, Zeiten ändern etc.
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

mrfloppy

#14
Habe alles nach Anleitung eingetragen.
Jedoch ich bekomme keine Timer oder Rollladen angezeigt mit den Uhrzeiten.

Was habe ich noch vergessen einzutragen?
Ev möglich Autoschliessen mit Lichtsensor? Wenn zb 100 Lux für 5 min.?

EDIT: OK lesen sollte man können, ist ja für "HOMEMATIC Rollladen" gemacht.

LG Thomas
RaspiMatic, RFXtrx433 E USB, Div. Thermostate, CUL433, Fhemduino, Signalduino, Temp/luftfeuchesensoren,Fensterkontakte,Intertechno Schalter,....... HM-IP