[HMCCUDEV] reading pct über userReadings?!

Begonnen von HoTi, 25 Februar 2019, 09:49:34

Vorheriges Thema - Nächstes Thema

HoTi

Hallo zusammen,

ich versuche gerade mir das reading pct zu erstellen, damit meine Rolloaktoren (über HMCCUDEV) mit den 73_AutoShuttersControl funktionieren.

Ich habe es mit dem attr userReadings "pct{ReadingsNum($name,'control',0)}" versucht. Aber das bleibt beim update auf 0. Was mache ich da falsch?

Viele Grüße
Tim
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

zap

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

HoTi

Zitat von: zap am 25 Februar 2019, 11:42:35
bitte ein list vom Device erstellen.

Klar:

Internals:
   DEF        PEQ0182164 defaults
   FUUID      5c729017-f33f-fb86-db0c-34e869eef480babe
   IODev      d_ccu
   NAME       HM_RO_Kinderzimmer
   NR         124
   STATE      100 %
   TYPE       HMCCUDEV
   ccuaddr    PEQ0182164
   ccudevstate active
   ccuif      BidCos-RF
   ccuname    HM_RO_Kinderzimmer
   ccutype    HM-LC-Bl1PBU-FM
   channels   2
   firmware   2.11
   statevals  devstate
   READINGS:
     2019-02-24 13:38:02   0.AES_KEY       0
     2019-02-24 13:38:02   0.CONFIG_PENDING false
     2019-02-24 13:38:02   0.DEVICE_IN_BOOTLOADER false
     2019-02-24 13:38:02   0.DUTYCYCLE     false
     2019-02-24 13:38:02   0.RSSI_DEVICE   173
     2019-02-24 13:38:02   0.RSSI_PEER     178
     2019-02-24 13:38:02   0.STICKY_UNREACH false
     2019-02-24 13:38:02   0.UNREACH       false
     2019-02-24 13:38:02   0.UPDATE_PENDING false
     2019-02-25 11:30:18   1.DIRECTION     none
     2019-02-25 11:30:18   1.INHIBIT       0
     2019-02-25 11:30:18   1.LEVEL         open
     2019-02-25 11:30:18   1.WORKING       no
     2019-02-25 06:28:43   ASC_ShuttersLastDrive manual
     2019-02-25 09:25:27   ASC_Time_DriveDown 25.02.2019 - 18:00
     2019-02-25 09:25:27   ASC_Time_DriveUp 26.02.2019 - 07:00
     2019-02-25 11:30:18   control         100
     2019-02-25 11:30:18   hmstate         open
     2019-02-25 09:42:17   pct             0
     2019-02-25 11:30:18   state           open
   hmccu:
     devspec    PEQ0182164
     dp:
       0.AES_KEY:
         OVAL       0
         VAL        0
       0.CONFIG_PENDING:
         OVAL       false
         VAL        false
       0.DEVICE_IN_BOOTLOADER:
         OVAL       false
         VAL        false
       0.DUTYCYCLE:
         OVAL       false
         VAL        false
       0.RSSI_DEVICE:
         OVAL       173
         VAL        173
       0.RSSI_PEER:
         OVAL       178
         VAL        178
       0.STICKY_UNREACH:
         OVAL       false
         VAL        false
       0.UNREACH:
         OVAL       false
         VAL        false
       0.UPDATE_PENDING:
         OVAL       false
         VAL        false
       1.DIRECTION:
         OSVAL      none
         OVAL       0
         SVAL       none
         VAL        0
       1.INHIBIT:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       1.LEVEL:
         OSVAL      open
         OVAL       1.000000
         SVAL       open
         VAL        1.000000
       1.WORKING:
         OSVAL      no
         OVAL       0
         SVAL       no
         VAL        0
Attributes:
   ASC        2
   ASC_Antifreeze off
   ASC_Antifreeze_Pos 15
   ASC_AutoAstroModeEvening none
   ASC_AutoAstroModeEveningHorizon none
   ASC_AutoAstroModeMorning none
   ASC_AutoAstroModeMorningHorizon none
   ASC_BlockingTime_afterManual 1200
   ASC_BlockingTime_beforDayOpen 3600
   ASC_BlockingTime_beforNightClose 3600
   ASC_BrightnessMaxVal -1
   ASC_BrightnessMinVal -1
   ASC_Brightness_Reading brightness
   ASC_Brightness_Sensor none
   ASC_Closed_Pos 0
   ASC_ComfortOpen_Pos 80
   ASC_Down   astro
   ASC_Drive_Offset -1
   ASC_Drive_OffsetStart -1
   ASC_GuestRoom none
   ASC_LockOut off
   ASC_LockOut_Cmd none
   ASC_Mode_Down always
   ASC_Mode_Up always
   ASC_Open_Pos 100
   ASC_Partymode off
   ASC_Pos_Reading control
   ASC_PrivacyDownTime_beforNightClose -1
   ASC_PrivacyDown_Pos 50
   ASC_Roommate_Device none
   ASC_Roommate_Reading state
   ASC_Self_Defense_Exclude off
   ASC_Shading_Angle_Left 75
   ASC_Shading_Angle_Right 75
   ASC_Shading_Direction 180
   ASC_Shading_Min_Elevation 25
   ASC_Shading_Min_OutsideTemperature 18
   ASC_Shading_Mode off
   ASC_Shading_Pos 20
   ASC_Shading_StateChange_Cloudy 20000
   ASC_Shading_StateChange_Sunny 35000
   ASC_Shading_WaitingPeriod 1200
   ASC_ShuttersPlace window
   ASC_Time_Down_Early 16:30
   ASC_Time_Down_Late 22:00
   ASC_Time_Up_Early 06:00
   ASC_Time_Up_Late 07:00
   ASC_Time_Up_WE_Holiday 08:30
   ASC_Up     astro
   ASC_Ventilate_Pos 30
   ASC_Ventilate_Window_Open on
   ASC_WiggleValue 5
   ASC_WindowRec none
   ASC_WindowRec_subType twostate
   IODev      d_ccu
   ccureadingfilter (LEVEL|INHIBIT|DIRECTION|WORKING)
   ccuscaleval LEVEL:0:1:0:100
   cmdIcon    up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down
   controldatapoint 1.LEVEL
   eventMap   /datapoint 1.STOP true:stop/datapoint 1.LEVEL 0:down/datapoint 1.LEVEL 100:up/
   room       ASC
   stateFormat { my $l = ReadingsVal ($name, "control", "na"); sprintf "%s", $l =~ /^(open|closed|na)$/ ? "$l" : "$l %"; }
   statedatapoint 1.LEVEL
   stripnumber 1
   substexcl  control
   substitute LEVEL!#0-0:closed,#100-100:open;DIRECTION!0:none,1:up,2:down,3:undefined;WORKING!(0|false):no,(1|true):yes
   userReadings pct{ReadingsNum($name,'control',0)}
   userattr   ASC_Antifreeze:off,soft,hard,am,pm ASC_Antifreeze_Pos:5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100 ASC_AutoAstroModeEvening:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON ASC_AutoAstroModeEveningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 ASC_AutoAstroModeMorning:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON ASC_AutoAstroModeMorningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 ASC_BlockingTime_afterManual ASC_BlockingTime_beforDayOpen ASC_BlockingTime_beforNightClose ASC_BrightnessMaxVal ASC_BrightnessMinVal ASC_Brightness_Reading ASC_Brightness_Sensor ASC_Closed_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_ComfortOpen_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_Down:time,astro,brightness ASC_Drive_Offset ASC_Drive_OffsetStart ASC_GuestRoom:on,off ASC_LockOut:soft,hard,off ASC_LockOut_Cmd:inhibit,blocked,protection ASC_Mode_Down:absent,always,off,home ASC_Mode_Up:absent,always,off,home ASC_Open_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_Partymode:on,off ASC_Pos_Reading ASC_PrivacyDownTime_beforNightClose ASC_PrivacyDown_Pos ASC_Roommate_Device ASC_Roommate_Reading ASC_Self_Defense_Exclude:on,off ASC_Shading_Angle_Left ASC_Shading_Angle_Right ASC_Shading_Direction ASC_Shading_Min_Elevation ASC_Shading_Min_OutsideTemperature ASC_Shading_Mode:absent,always,off,home ASC_Shading_Pos:10,20,30,40,50,60,70,80,90,100 ASC_Shading_StateChange_Cloudy ASC_Shading_StateChange_Sunny ASC_Shading_WaitingPeriod ASC_ShuttersPlace:window,terrace ASC_Time_Down_Early ASC_Time_Down_Late ASC_Time_Up_Early ASC_Time_Up_Late ASC_Time_Up_WE_Holiday ASC_Up:time,astro,brightness ASC_Ventilate_Pos:10,20,30,40,50,60,70,80,90,100 ASC_Ventilate_Window_Open:on,off ASC_WiggleValue ASC_WindowRec ASC_WindowRec_subType:twostate,threestate
   webCmd     control:up:stop:down
   widgetOverride control:slider,0,10,100
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

kjmEjfu

Migriere derzeit zu Home Assistant

HoTi

Zitat von: kjmEjfu am 25 Februar 2019, 12:57:47
mach doch sowas wie

ccureadingname  control:+pct

Das geht auch nicht :-( irgendwas muss ich falsch machen!
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

zap

Das userreading löschen.

Dann:

ccureadingname 1.LEVEL:+pct
substexcl control|pct
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

HoTi

Das userreading hatte ich schon gelöscht.

Danke dir zap, so funktioniert das jetzt!
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

jsChris

#7
Hi,

ich habe so ziemlich das gleiche Anliegen und das gleiche Problem, aber kann es leider nicht lösen. Bzw. nur so halb, was mich eigentlich noch mehr wurmt. Denn es funktioniert tatsächlich manchmal...

Vielleicht hat jemand noch eine Idee? Im Grunde habe ich die "defaults" benutzt um einen Homematic IP (HmIP-BROLL) Unterputz Rolladen einzurichten. pct wurde dabei nie gesetzt (war immer 0).

Geändert habe ich nun ccureadingname von "LEVEL:+pct" auf "3.LEVEL:+pct" und nun wird pct manchmal gesetzt.

Ich habe auch mal ein notify (HM_RL_AZ_Rollade_Ankleidezimmer:.*) mit einem Log mit laufen lassen, da sieht man, dass pct erst richtig gesetzt wird und dann wieder auf 0. Irgendwer muss das wieder ersetzen, aber ich verstehe nicht, wann und warum. Würde es aber gerne verstehen :)

Kann mir jemand einen Tipp geben?

Viele Grüße
Chris


2019.03.02 18:43:47 1: _debugEvent HM_RL_AZ_Rollade_Ankleidezimmer with EVENT control 20
2019.03.02 18:43:48 1: _debugEvent HM_RL_AZ_Rollade_Ankleidezimmer with EVENT 4.ACTIVITY_STATE: up
2019.03.02 18:43:49 1: _debugEvent HM_RL_AZ_Rollade_Ankleidezimmer with EVENT 3.LEVEL: 13
2019.03.02 18:43:49 1: _debugEvent HM_RL_AZ_Rollade_Ankleidezimmer with EVENT pct: 13
2019.03.02 18:43:49 1: _debugEvent HM_RL_AZ_Rollade_Ankleidezimmer with EVENT 3.ACTIVITY_STATE: up
2019.03.02 18:43:49 1: _debugEvent HM_RL_AZ_Rollade_Ankleidezimmer with EVENT pct: 0
2019.03.02 18:43:51 1: _debugEvent HM_RL_AZ_Rollade_Ankleidezimmer with EVENT 3.LEVEL: 20
2019.03.02 18:43:51 1: _debugEvent HM_RL_AZ_Rollade_Ankleidezimmer with EVENT pct: 20
2019.03.02 18:43:51 1: _debugEvent HM_RL_AZ_Rollade_Ankleidezimmer with EVENT 3.ACTIVITY_STATE: stop
2019.03.02 18:43:51 1: _debugEvent HM_RL_AZ_Rollade_Ankleidezimmer with EVENT pct: 0
2019.03.02 18:43:51 1: _debugEvent HM_RL_AZ_Rollade_Ankleidezimmer with EVENT 4.LEVEL: 20
2019.03.02 18:43:51 1: _debugEvent HM_RL_AZ_Rollade_Ankleidezimmer with EVENT control: 20
2019.03.02 18:43:51 1: _debugEvent HM_RL_AZ_Rollade_Ankleidezimmer with EVENT state: 20
2019.03.02 18:43:51 1: _debugEvent HM_RL_AZ_Rollade_Ankleidezimmer with EVENT 4.ACTIVITY_STATE: stop
2019.03.02 18:43:51 1: _debugEvent HM_RL_AZ_Rollade_Ankleidezimmer with EVENT hmstate: 20




Internals:
   CHANGED   
   DEF        HM_RL_AZ_Rollade_Ankleidezimmer
   FUUID      5c754ec6-f33f-ed53-df67-9e3064f5f18729bb
   IODev      ccu3
   NAME       HM_RL_AZ_Rollade_Ankleidezimmer
   NR         566
   STATE      20
   TYPE       HMCCUDEV
   ccuaddr    001118A99517F2
   ccudevstate active
   ccuif      HmIP-RF
   ccuname    HM_RL_AZ_Rollade_Ankleidezimmer
   ccutype    HmIP-BROLL
   channels   8
   firmware   1.6.2
   statevals  devstate
   READINGS:
     2019-03-02 18:17:29   0.ACTUAL_TEMPERATURE 25.0
     2019-03-02 18:17:29   0.ACTUAL_TEMPERATURE_STATUS normal
     2019-03-02 18:17:29   0.ERROR_CODE    0
     2019-03-02 18:17:29   0.ERROR_OVERHEAT no
     2019-03-02 18:43:51   3.ACTIVITY_STATE stop
     2019-03-02 18:43:51   3.LEVEL         20
     2019-03-02 18:43:51   3.LEVEL_STATUS  0
     2019-02-27 08:37:09   3.SELF_CALIBRATION_RESULT failed
     2019-03-02 18:43:51   4.ACTIVITY_STATE stop
     2019-03-02 18:43:51   4.LEVEL         20
     2019-03-02 18:43:51   4.LEVEL_STATUS  0
     2019-03-02 18:43:51   5.ACTIVITY_STATE stop
     2019-03-02 18:43:51   5.LEVEL         closed
     2019-03-02 18:43:51   5.LEVEL_STATUS  0
     2019-03-02 18:43:51   6.ACTIVITY_STATE stop
     2019-03-02 18:43:51   6.LEVEL         closed
     2019-03-02 18:43:51   6.LEVEL_STATUS  0
     2019-03-02 18:43:51   activity        alive
     2019-03-02 18:43:51   control         20
     2019-03-02 18:43:51   hmstate         20
     2019-03-02 18:43:51   pct             0
     2019-03-02 18:43:51   state           20
   hmccu:
     devspec    HM_RL_AZ_Rollade_Ankleidezimmer
     dp:
       0.ACTUAL_TEMPERATURE:
         OSVAL      25.0
         OVAL       25.0
         SVAL       25.0
         VAL        25.0
       0.ACTUAL_TEMPERATURE_STATUS:
         OSVAL      normal
         OVAL       0
         SVAL       normal
         VAL        0
       0.CONFIG_PENDING:
         OVAL       0
         VAL        0
       0.DUTY_CYCLE:
         OVAL       0
         VAL        0
       0.ERROR_CODE:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       0.ERROR_OVERHEAT:
         OSVAL      no
         OVAL       0
         SVAL       no
         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        -74
       0.RSSI_PEER:
         OVAL       -71
         VAL        -72
       0.UNREACH:
         OSVAL      alive
         OVAL       0
         SVAL       alive
         VAL        0
       0.UPDATE_PENDING:
         OVAL       false
         VAL        false
       3.ACTIVITY_STATE:
         OSVAL      up
         OVAL       1
         SVAL       stop
         VAL        3
       3.LEVEL:
         OSVAL      13
         OVAL       0.13
         SVAL       20
         VAL        0.2
       3.LEVEL_STATUS:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       3.PROCESS:
         OVAL       1
         VAL        0
       3.SECTION:
         OVAL       15
         VAL        15
       3.SECTION_STATUS:
         OVAL       0
         VAL        0
       3.SELF_CALIBRATION_RESULT:
         OSVAL      failed
         OVAL       false
         SVAL       failed
         VAL        false
       4.ACTIVITY_STATE:
         OSVAL      up
         OVAL       1
         SVAL       stop
         VAL        3
       4.LEVEL:
         OSVAL      10
         OVAL       0.1
         SVAL       20
         VAL        0.2
       4.LEVEL_STATUS:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       4.PROCESS:
         OVAL       1
         VAL        0
       4.SECTION:
         OVAL       3
         VAL        4
       4.SECTION_STATUS:
         OVAL       0
         VAL        0
       5.ACTIVITY_STATE:
         OSVAL      stop
         OVAL       3
         SVAL       stop
         VAL        3
       5.LEVEL:
         OSVAL      closed
         OVAL       0.0
         SVAL       closed
         VAL        0.0
       5.LEVEL_STATUS:
         OSVAL      0
         OVAL       0
         SVAL       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:
         OSVAL      stop
         OVAL       3
         SVAL       stop
         VAL        3
       6.LEVEL:
         OSVAL      closed
         OVAL       0.0
         SVAL       closed
         VAL        0.0
       6.LEVEL_STATUS:
         OSVAL      0
         OVAL       0
         SVAL       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      ccu3
   ccureadingfilter (ERROR_CODE|ERROR_OVERHEAT|ACTUAL_TEMPERATURE|LEVEL|ACTIVITY_STATE|SELF_CALIBRATION_RESULT)
   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/datapoint 3.SELF_CALIBRATION 0:stopCalibration/datapoint 3.SELF_CALIBRATION 1:startCalibration/
   group      Rolladen
   hmstatevals ACTUAL_TEMPERATURE_STATUS!2:tempOverflow,3:tempUnderflow;ERROR_OVERHEAT!(1|true):overheat
   icon       fts_shutter
   room       Ankleidezimmer,Homematic
   statedatapoint 4.LEVEL
   stripnumber 1
   substexcl  control|pct
   substitute LEVEL!#0-0:closed,#100-100:open;ACTIVITY_STATE!0:unknown,1:up,2:down,3:stop;ERROR_OVERHEAT!(0|false):no,(1|true):yes;ACTUAL_TEMPERATURE_STATUS!0:normal,1:unknown,2:overflow,3:underflow;SELF_CALIBRATION_RESULT!(0|false):failed,(1|true):ok
   webCmd     control:up:stop:down
   widgetOverride control:slider,0,10,100



zap

Das Problem: Du hast sowohl bei ccureadingfilter als auch bei ccureadingname "LEVEL" angegeben. Das sind jeweils reguläre Ausdrücke. Die matchen nicht nur bei LEVEL sondern auch bei LEVEL_STATUS. Effekt: LEVEL_STATUS überschreibt Dir pct mit 0.

2 Möglichkeiten:

Du setzt ccureadingname auf 3.LEVEL$:+pct

Du nimmst LEVEL_STATUS aus dem Readingfilter:

ccureadingfilter ^(ERROR_CODE|ERROR_OVERHEAT|ACTUAL_TEMPERATURE|LEVEL|ACTIVITY_STATE|SELF_CALIBRATION_RESULT)$
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

jsChris

Verstehe, ganz vielen Dank. Jetzt funktioniert es.

Könnten wir das nicht bei den defaults mit aufnehmen, damit andere nicht auch in die Falle laufen? Ich habe mich aus Performancegründen für die Möglichkeit entschieden ccureadingfilter anzupassen.

Viele Grüße
Chris

Loredo

Ich habe dasselbe Problem.


Bei dieser Lösung hier ist mir aufgefallen, dass sie etwas wackelig zu sein scheint.


Beispielsweise funktioniert die Lösung scheinbar nicht, wenn man am HMCCU Device bereits ccudef-ccureadingfilter gesetzt hat.
Auch wird pct nun zwar als Reading richtig geführt, dafür ist aber control manchmal einfach 0. Ich habe aber nicht herausfinden können wieso.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

zap

Ein komplettes Beispiel (list vom Device + Inhalt von ccudef-readingfilter) wäre hilfreich. Die Einführung von ccudef-readingfilter fällt leider in die Kategorie "gut gemeint, nicht gut gemacht"
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)