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

Dann weiß ich woran es wahrscheinlich liegt. Die Drehgriff-Sensoren senden SOFORT den neuen Status. Wenn du also von geschlossen auf Kipp gehst, sendet er dazwischen noch ein offen.

https://wiki.fhem.de/wiki/HM-Sec-RHS_Funk-Fenster-Drehgriffkontakt#Hinweise_zum_Betrieb_mit_FHEM

Ändere mal die eventDlyTime  laut der Anleitung auf 2s. Dann sollte das gehen. Dann wird der neue Zustand erst nach 2 s gesendet.

Cluni


coolice

Das hab ich generell so. Daran kann es nicht liegen


Gesendet von iPhone mit Tapatalk

Cluni


HoTi

#559
Zitat von: Cluni am 24 Januar 2018, 08:40:14
Mach mal bitte ein List von diesem Rollladen. Und stell mal bitte im globalen Dummy das Attribut "Logfile_Abschattung" auf 2 und "Logfile_Komfort" auf 3, damit man was sieht, woher die Befehle kommen.

Für mich sieht es so aus, als würden da Befehle über die Komfort-Funktion kommen. Hast du einen Fenstersensor verbaut? Wenn ja - hast du dort das Attribut "event-on-change-reading" gesetzt? Mach bitte auch mal ein List von diesem Fenstersensor.

Hallo Cluni,

hier der List vom Rollo. Ja ich habe ein Fenstersensor, diesen hatte ich bereits in verdacht und habe ihn raus genommen. Leider habe ich das verhalten immer noch.

Rollo:
Internals:
   CHANGED
   NAME       Rol.Schlafzimmer
   NR         1117
   STATE      open
   TYPE       ROLLO
   stoptime   1516819812
   READINGS:
     2018-01-24 03:05:02   Automatik_Abschatten_Ende_vorgemerkt 0
     2018-01-24 03:05:02   Automatik_Abschatten_vorgemerkt 0
     2018-01-24 03:05:02   Automatik_Abschattung_Bereich -5...165
     2018-01-24 03:05:02   Automatik_Abschattung_Sperrzeitpunkt 00:00:00
     2018-01-24 03:05:02   Automatik_Abschattung_Zaehler_hoch 0
     2018-01-24 03:05:02   Automatik_Abschattung_Zaehler_hoch_gestern 0
     2018-01-24 03:05:02   Automatik_Abschattung_Zaehler_hoch_vorgestern 0
     2018-01-24 03:05:02   Automatik_Abschattung_Zaehler_runter 0
     2018-01-24 03:05:02   Automatik_Abschattung_Zaehler_runter_gestern 0
     2018-01-24 03:05:02   Automatik_Abschattung_Zaehler_runter_vorgestern 0
     2018-01-24 03:05:02   Automatik_Abschattung_letzte_Uhrzeit 00:00:00
     2018-01-24 19:50:11   Automatik_Aussperrschutz --- aus ---
     2018-01-24 03:05:02   Automatik_Modus_hoch immer
     2018-01-24 03:05:02   Automatik_Modus_runter immer
     2018-01-24 17:16:07   Automatik_Nachtschliessen 1
     2018-01-24 03:05:02   Automatik_Pos_vor_Abschattung -1
     2018-01-24 03:05:02   Automatik_Pos_vor_Geoeffnet -1
     2018-01-24 03:05:02   Automatik_Pos_vor_Lueften -1
     2018-01-23 06:58:10   Automatik_automatische_Fahrt 1
     2018-01-24 03:05:02   Automatik_hoch_Zeit 06:58:42
     2018-01-24 03:05:02   Automatik_in_Abschattung 0
     2018-01-24 03:05:03   Automatik_runter_Zeit 17:16:07
     2018-01-23 06:58:10   command         position-0
     2018-01-23 06:58:10   desired_position 0
     2018-01-24 19:50:11   drive-type      modul
     2018-01-24 19:50:12   homekit_pos     100
     2018-01-24 19:50:11   last_drive      drive-up
     2018-01-24 19:50:12   pct             100
     2018-01-24 19:50:12   position        0
     2018-01-24 19:50:12   state           open
Attributes:
   Auto_Abschattung nein
   Auto_Abschattung_Helligkeits_Reading brightness
   Auto_Abschattung_Helligkeitssensor Helligkeitssensor_Sued
   Auto_Abschattung_Pos 30
   Auto_Abschattung_Pos_nach_Abschattung -1
   Auto_Abschattung_Schwelle_sonnig 60000
   Auto_Abschattung_Schwelle_wolkig 40000
   Auto_Abschattung_Sperrzeit_nach_manuell 20
   Auto_Abschattung_Sperrzeit_vor_Nacht 20
   Auto_Abschattung_Wartezeit 20
   Auto_Abschattung_Winkel_links 85
   Auto_Abschattung_Winkel_rechts 85
   Auto_Abschattung_min_Temp_aussen 18
   Auto_Aussperrschutz nein
   Auto_Fensterkontakt 0
   Auto_Fensterkontakttyp twostate
   Auto_Frostschutz aus
   Auto_Gaestezimmer nein
   Auto_Geoeffnet_Pos 100
   Auto_Himmelsrichtung 80
   Auto_Lueften_Pos 30
   Auto_Luft_Fenster_offen nein
   Auto_Modus_hoch immer
   Auto_Modus_runter immer
   Auto_Offset_Minuten_abends 0
   Auto_Offset_Minuten_morgens 0
   Auto_Pos_Befehl position
   Auto_Pos_nach_KomfortOeffnen -1
   Auto_Zeit_hoch_WE_Urlaub 08:30:00
   Auto_Zeit_hoch_frueh 06:30:00
   Auto_Zeit_hoch_spaet 07:00:00
   Auto_Zeit_runter_frueh 16:30:00
   Auto_Zeit_runter_spaet 20:30:00
   Auto_Zufall_Minuten 2
   Auto_geschlossen_Pos 20
   Auto_hoch  Astro
   Auto_offen_Pos 100
   Auto_runter Astro
   Rollladensteuerung ja
   autoStop   0
   blockMode  blocked
   commandDown set OG_sz_RO_mi_RUNTER on
   commandDown2 set OG_sz_RO_mi_HOCH off
   commandStopDown set OG_sz_RO_mi_RUNTER off
   commandStopUp set OG_sz_RO_mi_HOCH off
   commandUp  set OG_sz_RO_mi_HOCH on
   commandUp2 set OG_sz_RO_mi_RUNTER off
   devStateIcon open:fts_shutter_10:closed closed:fts_shutter_100:open half:fts_shutter_50:closed drive-up:fts_shutter_up@red:stop drive-down:fts_shutter_down@red:stop position-100:fts_shutter_10:open position-90:fts_shutter_10:closed position-80:fts_shutter_20:closed position-70:fts_shutter_30:closed position-60:fts_shutter_40:closed position-50:fts_shutter_50:closed position-40:fts_shutter_60:open position-30:fts_shutter_70:open position-20:fts_shutter_80:open position-10:fts_shutter_90:open position-0:fts_shutter_100:closed
   event-on-change-reading state
   excessBottom 1
   excessTop  1
   resetTime  0
   room       Rollos
   secondsDown 26
   secondsUp  28
   subType    blindActuator
   switchTime 1
   type       HomeKit
   userReadings pct {100-ReadingsNum($name,'position',0)}
   userattr   Auto_Modus_hoch:bei_Abwesenheit,bei_Anwesenheit,immer,aus Auto_Modus_runter:bei_Abwesenheit,bei_Anwesenheit,immer,aus Auto_hoch:Zeit,Astro Auto_runter:Zeit,Astro Auto_Abschattung_Pos:10,20,30,40,50,60,70,80,90,100 Auto_Abschattung_Pos_nach_Abschattung:-1,0,10,20,30,40,50,60,70,80,90,100 Auto_Lueften_Pos:10,20,30,40,50,60,70,80,90,100 Auto_offen_Pos:10,20,30,40,50,60,70,80,90,100 Auto_Himmelsrichtung Auto_Abschattung:ja,nein,verspaetet,bei_Abwesenheit,bei_Anwesenheit Auto_Zeit_hoch_frueh Auto_Zeit_hoch_spaet Auto_Zeit_hoch_WE_Urlaub Auto_Zeit_runter_frueh Auto_Zeit_runter_spaet Auto_Zufall_Minuten Auto_Fensterkontakt Auto_Luft_Fenster_offen:ja,nein Auto_Aussperrschutz:ja,nein Auto_Geoeffnet_Pos:10,20,30,40,50,60,70,80,90,100 Auto_Abschattung_Winkel_links:0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90 Auto_Abschattung_Winkel_rechts:0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90 Auto_Abschattung_Helligkeitssensor Auto_Abschattung_Helligkeits_Reading Auto_Abschattung_Schwelle_sonnig Auto_Abschattung_Schwelle_wolkig Auto_Abschattung_Wartezeit Auto_Abschattung_min_elevation Auto_Abschattung_min_Temp_aussen Auto_Abschattung_Sperrzeit_nach_manuell Auto_Offset_Minuten_morgens Auto_Offset_Minuten_abends Auto_Abschattung_Sperrzeit_vor_Nacht Auto_Abschattung_schnell_oeffnen:nein,ja Auto_Abschattung_schnell_schliessen:nein,ja Auto_Fensterkontakttyp:twostate,threestate Auto_Pos_Befehl Auto_geschlossen_Pos Auto_Gaestezimmer:nein,ja Auto_Pos_nach_KomfortOeffnen:-2,-1,0,10,20,30,40,50,60,70,80,90,100 Rollladensteuerung:nein,ja Auto_Frostschutz:aus,morgens Auto_Partymodus:ja,nein
   webCmd     open:closed:half:stop:position


Fenster:

Internals:
   DEF        37A867
   IODev      hmusb
   LASTInputDev hmusb
   MSGCNT     1137
   NAME       OG_sz_TK_mi
   NOTIFYDEV  global
   NR         496
   NTFY_ORDER 50-OG_sz_TK_mi
   STATE      closed
   TYPE       CUL_HM
   hmusb_MSGCNT 1137
   hmusb_RAWMSG E37A867,0000,D5A6F624,FF,FFBD,06A61037A8672516B706010000
   hmusb_RSSI -67
   hmusb_TIME 2018-01-24 19:50:11
   lastMsg    No:06 - t:10 s:37A867 d:2516B7 06010000
   protLastRcv 2018-01-24 19:50:11
   protSnd    1137 last_at:2018-01-24 19:50:11
   protState  CMDs_done
   rssi_at_hmusb max:-61 avg:-68.86 cnt:1137 min:-87 lst:-67
   READINGS:
     2018-01-24 18:11:29   Activity        alive
     2018-01-22 03:05:02   Automatik_Rollladen Rol.Schlafzimmer
     2016-10-24 12:06:23   D-firmware      1.0
     2016-10-24 12:06:23   D-serialNr      MEQ0286883
     2016-10-24 22:07:38   PairedTo        0x2516B7
     2016-10-24 22:07:38   R-cyclicInfoMsg on
     2016-10-24 22:07:39   R-eventDlyTime  0 s
     2016-10-24 22:07:38   R-pairCentral   0x2516B7
     2016-10-24 22:07:38   R-sabotageMsg   on
     2016-10-24 22:07:39   R-sign          on
     2016-10-24 22:07:38   RegL_00.        02:01 09:01 0A:25 0B:16 0C:B7 10:01 14:06 00:00
     2016-10-24 22:07:38   RegL_01.        08:01 20:9C 21:00 30:06 00:00
     2018-01-24 19:50:11   alive           yes
     2018-01-24 19:50:11   battery         ok
     2018-01-24 19:50:11   contact         closed (to vccu)
     2018-01-24 19:50:11   recentStateType info
     2018-01-24 19:50:11   sabotageError   off
     2018-01-24 19:50:11   state           closed
     2018-01-24 18:45:18   trigger_cnt     41
   helper:
     HM_CMDNR   6
     mId        00C7
     rxType     28
     supp_Pair_Rep 0
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +37A867,00,00,00
       nextSend   1516819811.80459
       rxt        2
       vccu       vccu
       p:
         37A867
         00
         00
         00
       prefIO:
         hmusb
     mRssi:
       mNo        06
       io:
         hmusb      -65
     prt:
       bErr       0
       sProc      0
       sleeping   0
       rspWait:
     q:
       qReqConf
       qReqStat
     role:
       chn        1
       dev        1
     rpt:
       IO         hmusb
       flg        A
       ts         1516819811.71322
       ack:
         HASH(0x384f8d8)
         0680022516B737A86700
     rssi:
       at_hmusb:
         avg        -68.8654353562007
         cnt        1137
         lst        -67
         max        -61
         min        -87
     tmpl:
Attributes:
   IODev      hmusb
   IOgrp      vccu:hmusb
   actCycle   000:50
   actStatus  alive
   alias      Schlafzimmer
   autoReadReg 4_reqStatus
   devStateIcon closed:fts_door@green open:fts_door_open@red tilted:fts_door_tilt@yellow
   expert     2_raw
   firmware   1.0
   group      Tür Status
   model      HM-SEC-SCo
   peerIDs    00000000,
   room       Rollos,Schlafzimmer
   serialNr   MEQ0286883
   subType    threeStateSensor
   userattr   structexclude window window_map
   window     FensterStatusAlle

Viele Grüße aus  Oberbayern
Tim (RettungsTim)

HoTi

So nun hat es das wieder gemacht:


2018.01.24 20:40:49 3: ====================== Auto_Fenster_Komfort ======================
                       ==============   erweitertes Logging!  (logging=3)  ===============
                       -- 1 -- OG_kz_TK_mi sendet closed
                       -- 4 -- OG_kz_TK_mi devicetyp ist threeStateSensor
                       -- 5 -- OG_kz_TK_mi Rollladen ist nv mit subtype nv
                       ==================== Auto_Fenster_Komfort Ende ===================
2018.01.24 20:44:08 3: CUL_HM set OG_sz_RO_mi_HOCH off
2018.01.24 20:44:08 3: CUL_HM set OG_sz_RO_mi_HOCH on
2018.01.24 20:44:08 3: CUL_HM set OG_sz_RO_mi_RUNTER off
2018.01.24 20:44:08 3: deletereading Rol.Schlafzimmer blocked : Deleted reading blocked for device Rol.Schlafzimmer
2018.01.24 20:44:08 3: ====================== Auto_Fenster_Komfort ======================
                       ==============   erweitertes Logging!  (logging=3)  ===============
                       -- 1 -- OG_sz_TK_mi sendet closed
                       -- 4 -- OG_sz_TK_mi devicetyp ist threeStateSensor
                       -- 5 -- OG_sz_TK_mi Rollladen ist Rol.Schlafzimmer mit subtype blindActuator
                       -- 7 -- Rol.Schlafzimmer Aussperrschutz nicht aktiviert
                       -- 8 -- Rol.Schlafzimmer ist Auto_Luft_Fenster_offen nein
                       -- 9 -- Hier passt die Meldung nicht ==> verlassen der Routine
                       ==================== Auto_Fenster_Komfort Ende ===================
2018.01.24 20:44:09 3: CUL_HM set OG_sz_RO_mi_HOCH off
2018.01.24 20:44:09 3: ====================== Auto_Fenster_Komfort ======================
                       ==============   erweitertes Logging!  (logging=3)  ===============
                       -- 1 -- Rol.Schlafzimmer sendet open
                       ==================== Auto_Fenster_Komfort Ende ===================


Viele Grüße aus  Oberbayern
Tim (RettungsTim)

Cluni

Ok. Das Herausnehmen des Fenstersensors hat keine Änderung gebracht, weil der Rollladenaktor bereits beim Fenstersensor eingetragen ist (das macht eine der Routinen automatisch). Dummerweise habe ich nicht den Fall bedacht, dass jemand einen Fensterkontakt herausnimmt aus den Attributen des Aktors. Um ihn komplett zu entfernen, müsstest du das Reading beim Fenstersensor löschen (muss ich mal drüber nachdenken, wie ich das automatisiere - hab aber bereits eine Idee). Bei DIESEM Fenstersensor würde das über diesen Befehl gehen:
deletereading OG_sz_TK_mi Automatik_Rollladen

ABER - trage den Fenstersensor bitte wieder ein am Aktor und setzte mal das Attribut "event-on-change-reading" des Fenstersensors auf "state"

Schau mal, ob es dann besser ist.

HoTi

Hallo Cluni,

ich werde berichten wie diese Nacht läuft :-)

Ich muss aber nochmal auf das Thema Helligkeitssensor zurück kommen. Das meine Rollos runter fahren wenn ein "Vogel" drauf sitzt befürchte ich nicht, weil das hatte ich schon so lange in Betrieb. Außerdem sendet der Sensor nur alle 6 Minuten einen Wert :-)

Wäre es möglich diese Option mit auf zu nehmen? Meine Frau war damit sehr glücklich, weil es das Aktuelle Wetter (Bewölkung) zu 100% berücksichtigt.

vg
Tim


Viele Grüße aus  Oberbayern
Tim (RettungsTim)

Cluni

Zitat von: HoTi am 25 Januar 2018, 14:42:51
Ich muss aber nochmal auf das Thema Helligkeitssensor zurück kommen. Das meine Rollos runter fahren wenn ein "Vogel" drauf sitzt befürchte ich nicht, weil das hatte ich schon so lange in Betrieb. Außerdem sendet der Sensor nur alle 6 Minuten einen Wert :-)

Wäre es möglich diese Option mit auf zu nehmen? Meine Frau war damit sehr glücklich, weil es das Aktuelle Wetter (Bewölkung) zu 100% berücksichtigt.

Ähm - ich kann dir nicht ganz folgen!? Was genau willst du berücksichtigen?
Hört sich ein wenig so an, als würdest du mich bitten eine Abschattungsfunktion einzubauen!?  :o

HoTi

Hallo Cluni,
ja am Ende wird es wahrscheinlich der gleiche Code wie für die Abschattung sein.

Derzeit ist es abends so dass die Rollos frühestens 16:30Uhr aber spätestens 21:00Uhr runter gefahren werden, die genaue Uhrzeit wird über "Astro" je nach Lage bestimmt.

Diese Astro Funktion findet meine Frau nur bedingt gut. Sie berücksichtigt nicht die aktuelle Wetterlage. Ein Beispiel an zwei aufeinander folgenden Tagen.

Tag 1: Astro sagt um 16:43Uhr sollen die Rollos geschlossen werden. Das Wetter ist regnerisch und dadurch sehr bewölkt. -> Fazit meiner Frau um 16:43Uhr: Das passt das die Rollos nun runter fahren, weil es draußen Dunkel genug ist und wir kein Licht mehr von außen bekommen.

Tag 2: Astro sagt wieder um 16:43Uhr sollen die Rollos geschlossen werden. Das Wetter ist aber dieses mal extrem Sonnig (z.B. Föhn). -> Fazit meiner Frau um 16:43Uhr: Warum gehen die ,,scheiß" Rollos jetzt schon runter, es scheint noch so schön die Sonne auch wenn sie schon unter geht.

Also schön wäre es wenn ich wieder meinen HM Bewegungsmelder wieder für das Runterfahren bzw. ggf. auch für das Hochfahren nutzen könnte.

Viele Grüße
Tim

PS. Heute Nacht war ruhe am Rollo. Es lag anscheinend wirklich an diesem Attribut im Fenstersensor.
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

Cluni

Aaaccchhh - jetzt verstehe ich dich. Muss ich mir mal ansehen, wie aufwendig das wäre. Es würde auf jeden Fall in die Abschattung mit hinein gehören...

Schön, dass in der Nacht nun Ruhe ist! :)

kjmEjfu

eigentlich würde das ja "nur" bedeuten, dass man mit ss_weather/sr_weather von Twilight statt den anderen Optionen arbeitet.
Hat aber den Nachteil, dass man die Fahrzeiten dann nicht mehr nachts im Voraus berechnen kann, sondern in regelmäßigen Abständen (zwischen frühester und spätester Fahrzeit) den jeweils aktuellen weather-Wert prüfen muss.
Migriere derzeit zu Home Assistant

Cluni

Ja so ähnlich - ich würde das schon über den Aufruf der Abschattungsfunktion machen (die wird ja eh alle x-Minuten ausgeführt) und müsste dort halt mehrere Dinge testen.

Als Beispiel für abends:
1. Ist die Zeit für die früheste Fahr überschritten?
2. Muss nach Unterschreitung der Schwelle eine Art Watchdog getriggert werden (damit der Vogel auf dem Sensor nicht direkt die Rollläden schließt).
3. Muss der Watchdog auch wieder entfernt werden, wenn die Helligkeit wieder überschritten wird.
4. Muss nach Ablauf einer Wartezeit der Rollladen geschlossen werden, wenn die Helligkeitschwelle immer noch unterschritten wird.
5. Muss trotzdem ein Timer für den spätesten Zeitpunkt erzeugt werden - sozusagen als Notfall-Schließung für den Fall, wenn z.B. die Schwelle unterhalb des Wertes für "Helligkeit_min_Val" liegt (in diesem Fall wird die Abschattungsfunktion gar nicht mehr ausgeführt um unnötige Prozessorlast in der Nacht zu vermeiden)

Ihr seht, mal eben "nur" auf einen anderen Wert schauen ist da nicht genug. Das wird einiges an neuem Code sein, was dazu notwendig ist. Und für morgens muss man das Scenario ja analog (aber ja leider nicht genau gleich) ausprogrammieren. Mal eben in 10min ein paar kleine Änderungen sind das nicht - da steckt dann schon einiges mehr dahinter...

Cluni

Ah, oder etwas anders aber um einiges einfacher:

Der Timer wird auf den frühesten Zeitpunkt gesetzt und ruft eine neue Routine auf. In dieser Routine werden folgende Dinge überprüft:

1.) Wurde die späteste Schließen-Zeit überschritten? ==> dann sofort schließen
2.) Die Helligkeit wird mit der Schwelle verglichen. ==>
  a) wenn drüber einfach den Timer neu generieren und ggf. den Watchdog-Merker löschen (z.B. für 5min später).
  b) wenn drunter Watchdog-Merker überprüfen ==> wenn bereits gesetzt direkt runter fahren - wenn nicht Merker setzen und Timer neu generieren

Wäre dann auch unabhängig von der Abschattungsfunktion...

kjmEjfu

Klingt als Ansatz gut.

Wobei ich gerade überlege, ob es nicht auch eine Alternative wäre auf ein Event von Twilight auf das ss_weather Reading zu reagieren. Wenn das auslöst, dann den entsprechenden Timer anpassen. Hätte eventuell den Vorteil, dass man sich keine Gedanken über Vogel, Laub oder sonstwas auf einem Lichtsensor Gedanken machen muss.
Zumindest bei uns ist ss_weather ziemlich zuverlässig.
Migriere derzeit zu Home Assistant