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

Inovelli New Zigbee Dimmer #1435

Merged
merged 44 commits into from
May 23, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
d03c157
Creating Inovelli Quirk Files
codyhackw Mar 15, 2022
9bb1d47
Creating Inovelli VZM31-SN Quirk
codyhackw Mar 15, 2022
ac897f9
Merge pull request #1 from codyhackw/patch-1
InovelliUSA Mar 16, 2022
f32c071
Update VZM31-SN.py
codyhackw Mar 17, 2022
722d1f7
Merge pull request #2 from codyhackw/patch-2
InovelliUSA Mar 17, 2022
7ad3c3a
Update VZM31-SN.py
codyhackw Mar 18, 2022
6bb4a8e
Update __init__.py
codyhackw Mar 21, 2022
b50b164
Update VZM31-SN.py
codyhackw Mar 21, 2022
2f0e0e6
Update VZM31-SN.py
codyhackw Mar 21, 2022
9b214b2
Update __init__.py
codyhackw Mar 21, 2022
967f6f8
Update __init__.py
codyhackw Mar 21, 2022
2aa7bed
Update __init__.py
codyhackw Mar 21, 2022
bd0d4f0
Merge pull request #4 from codyhackw/patch-4
InovelliUSA Mar 21, 2022
c686e6c
Update __init__.py
codyhackw Mar 21, 2022
35aa805
Update VZM31-SN.py
codyhackw Mar 21, 2022
ca88dc5
Merge pull request #5 from codyhackw/patch-5
InovelliUSA Mar 22, 2022
6e36ff1
Update and rename VZM31-SN.py to VZM31SN.py
codyhackw Mar 24, 2022
6d20f61
Update __init__.py
codyhackw Mar 28, 2022
7a4a225
Update VZM31SN.py
codyhackw Mar 28, 2022
1136b8b
Update VZM31SN.py
codyhackw Apr 1, 2022
fc36715
Update VZM31SN.py
codyhackw Apr 1, 2022
bd4c5a6
Merge pull request #6 from codyhackw/patch-6
InovelliUSA Apr 1, 2022
2a82f0e
Update VZM31SN.py
codyhackw Apr 1, 2022
b147ab1
Merge pull request #7 from codyhackw/patch-7
InovelliUSA Apr 1, 2022
e0a17cc
Update __init__.py
codyhackw Apr 1, 2022
de0f66e
Update __init__.py
codyhackw Apr 1, 2022
8c34c4a
Update __init__.py
codyhackw Apr 1, 2022
2a636df
Merge pull request #8 from codyhackw/patch-9
InovelliUSA Apr 2, 2022
03f7da5
Update __init__.py
codyhackw Apr 2, 2022
35a7f43
Update VZM31SN.py
codyhackw Apr 2, 2022
abc7ab3
Merge pull request #9 from codyhackw/patch-10
InovelliUSA Apr 3, 2022
6d93880
Update __init__.py
codyhackw Apr 4, 2022
497ca51
Merge pull request #10 from codyhackw/patch-11
InovelliUSA Apr 4, 2022
adcce40
Update __init__.py
codyhackw Apr 4, 2022
4dc60d2
Merge pull request #11 from codyhackw/patch-12
InovelliUSA Apr 4, 2022
a00ccd4
Update __init__.py
codyhackw Apr 4, 2022
3790a02
Merge pull request #12 from codyhackw/patch-13
InovelliUSA Apr 4, 2022
5087716
Update __init__.py
codyhackw Apr 14, 2022
25ac7db
Merge pull request #13 from codyhackw/patch-14
InovelliUSA Apr 20, 2022
9218dba
Update VZM31SN.py
codyhackw Apr 25, 2022
c32180e
Update __init__.py
codyhackw Apr 25, 2022
8dd2da0
Merge pull request #14 from codyhackw/patch-15
InovelliUSA Apr 25, 2022
9cbfd91
Update __init__.py
codyhackw Apr 29, 2022
cc3b57e
Merge pull request #15 from codyhackw/patch-16
InovelliUSA May 2, 2022
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
269 changes: 269 additions & 0 deletions zhaquirks/inovelli/VZM31SN.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,269 @@
"""VZM31-SN Two in One Switch/Dimmer Module."""

from zigpy.profiles import zha
from zigpy.profiles.zha import DeviceType
from zigpy.quirks import CustomDevice
from zigpy.zcl.clusters.general import (
Basic,
Groups,
Identify,
LevelControl,
OnOff,
Ota,
Scenes,
)
from zigpy.zcl.clusters.homeautomation import Diagnostic, ElectricalMeasurement
from zigpy.zcl.clusters.smartenergy import Metering

from zhaquirks.const import (
DEVICE_TYPE,
ENDPOINTS,
INPUT_CLUSTERS,
MODELS_INFO,
OUTPUT_CLUSTERS,
PROFILE_ID,
)
from zhaquirks.inovelli import INOVELLI_AUTOMATION_TRIGGERS, Inovelli_VZM31SN_Cluster

INOVELLI_VZM31SN_CLUSTER_ID = 64561
WWAH_CLUSTER_ID = 64599


class InovelliVZM31SNv10(CustomDevice):
"""VZM31-SN 2 in 1 Switch/Dimmer Module."""

signature = {
MODELS_INFO: [("Inovelli", "VZM31-SN")],
ENDPOINTS: {
1: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: DeviceType.DIMMABLE_LIGHT,
INPUT_CLUSTERS: [
Basic.cluster_id, # 0
Identify.cluster_id, # 3
Groups.cluster_id, # 4
Scenes.cluster_id, # 5
OnOff.cluster_id, # 6
LevelControl.cluster_id, # 8
Metering.cluster_id, # 1794
ElectricalMeasurement.cluster_id, # 2820
Diagnostic.cluster_id, # 2821
INOVELLI_VZM31SN_CLUSTER_ID, # 64561
WWAH_CLUSTER_ID, # 64599
],
OUTPUT_CLUSTERS: [Identify.cluster_id, Ota.cluster_id], # 3 # 19
},
2: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: DeviceType.DIMMER_SWITCH,
INPUT_CLUSTERS: [Basic.cluster_id, Identify.cluster_id], # 0 # 3
OUTPUT_CLUSTERS: [
Identify.cluster_id, # 3
OnOff.cluster_id, # 6
LevelControl.cluster_id, # 8
INOVELLI_VZM31SN_CLUSTER_ID, # 64561
],
},
},
}

replacement = {
ENDPOINTS: {
1: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: DeviceType.DIMMABLE_LIGHT,
INPUT_CLUSTERS: [
Basic, # 0
Identify, # 3
Groups, # 4
Scenes, # 5
OnOff, # 6
LevelControl, # 8
Metering, # 1794
ElectricalMeasurement, # 2820
Diagnostic, # 2821
Inovelli_VZM31SN_Cluster, # 64561
WWAH_CLUSTER_ID, # 64599
],
OUTPUT_CLUSTERS: [
Identify, # 3
OnOff, # 6
LevelControl, # 8
Ota, # 19
Inovelli_VZM31SN_Cluster, # 64561
],
},
2: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: DeviceType.DIMMER_SWITCH,
INPUT_CLUSTERS: [Basic, Identify], # 0 # 3
OUTPUT_CLUSTERS: [
Identify, # 3
OnOff, # 6
LevelControl, # 8
Inovelli_VZM31SN_Cluster, # 64561
],
},
},
}

device_automation_triggers = INOVELLI_AUTOMATION_TRIGGERS


class InovelliVZM31SNv9(CustomDevice):
"""VZM31-SN 2 in 1 Switch/Dimmer Module."""

signature = {
MODELS_INFO: [("Inovelli", "VZM31-SN")],
ENDPOINTS: {
1: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: DeviceType.DIMMER_SWITCH,
INPUT_CLUSTERS: [
Basic.cluster_id, # 0
Identify.cluster_id, # 3
Groups.cluster_id, # 4
Scenes.cluster_id, # 5
OnOff.cluster_id, # 6
LevelControl.cluster_id, # 8
Metering.cluster_id, # 1794
ElectricalMeasurement.cluster_id, # 2820
Diagnostic.cluster_id, # 2821
INOVELLI_VZM31SN_CLUSTER_ID, # 64561
WWAH_CLUSTER_ID, # 64599
],
OUTPUT_CLUSTERS: [Identify.cluster_id, Ota.cluster_id], # 3 # 19
},
2: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: DeviceType.DIMMER_SWITCH,
INPUT_CLUSTERS: [Identify.cluster_id], # 3
OUTPUT_CLUSTERS: [
Identify.cluster_id, # 3
OnOff.cluster_id, # 6
LevelControl.cluster_id, # 8
INOVELLI_VZM31SN_CLUSTER_ID, # 64561
],
},
},
}

replacement = {
ENDPOINTS: {
1: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: DeviceType.DIMMABLE_LIGHT,
INPUT_CLUSTERS: [
Basic, # 0
Identify, # 3
Groups, # 4
Scenes, # 5
OnOff, # 6
LevelControl, # 8
Metering, # 1794
ElectricalMeasurement, # 2820
Diagnostic, # 2821
Inovelli_VZM31SN_Cluster, # 64561
WWAH_CLUSTER_ID, # 64599
],
OUTPUT_CLUSTERS: [
Identify, # 3
OnOff, # 6
LevelControl, # 8
Ota, # 19
Inovelli_VZM31SN_Cluster, # 64561
],
},
2: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: DeviceType.DIMMER_SWITCH,
INPUT_CLUSTERS: [Identify], # 3
OUTPUT_CLUSTERS: [
Identify, # 3
OnOff, # 6
LevelControl, # 8
Inovelli_VZM31SN_Cluster, # 64561
],
},
},
}

device_automation_triggers = INOVELLI_AUTOMATION_TRIGGERS


class InovelliVZM31SN(CustomDevice):
"""VZM31-SN 2 in 1 Switch/Dimmer Module."""

signature = {
MODELS_INFO: [("Inovelli", "VZM31-SN")],
ENDPOINTS: {
1: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: DeviceType.DIMMER_SWITCH,
INPUT_CLUSTERS: [
Basic.cluster_id, # 0
Identify.cluster_id, # 3
Groups.cluster_id, # 4
Scenes.cluster_id, # 5
OnOff.cluster_id, # 6
LevelControl.cluster_id, # 8
Metering.cluster_id, # 1794
ElectricalMeasurement.cluster_id, # 2820
INOVELLI_VZM31SN_CLUSTER_ID, # 64561
],
OUTPUT_CLUSTERS: [Identify.cluster_id, Ota.cluster_id], # 3 # 19
},
2: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: DeviceType.DIMMER_SWITCH,
INPUT_CLUSTERS: [Identify.cluster_id], # 3
OUTPUT_CLUSTERS: [
Identify.cluster_id, # 3
OnOff.cluster_id, # 6
LevelControl.cluster_id, # 8
INOVELLI_VZM31SN_CLUSTER_ID, # 64561
],
},
},
}

replacement = {
ENDPOINTS: {
1: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: DeviceType.DIMMABLE_LIGHT,
INPUT_CLUSTERS: [
Basic, # 0
Identify, # 3
Groups, # 4
Scenes, # 5
OnOff, # 6
LevelControl, # 8
Metering, # 1794
ElectricalMeasurement, # 2820
Diagnostic, # 2821
Inovelli_VZM31SN_Cluster, # 64561
],
OUTPUT_CLUSTERS: [
Identify, # 3
OnOff, # 6
LevelControl, # 8
Ota, # 19
Inovelli_VZM31SN_Cluster, # 64561
],
},
2: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: DeviceType.DIMMER_SWITCH,
INPUT_CLUSTERS: [Identify], # 3
OUTPUT_CLUSTERS: [
Identify, # 3
OnOff, # 6
LevelControl, # 8
Inovelli_VZM31SN_Cluster, # 64561
],
},
},
}

device_automation_triggers = INOVELLI_AUTOMATION_TRIGGERS
Loading