Forráskód Böngészése

Add a third config for Beca BHP6000 thermostat quirks.

Issue #215

When set to C, the temperature in the protocol seems to start equal to
F at the bottom of the range, and go up by 0.5 for every 1 increment,
so by the top of the range has drifted away from F by about 4-5
degrees.

A third config has been added to handle this rather than replacing the
existing C config, as it is a bit strange and may be due to a firmware
bug in a specific version of the thermostat.
Jason Rumney 3 éve
szülő
commit
1dbc37bfbd

+ 12 - 7
README.md

@@ -282,13 +282,18 @@ temperature sensor so are not detected at all.
 
 
 ## Beca thermostat gotchas
 ## Beca thermostat gotchas
 
 
-These devices support switching between Celcius and Fahrenheit on the control
-panel, but do not provide any information over the Tuya local protocol about
-which units are selected.  Two configurations for this device are provided,
-`beca_bhp6000_thermostat_c` and `beca_bhp6000_thermostat_f`, please select
-the appropriate one for the temperature units you use.  If you change the
-units on the device control panel, you will need to delete the device from
-Home Assistant and set it up again.
+Some of these devices support switching between Celcius and Fahrenheit
+on the control panel, but do not provide any information over the Tuya
+local protocol about which units are selected.  Three configurations
+for BHP6000 are provided, `beca_bhp6000_thermostat_c` and
+`beca_bhp6000_thermostat_f`, which use Celsius and Fahrenheit
+respectively, and `beca_bhp6000_thermostat_mapped` for a buggy looking
+firmware which displays the temperature on the thermostat in Celsius
+in increments of half a degree, but uses a slightly offset Fahrenheit
+for the protocol, as detailed in issue #215.  Please select the appropriate
+config for the temperature units you use.  If you change the units on the
+device control panel, you will need to delete the device from Home Assistant
+and set it up again.
 
 
 ## Saswell C16 thermostat gotchas
 ## Saswell C16 thermostat gotchas
 
 

+ 411 - 0
custom_components/tuya_local/devices/beca_bhp6000_thermostat_mapped.yaml

@@ -0,0 +1,411 @@
+name: Beca BHP-6000 thermostat mapped
+products:
+  - id: drwezxukumr9ohuh
+primary_entity:
+  entity: climate
+  dps:
+    - id: 2
+      name: temperature
+      type: integer
+      unit: C
+      range:
+        min: 5
+        max: 35
+        # These mappings are not quite F to C, but appear to be what is used
+        # by the thermostat when set to C (issue #215)
+      mapping:
+        - dps_val: 42
+          value: 5
+          step: 0.5
+        - dps_val: 43
+          value: 5.5
+          step: 0.5
+        - dps_val: 44
+          value: 6
+          step: 0.5
+        - dps_val: 45
+          value: 6.5
+          step: 0.5
+        - dps_val: 46
+          value: 7
+          step: 0.5
+        - dps_val: 47
+          value: 7.5
+          step: 0.5
+        - dps_val: 48
+          value: 8
+          step: 0.5
+        - dps_val: 49
+          value: 8.5
+          step: 0.5
+        - dps_val: 50
+          value: 9
+          step: 0.5
+        - dps_val: 51
+          value: 9.5
+          step: 0.5
+        - dps_val: 52
+          value: 10
+          step: 0.5
+        - dps_val: 53
+          value: 10.5
+          step: 0.5
+        - dps_val: 54
+          value: 11
+          step: 0.5
+        - dps_val: 55
+          value: 11.5
+          step: 0.5
+        - dps_val: 56
+          value: 12
+          step: 0.5
+        - dps_val: 57
+          value: 12.5
+          step: 0.5
+        - dps_val: 58
+          value: 13
+          step: 0.5
+        - dps_val: 59
+          value: 13.5
+          step: 0.5
+        - dps_val: 60
+          value: 14
+          step: 0.5
+        - dps_val: 61
+          value: 14.5
+          step: 0.5
+        - dps_val: 62
+          value: 15
+          step: 0.5
+        - dps_val: 63
+          value: 15.5
+          step: 0.5
+        - dps_val: 64
+          value: 16
+          step: 0.5
+        - dps_val: 65
+          value: 16.5
+          step: 0.5
+        - dps_val: 66
+          value: 17
+          step: 0.5
+        - dps_val: 67
+          value: 17.5
+          step: 0.5
+        - dps_val: 68
+          value: 18
+          step: 0.5
+        - dps_val: 69
+          value: 18.5
+          step: 0.5
+        - dps_val: 70
+          value: 19
+          step: 0.5
+        - dps_val: 71
+          value: 19.5
+          step: 0.5
+        - dps_val: 72
+          value: 20
+          step: 0.5
+        - dps_val: 73
+          value: 20.5
+          step: 0.5
+        - dps_val: 74
+          value: 21
+          step: 0.5
+        - dps_val: 75
+          value: 21.5
+          step: 0.5
+        - dps_val: 76
+          value: 22
+          step: 0.5
+        - dps_val: 77
+          value: 22.50
+          step: 0.5
+        - dps_val: 78
+          value: 23
+          step: 0.5
+        - dps_val: 79
+          value: 23.50
+          step: 0.5
+        - dps_val: 80
+          value: 24
+          step: 0.5
+        - dps_val: 81
+          value: 24.5
+          step: 0.5
+        - dps_val: 82
+          value: 25
+          step: 0.5
+        - dps_val: 83
+          value: 25.5
+          step: 0.5
+        - dps_val: 84
+          value: 26
+          step: 0.5
+        - dps_val: 85
+          value: 26.5
+          step: 0.5
+        - dps_val: 86
+          value: 27
+          step: 0.5
+        - dps_val: 87
+          value: 27.5
+          step: 0.5
+        - dps_val: 88
+          value: 28
+          step: 0.5
+        - dps_val: 89
+          value: 28.5
+          step: 0.5
+        - dps_val: 90
+          value: 29
+          step: 0.5
+        - dps_val: 91
+          value: 29.5
+          step: 0.5
+        - dps_val: 92
+          value: 30
+          step: 0.5
+        - dps_val: 93
+          value: 30.5
+          step: 0.5
+        - dps_val: 94
+          value: 31
+          step: 0.5
+        - dps_val: 95
+          value: 31.5
+          step: 0.5
+        - dps_val: 96
+          value: 32
+          step: 0.5
+        - dps_val: 97
+          value: 32.5
+          step: 0.5
+        - dps_val: 98
+          value: 33
+          step: 0.5
+        - dps_val: 99
+          value: 33.5
+          step: 0.5
+        - dps_val: 100
+          value: 34
+          step: 0.5
+        - dps_val: 101
+          value: 34.5
+          step: 0.5
+        - dps_val: 102
+          value: 35
+          step: 0.5
+    - id: 3
+      name: current_temperature
+      type: integer
+      mapping:
+        - dps_val: 41
+          value: 5
+        - dps_val: 42
+          value: 5.5
+        - dps_val: 43
+          value: 6
+        - dps_val: 44
+          value: 6.5
+        - dps_val: 45
+          value: 7
+        - dps_val: 46
+          value: 7.5
+        - dps_val: 47
+          value: 8
+        - dps_val: 48
+          value: 8.5
+        - dps_val: 49
+          value: 9
+        - dps_val: 50
+          value: 9.5
+        - dps_val: 51
+          value: 10
+        - dps_val: 52
+          value: 10.5
+        - dps_val: 53
+          value: 11
+        - dps_val: 54
+          value: 11.5
+        - dps_val: 55
+          value: 12
+        - dps_val: 56
+          value: 12.5
+        - dps_val: 57
+          value: 13
+        - dps_val: 58
+          value: 13.5
+        - dps_val: 59
+          value: 14
+        - dps_val: 60
+          value: 14.5
+        - dps_val: 61
+          value: 15
+        - dps_val: 62
+          value: 15.5
+        - dps_val: 63
+          value: 16
+        - dps_val: 64
+          value: 16.5
+        - dps_val: 65
+          value: 17
+        - dps_val: 66
+          value: 17.5
+        - dps_val: 67
+          value: 18
+        - dps_val: 68
+          value: 18.5
+        - dps_val: 69
+          value: 19
+        - dps_val: 70
+          value: 19.5
+        - dps_val: 71
+          value: 20
+        - dps_val: 72
+          value: 20.5
+        - dps_val: 73
+          value: 21
+        - dps_val: 74
+          value: 21.5
+        - dps_val: 75
+          value: 22
+        - dps_val: 76
+          value: 22.5
+        - dps_val: 77
+          value: 23
+        - dps_val: 78
+          value: 23.5
+        - dps_val: 79
+          value: 24
+        - dps_val: 80
+          value: 24.5
+        - dps_val: 81
+          value: 25
+        - dps_val: 82
+          value: 25.5
+        - dps_val: 83
+          value: 26
+        - dps_val: 84
+          value: 26.5
+        - dps_val: 85
+          value: 27
+        - dps_val: 86
+          value: 27.5
+        - dps_val: 87
+          value: 28
+        - dps_val: 88
+          value: 28.5
+        - dps_val: 89
+          value: 29
+        - dps_val: 90
+          value: 29.5
+        - dps_val: 91
+          value: 30
+        - dps_val: 92
+          value: 30.5
+        - dps_val: 93
+          value: 31
+        - dps_val: 94
+          value: 31.5
+        - dps_val: 95
+          value: 32
+        - dps_val: 96
+          value: 32.5
+        - dps_val: 97
+          value: 33
+        - dps_val: 98
+          value: 33.5
+        - dps_val: 99
+          value: 34
+        - dps_val: 100
+          value: 34.5
+        - dps_val: 101
+          value: 35
+        - dps_val: 102
+          value: 35.5
+        - dps_val: 103
+          value: 36
+        - dps_val: 104
+          value: 36.5
+        - dps_val: 105
+          value: 37
+        - dps_val: 106
+          value: 37.5
+        - dps_val: 107
+          value: 38
+        - dps_val: 108
+          value: 38.5
+        - dps_val: 109
+          value: 39
+        - dps_val: 110
+          value: 39.5
+        - dps_val: 111
+          value: 40
+        - dps_val: 112
+          value: 40.5
+    - id: 4
+      name: preset_mode
+      type: integer
+      mapping:
+        - dps_val: 1
+          value: Schedule
+        - dps_val: 2
+          value: Temporary Hold
+        - dps_val: 3
+          value: Permanent Hold
+        - dps_val: 4
+          value: Holiday Hold
+    - id: 5
+      name: hvac_mode
+      type: integer
+      mapping:
+        - dps_val: 1
+          value: cool
+          icon: "mdi:snowflake"
+        - dps_val: 2
+          value: heat
+          icon: "mdi:fire"
+        - dps_val: 3
+          value: "off"
+          icon: "mdi:hvac-off"
+        - dps_val: 4
+          value: heat_cool
+          icon: "mdi:fire-alert"
+        - dps_val: 5
+          value: auto
+          icon: "mdi:hvac"
+    - id: 6
+      name: fan_mode
+      type: boolean
+      mapping:
+        - dps_val: false
+          value: auto
+        - dps_val: true
+          value: "on"
+secondary_entities:
+  - entity: lock
+    name: Child lock
+    category: config
+    dps:
+      - id: 7
+        name: lock
+        type: boolean
+        mapping:
+          - dps_val: true
+            icon: "mdi:hand-back-right-off"
+          - dps_val: false
+            icon: "mdi:hand-back-right"
+  - entity: light
+    name: Display
+    category: config
+    dps:
+      - id: 1
+        name: switch
+        type: boolean
+        mapping:
+          - dps_val: true
+            icon: "mdi:led-on"
+          - dps_val: false
+            icon: "mdi:led-off"