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 Bathroom dryer #74

Merged
merged 1 commit into from
Oct 4, 2024
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
75 changes: 75 additions & 0 deletions pychonet/BathroomDryer.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
from pychonet.EchonetInstance import EchonetInstance
from pychonet.lib.epc_functions import (
DICT_41_AUTO_8_LEVELS,
DICT_41_AUTO_STANDARD,
DICT_41_ON_OFF,
DICT_41_YES_NO,
_int,
_signed_int,
)


class BathroomDryer(EchonetInstance):
EOJGC = 0x02
EOJCC = 0x73

EPC_FUNCTIONS = {
0xB0: [
_int,
{
0x10: "ventilation",
0x20: "prewarming",
0x30: "heating",
0x40: "drying",
0x50: "circulation",
0x60: "mistSauna",
0x61: "waterMist",
0x00: "stop",
},
], # "Operation setting",
0xB1: [
_int,
{**DICT_41_AUTO_STANDARD, **DICT_41_AUTO_8_LEVELS},
], # "Ventilation operation setting",
0xB2: [
_int,
{**DICT_41_AUTO_STANDARD, **DICT_41_AUTO_8_LEVELS},
], # "Bathroom pre-warmer operation setting",
0xB3: [
_int,
{**DICT_41_AUTO_STANDARD, **DICT_41_AUTO_8_LEVELS},
], # "Bathroom heater operation setting",
0xB4: [
_int,
{**DICT_41_AUTO_STANDARD, **DICT_41_AUTO_8_LEVELS},
], # "Bathroom dryer operation setting",
0xB5: [
_int,
{**DICT_41_AUTO_STANDARD, **DICT_41_AUTO_8_LEVELS},
], # "Cool air circulator operation setting",
0xB6: [
_int,
{**DICT_41_AUTO_STANDARD, **DICT_41_AUTO_8_LEVELS},
], # "Mist sauna operation setting",
0xB7: [
_int,
{**DICT_41_AUTO_STANDARD, **DICT_41_AUTO_8_LEVELS},
], # "Water mist operation setting",
0xBA: _int, # "Measured relative bathroom humidity",
0xBB: _signed_int, # "Measured bathroom temperature",
0xC2: [_int, DICT_41_AUTO_8_LEVELS], # "Ventilation air flow rate setting",
0xCF: [_int, DICT_41_ON_OFF], # "Filter cleaning reminder sign setting",
0xE0: [_int, DICT_41_ON_OFF], # "Human body detection status",
# 0x90: "“ON timer-based reservation” setting 1",
# 0xE1: "“ON timer-based reservation” setting 2",
# 0x91: "ON timer setting (time)",
# 0x92: "ON timer setting (relative time)",
# 0x94: "“OFF timer-based reservation” setting",
# 0x95: "OFF timer setting (time)",
# 0x96: "OFF timer setting (relative time)",
}

def __init__(self, host, api_connector=None, instance=0x1):
self._eojgc = self.EOJGC
self._eojcc = self.EOJCC
super().__init__(host, self._eojgc, self._eojcc, instance, api_connector)
36 changes: 19 additions & 17 deletions pychonet/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,36 +2,37 @@
from pychonet.lib.eojx import EOJX_CLASS

from .version import __version__
from .AutomaticEntranceDoor import AutomaticEntranceDoor
from .BathroomDryer import BathroomDryer
from .CeilingFan import CeilingFan
from .DistributionPanelMeter import DistributionPanelMeter
from .EchonetInstance import EchonetInstance
from .ElectricBlind import ElectricBlind
from .ElectricShutter import ElectricShutter
from .ElectricCurtain import ElectricCurtain
from .ElectricRainSlidingDoor import ElectricRainSlidingDoor
from .ElectricEnergyMeter import ElectricEnergyMeter
from .ElectricGate import ElectricGate
from .ElectricWindow import ElectricWindow
from .AutomaticEntranceDoor import AutomaticEntranceDoor
from .ElectricLock import ElectricLock
from .ElectricRainSlidingDoor import ElectricRainSlidingDoor
from .ElectricShutter import ElectricShutter
from .ElectricVehicleCharger import ElectricVehicleCharger
from .ElectricWaterHeater import ElectricWaterHeater
from .ElectricWindow import ElectricWindow
from .FloorHeater import FloorHeater
from .FuelCell import FuelCell
from .GasMeter import GasMeter
from .GeneralLighting import GeneralLighting
from .SingleFunctionLighting import SingleFunctionLighting
from .LightingSystem import LightingSystem
from .HomeAirCleaner import HomeAirCleaner
from .HomeAirConditioner import HomeAirConditioner
from .HomeSolarPower import HomeSolarPower
from .HotWaterGenerator import HotWaterGenerator
from .HybridWaterHeater import HybridWaterHeater
from .LightingSystem import LightingSystem
from .LowVoltageSmartElectricEnergyMeter import LowVoltageSmartElectricEnergyMeter
from .Refrigerator import Refrigerator
from .SingleFunctionLighting import SingleFunctionLighting
from .StorageBattery import StorageBattery
from .TemperatureSensor import TemperatureSensor
from .DistributionPanelMeter import DistributionPanelMeter
from .LowVoltageSmartElectricEnergyMeter import LowVoltageSmartElectricEnergyMeter
from .HybridWaterHeater import HybridWaterHeater
from .HotWaterGenerator import HotWaterGenerator
from .FloorHeater import FloorHeater
from .FuelCell import FuelCell
from .GasMeter import GasMeter
from .ElectricEnergyMeter import ElectricEnergyMeter
from .WaterFlowMeter import WaterFlowMeter
from .CeilingFan import CeilingFan
from .ElectricWaterHeater import ElectricWaterHeater
from .Refrigerator import Refrigerator


def Factory(host, server, eojgc, eojcc, eojci=0x01):
Expand All @@ -56,6 +57,7 @@ def Factory(host, server, eojgc, eojcc, eojci=0x01):
f"{0x02}-{0x6B}": ElectricWaterHeater,
f"{0x02}-{0x6F}": ElectricLock,
f"{0x02}-{0x72}": HotWaterGenerator,
f"{0x02}-{0x73}": BathroomDryer,
f"{0x02}-{0x79}": HomeSolarPower,
f"{0x02}-{0x7B}": FloorHeater,
f"{0x02}-{0x7C}": FuelCell,
Expand Down
2 changes: 2 additions & 0 deletions pychonet/lib/epc.py
Original file line number Diff line number Diff line change
Expand Up @@ -689,6 +689,8 @@
0xB3: "Bathroom heater operation setting",
0xB4: "Bathroom dryer operation setting",
0xB5: "Cool air circulator operation setting",
0xB6: "Mist sauna operation setting",
0xB7: "Water mist operation setting",
0xBA: "Measured relative bathroom humidity",
0xBB: "Measured bathroom temperature",
0xC2: "Ventilation air flow rate setting",
Expand Down
13 changes: 13 additions & 0 deletions pychonet/lib/epc_functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
DICT_41_ON_OFF = {0x41: DATA_STATE_ON, 0x42: DATA_STATE_OFF}
DICT_41_YES_NO = {0x41: "yes", 0x42: "no"}
DICT_41_AUTO_NONAUTO = {0x41: "auto", 0x42: "non-auto"}
DICT_41_AUTO_STANDARD = {0x41: "auto", 0x42: "standard"}
DICT_41_UNLOCK_LOCK = {0x42: DATA_STATE_UNLOCK, 0x41: DATA_STATE_LOCK}
DICT_41_OPEN_CLOSED = {0x41: DATA_STATE_OPEN, 0x42: DATA_STATE_CLOSE}
DICT_41_ENABLED_DISABLED = {0x41: "enabled", 0x42: "disabled"}
Expand Down Expand Up @@ -59,6 +60,18 @@
0x43: "temporarily_disabled",
}

DICT_41_AUTO_8_LEVELS = {
0x41: "auto",
0x31: "level-1",
0x32: "level-2",
0x33: "level-3",
0x34: "level-4",
0x35: "level-5",
0x36: "level-6",
0x37: "level-7",
0x38: "level-8",
}


def _swap_dict(d: dict):
return {v: k for k, v in d.items()}
Expand Down
Loading