Problem mit Homematic Thermostat HM-CC-RT-DN / Homekitmapping: Status springt!

Begonnen von Pati_Alpha, 17 September 2020, 13:00:38

Vorheriges Thema - Nächstes Thema

Pati_Alpha

Hey,

ich habe seit iOS14 heute ein Problem mit meinen Thermostaten. Wenn ich sie in der Home-App aufrufe, wechselt der Modus und die Temperatur im Sekundentakt zwischen "Automatisch 21" und "Kühlen 17". Die eingestellte Temperatur ist 21 und die gemessene ist 23.

Meine Definition ist die folgende und damit soweit ich sehe die, die auch im Wiki steht:
defmod HM_2BCF4E_Clima CUL_HM 2BCF4E04
attr HM_2BCF4E_Clima homebridgeMapping TargetHeatingCoolingState=heatingState,values=OFF:0;;HEAT:1;;COOL:2;;AUTO:3,cmds=OFF:controlManu+off;;HEAT:controlMode+boost;;AUTO:controlMode+auto;;COOL:controlMode+night CurrentHeatingCoolingState=heatingState,values=OFF:0;;HEAT:1;;COOL:2;;AUTO:0
attr HM_2BCF4E_Clima model HM-CC-RT-DN
attr HM_2BCF4E_Clima peerIDs 00000000,5D5FEF05,
attr HM_2BCF4E_Clima userReadings heatingState {(ReadingsVal($NAME,"ValvePosition",0) > 0 || ReadingsVal($NAME,"desired-temp","-") eq "on") ? "HEAT" : ReadingsVal($NAME,"desired-temp","-") eq "off" ? "OFF" : ReadingsVal($NAME,"controlMode","auto") eq "auto" ? "AUTO" : (ReadingsVal($NAME,"measured-temp",20) > ReadingsVal($NAME,"desired-temp",20)) ? "COOL" : "AUTO"}


Mich wundert auch hier, dass beim CurrentHeatingCoolingState 0,1,2,0 steht und beim TargetHeatingCoolingState 0,1,2,3?

Er scheint dann zu springen:
Ist auf AUTO, aber: measured ist größer als desired => Cool => ControlMode night (17°C) => damit desired temp 17 => damit measured aber immer noch größer als desired => warum geht er dann zurück zu auto?! :/

Ich überlege, das auch einfach zu entschlacken, die Modi nutze ich sowieso von HomeKit aus nicht. Temperatur einstellen und sehen würde reichen.

Danke für eure Hilfe
Patrick   

MadMax-FHEM

Zum einen würde ein komplettes list deutlich mehr helfen...
...zum anderen ist deine "Kette" etwas "fragwürdig":

Bedingung ? ja : nein

Dein nein ist aber auch wieder:

Bedingung ? ja : nein usw.

Also:

Bedingung1 ? HEAT : Bedingung2 ? OFF : Bedingung3 ? AUTO : Bedingung4 ? COOL : AUTO

Ich habe jetzt nicht geprüft, welche Operatoren z.B. vor welchen Vorrang haben...
...und es ist ja nicht mal einfach nachzuvollziehen welches der beiden AUTO überhaupt trifft ;)

D.h. AUTO kann nur kommen, wenn die erste Bedingung FALSCH ist, weil sonst -> OFF und fertig

Erst danach kommt die restliche "Kette"...

Evtl. da mal ordnen, damit es einfacher nachzuvollziehen ist ;)


Dann: userreadings OHNE Trigger sind SUBOPTIMAL!


Dann: es hat sich bzgl. Events seitens Homematic/CUL_HM in letzter Zeit einiges getan, kann nat. bei einem userreadings OHNE Trigger "Auswirkungen" haben...


ABER: wie geschrieben ohne list ist es schwer zu sagen warum wieso weshalb ;)

EDIT: und (ReadingsVal($NAME,"ValvePosition",0) > 0 würde ich mittels ReadingsNum abfragen, weil es in deinem Fall nur "zufällig" eine "Zahl" ist (also die ValvePosition) ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Pati_Alpha

Hey, danke schon mal für deine Tipps!

So weit ich weiß habe ich die Konfiguration übrigens aus dem Wiki 1:1 übernommen:
https://wiki.fhem.de/wiki/Homebridge_User_Configs#Homematic_Heizk.C3.B6rperthermostat_HM-CC-RT-DN

Den Bug hatte ich bisher auch nicht, daher wird sich wohl das Verhalten irgendwo geändert haben.
Jetzt ist halt nur die Frage wie man das fixt?

Ich überlege eben mir das einmal neu zu bauen, damit Ichs 1. auch richtig verstehe, 2. sowieso nur das bekomme was ich brauche und 3. keinen endless-loop-bug mehr habe. ;)

Hier ist das komplette List:
Internals:
   DEF        5D5DF904
   FUUID      5cd0936b-f33f-0d46-c75d-d5965ab520cecccc
   NAME       HM_5D5DF9_Clima
   NOTIFYDEV  global
   NR         131
   NTFY_ORDER 50-HM_5D5DF9_Clima
   STATE      T: 23.6 desired: 21.0 valve: 0
   TYPE       CUL_HM
   chanNo     04
   device     HM_5D5DF9
   READINGS:
     2020-09-21 00:20:16   CommandAccepted yes
     2019-05-05 12:48:52   R-boostPos      100 %
     2019-05-05 12:48:52   R-btnNoBckLight off
     2019-05-05 12:48:52   R-dayTemp       21 C
     2019-05-05 12:48:52   R-daylightSaveTime on
     2019-05-05 12:48:52   R-modePrioManu  all
     2019-05-05 12:48:52   R-modePrioParty all
     2019-05-05 12:48:52   R-nightTemp     17 C
     2019-05-05 12:48:52   R-noMinMax4Manu off
     2019-05-05 12:48:52   R-regAdaptive   on
     2019-05-05 12:48:52   R-showInfo      time
     2019-05-05 12:48:48   R-sign          off
     2019-05-05 12:48:52   R-tempOffset    -2.0K
     2019-05-05 12:48:52   R-valveOffsetRt 0 %
     2019-05-05 12:48:52   R-winOpnBoost   off
     2020-09-19 21:07:08   R_0_tempListSat  07:00 17.0 24:00 21.0
     2020-09-19 21:07:08   R_1_tempListSun  07:00 17.0 24:00 21.0
     2020-09-19 21:07:08   R_2_tempListMon  07:00 17.0 24:00 21.0
     2020-09-19 21:07:08   R_3_tempListTue  07:00 17.0 24:00 21.0
     2020-09-19 21:07:08   R_4_tempListWed  07:00 17.0 24:00 21.0
     2020-09-19 21:07:08   R_5_tempListThu  07:00 17.0 24:00 21.0
     2020-09-19 21:07:08   R_6_tempListFri  07:00 17.0 24:00 21.0
     2020-09-19 21:07:08   R_tempList_State verified
     2020-09-19 21:07:04   RegL_01.         00:00 08:00
     2020-09-19 21:07:08   RegL_07.         00:00 01:2A 02:22 03:09 04:3D 05:18 06:03 07:00 08:16 09:03 0A:34 0B:00 0C:64 0D:0F 0E:05 0F:00 10:00 11:00 12:09 13:8E 14:44 15:54 16:55 17:20 18:59 19:20 1A:45 1B:20 1C:45 1D:20 1E:45 1F:20 20:45 21:20 22:45 23:20 24:45 25:20 26:45 27:20 28:45 29:20 2A:45 2B:20 2C:45 2D:20 2E:44 2F:54 30:55 31:20 32:59 33:20 34:45 35:20 36:45 37:20 38:45 39:20 3A:45 3B:20 3C:45 3D:20 3E:45 3F:20 40:45 41:20 42:45 43:20 44:45 45:20 46:45 47:20 48:44 49:54 4A:55 4B:20 4C:44 4D:C0 4E:55 4F:20 50:45 51:20 52:45 53:20 54:45 55:20 56:45 57:20 58:45 59:20 5A:45 5B:20 5C:45 5D:20 5E:45 5F:20 60:45 61:20 62:44 63:54 64:55 65:20 66:44 67:C0 68:55 69:20 6A:45 6B:20 6C:45 6D:20 6E:45 6F:20 70:45 71:20 72:45 73:20 74:45 75:20 76:45 77:20 78:45 79:20 7A:45 7B:20 7C:44 7D:54 7E:55 7F:20 80:44 81:C0 82:55 83:20 84:45 85:20 86:45 87:20 88:45 89:20 8A:45 8B:20 8C:45 8D:20 8E:45 8F:20 90:45 91:20 92:45 93:20 94:45 95:20 96:44 97:54 98:55 99:20 9A:44 9B:C0 9C:55 9D:20 9E:45 9F:20 A0:45 A1:20 A2:45 A3:20 A4:45 A5:20 A6:45 A7:20 A8:45 A9:20 AA:45 AB:20 AC:45 AD:20 AE:45 AF:20 B0:44 B1:54 B2:55 B3:20 B4:44 B5:C0 B6:55 B7:20 B8:45 B9:20 BA:45 BB:20 BC:45 BD:20 BE:45 BF:20 C0:45 C1:20 C2:45 C3:20 C4:45 C5:20 C6:45 C7:20 C8:45 C9:20 CA:12 CB:21 CC:2C CD:0F CE:1E CF:1E
     2020-09-21 15:05:11   ValvePosition   0
     2020-09-21 15:05:11   boostTime       -
     2020-09-19 21:01:46   cfgState        updating
     2020-09-21 15:05:11   controlMode     auto
     2020-09-21 15:05:11   desired-temp    21.0
     2020-09-21 15:05:11   heatingState    AUTO
     2020-09-21 15:05:11   measured-temp   23.6
     2020-09-21 15:05:11   partyEnd        -
     2020-09-21 15:05:11   partyStart      -
     2020-09-21 15:05:11   partyTemp       -
     2020-09-21 00:20:16   recentStateType ack
     2020-09-21 15:05:11   state           T: 23.6 desired: 21.0 valve: 0
     2020-09-17 12:48:01   trigLast        fhem:80
   TEMPLIST:
     Fri:
       0:
         HOUR       07
         MINUTE     00
         TEMP       17.0
       1:
         HOUR       24
         MINUTE     00
         TEMP       21.0
       2:
         HOUR       16
         MINUTE     00
         TEMP       17.0
       3:
         HOUR       24
         MINUTE     00
         TEMP       21.0
     Mon:
       0:
         HOUR       07
         MINUTE     00
         TEMP       17.0
       1:
         HOUR       24
         MINUTE     00
         TEMP       21.0
       2:
         HOUR       16
         MINUTE     00
         TEMP       17.0
       3:
         HOUR       24
         MINUTE     00
         TEMP       21.0
     Sat:
       0:
         HOUR       07
         MINUTE     00
         TEMP       17.0
       1:
         HOUR       24
         MINUTE     00
         TEMP       21.0
     Sun:
       0:
         HOUR       07
         MINUTE     00
         TEMP       17.0
       1:
         HOUR       24
         MINUTE     00
         TEMP       21.0
     Thu:
       0:
         HOUR       07
         MINUTE     00
         TEMP       17.0
       1:
         HOUR       24
         MINUTE     00
         TEMP       21.0
       2:
         HOUR       16
         MINUTE     00
         TEMP       17.0
       3:
         HOUR       24
         MINUTE     00
         TEMP       21.0
     Tue:
       0:
         HOUR       07
         MINUTE     00
         TEMP       17.0
       1:
         HOUR       24
         MINUTE     00
         TEMP       21.0
       2:
         HOUR       16
         MINUTE     00
         TEMP       17.0
       3:
         HOUR       24
         MINUTE     00
         TEMP       21.0
     Wed:
       0:
         HOUR       07
         MINUTE     00
         TEMP       17.0
       1:
         HOUR       24
         MINUTE     00
         TEMP       21.0
       2:
         HOUR       16
         MINUTE     00
         TEMP       17.0
       3:
         HOUR       24
         MINUTE     00
         TEMP       21.0
   helper:
     peerFriend peerRTteam2
     peerIDsRaw ,00000000
     peerOpt    p:thermostat
     regLst     1,7
     cmds:
       TmplKey    :no:1599595092.62101
       TmplTs     1599595092.62101
       cmdKey     1:0:0::HM_5D5DF9:0095:04:
       cmdLst:
         burstXmit  noArg
         clear      [(readings|trigger|register|oldRegs|rssi|msgEvents|{msgErrors}|attack|all)]
         controlManu (on|off|5.0..30.0;0.5)
         controlMode (auto|manual|boost|day|night)
         controlParty -temp- -startDate- -startTime- -endDate- -endTime-
         desired-temp (on|off|5.0..30.0;0.5)
         getConfig  noArg
         getRegRaw  (List0|List1|List2|List3|List4|List5|List6) [-peerChn-]
         inhibit    [(on|{off})]
         peerBulk   -peer1,peer2,...- [({set}|unset)]
         peerSmart  -peerOpt-
         regBulk    -list-.-peerChn- -addr1:data1- -addr2:data2-...
         regSet     [(prep|{exec})] -regName- -value- [-peerChn-]
         sign       [(on|{off})]
         sysTime    noArg
         tempListFri [(prep|{exec})] -HH:MM- -temp- [...]
         tempListMon [(prep|{exec})] -HH:MM- -temp- [...]
         tempListSat [(prep|{exec})] -HH:MM- -temp- [...]
         tempListSun [(prep|{exec})] -HH:MM- -temp- [...]
         tempListThu [(prep|{exec})] -HH:MM- -temp- [...]
         tempListTmpl [({verify}|restore)] [[-file-:]-templateName-]
         tempListTue [(prep|{exec})] -HH:MM- -temp- [...]
         tempListWed [(prep|{exec})] -HH:MM- -temp- [...]
         tempTmplSet -tempTmpl-
         tplDel     -tplDel-
       lst:
         condition  slider,0,1,255
         peer       
         peerOpt    HM_2BCF4E_ClimaTeam,HM_2C6D58_ClimaTeam,HM_5D5E8C_ClimaTeam,HM_5D5FEF_ClimaTeam
         tplDel     
       rtrvLst:
         cmdList    [({short}|long)]
         deviceInfo [({short}|long)]
         param      -param-
         reg        -addr- -list- [-peerChn-]
         regList    noArg
         regTable   noArg
         regVal     -addr- -list- [-peerChn-]
         saveConfig [-filename-]
         tplInfo    noArg
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     prt:
       brstWu     1
     regCollect:
     role:
       chn        1
     shRegR:
       07         00
     shadowReg:
     tmpl:
Attributes:
   alias      Küchenheizung
   group      Heizung
   homebridgeMapping TargetHeatingCoolingState=heatingState,values=OFF:0;HEAT:1;COOL:2;AUTO:3,cmds=OFF:controlManu+off;HEAT:controlMode+boost;AUTO:controlMode+auto;COOL:controlMode+night CurrentHeatingCoolingState=heatingState,values=OFF:0;HEAT:1;COOL:2;AUTO:0
   model      HM-CC-RT-DN
   peerIDs    00000000,
   room       Küche,HomeKit01,Alexa
   sortby     1
   userReadings heatingState {(ReadingsVal($NAME,"ValvePosition",0) > 0 || ReadingsVal($NAME,"desired-temp","-") eq "on") ? "HEAT" : ReadingsVal($NAME,"desired-temp","-") eq "off" ? "OFF" : ReadingsVal($NAME,"controlMode","auto") eq "auto" ? "AUTO" : (ReadingsVal($NAME,"measured-temp",20) > ReadingsVal($NAME,"desired-temp",20)) ? "COOL" : "AUTO"}