Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add PV28-CW air quality monitor #931

Merged
merged 4 commits into from
Jul 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion DEVICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,6 @@
- WDYK 2P63A energy meter
- WDYK 3 phase 4 pole 400V energy meter circuit breaker


### Battery Charger

- Parkside PLGS 2012 A1 smart charger for powertools
Expand Down Expand Up @@ -430,6 +429,7 @@ of device.
- Petlibro PLAF203 camera pet feeder
- PGST PA-010 indoor temperature and humidity sensor
- PH-W218 water quality monitor
- PV28-CW 8 in 1 air quality monitor
- Rojeco PTM-001 pet feeder
- Qoto 03 smart water valve / sprinkler controller
- SD123 HPR01 human presence radar
Expand Down
293 changes: 293 additions & 0 deletions custom_components/tuya_local/devices/pv28-cw_airquality_monitor.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,293 @@
name: 8 in 1 air quality
products:
- id: yrr3eiyiacm31ski
name: PV28-CW
primary_entity:
entity: sensor
name: CO2
class: carbon_dioxide
dps:
- id: 2
type: integer
name: sensor
unit: ppm
class: measurement
- id: 103
name: current_humidity
type: integer
hidden: true
secondary_entities:
- entity: binary_sensor
name: CO2 levels
class: safety
dps:
- id: 1
type: string
name: sensor
mapping:
- dps_val: "alarm"
value: true
- dps_val: "normal"
value: false
# - entity: select
# name: Alarm Volume
# category: config
# dps:
# - id: 5
# type: string
# name: option
# optional: true
# mapping:
# - dps_val: low
# value: "low"
# - dps_val: middle
# value: "middle"
# - dps_val: high
# value: "high"
# - dps_val: mute
# value: "mute"
# - entity: select
# name: Alarm Melody
# category: config
# dps:
# - id: 6
# type: string
# name: option
# optional: true
# mapping:
# - dps_val: "ringtone_1"
# value: "ringtone_1"
# - dps_val: "ringtone_2"
# value: "ringtone_2"
# - dps_val: "ringtone_3"
# value: "ringtone_3"
# - dps_val: "ringtone_4"
# value: "ringtone_4"
# - dps_val: "ringtone_5"
# value: "ringtone_5"
# - entity: number
# name: Alarm Duration
# category: config
# dps:
# - id: 7
# type: integer
# name: value
# optional: true
# unit: s
# range:
# min: 1
# max: 60
# mapping:
# - step: 1
- entity: switch
name: Alarm switch
category: config
dps:
- id: 13
type: boolean
name: switch
mapping:
- dps_val: true
icon: "mdi:bell"
- dps_val: false
icon: "mdi:bell-off"
- entity: sensor
name: Power state
class: enum
category: diagnostic
dps:
- id: 14
type: string
name: sensor
mapping:
- dps_val: normal
value: battery
- dps_val: charge
value: charging
- entity: sensor
name: Battery
class: battery
category: diagnostic
dps:
- id: 15
type: integer
name: sensor
unit: "%"
class: measurement
# - entity: number
# name: Screen Brightness
# category: config
# dps:
# - id: 17
# type: integer
# name: value
# unit: "%"
# range:
# min: 0
# max: 100
# mapping:
# - step: 1
- entity: sensor
name: Temperature
class: temperature
dps:
- id: 18
type: integer
name: sensor
unit: C
class: measurement
- entity: sensor
name: Humidity
class: humidity
dps:
- id: 19
type: integer
name: sensor
unit: "%"
class: measurement
- entity: sensor
name: PM 2.5
class: pm25
dps:
- id: 20
type: integer
name: sensor
unit: µg/m³
class: measurement
- entity: sensor
name: TVOC
class: volatile_organic_compounds
dps:
- id: 21
type: integer
name: sensor
unit: µg/m³
class: measurement
mapping:
- scale: 1
step: 1
- entity: sensor
name: HCHO
class: volatile_organic_compounds
dps:
- id: 22
type: integer
name: sensor
unit: µg/m³
class: measurement
mapping:
- scale: 1
step: 1
- entity: number
name: CO2 alarm threshold
category: config
dps:
- id: 26
type: integer
name: value
unit: "ppm"
range:
min: 800
max: 2000
mapping:
- step: 1
- entity: select
name: Unit displayed
category: config
dps:
- id: 31
type: string
name: option
mapping:
- dps_val: c
value: "°C"
- dps_val: f
value: "°F"
- entity: sensor
name: PM 10
class: pm10
dps:
- id: 101
type: integer
name: sensor
unit: µg/m³
class: measurement
- entity: sensor
name: PM 1.0
class: pm1
dps:
- id: 102
type: integer
name: sensor
unit: µg/m³
class: measurement
# - entity: sensor
# name: Air Quality
# class: enum
# dps:
# - id: 104
# type: string
# name: sensor
# optional: true
# mapping:
# - dps_val: "great"
# value: "Great"
# - dps_val: "mild"
# value: "Mild"
# - dps_val: "good"
# value: "Good"
# - dps_val: "medium"
# value: "Medium"
# - dps_val: "severe"
# value: "Severe"
- entity: number
name: PM2.5 alarm threshold
category: config
dps:
- id: 105
type: integer
name: value
unit: "μg/m3"
range:
min: 15
max: 75
mapping:
- step: 1
- entity: binary_sensor
name: PM2.5 levels
class: safety
dps:
- id: 106
type: string
name: sensor
mapping:
- dps_val: "alarm"
value: true
- dps_val: "normal"
value: false
- entity: switch
name: Screen timeout
category: config
icon: "mdi:sleep"
dps:
- id: 108
type: boolean
name: switch
mapping:
- dps_val: true
icon: "mdi:sleep"
- dps_val: false
icon: "mdi:sleep-off"
- entity: number
name: Tiemout period
blakadder marked this conversation as resolved.
Show resolved Hide resolved
category: config
dps:
- id: 105
type: integer
name: value
unit: "s"
range:
min: 10
max: 300
mapping:
- step: 10