[HMCCU] Rollo: State + Level unterschiedlich von pct [gelöst]

Begonnen von kjmEjfu, 26 August 2017, 22:54:37

Vorheriges Thema - Nächstes Thema

kjmEjfu

Hi,

ich bräuchte da nochmal einen Schubser in die richtige Richtung.
Meine HM-LC-Bl1-FM sind mit den Defaults hinterlegt, im substitute also

LEVEL!#0-0:closed,#100-100:open;DIRECTION!0:none,1:up,2:down,3:undefined;WORKING!(0|false):no,(1|true):yes;

Das führt dazu, dass sowohl im State als auch im reading pct jeweils ebenfalls für 0 das closed und für open die 100 ersetzt werden.
Ich bräuchte aber im pct stattdessen 0 bzw. 100. Ich könnte daher den entsprechenden Teil zum Level im substitute löschen, aber dann würde ich LEVEL und state ja auch verändern, dass will ich aber nicht.

Mit welchem Attribut müsste ich denn hier agieren?

Oder müsste ich den Teil

^(.+\.)?LEVEL$:+pct;

aus dem ccudef-readingname rausnehmen und das Reading anders synchron halten?

DANke schon mal
Migriere derzeit zu Home Assistant

kjmEjfu

Hat sich erledigt, bin über substexcl gestolpert.
Migriere derzeit zu Home Assistant

MarkBinary


zap

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

MarkBinary

@zap
Auch für die HmIP-FROLL?  :-X
3.LEVEL Würde bei mir stimmen

zap

Nein, für die nicht. Mach mal ein "get deviceinfo" und poste die Ausgabe.
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

MarkBinary

CHN 001158A98xxxxx:0 HmIP-FROLL 001158A98xxxxx:0
  DPT {f} HmIP-RF.001158A98xxxxx:0.ACTUAL_TEMPERATURE = 37.000000 [RE]
  DPT {b} HmIP-RF.001158A98xxxxx:0.CONFIG_PENDING = false [RE]
  DPT {b} HmIP-RF.001158A98xxxxx:0.DUTY_CYCLE = false [RE]
  DPT {n} HmIP-RF.001158A98xxxxx:0.ERROR_CODE = 0 [RE]
  DPT {b} HmIP-RF.001158A98xxxxx:0.ERROR_OVERHEAT = false [RE]
  DPT {f} HmIP-RF.001158A98xxxxx:0.OPERATING_VOLTAGE = 0.000000 [RE]
  DPT {n} HmIP-RF.001158A98xxxxx:0.RSSI_DEVICE = 187 [RE]
  DPT {n} HmIP-RF.001158A98xxxxx:0.RSSI_PEER = 184 [RE]
  DPT {b} HmIP-RF.001158A98xxxxx:0.UNREACH = false [RE]
  DPT {b} HmIP-RF.001158A98xxxxx:0.UPDATE_PENDING = false [RE]
CHN 001158A98xxxxx:1 HmIP-FROLL 001158A98xxxxx:1
  DPT {b} HmIP-RF.001158A98xxxxx:1.PRESS_LONG =  [E]
  DPT {b} HmIP-RF.001158A98xxxxx:1.PRESS_SHORT =  [E]
CHN 001158A98xxxxx:2 HmIP-FROLL 001158A98xxxxx:2
  DPT {b} HmIP-RF.001158A98xxxxx:2.PRESS_LONG =  [E]
  DPT {b} HmIP-RF.001158A98xxxxx:2.PRESS_SHORT =  [E]
CHN 001158A98xxxxx:3 HmIP-FROLL 001158A98xxxxx:3
  DPT {f} HmIP-RF.001158A98xxxxx:3.LEVEL = 0.150000 [RE]
  DPT {i} HmIP-RF.001158A98xxxxx:3.PROCESS = 0 [RE]
  DPT {i} HmIP-RF.001158A98xxxxx:3.SECTION = 15 [RE]
CHN 001158A98xxxxx:4 HmIP-FROLL 001158A98xxxxx:4
  DPT {f} HmIP-RF.001158A98xxxxx:4.LEVEL = 0.000000 [RWE]
  DPT {i} HmIP-RF.001158A98xxxxx:4.PROCESS = 0 [RE]
  DPT {i} HmIP-RF.001158A98xxxxx:4.SECTION = 0 [RE]
  DPT {b} HmIP-RF.001158A98xxxxx:4.STOP =  [W]
CHN 001158A98xxxxx:5 HmIP-FROLL 001158A98xxxxx:5
  DPT {f} HmIP-RF.001158A98xxxxx:5.LEVEL = 0.000000 [RWE]
  DPT {i} HmIP-RF.001158A98xxxxx:5.PROCESS = 0 [RE]
  DPT {i} HmIP-RF.001158A98xxxxx:5.SECTION = 0 [RE]
  DPT {b} HmIP-RF.001158A98xxxxx:5.STOP =  [W]
CHN 001158A98xxxxx:6 HmIP-FROLL 001158A98xxxxx:6
  DPT {f} HmIP-RF.001158A98xxxxx:6.LEVEL = 0.000000 [RWE]
  DPT {i} HmIP-RF.001158A98xxxxx:6.PROCESS = 0 [RE]
  DPT {i} HmIP-RF.001158A98xxxxx:6.SECTION = 0 [RE]
  DPT {b} HmIP-RF.001158A98xxxxx:6.STOP =  [W]
CHN 001158A98xxxxx:7 HmIP-FROLL 001158A98xxxxx:7
  DPT {i} HmIP-RF.001158A98xxxxx:7.WEEK_PROGRAM_CHANNEL_LOCKS = 0 [RE]
  DPT {i} HmIP-RF.001158A98xxxxx:7.WEEK_PROGRAM_TARGET_CHANNEL_LOCK =  [W]
  DPT {i} HmIP-RF.001158A98xxxxx:7.WEEK_PROGRAM_TARGET_CHANNEL_LOCKS =  [W]

zap

Probiere es mal mit folgenden Attributen (HMCCUDEV):


ccureadingfilter = (LEVEL|PROCESS|SECTION|PRESS)
ccureadingname = 3.LEVEL:+pct
ccuscaleval = LEVEL:0:1:0:100
cmdIcon = up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down
controldatapoint = 3.LEVEL
eventMap = /datapoint 4.STOP true:stop/datapoint 3.LEVEL 0:down/datapoint 3.LEVEL 100:up/"
statedatapoint  = 3.LEVEL
stripnumber = 1
substexcl = control|pct
substitute = LEVEL!#0-0:closed,#100-100:open
webCmd = control:up:stop:down
widgetOverride = control:slider,0,10,100


Bei STOP musst Du mal rumprobieren, da es das in mehreren Kanälen gibt. Eins davon wird funktionieren. Die Bedeutung von SECTION und PROCESS ist mir nicht klar. Sollte in der Doku stehen. Dann ggf. noch substitute ergänzen.
Berichte mal, welches STOP funktioniert. Dann übernehme ich das in die Defaults.
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

MarkBinary

Hallo Zap,
habs mal probiert.

3.LEVEL zu lesen klappt soweit. Schreiben ist jedoch nicht möglich [RE].

  • HMCCUDEV: RA_Buero Invalid datapoint

Demnach klappts auch mit dem eventMap nicht, bzw es gibt nun Schönheitsfehler.
Beim Betätigen von den Icons fts_shutter_up bzw. fts_shutter_down springt der Slider auf 100 bzw 0%.
Beim direkten betätigen des Sliders bleibt der Sollwert angezeigt.

Ich nehme an, das EventMap keine aktuellen werte zurückbekommt.

Zu dem reading .PROCESS kann ich sagen, das dort eine "1" steht, solang der Motor Angesteuert wird.
Das reading .SECTION ändert sich je nach eingestelltem Behang.

Die Kanäle 4,5,6 sind in der CCU2 parametrierbar. Es lassen sich auch Kanäle abschalten.
Wofür diese dann wohl sind?

hier mal ein list RA_Buero ohne ccureadingfilter = (LEVEL|PROCESS|SECTION|PRESS)

Internals:
   CHANGED   
   DEF        001158A98xxxxx
   IODev      DIN_W93_ccu2
   NAME       RA_Buero
   NR         698
   STATE      49.5 %
   TYPE       HMCCUDEV
   ccuaddr    001158A98xxxxx
   ccudevstate active
   ccuif      HmIP-RF
   ccuname    RA_Buero
   ccutype    HmIP-FROLL
   channels   8
   firmware   1.2.0
   statevals  devstate
   READINGS:
     2018-04-22 08:47:08   0.ACTUAL_TEMPERATURE 26.0
     2018-04-22 08:47:08   0.CONFIG_PENDING false
     2018-04-22 08:51:52   0.DUTY_CYCLE    0
     2018-04-22 08:47:08   0.ERROR_CODE    0
     2018-04-22 08:47:08   0.ERROR_OVERHEAT false
     2018-04-22 08:47:08   0.OPERATING_VOLTAGE 0.0
     2018-04-22 08:51:52   0.RSSI_DEVICE   -52
     2018-04-22 08:51:51   0.RSSI_PEER     -54
     2018-04-22 08:51:52   0.UNREACH       0
     2018-04-22 08:47:08   0.UPDATE_PENDING false
     2018-04-22 08:51:52   3.LEVEL         49.5
     2018-04-22 08:51:52   3.PROCESS       0
     2018-04-22 08:51:52   3.SECTION       15
     2018-04-22 08:51:52   4.LEVEL         open
     2018-04-22 08:51:52   4.PROCESS       0
     2018-04-22 08:51:52   4.SECTION       4
     2018-04-22 08:51:53   5.LEVEL         closed
     2018-04-22 08:51:53   5.PROCESS       0
     2018-04-22 08:51:53   5.SECTION       0
     2018-04-22 08:51:53   6.LEVEL         closed
     2018-04-22 08:51:53   6.PROCESS       0
     2018-04-22 08:51:53   6.SECTION       0
     2018-04-22 08:47:08   7.WEEK_PROGRAM_CHANNEL_LOCKS 0
     2018-04-22 08:51:52   control         100
     2018-04-22 08:51:53   hmstate         49.5
     2018-04-22 08:51:52   pct             49.5
     2018-04-22 08:51:52   state           49.5
   hmccu:
     dp:
       0.ACTUAL_TEMPERATURE:
         OSVAL      26.0
         OVAL       26.000000
         SVAL       26.0
         VAL        26.000000
       0.CONFIG_PENDING:
         OSVAL      false
         OVAL       false
         SVAL       false
         VAL        false
       0.DUTY_CYCLE:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       0.ERROR_CODE:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       0.ERROR_OVERHEAT:
         OSVAL      false
         OVAL       false
         SVAL       false
         VAL        false
       0.OPERATING_VOLTAGE:
         OSVAL      0.0
         OVAL       0.000000
         SVAL       0.0
         VAL        0.000000
       0.RSSI_DEVICE:
         OSVAL      -52
         OVAL       -52
         SVAL       -52
         VAL        -52
       0.RSSI_PEER:
         OSVAL      -56
         OVAL       -56
         SVAL       -54
         VAL        -54
       0.UNREACH:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       0.UPDATE_PENDING:
         OSVAL      false
         OVAL       false
         SVAL       false
         VAL        false
       3.LEVEL:
         OSVAL      25
         OVAL       0.25
         SVAL       49.5
         VAL        0.495
       3.PROCESS:
         OSVAL      1
         OVAL       1
         SVAL       0
         VAL        0
       3.SECTION:
         OSVAL      15
         OVAL       15
         SVAL       15
         VAL        15
       4.LEVEL:
         OSVAL      open
         OVAL       1.0
         SVAL       open
         VAL        1.0
       4.PROCESS:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       4.SECTION:
         OSVAL      4
         OVAL       4
         SVAL       4
         VAL        4
       5.LEVEL:
         OSVAL      closed
         OVAL       0.0
         SVAL       closed
         VAL        0.0
       5.PROCESS:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       5.SECTION:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       6.LEVEL:
         OSVAL      closed
         OVAL       0.0
         SVAL       closed
         VAL        0.0
       6.PROCESS:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       6.SECTION:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       7.WEEK_PROGRAM_CHANNEL_LOCKS:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
Attributes:
   IODev      DIN_W93_ccu2
   alexaName  Büro
   ccureadingname 3.LEVEL:+pct
   ccuscaleval LEVEL:0:1:0:100
   cmdIcon    up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down
   controldatapoint 4.LEVEL
   event-on-change-reading .*
   eventMap   /datapoint 4.STOP true:stop/datapoint 4.LEVEL 0:down/datapoint 4.LEVEL 100:up/
   genericDeviceType blind
   icon       fts_shutter
   room       Homematic,alexa
   stateFormat { my $l = ReadingsVal ($name, "3.LEVEL", "na"); sprintf "%s", $l =~ /^(open|closed|na)$/ ? "$l" : "$l %"; }
   statedatapoint 3.LEVEL
   stripnumber 1
   substexcl  control|pct
   substitute LEVEL!#0-0:closed,#100-100:open
   webCmd     control:up:stop:down
   widgetOverride control:slider,0,5,100