Просмотр исходного кода

Added new device - Tuya WeatherStation Pro

Andrew Pochinchik 2 лет назад
Родитель
Сommit
a588fba1ab

+ 586 - 0
custom_components/tuya_local/devices/tuya_000004rime_weather_station.yaml

@@ -0,0 +1,586 @@
+name: WeatherStation Pro™
+products:
+  - id: nghjvn2pcjllwska
+    name: WeatherStation Pro™
+primary_entity:
+  entity: sensor
+  name: Local Temperature
+  class: temperature
+  dps:
+    - id: 131
+      type: integer
+      name: sensor
+      unit: C
+      persist: true
+      mapping:
+        - scale: 10
+secondary_entities:
+  - entity: sensor
+    name: Local Humidity
+    class: humidity
+    dps:
+      - id: 132
+        type: integer
+        name: sensor
+        unit: "%"
+        class: measurement
+        persist: true
+  - entity: sensor
+    name: Sensor 1 Temperature
+    class: temperature
+    dps:
+      - id: 133
+        optional: true
+        type: integer
+        name: sensor
+        unit: C
+        persist: true
+        mapping:
+          - scale: 10
+  - entity: sensor
+    name: Sensor 1 Humidity
+    class: humidity
+    dps:
+      - id: 134
+        optional: true
+        type: integer
+        name: sensor
+        unit: "%"
+        class: measurement
+        persist: true
+  - entity: sensor
+    name: Sensor 2 Temperature
+    class: temperature
+    dps:
+      - id: 135
+        optional: true
+        type: integer
+        name: sensor
+        unit: C
+        persist: true
+        mapping:
+          - scale: 10
+  - entity: sensor
+    name: Sensor 2 Humidity
+    class: humidity
+    dps:
+      - id: 136
+        optional: true
+        type: integer
+        name: sensor
+        unit: "%"
+        class: measurement
+        persist: true
+  - entity: sensor
+    name: Sensor 3 Temperature
+    class: temperature
+    dps:
+      - id: 137
+        optional: true
+        type: integer
+        name: sensor
+        unit: C
+        persist: true
+        mapping:
+          - scale: 10
+  - entity: sensor
+    name: Sensor 3 Humidity
+    class: humidity
+    dps:
+      - id: 138
+        optional: true
+        type: integer
+        name: sensor
+        unit: "%"
+        class: measurement
+        persist: true
+  - entity: select
+    name: Time mode
+    icon: "mdi:clock-edit"
+    category: config
+    dps:
+      - id: 102
+        type: boolean
+        name: option
+        mapping:
+          - dps_val: true
+            value: 24h
+          - dps_val: false
+            value: 12h
+  - entity: switch
+    name: Alarm
+    icon: "mdi:alarm-light"
+    category: config
+    dps:
+      - id: 104
+        type: boolean
+        name: switch
+  - entity: select
+    name: Temperature Unit
+    icon: "mdi:temperature-celsius"
+    category: config
+    dps:
+      - id: 105
+        type: string
+        name: option
+        mapping:
+          - dps_val: c
+            value: Celsius
+          - dps_val: f
+            value: Fahrenheit
+  - entity: select
+    name: LCD Brightness
+    icon: "mdi:brightness-7"
+    category: config
+    dps:
+      - id: 106
+        type: string
+        name: option
+        mapping:
+          - dps_val: 0
+            value: 0%
+          - dps_val: 1
+            value: 30%
+          - dps_val: 2
+            value: 60%
+          - dps_val: 3
+            value: 100%
+  - entity: select
+    name: Alarm State
+    icon: "mdi:alarm"
+    category: config
+    dps:
+      - id: 110
+        type: string
+        name: option
+        mapping:
+          - dps_val: 0
+            value: Alarm
+          - dps_val: 1
+            value: Silent
+          - dps_val: 2
+            value: Enabled
+          - dps_val: 3
+            value: Disabled
+  - entity: switch
+    name: Network Time
+    icon: "mdi:timer-cog-outline"
+    category: config
+    dps:
+      - id: 111
+        type: boolean
+        name: switch
+  - entity: switch
+    name: LCD Night Mode
+    icon: "mdi:weather-night"
+    category: config
+    dps:
+      - id: 129
+        type: boolean
+        name: switch
+        ## diagnostic section, base64 dps
+  - entity: sensor
+    category: diagnostic
+    name: Current Time
+    dps:
+      - id: 101
+        optional: true
+        type: boolean
+        name: sensor
+      - id: 101
+        optional: true
+        type: base64
+        name: Payload
+      - id: 101
+        optional: true
+        type: base64
+        name: Year
+        persist: true
+        mapping:
+          - mask: "FF000000000000"
+      - id: 101
+        optional: true
+        type: base64
+        name: Month
+        persist: true
+        mapping:
+          - mask: 00FF0000000000
+          - dps_val: 1
+            value: January
+            mask: 00FF0000000000
+          - dps_val: 2
+            value: February
+            mask: 00FF0000000000
+          - dps_val: 3
+            value: March
+            mask: 00FF0000000000
+          - dps_val: 4
+            value: April
+            mask: 00FF0000000000
+          - dps_val: 5
+            value: May
+            mask: 00FF0000000000
+          - dps_val: 6
+            value: June
+            mask: 00FF0000000000
+          - dps_val: 7
+            value: July
+            mask: 00FF0000000000
+          - dps_val: 8
+            value: August
+            mask: 00FF0000000000
+          - dps_val: 9
+            value: September
+            mask: 00FF0000000000
+          - dps_val: 10
+            value: October
+            mask: 00FF0000000000
+          - dps_val: 11
+            value: November
+            mask: 00FF0000000000
+          - dps_val: 12
+            value: December
+            mask: 00FF0000000000
+      - id: 101
+        optional: true
+        type: base64
+        name: Day
+        persist: true
+        mapping:
+          - mask: "0000FF00000000"
+      - id: 101
+        optional: true
+        type: base64
+        name: Hour
+        persist: true
+        mapping:
+          - mask: "000000FF000000"
+      - id: 101
+        optional: true
+        type: base64
+        name: Minute
+        persist: true
+        mapping:
+          - mask: "00000000FF0000"
+      - id: 101
+        optional: true
+        type: base64
+        name: Second
+        persist: true
+        mapping:
+          - mask: "0000000000FF00"
+      - id: 101
+        optional: true
+        type: base64
+        name: Weekday
+        persist: true
+        mapping:
+          - mask: "000000000000FF"
+          - dps_val: 1
+            value: Monday
+            mask: 00FF0000000000
+          - dps_val: 2
+            value: Tuesday
+            mask: 00FF0000000000
+          - dps_val: 3
+            value: Wednesday
+            mask: 00FF0000000000
+          - dps_val: 4
+            value: Thursday
+            mask: 00FF0000000000
+          - dps_val: 5
+            value: Friday
+            mask: 00FF0000000000
+          - dps_val: 6
+            value: Saturday
+            mask: 00FF0000000000
+          - dps_val: 7
+            value: Sunday
+            mask: 00FF0000000000
+  - entity: sensor
+    category: diagnostic
+    name: Weather
+    dps:
+      - id: 103
+        optional: true
+        type: boolean
+        name: sensor
+      - id: 103
+        optional: true
+        type: base64
+        name: Payload
+      - id: 103
+        optional: true
+        type: base64
+        name: Weather Icon
+        persist: true
+        mapping:
+          - mask: "000000FF00000000000000000000000000"
+          - dps_val: 0
+            value: None
+            mask: 000000FF00000000000000000000000000
+          - dps_val: 1
+            value: Sunny
+            mask: 000000FF00000000000000000000000000
+          - dps_val: 2
+            value: Cloudy
+            mask: 000000FF00000000000000000000000000
+          - dps_val: 3
+            value: Sunny and Cloudy
+            mask: 000000FF00000000000000000000000000
+          - dps_val: 4
+            value: Cloudy and Light Rain
+            mask: 000000FF00000000000000000000000000
+          - dps_val: 5
+            value: Cloudy and Moderate Rain
+            mask: 000000FF00000000000000000000000000
+          - dps_val: 6
+            value: Cloudy and Heavy Rain
+            mask: 000000FF00000000000000000000000000
+          - dps_val: 7
+            value: Cloudy, Rain and Thunder
+            mask: 000000FF00000000000000000000000000
+          - dps_val: 8
+            value: Snowy
+            mask: 000000FF00000000000000000000000000
+          - dps_val: 9
+            value: Cloudy and Snowy
+            mask: 000000FF00000000000000000000000000
+          - dps_val: 10
+            value: Cloudy, Rainy and Snowy
+            mask: 000000FF00000000000000000000000000
+  - entity: sensor
+    category: diagnostic
+    name: Remote State
+    dps:
+      - id: 107
+        optional: true
+        type: boolean
+        name: sensor
+      - id: 107
+        optional: true
+        type: base64
+        name: Payload
+  - entity: sensor
+    category: diagnostic
+    name: Display Settings
+    dps:
+      - id: 108
+        optional: true
+        type: boolean
+        name: sensor
+      - id: 108
+        optional: true
+        type: base64
+        name: Payload
+      - id: 108
+        optional: true
+        type: base64
+        name: UV Index
+        persist: true
+        mapping:
+          - mask: FF00000000000000000000
+          - dps_val: 1
+            value: On
+            mask: FF00000000000000000000
+          - dps_val: 0
+            value: Off
+            mask: FF00000000000000000000
+      - id: 108
+        optional: true
+        type: base64
+        name: Sunrise&Sunset
+        persist: true
+        mapping:
+          - mask: 00FF000000000000000000
+          - dps_val: 1
+            value: On
+            mask: 00FF000000000000000000
+          - dps_val: 0
+            value: Off
+            mask: 00FF000000000000000000
+      - id: 108
+        optional: true
+        type: base64
+        name: 3-day Forecast Temperature
+        persist: true
+        mapping:
+          - mask: 0000FF0000000000000000
+          - dps_val: 1
+            value: On
+            mask: 0000FF0000000000000000
+          - dps_val: 0
+            value: Off
+            mask: 0000FF0000000000000000
+      - id: 108
+        optional: true
+        type: base64
+        name: Hourly Forecast
+        persist: true
+        mapping:
+          - mask: 000000FF00000000000000
+          - dps_val: 1
+            value: On
+            mask: 000000FF00000000000000
+          - dps_val: 0
+            value: Off
+            mask: 000000FF00000000000000
+      - id: 108
+        optional: true
+        type: base64
+        name: 3-day Forecast Weather
+        persist: true
+        mapping:
+          - mask: 00000000FF000000000000
+          - dps_val: 1
+            value: On
+            mask: 00000000FF000000000000
+          - dps_val: 0
+            value: Off
+            mask: 00000000FF000000000000
+      - id: 108
+        optional: true
+        type: base64
+        name: Local Temperature&Humidity
+        persist: true
+        mapping:
+          - mask: 0000000000FF0000000000
+          - dps_val: 1
+            value: On
+            mask: 0000000000FF0000000000
+          - dps_val: 0
+            value: Off
+            mask: 0000000000FF0000000000
+      - id: 108
+        optional: true
+        type: base64
+        name: Date
+        persist: true
+        mapping:
+          - mask: 000000000000FF00000000
+          - dps_val: 1
+            value: On
+            mask: 000000000000FF00000000
+          - dps_val: 0
+            value: Off
+            mask: 000000000000FF00000000
+      - id: 108
+        optional: true
+        type: base64
+        name: Week
+        persist: true
+        mapping:
+          - mask: 00000000000000FF000000
+          - dps_val: 1
+            value: On
+            mask: 00000000000000FF000000
+          - dps_val: 0
+            value: Off
+            mask: 00000000000000FF000000
+      - id: 108
+        optional: true
+        type: base64
+        name: Hourly Forecast Weather
+        persist: true
+        mapping:
+          - mask: 0000000000000000FF0000
+          - dps_val: 1
+            value: On
+            mask: 0000000000000000FF0000
+          - dps_val: 0
+            value: Off
+            mask: 0000000000000000FF0000
+      - id: 108
+        optional: true
+        type: base64
+        name: Sensor 1 Temperature&Humidity
+        persist: true
+        mapping:
+          - mask: 000000000000000000FF00
+          - dps_val: 1
+            value: On
+            mask: 000000000000000000FF00
+          - dps_val: 0
+            value: Off
+            mask: 000000000000000000FF00
+      - id: 108
+        optional: true
+        type: base64
+        name: Sensor 2 Temperature&Humidity
+        persist: true
+        mapping:
+          - mask: 00000000000000000000FF
+          - dps_val: 1
+            value: On
+            mask: 00000000000000000000FF
+          - dps_val: 0
+            value: Off
+            mask: 00000000000000000000FF
+  - entity: sensor
+    category: diagnostic
+    name: Alarm Settings
+    dps:
+      - id: 109
+        optional: true
+        type: boolean
+        name: sensor
+      - id: 109
+        optional: true
+        type: base64
+        name: Payload
+  - entity: sensor
+    category: diagnostic
+    name: Errors
+    dps:
+      - id: 113
+        optional: true
+        type: bitfield
+        name: sensor
+  - entity: sensor
+    category: diagnostic
+    name: Notifications
+    dps:
+      - id: 117
+        optional: true
+        type: bitfield
+        name: sensor
+  - entity: sensor
+    category: diagnostic
+    name: LCD Night Time
+    dps:
+      - id: 130
+        optional: true
+        type: boolean
+        name: sensor
+      - id: 130
+        optional: true
+        type: base64
+        name: Payload
+      - id: 130
+        optional: true
+        type: base64
+        name: start_hour
+        persist: true
+        mapping:
+          - mask: "FF000000"
+      - id: 130
+        optional: true
+        type: base64
+        name: start_minute
+        persist: true
+        mapping:
+          - mask: "00FF0000"
+      - id: 130
+        optional: true
+        type: base64
+        name: end_hour
+        persist: true
+        mapping:
+          - mask: "0000FF00"
+      - id: 130
+        optional: true
+        type: base64
+        name: end_minute
+        persist: true
+        mapping:
+          - mask: "000000FF"