Info: HmIP-BDT Dimmer mit letztem Dimmer-Wert einschalten

Begonnen von Reinhard.M, 01 August 2021, 15:34:52

Vorheriges Thema - Nächstes Thema

Reinhard.M

Hallo Leute!
Nachdem ich geraume Zeit nach einer Lösung gesucht habe, den oben genannten Dimmer nicht nur via Tastendruck mit dem zuletzt gewählten Dimmer-Wert einzuschalten sondern auch aus FHEM heraus hier meine Lösung für FHEM-Web-UI bzw. GoogleAssistent:


attr <device> eventMap {\
usr => {'^toggle' => '".(ReadingsVal($NAME,"state","on") eq "on" ? "pct 0 0 1.0" : "pct 100.5 0 1.0")."'},\
fw  => {'^toggle' => 'toggle'}\
}


Mit dem Level Wert "100.5" wird der letzte eingestellte Wert des Aktors aufgerufen, ganz so wie es auch über einen Tastendruck konfiguriert werden kann. In dem Beispiel ist außerdem eine Ramp-Zeit von einer Sekunde eingestellt. Die "On-Zeit" ist mit Null auf Daueraktiv. Wenn ich also jetzt am Device mit dem Status Icon toggle, wird zwischen aus und dem letzten eingestellten Wert hin und her geschaltet. Für GoogleAssistent sieht das Attribute folgendermaßen aus:


attr <device> genericDeviceType light
attr <device> homebridgeMapping {\
  "Brightness": {\
    "reading": "pct",\
    "cmd": "datapoint 4.LEVEL"\
  },\
  "On": {\
    "reading": "state",\
    "valueOff": "off",\
    "cmdOn": "pct 100.5 0 1.0",\
    "cmdOff": "pct 0 0 1.0"\
  }\
}


Falls von Interesse: Ich arbeite mit hmccu und einer CCU3. Alles getestet, arbeitet in allen Richtungen problemlos.

Gruß Reinhard

DJCrazy

Hallo zusammen,

ich bin auf der Suche um genau diese Funktion, jedoch nicht als toggle sondern mit dem Befehl on.
Kann mir jemand sagen was ich Device für ein Attribute genau setzen muss und wie der Inhalt lauten muss?

Habe schon einiges versucht aber immer ohne Erfolg.
Bin noch FHEM Anfänger.

Device List
Internals:
   DEF        000DDBE69F6E46
   FUUID      616fc6b0-f36f-c1dd-2f6c-ec4c5663063adeb4
   IODev      CCU_3
   NAME       flDimmer03
   NR         264
   STATE      off
   TYPE       HMCCUDEV
   ccuaddr    000DDBE66F1E67
   ccudevstate active
   ccuif      HmIP-RF
   ccuname    HM_Dimmer03
   ccurolectrl DIMMER_VIRTUAL_RECEIVER
   ccurolestate DIMMER_VIRTUAL_RECEIVER
   ccusubtype PDT
   ccutype    HmIP-PDT
   firmware   1.4.8
   readonly   no
   READINGS:
     2021-11-26 12:50:51   2.ACTIVITY_STATE UNKNOWN
     2021-11-26 12:50:51   2.LEVEL         off
     2021-11-26 12:50:51   2.LEVEL_STATUS  NORMAL
     2021-11-26 12:50:51   2.PROCESS       STABLE
     2021-11-26 12:50:51   2.SECTION       15
     2021-11-26 10:33:37   2.SECTION_STATUS NORMAL
     2021-11-26 12:50:51   3.ACTIVITY_STATE STABLE
     2021-11-26 12:50:51   3.LEVEL         off
     2021-11-26 12:50:51   3.LEVEL_STATUS  NORMAL
     2021-11-26 12:50:51   3.PROCESS       STABLE
     2021-11-26 12:50:51   3.SECTION       0
     2021-11-26 10:33:37   3.SECTION_STATUS NORMAL
     2021-11-26 12:50:51   4.ACTIVITY_STATE STABLE
     2021-11-26 12:50:51   4.LEVEL         off
     2021-11-26 12:50:51   4.LEVEL_STATUS  NORMAL
     2021-11-26 12:50:51   4.PROCESS       STABLE
     2021-11-26 12:50:51   4.SECTION       0
     2021-11-26 10:33:37   4.SECTION_STATUS NORMAL
     2021-11-26 12:50:51   5.ACTIVITY_STATE STABLE
     2021-11-26 12:50:51   5.LEVEL         off
     2021-11-26 12:50:51   5.LEVEL_STATUS  NORMAL
     2021-11-26 12:50:51   5.PROCESS       STABLE
     2021-11-26 12:50:51   5.SECTION       0
     2021-11-26 10:33:37   5.SECTION_STATUS NORMAL
     2021-11-26 11:46:28   6.WEEK_PROGRAM_CHANNEL_LOCKS 0
     2021-11-26 10:33:04   IODev           CCU_3
     2021-11-26 12:50:51   activity        alive
     2021-11-26 12:50:51   control         off
     2021-11-26 12:50:51   devstate        ok
     2021-11-26 12:50:51   hmstate         off
     2021-11-26 12:50:51   pct             0
     2021-11-26 12:50:51   rssidevice      -66
     2021-11-26 12:50:51   rssipeer        -68
     2021-11-26 12:50:51   state           off
   hmccu:
     channels   7
     detect     3
     devspec    000DDBE99F1E47
     forcedev   0
     nodefaults 1
     role       0:MAINTENANCE,1:KEY_TRANSCEIVER,2:DIMMER_TRANSMITTER,3:DIMMER_VIRTUAL_RECEIVER,4:DIMMER_VIRTUAL_RECEIVER,5:DIMMER_VIRTUAL_RECEIVER,6:DIMMER_WEEK_PROFILE
     setDefaults 0
     cmdlist:
       get       
       set        on-for-timer on:noArg on-till pct off:noArg down up toggle:noArg
     control:
       chn        3
       dpt        LEVEL
     dp:
       0.ACTUAL_TEMPERATURE:
         VALUES:
           NVAL       0.000000
           ONVAL      0.000000
           OSVAL      0.0
           OVAL       0.000000
           SVAL       0.0
           VAL        0.000000
       0.ACTUAL_TEMPERATURE_STATUS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      NORMAL
           OVAL       0
           SVAL       NORMAL
           VAL        0
       0.CONFIG_PENDING:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      false
           OVAL       0
           SVAL       false
           VAL        0
       0.DUTY_CYCLE:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      false
           OVAL       0
           SVAL       false
           VAL        0
       0.ERROR_CODE:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      0
           OVAL       0
           SVAL       0
           VAL        0
       0.ERROR_OVERHEAT:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      false
           OVAL       0
           SVAL       false
           VAL        0
       0.ERROR_OVERLOAD:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      false
           OVAL       0
           SVAL       false
           VAL        0
       0.ERROR_UPDATE:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      false
           OVAL       0
           SVAL       false
           VAL        0
       0.INSTALL_TEST:
         VALUES:
           NVAL       true
           ONVAL      true
           OSVAL      true
           OVAL       true
           SVAL       true
           VAL        true
       0.OPERATING_VOLTAGE:
         VALUES:
           NVAL       0.000000
           ONVAL      0.000000
           OSVAL      0.0
           OVAL       0.000000
           SVAL       0.0
           VAL        0.000000
       0.OPERATING_VOLTAGE_STATUS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      NORMAL
           OVAL       0
           SVAL       NORMAL
           VAL        0
       0.RSSI_DEVICE:
         VALUES:
           NVAL       -66
           ONVAL      -67
           OSVAL      -67
           OVAL       -67
           SVAL       -66
           VAL        -66
       0.RSSI_PEER:
         VALUES:
           NVAL       -68
           ONVAL      -64
           OSVAL      -64
           OVAL       -64
           SVAL       -68
           VAL        -68
       0.UNREACH:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      alive
           OVAL       0
           SVAL       alive
           VAL        0
       0.UPDATE_PENDING:
         VALUES:
           NVAL       false
           ONVAL      false
           OSVAL      false
           OVAL       false
           SVAL       false
           VAL        false
       2.ACTIVITY_STATE:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      UNKNOWN
           OVAL       0
           SVAL       UNKNOWN
           VAL        0
       2.LEVEL:
         VALUES:
           NVAL       0
           ONVAL      70
           OSVAL      70
           OVAL       0.7
           SVAL       off
           VAL        0.0
       2.LEVEL_STATUS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      NORMAL
           OVAL       0
           SVAL       NORMAL
           VAL        0
       2.PROCESS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      STABLE
           OVAL       0
           SVAL       STABLE
           VAL        0
       2.SECTION:
         VALUES:
           NVAL       15
           ONVAL      15
           OSVAL      15
           OVAL       15
           SVAL       15
           VAL        15
       2.SECTION_STATUS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      NORMAL
           OVAL       0
           SVAL       NORMAL
           VAL        0
       3.ACTIVITY_STATE:
         VALUES:
           NVAL       3
           ONVAL      3
           OSVAL      STABLE
           OVAL       3
           SVAL       STABLE
           VAL        3
       3.LEVEL:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      off
           OVAL       0.0
           SVAL       off
           VAL        0.0
       3.LEVEL_STATUS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      NORMAL
           OVAL       0
           SVAL       NORMAL
           VAL        0
       3.PROCESS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      STABLE
           OVAL       0
           SVAL       STABLE
           VAL        0
       3.SECTION:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      0
           OVAL       0
           SVAL       0
           VAL        0
       3.SECTION_STATUS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      NORMAL
           OVAL       0
           SVAL       NORMAL
           VAL        0
       4.ACTIVITY_STATE:
         VALUES:
           NVAL       3
           ONVAL      3
           OSVAL      STABLE
           OVAL       3
           SVAL       STABLE
           VAL        3
       4.LEVEL:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      off
           OVAL       0.0
           SVAL       off
           VAL        0.0
       4.LEVEL_STATUS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      NORMAL
           OVAL       0
           SVAL       NORMAL
           VAL        0
       4.PROCESS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      STABLE
           OVAL       0
           SVAL       STABLE
           VAL        0
       4.SECTION:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      0
           OVAL       0
           SVAL       0
           VAL        0
       4.SECTION_STATUS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      NORMAL
           OVAL       0
           SVAL       NORMAL
           VAL        0
       5.ACTIVITY_STATE:
         VALUES:
           NVAL       3
           ONVAL      3
           OSVAL      STABLE
           OVAL       3
           SVAL       STABLE
           VAL        3
       5.LEVEL:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      off
           OVAL       0.0
           SVAL       off
           VAL        0.0
       5.LEVEL_STATUS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      NORMAL
           OVAL       0
           SVAL       NORMAL
           VAL        0
       5.PROCESS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      STABLE
           OVAL       0
           SVAL       STABLE
           VAL        0
       5.SECTION:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      0
           OVAL       0
           SVAL       0
           VAL        0
       5.SECTION_STATUS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      NORMAL
           OVAL       0
           SVAL       NORMAL
           VAL        0
       6.WEEK_PROGRAM_CHANNEL_LOCKS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      0
           OVAL       0
           SVAL       0
           VAL        0
     roleCmds:
       get:
       set:
         down:
           channel    3
           role       DIMMER_VIRTUAL_RECEIVER
           subcount   1
           syntax     V:LEVEL:?delta=-10
           usage      down [delta]
           subcmd:
             000:
               args       -10
               dpt        LEVEL
               fnc       
               max        1.01
               min        0.0
               parname    delta
               partype    2
               ps         VALUES
               scn        000
               unit       100%
         off:
           channel    3
           role       DIMMER_VIRTUAL_RECEIVER
           subcount   1
           syntax     V:LEVEL:0
           usage      off
           subcmd:
             000:
               args       0
               dpt        LEVEL
               fnc       
               max        1.01
               min        0.0
               parname    LEVEL
               partype    3
               ps         VALUES
               scn        000
               unit       100%
         on:
           channel    3
           role       DIMMER_VIRTUAL_RECEIVER
           subcount   1
           syntax     V:LEVEL:100
           usage      on
           subcmd:
             000:
               args       100
               dpt        LEVEL
               fnc       
               max        1.01
               min        0.0
               parname    LEVEL
               partype    3
               ps         VALUES
               scn        000
               unit       100%
         on-for-timer:
           channel    3
           role       DIMMER_VIRTUAL_RECEIVER
           subcount   2
           syntax     1:V:DURATION_UNIT:0 2:V:ON_TIME,DURATION_VALUE:?duration 3:V:LEVEL:100
           usage      on-for-timer duration
           subcmd:
             000:
               args       
               dpt        ON_TIME
               fnc       
               max        8580000.0
               min        0.0
               parname    duration
               partype    2
               ps         VALUES
               scn        002
               unit       s
             001:
               args       100
               dpt        LEVEL
               fnc       
               max        1.01
               min        0.0
               parname    LEVEL
               partype    3
               ps         VALUES
               scn        003
               unit       100%
         on-till:
           channel    3
           role       DIMMER_VIRTUAL_RECEIVER
           subcount   2
           syntax     1:V:DURATION_UNIT:0 2:V:ON_TIME,DURATION_VALUE:?time 3:V:LEVEL:100
           usage      on-till time
           subcmd:
             000:
               args       
               dpt        ON_TIME
               fnc       
               max        8580000.0
               min        0.0
               parname    time
               partype    2
               ps         VALUES
               scn        002
               unit       s
             001:
               args       100
               dpt        LEVEL
               fnc       
               max        1.01
               min        0.0
               parname    LEVEL
               partype    3
               ps         VALUES
               scn        003
               unit       100%
         pct:
           channel    3
           role       DIMMER_VIRTUAL_RECEIVER
           subcount   3
           syntax     5:V:LEVEL:?level 1:V:DURATION_UNIT:0 2:V:ON_TIME,DURATION_VALUE:?time=0.0 3:V:RAMP_TIME_UNIT:0 4:V:RAMP_TIME,RAMP_TIME_VALUE:?ramp=0.5
           usage      pct level [time] [ramp]
           subcmd:
             000:
               args       
               dpt        LEVEL
               fnc       
               max        1.01
               min        0.0
               parname    level
               partype    2
               ps         VALUES
               scn        005
               unit       100%
             001:
               args       0.0
               dpt        ON_TIME
               fnc       
               max        8580000.0
               min        0.0
               parname    time
               partype    2
               ps         VALUES
               scn        002
               unit       s
             002:
               args       0.5
               dpt        RAMP_TIME
               fnc       
               max        8580000.0
               min        0.0
               parname    ramp
               partype    2
               ps         VALUES
               scn        004
               unit       s
         up:
           channel    3
           role       DIMMER_VIRTUAL_RECEIVER
           subcount   1
           syntax     V:LEVEL:?delta=+10
           usage      up [delta]
           subcmd:
             000:
               args       +10
               dpt        LEVEL
               fnc       
               max        1.01
               min        0.0
               parname    delta
               partype    2
               ps         VALUES
               scn        000
               unit       100%
     state:
       chn        3
       dpt        LEVEL
Attributes:
   IODev      CCU_3
   alexaName  Kugel
   alexaRoom  Flur
   alias      Lampe Kugel
   cmdIcon    on:general_an off:general_aus
   controldatapoint 3.LEVEL
   devStateIcon off:black_FS20.off
on:black_FS20.on
10:black_FS20.on
20:black_FS20.on
30:black_FS20.on
40:black_FS20.on
50:black_FS20.on
60:black_FS20.on
70:black_FS20.on
80:black_FS20.on
90:black_FS20.on
   fp_Grundriss 322,318,1,
   genericDeviceType light
   group      Homematic IP
   room       Flur
   sortby     01
   statedatapoint 3.LEVEL
   substexcl  pct
   userattr   set set_map structexclude
   webCmd     on:off:pct
   widgetOverride pct:slider,0,10,100

DJCrazy

Habe die Lösung nun gefunden nachdem ich gesucht habe wie man unter cmdicon ein Leerzeichen weg bekommt.
Wollte einen anderen Weg gehen und dabei doch auf die richtige Lösung gekommen.

Lösung:
eventmap  /pct 100.5:on/

zap

Statt dem eventMap würde ggf. auch das funktionieren:

attr flDimmer03 statevals on:100.5,off:0

Vielleicht kannst Du das bei Gelegenheit mal ausprobieren (eventMap muss dann natürlich gelöscht werden).
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

DJCrazy

Zitat von: zap am 27 November 2021, 15:00:53
Statt dem eventMap würde ggf. auch das funktionieren:

attr flDimmer03 statevals on:100.5,off:0

Vielleicht kannst Du das bei Gelegenheit mal ausprobieren (eventMap muss dann natürlich gelöscht werden).

Das scheint nicht zu funktionieren.
Hatte davor den eventmap gelöscht aber es kommt immer folgender Hinweis / Fehler:

HMCCUDEV [szDimmer01] Attribute statevals ignored. Device type is known by HMCCU