Commit 95e3673
authored
Fix DHW transition volatility and add generic offset volatility tracker
DHW Transition Fix:
- Unify DHW active tracking: is_hot_water OR temp_lux (was separate)
- Trigger weather layer cooldown when DHW stops (30 min)
- Prevents offset flip when flow temp still elevated after DHW
Generic Offset Volatility Tracker:
- Add OffsetVolatilityTracker class in volatile_helpers.py
- Blocks large offset reversals (>2°C) within 45 min window
- Applied at coordinator level for ALL layer decisions
- Prevents rapid back-and-forth that heat pump can't follow
Consolidate Volatile Duration Constants (DRY):
- VOLATILE_MIN_DURATION_MINUTES = 45 (single source of truth)
- VOLATILE_MIN_DURATION_QUARTERS = 3 (derived for price logic)
- MINUTES_PER_QUARTER = 15 (replaces hardcoded * 15)
- Remove PRICE_FORECAST_MIN_DURATION (redundant)
- Rename COMPRESSOR_MIN_CYCLE_MINUTES → VOLATILE_MIN_DURATION_MINUTES
Tests: 1093 passed (17 new for OffsetVolatilityTracker)1 parent f21b6e9 commit 95e3673
File tree
9 files changed
+486
-93
lines changed- custom_components/effektguard
- optimization
- utils
- tests/unit
- dhw
- effect
- optimization
- utils
9 files changed
+486
-93
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
627 | 627 | | |
628 | 628 | | |
629 | 629 | | |
630 | | - | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
631 | 637 | | |
632 | 638 | | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
633 | 642 | | |
634 | 643 | | |
635 | 644 | | |
| |||
646 | 655 | | |
647 | 656 | | |
648 | 657 | | |
649 | | - | |
650 | | - | |
651 | | - | |
652 | 658 | | |
653 | 659 | | |
654 | 660 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| 38 | + | |
38 | 39 | | |
39 | 40 | | |
40 | 41 | | |
| |||
62 | 63 | | |
63 | 64 | | |
64 | 65 | | |
| 66 | + | |
65 | 67 | | |
66 | 68 | | |
67 | 69 | | |
| |||
267 | 269 | | |
268 | 270 | | |
269 | 271 | | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
270 | 276 | | |
271 | 277 | | |
272 | 278 | | |
273 | 279 | | |
274 | 280 | | |
275 | 281 | | |
276 | | - | |
| 282 | + | |
277 | 283 | | |
278 | 284 | | |
279 | 285 | | |
280 | 286 | | |
281 | | - | |
| 287 | + | |
282 | 288 | | |
283 | 289 | | |
284 | 290 | | |
| |||
819 | 825 | | |
820 | 826 | | |
821 | 827 | | |
822 | | - | |
| 828 | + | |
823 | 829 | | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
824 | 833 | | |
825 | 834 | | |
826 | 835 | | |
827 | 836 | | |
828 | 837 | | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
829 | 859 | | |
830 | 860 | | |
831 | 861 | | |
832 | 862 | | |
833 | 863 | | |
834 | 864 | | |
835 | 865 | | |
836 | | - | |
| 866 | + | |
837 | 867 | | |
838 | 868 | | |
839 | 869 | | |
| |||
878 | 908 | | |
879 | 909 | | |
880 | 910 | | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
881 | 929 | | |
882 | 930 | | |
883 | 931 | | |
| |||
1046 | 1094 | | |
1047 | 1095 | | |
1048 | 1096 | | |
1049 | | - | |
1050 | | - | |
1051 | | - | |
1052 | | - | |
1053 | | - | |
1054 | | - | |
1055 | | - | |
1056 | | - | |
1057 | | - | |
1058 | | - | |
1059 | | - | |
1060 | | - | |
1061 | | - | |
1062 | | - | |
1063 | | - | |
1064 | | - | |
1065 | | - | |
1066 | | - | |
1067 | | - | |
1068 | | - | |
1069 | | - | |
1070 | | - | |
1071 | | - | |
| 1097 | + | |
| 1098 | + | |
| 1099 | + | |
1072 | 1100 | | |
1073 | 1101 | | |
1074 | 1102 | | |
| |||
Lines changed: 37 additions & 35 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
19 | 18 | | |
| 19 | + | |
| 20 | + | |
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
25 | | - | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| 43 | + | |
| 44 | + | |
43 | 45 | | |
44 | 46 | | |
45 | 47 | | |
| |||
131 | 133 | | |
132 | 134 | | |
133 | 135 | | |
134 | | - | |
| 136 | + | |
135 | 137 | | |
136 | 138 | | |
137 | 139 | | |
| |||
824 | 826 | | |
825 | 827 | | |
826 | 828 | | |
827 | | - | |
828 | | - | |
| 829 | + | |
| 830 | + | |
829 | 831 | | |
830 | 832 | | |
831 | 833 | | |
| |||
838 | 840 | | |
839 | 841 | | |
840 | 842 | | |
841 | | - | |
| 843 | + | |
842 | 844 | | |
843 | 845 | | |
844 | 846 | | |
845 | | - | |
846 | | - | |
| 847 | + | |
| 848 | + | |
847 | 849 | | |
848 | 850 | | |
849 | 851 | | |
850 | | - | |
| 852 | + | |
851 | 853 | | |
852 | 854 | | |
853 | 855 | | |
854 | | - | |
855 | | - | |
| 856 | + | |
| 857 | + | |
856 | 858 | | |
857 | 859 | | |
858 | 860 | | |
| |||
863 | 865 | | |
864 | 866 | | |
865 | 867 | | |
866 | | - | |
867 | | - | |
| 868 | + | |
| 869 | + | |
868 | 870 | | |
869 | 871 | | |
870 | 872 | | |
| |||
877 | 879 | | |
878 | 880 | | |
879 | 881 | | |
880 | | - | |
| 882 | + | |
881 | 883 | | |
882 | 884 | | |
883 | 885 | | |
884 | | - | |
885 | | - | |
| 886 | + | |
| 887 | + | |
886 | 888 | | |
887 | 889 | | |
888 | 890 | | |
889 | | - | |
| 891 | + | |
890 | 892 | | |
891 | 893 | | |
892 | 894 | | |
893 | | - | |
894 | | - | |
| 895 | + | |
| 896 | + | |
895 | 897 | | |
896 | 898 | | |
897 | 899 | | |
898 | 900 | | |
899 | 901 | | |
900 | 902 | | |
901 | | - | |
902 | | - | |
| 903 | + | |
| 904 | + | |
903 | 905 | | |
904 | 906 | | |
905 | 907 | | |
906 | 908 | | |
907 | | - | |
908 | | - | |
| 909 | + | |
| 910 | + | |
909 | 911 | | |
910 | 912 | | |
911 | 913 | | |
| |||
944 | 946 | | |
945 | 947 | | |
946 | 948 | | |
947 | | - | |
| 949 | + | |
948 | 950 | | |
949 | 951 | | |
950 | 952 | | |
951 | | - | |
952 | | - | |
| 953 | + | |
| 954 | + | |
953 | 955 | | |
954 | 956 | | |
955 | 957 | | |
956 | | - | |
| 958 | + | |
957 | 959 | | |
958 | 960 | | |
959 | 961 | | |
960 | 962 | | |
961 | | - | |
962 | | - | |
| 963 | + | |
| 964 | + | |
963 | 965 | | |
964 | 966 | | |
965 | | - | |
| 967 | + | |
966 | 968 | | |
967 | 969 | | |
968 | 970 | | |
969 | | - | |
970 | | - | |
| 971 | + | |
| 972 | + | |
971 | 973 | | |
972 | 974 | | |
973 | 975 | | |
974 | | - | |
| 976 | + | |
975 | 977 | | |
976 | 978 | | |
977 | 979 | | |
978 | | - | |
979 | | - | |
| 980 | + | |
| 981 | + | |
980 | 982 | | |
981 | 983 | | |
982 | 984 | | |
| |||
0 commit comments