Gelöst: HmIP-Dimmer: Wie Rampe beim Einschalten konfigurieren?

Begonnen von bmwfan, 27 April 2020, 20:42:53

Vorheriges Thema - Nächstes Thema

bmwfan

Hallo,
ich setze einen HmIP-BDT im Bad ein. Über einen Bewegungsmelder (HM-SEN-MDIR-WM55) kann ich das Signal für das Einschalten geben. Leider nur auf einen eingestellten Wert, ohne dass der Dimmer die Helligkeit langsam hochfährt. Im WEB-UI gibt es aber einen Parameter für die Rampe. Weis jemand, ob dies auch in fhem geht und wenn ja, wie?

Das List des Dimmers:
Internals:
   DEF        Licht-BadOG-Spiegel-HmIP
   FUUID      5e9daaf9-f33f-6g6f-8d5b-b219c208d537db2f
   IODev      myHMCCU3
   NAME       Licht_BadOG_Spiegel
   NR         1835
   STATE      off
   TYPE       HMCCUDEV
   ccuaddr    0008DA47629235
   ccudevstate active
   ccuif      HmIP-RF
   ccuname    Licht-BadOG-Spiegel-HmIP
   ccutype    HmIP-BDT
   channels   8
   firmware   1.4.8
   statevals  devstate|on|off
   READINGS:
     2020-04-27 19:55:03   3.LEVEL         off
     2020-04-27 19:55:03   4.LEVEL         off
     2020-04-27 19:55:03   5.LEVEL         off
     2020-04-27 19:55:03   6.LEVEL         off
     2020-04-20 20:37:24   R-1.DBL_PRESS_TIME 0.0
     2020-04-20 20:37:24   R-1.LONG_PRESS_TIME 0.4
     2020-04-20 20:37:24   R-1.REPEATED_LONG_PRESS_TIMEOUT_UNIT 2
     2020-04-20 20:37:24   R-1.REPEATED_LONG_PRESS_TIMEOUT_VALUE 2
     2020-04-27 20:11:08   activity        alive
     2020-04-27 19:55:03   control         0
     2020-04-27 20:11:08   hmstate         off
     2020-04-27 19:55:03   state           off
   hmccu:
     devspec    Licht-BadOG-Spiegel-HmIP
     dp:
       0.ACTUAL_TEMPERATURE:
         OVAL       0.000000
         VAL        0.000000
       0.ACTUAL_TEMPERATURE_STATUS:
         OVAL       0
         VAL        0
       0.CONFIG_PENDING:
         OVAL       0
         VAL        0
       0.DUTY_CYCLE:
         OVAL       0
         VAL        0
       0.ERROR_CODE:
         OVAL       0
         VAL        0
       0.ERROR_OVERHEAT:
         OVAL       0
         VAL        0
       0.ERROR_OVERLOAD:
         OVAL       0
         VAL        0
       0.ERROR_UPDATE:
         OVAL       0
         VAL        0
       0.INSTALL_TEST:
         OVAL       true
         VAL        true
       0.OPERATING_VOLTAGE:
         OVAL       0.000000
         VAL        0.000000
       0.OPERATING_VOLTAGE_STATUS:
         OVAL       0
         VAL        0
       0.RSSI_DEVICE:
         OVAL       -75
         VAL        -75
       0.RSSI_PEER:
         OVAL       -70
         VAL        -73
       0.UNREACH:
         OSVAL      alive
         OVAL       0
         SVAL       alive
         VAL        0
       0.UPDATE_PENDING:
         OVAL       false
         VAL        false
       3.ACTIVITY_STATE:
         OVAL       0
         VAL        0
       3.LEVEL:
         OSVAL      off
         OVAL       0.0
         SVAL       off
         VAL        0.0
       3.LEVEL_STATUS:
         OVAL       0
         VAL        0
       3.PROCESS:
         OVAL       0
         VAL        0
       3.SECTION:
         OVAL       15
         VAL        15
       3.SECTION_STATUS:
         OVAL       0
         VAL        0
       4.ACTIVITY_STATE:
         OVAL       3
         VAL        3
       4.LEVEL:
         OSVAL      off
         OVAL       0.0
         SVAL       off
         VAL        0.0
       4.LEVEL_STATUS:
         OVAL       0
         VAL        0
       4.PROCESS:
         OVAL       0
         VAL        0
       4.SECTION:
         OVAL       0
         VAL        0
       4.SECTION_STATUS:
         OVAL       0
         VAL        0
       5.ACTIVITY_STATE:
         OVAL       3
         VAL        3
       5.LEVEL:
         OSVAL      off
         OVAL       0.0
         SVAL       off
         VAL        0.0
       5.LEVEL_STATUS:
         OVAL       0
         VAL        0
       5.PROCESS:
         OVAL       0
         VAL        0
       5.SECTION:
         OVAL       0
         VAL        0
       5.SECTION_STATUS:
         OVAL       0
         VAL        0
       6.ACTIVITY_STATE:
         OVAL       3
         VAL        3
       6.LEVEL:
         OSVAL      off
         OVAL       0.0
         SVAL       off
         VAL        0.0
       6.LEVEL_STATUS:
         OVAL       0
         VAL        0
       6.PROCESS:
         OVAL       0
         VAL        0
       6.SECTION:
         OVAL       0
         VAL        0
       6.SECTION_STATUS:
         OVAL       0
         VAL        0
       7.WEEK_PROGRAM_CHANNEL_LOCKS:
         OVAL       0
         VAL        0
Attributes:
   IODev      myHMCCU3
   ccureadingfilter ^LEVEL$
   ccuscaleval LEVEL:0:1:0:100
   controldatapoint 4.LEVEL
   devStateIcon on:black_FS20.on off:black_FS20.off Initialized:edit_settings@orange
   icon       light_ceiling_light
   room       2.1_OG_Bad,9.6.0_System
   statedatapoint 4.LEVEL
   statevals  on:100,off:0
   stripnumber 1
   substexcl  control
   substitute LEVEL!#0-0:off,#1-100:on
   webCmd     control:on:off
   widgetOverride control:slider,0,10,100


Mit diesem DOIF schalte ich

Internals:
   DEF        (([de_Bew_OG_Bad_Motion:"motion: on"] and [?de_Bew_OG_Bad_Motion:brightness] < 110 and [?21:50-05:00]) or [de_Bew_OG_Bad_Btn_Down:"Short"] or $cmd == 1.1)
(set Licht_BadOG_Spiegel control 60, set PushoverJuergen msg 'Bewegung im Bad OG 30' '' 0 '') (set Licht_BadOG_Spiegel off) ## Licht über Taster oder Bewegungsmelder mit 60 % einschalten wenn zu dunkel. Nach wait (nach Komma) wieder ausschalten
DOELSEIF (([de_Bew_OG_Bad_Motion] eq "motion" and [?de_Bew_OG_Bad_Motion:brightness] < 110 and [?05:01-21:49]) or [de_Bew_OG_Bad_Btn_Down:"Short"] or $cmd == 1.1)
(set Licht_BadOG_Spiegel control 100, set PushoverJuergen msg 'Bewegung im Bad OG 100' '' 0 '') (set Licht_BadOG_Spiegel off) ## Licht über Taster oder Bewegungsmelder mit 100% Helligkeit einschalten wenn zu dunkel. Nach wait (nach Komma) wieder ausschalten
DOELSEIF ([de_Bew_OG_Bad_Btn_Up] =~ "Short") (set Licht_BadOG_Spiegel off) ## Ausschalten ohne Wartezeit wenn ein und Taster AUS gedrückt (set de_Bad_OG_Licht_Spiegel off, set PushoverJuergen msg 'Taster: Das Licht im Bad ist' '[de_Bad_OG_Licht_Spiegel:state]' '' 0 '', ({Log 1, "Ausschalten"}))
   FUUID      5c4c3931-f33f-6b6f-de95-e1cf1c16c9cfcdb4
   MODEL      FHEM
   NAME       di_Bad_OG_Licht_Spiegel
   NOTIFYDEV  global,de_Bew_OG_Bad_Btn_Down,de_Bew_OG_Bad_Motion,de_Bew_OG_Bad_Btn_Up
   NR         1335
   NTFY_ORDER 50-di_Bad_OG_Licht_Spiegel
   STATE      initialized
   TYPE       DOIF
   VERSION    21224 2020-02-18 18:45:49
   READINGS:
     2020-04-27 20:37:57   Device          de_Bew_OG_Bad_Motion
     2020-04-27 20:30:50   cmd             0
     2020-04-27 20:37:57   e_de_Bew_OG_Bad_Motion_STATE noMotion
     2020-04-27 20:37:57   e_de_Bew_OG_Bad_Motion_events brightness: 47,cover: closed
     2020-04-27 20:30:50   mode            enabled
     2020-04-27 20:30:50   state           initialized
     2020-04-27 20:30:50   timer_01_c01    27.04.2020 21:50:00
     2020-04-27 20:30:50   timer_02_c01    28.04.2020 05:00:00
     2020-04-27 20:30:50   timer_03_c02    28.04.2020 05:01:00
     2020-04-27 20:30:50   timer_04_c02    27.04.2020 21:49:00
   Regex:
     accu:
     cond:
       de_Bew_OG_Bad_Btn_Down:
         0:
           &STATE     ^de_Bew_OG_Bad_Btn_Down$
         1:
           &STATE     ^de_Bew_OG_Bad_Btn_Down$
       de_Bew_OG_Bad_Btn_Up:
         2:
           &STATE     ^de_Bew_OG_Bad_Btn_Up$
       de_Bew_OG_Bad_Motion:
         0:
           &STATE     ^de_Bew_OG_Bad_Motion$
         1:
           &STATE     ^de_Bew_OG_Bad_Motion$
         2:
   attr:
     cmdState:
       0:
         Bewegung 30
       1:
          Bewegung hell
       2:
          Taster Aus
     wait:
       0:
         0
         [di_Duschzeiten:state]
       1:
         0
         [di_Duschzeiten:state]
       2:
         0
     waitdel:
   condition:
     0          (::EventDoIf('de_Bew_OG_Bad_Motion',$hash,'motion: on',1) and ::ReadingValDoIf($hash,'de_Bew_OG_Bad_Motion','brightness') < 110 and ::DOIF_time($hash,0,1,$wday,$hms)) or ::EventDoIf('de_Bew_OG_Bad_Btn_Down',$hash,'Short',1) or $cmd == 1.1
     1          (::InternalDoIf($hash,'de_Bew_OG_Bad_Motion','STATE') eq "motion" and ::ReadingValDoIf($hash,'de_Bew_OG_Bad_Motion','brightness') < 110 and ::DOIF_time($hash,2,3,$wday,$hms)) or ::EventDoIf('de_Bew_OG_Bad_Btn_Down',$hash,'Short',1) or $cmd == 1.1
     2          ::InternalDoIf($hash,'de_Bew_OG_Bad_Btn_Up','STATE') =~ "Short"
   days:
   do:
     0:
       0          set Licht_BadOG_Spiegel control 60, set PushoverJuergen msg 'Bewegung im Bad OG 30' '' 0 ''
       1          set Licht_BadOG_Spiegel off
     1:
       0          set Licht_BadOG_Spiegel control 100, set PushoverJuergen msg 'Bewegung im Bad OG 100' '' 0 ''
       1          set Licht_BadOG_Spiegel off
     2:
       0          set Licht_BadOG_Spiegel off
     3:
   helper:
     DEVFILTER  ^global$|^de_Bew_OG_Bad_Btn_Down$|^de_Bew_OG_Bad_Motion$|^de_Bew_OG_Bad_Btn_Up$
     NOTIFYDEV  global|de_Bew_OG_Bad_Btn_Down|de_Bew_OG_Bad_Motion|de_Bew_OG_Bad_Btn_Up
     event      brightness: 47,cover: closed
     globalinit 1
     last_timer 4
     sleeptimer -1
     triggerDev de_Bew_OG_Bad_Motion
     triggerEvents:
       brightness: 47
       cover: closed
     triggerEventsState:
       brightness: 47
       cover: closed
   internals:
     all         de_Bew_OG_Bad_Motion:STATE de_Bew_OG_Bad_Btn_Up:STATE
   interval:
     0          -1
     1          0
     2          -1
     3          2
   intervalfunc:
   localtime:
     0          1588017000
     1          1588042800
     2          1588042860
     3          1588016940
   readings:
   realtime:
     0          21:50:00
     1          05:00:00
     2          05:01:00
     3          21:49:00
   time:
     0          21:50:00
     1          05:00:00
     2          05:01:00
     3          21:49:00
   timeCond:
     0          0
     1          0
     2          1
     3          1
   timer:
     0          0
     1          0
     2          0
     3          0
   trigger:
     all         de_Bew_OG_Bad_Motion de_Bew_OG_Bad_Btn_Down
   triggertime:
     1588016940:
       localtime  1588016940
       hash:
     1588017000:
       localtime  1588017000
       hash:
     1588042800:
       localtime  1588042800
       hash:
     1588042860:
       localtime  1588042860
       hash:
   uiState:
   uiTable:
Attributes:
   cmdState   Bewegung 60 | Bewegung hell | Taster Aus
   do         resetwait
   room       2.1_OG_Bad,9.8.1_DOIF
   startup    set de_Bad_OG_Licht_Spiegel off
   timerWithWait 1
   wait       0,[di_Duschzeiten:state]:0,[di_Duschzeiten:state]:0


Grüße Jürgen
Synology DS720+ mit Docker-Container und Haupt-FHEM, HM-LAN, Jalousienaktoren HmWired, Shelly-Devices; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

amenomade

#1
So weit ich mich erinnere, kann man diese Rampe nicht direkt in Fhem konfigurieren, da sie ein Parameter der internen Verknüfung zwischen Taster und Aktor ist,  und kein Parameter des Devices selbst.

Aber das Eindimmen kannst Du mit :set Licht_BadOG_Spiegel pct 60 0 10 machen. Heisst "dimm bis 60% mit Ramptime 10 Sekunden"

Genauso mit
set Licht_BadOG_Spiegel pct 0 0 20: dim biz zu 0 mit ramp-time 20 Sekunden
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

bmwfan

Besten Dank. Genau das habe ich gesucht. Im WebUI kann eine Rampe nur in Verbindung mit einem Wochenprogramm (Zeiten) genutzt werden, ich möchte aber alles aus fhem steuern, z.B. dass das Licht im Bad nachts langsam und nicht bis 100% hochfährt, da man sonst geblendet wird.

Habe es mit set Licht_BadOG_Spiegel control 60 10 versucht (60%, 10 sec. Rampe), hat aber nicht funktioniert.
Synology DS720+ mit Docker-Container und Haupt-FHEM, HM-LAN, Jalousienaktoren HmWired, Shelly-Devices; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

zap

Der "set control" Befehl akzeptiert nur einen Parameter. Du musst "set pct" verwenden (s.a. Commandref zu HMCCUCHN).
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

amenomade

Hatte ich "control" geschrieben? Ah... eh.. eigentlich nicht ;)  ::)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

zap

2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

bmwfan

Funktioniert perfekt bis auf den kleinen Umstand, dass das Licht flackert und der Trafo brummt, bis ca. 90% Helligkeit erreicht ist. Aber dafür kann der Befehl ja nichts. Sind 4 kleine Niedervoltlampen (ca. 10W / St.) an einem entsprechenden Trafo.

Besten Dank nochmal.
Synology DS720+ mit Docker-Container und Haupt-FHEM, HM-LAN, Jalousienaktoren HmWired, Shelly-Devices; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd