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
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
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"}