twseia package

twseia.create_read_all_states_cmd()list

Create TaiSEIA device all states request protocol data.

twseia.create_read_brand_cmd()list

Create TaiSEIA device brand request protocol data.

twseia.create_read_dev_type_cmd()list

Create TaiSEIA device type request protocol data.

twseia.create_read_model_cmd()list

Create TaiSEIA device model request protocol data.

twseia.create_read_state_cmd(type_id: int, service_id: int)list

Create TaiSEIA device service state request protocol data.

twseia.create_read_state_cmd_from_txt(type_id: int, cmd_txt: str)list

Create TaiSEIA device service state request protocol data from text cmd.

twseia.create_read_supported_services_cmd()list

Create TaiSEIA device services request protocol data.

twseia.create_sa_class_id_cmd()list

Create TaiSEIA class ID request protocol data.

twseia.create_sa_protocol_version_cmd()list

Create TaiSEIA device version request protocol data.

twseia.create_sa_register_cmd()list

Create TaiSEIA register request protocol data.

twseia.create_write_state_cmd_from_txt(type_id: int, cmd_txt: str, cmd_value: int)list

Create TaiSEIA device service state write request protocol data from text cmd.

twseia.parsing_read_state_response(type_id: int, pdu: list, is_fixed_len_pdu: bool = True)dict

Parsing TaiSEIA device service state response protocol data.

twseia.parsing_sa_all_states_response(type_id: int, pdu: list, is_fixed_len_pdu: bool = True)list

Parsing TaiSEIA Dehumidifier all service states response protocol data.

twseia.parsing_sa_brand_response(pdu: list)str

Parsing TaiSEIA device brand response protocol data.

twseia.parsing_sa_class_id_response(pdu: list)int

Parsing TaiSEIA class ID response protocol data.

twseia.parsing_sa_dev_type_response(pdu: list)int

Parsing TaiSEIA device type ID response protocol data.

twseia.parsing_sa_model_response(pdu: list)str

Parsing TaiSEIA device model response protocol data.

twseia.parsing_sa_protocol_version_response(pdu: list)tuple

Parsing TaiSEIA device protocol version response protocol data.

twseia.parsing_sa_register_response(pdu: list)twseia.packets.SARegisterPacket

Parsing TaiSEIA register response protocol data.

twseia.parsing_sa_services_response(type_id: int, pdu: list, is_fixed_len_pdu: bool = True)list

Parsing TaiSEIA Dehumidifier device services response protocol data.

twseia.read_sa_cmd_helps_from_register_response(pdu: list)list

Read TaiSEIA SA device supported commands from register response protocol data.

twseia.read_sa_type_id_dict()dict

Read TaiSEIA Smart Application (SA) device type name and ID mapping dict.

Submodules

class twseia.air_conditioner.ACServiceIDEnum(value)

Bases: enum.IntEnum

An enumeration.

AIR_CLEAN_MODE_RW = 8
AIR_DETECT_RW = 22
BODY_DISPLAY_MODE_RW = 31
CLOCK_OFF_RW = 10
CLOCK_ON_RW = 9
COMFORTABLE_RW = 5
COMFORTABLE_TIMER_RW = 6
DEHUMIDIFIER_CFG_RW = 19
DEV_MILDEW_RW = 23
DISPLAY_ERR_R = 41
ERR_HISTORY_1_R = 42
ERR_HISTORY_2_R = 43
ERR_HISTORY_3_R = 44
ERR_HISTORY_4_R = 45
ERR_HISTORY_5_R = 46
FAN_LEVEL_RW = 2
FAN_SWING_LEVEL_RW = 17
FAN_SWING_RW = 16
FAN_UPDOWN_LEVEL_RW = 15
FAN_UPDOWN_RW = 14
FAST_OP_RW = 26
FILTER_ACCU_OP_HOUR_RW = 48
FILTER_CLEAN_NOTIFY_RW = 18
FUZZY_TEMPERATURE_RW = 7
HUMIDITY_R = 20
INDOOR_UNIT_WATT_R = 34
MAINTENANCE_ACCU_OP_HOUR_RW = 47
MOISTURIZE_MODE_RW = 32
MONTHLY_WATT_R = 51
MOTION_DETECT_MODE_RW = 25
OP_MODE_RW = 1
OUTDOOR_TEMPERATURE_R = 33
OUTDOOR_UNIT_CURRENT_R = 36
OUTDOOR_UNIT_INSTANT_WATT_R = 39
OUTDOOR_UNIT_POWER_FACTOR_R = 38
OUTDOOR_UNIT_VOLTAGE_R = 37
OUTDOOR_UNIT_WATT_R = 35
POWER_LIMIT_OP_RW = 28
POWER_RW = 0
POWER_SAVING_OP_RW = 27
REMOTE_CTRL_LOCK_RW = 29
SAA_CTRL_AUDIO_RW = 30
SELF_CLEAN_RW = 24
SYS_CHECK_R = 21
SYS_MONTH_DAY_RW = 50
SYS_TIME_RW = 13
SYS_YEAR_RW = 49
TEMPERATURE_CFG_RW = 3
TEMPERATURE_R = 4
TIMER_OFF_2_RW = 52
TIMER_OFF_RW = 12
TIMER_ON_RW = 11
TOTAL_WATT_RW = 40
class twseia.air_conditioner.AirConditioner

Bases: twseia.devices.SADevice

classmethod convert_cmd_txt_to_service_id(cmd_txt: str)int
classmethod convert_dev_specific_service(pdu: list, is_fixed_len_pdu: bool)twseia.services.SAServiceBase
classmethod read_cmd_list()list
classmethod read_service_id_list()list
classmethod read_spec_cmd_helps()list
classmethod read_type_id()int
class twseia.constants.SAClassID(value)

Bases: enum.IntEnum

SA裝置類別: 0:家庭電器、1:發電設備、2:儲能設備、3:感測設備。

ENERGY_STORAGE_DEVICE = 2
HOME_DEVICE = 0
POWER_GENERATION_DEVICE = 1
SENSOR_DEVICE = 3
class twseia.constants.SAPacketDataLenType(value)

Bases: enum.IntEnum

多位元組資料型態SA:0代表一般資料型態SA、1代表多位元組資料型態SA

DYNAMIC_LEN = 1
FIXED_LEN = 0
class twseia.constants.SARegisterServiceIDEnum(value)

Bases: enum.IntEnum

SA註冊用服務類別, TAISEIA Spec. Table_14

READ_BRAND = 5

讀取SA廠牌(Brand)

READ_CLASS_ID = 1

讀取裝置類別代碼(Class ID)

READ_CURRENT_SERVICES_STATES = 8

讀取SA目前所有服務狀態值

READ_MODEL = 6

讀取SA型號(Model)

READ_PROTOCOL_VERSION = 2

讀取TaiSEIA 101裝置監控通訊協定版本值

READ_SUPPORTED_SERVICES = 7

讀取SA可提供之所有支援服務規格

READ_TYPE_ID = 4

讀取SA類別代碼(Type ID)

REGISTRATION = 0

註冊服務

RESERVED = 3

保留, 保留供未來擴充功能使用

class twseia.constants.SAServiceIOMode(value)

Bases: enum.IntEnum

SA服務類別讀/寫(R/W)功能規格

READ = 0
READ_WRITE = 1
class twseia.constants.SATypeIDEnum(value)

Bases: enum.IntEnum

SA類別碼, TAISEIA Spec. Table_10

AIR_CLEANER = 8

空氣清淨機

AIR_CONDITIONER = 1

冷氣機

DEHUMIDIFIER = 4

除濕機

DISH_WASHER = 12

烘碗機

DRYING_MACHINE = 6

烘衣機

ELECTRONIC_POT = 9

電子鍋

FAN = 15

電扇

FULL_HEAT_SWITCH = 14

全熱交換器

GAS_WATER_HEATER = 16

燃氣熱水器

GENERAL_DEVICE = 240

通用裝置

HEAD_PUMP_WATER_HEATER = 7

熱泵熱水器

INDUCTION_COOKER = 11

電磁爐

LAMP = 17

燈具

MICROWAVE_OVEN = 13

微波爐

OPEN_DRINK_MACHINE = 10

開飲機

REFRIGERATOR = 2

電冰箱

REGISTER = 0

註冊用

SMART_METER_GATEWAY = 224

智慧電表閘道器

TELEVISION = 5

電視機

WATCHING_MACHINE = 3

洗衣機

class twseia.dehumidifier.DHServiceIDEnum(value)

Bases: enum.IntEnum

An enumeration.

AIR_CLEAN_MODE_RW = 13
AUDIO_RW = 16
DEFROST_DISPLAY_R = 17
DEHUMIDIFIER_LEVEL_RW = 4
DEV_MILDEW_RW = 19
DISPLAY_ERR_R = 18
DRY_CLOTHE_LEVEL_RW = 5
ERR_HISTORY_1_R = 30
ERR_HISTORY_2_R = 31
ERR_HISTORY_3_R = 32
ERR_HISTORY_4_R = 33
ERR_HISTORY_5_R = 34
FAN_DIRECTION_AUTO_RW = 8
FAN_DIRECTION_LEVEL_RW = 9
FAN_LEVEL_RW = 14
FILTER_CLEAN_NOTIFY_RW = 11
HUMIDITY_CFG_RW = 3
HUMIDITY_HIGH_CFG_RW = 21
HUMIDITY_HIGH_NOTIFY_RW = 20
HUMIDITY_R = 7
KEYPAD_LOCK_RW = 22
MOOD_LED_RW = 12
OP_CURRENT_R = 25
OP_MODE_RW = 1
OP_POWER_FACTOR_R = 27
OP_POWER_WATT_RW = 28
OP_TIMER_RW = 2
OP_VOLTAGE_R = 26
POWER_RW = 0
REMOTE_CTRL_LOCK_RW = 23
SAA_CTRL_AUDIO_RW = 24
SIDE_FAN_R = 15
TEMPERATURE_R = 6
TOTAL_WATT_RW = 29
WATER_FULL_ALARM_R = 10
class twseia.dehumidifier.Dehumidifier

Bases: twseia.devices.SADevice

classmethod convert_cmd_txt_to_service_id(cmd_txt: str)int
classmethod convert_dev_specific_service(pdu: list, is_fixed_len_pdu: bool = True)twseia.services.SAServiceBase
classmethod read_cmd_list()list
classmethod read_service_id_list()list
classmethod read_spec_cmd_helps()list
classmethod read_type_id()int
class twseia.devices.SADevice

Bases: object

classmethod convert_cmd_txt_to_service_id(cmd_txt: str)int
classmethod convert_dev_specific_service(pdu: list, is_fixed_len_pdu: bool)twseia.services.SAServiceBase
classmethod read_cmd_list()list
classmethod read_service_id_list()list
classmethod read_spec_cmd_helps()list
classmethod read_type_id()int
class twseia.devices.SAEngModeService

Bases: twseia.services.SAServiceBase

工程模式

class twseia.packets.SAInfoDevStatesPacket

Bases: twseia.packets._BasePacket, twseia.packets.SAResponsePacket

classmethod from_pdu(pdu: list)
class twseia.packets.SAInfoRequestPacket

Bases: twseia.packets._BasePacket, twseia.packets.SARequestPacket

TAISEIA Spec. Graph_34

classmethod create(sa_info_type: twseia.constants.SARegisterServiceIDEnum = <SARegisterServiceIDEnum.REGISTRATION: 0>)
classmethod from_pdu(pdu: list)
to_pdu()
class twseia.packets.SAInfoResponsePacket

Bases: twseia.packets.SAResponsePacket

TAISEIA Spec. Graph_35

checksum = None
data_bytes = None
classmethod from_pdu(pdu: list)
len = None
service_id = None
type_id = None
class twseia.packets.SARegisterPacket

Bases: twseia.packets._BasePacket, twseia.packets.SAResponsePacket

brand = None
class_id = None
fragment_offset = None
classmethod from_pdu(pdu: list)
major_ver = None
minor_ver = None
model = None
services = []
states = {}
to_json()
class twseia.packets.SASensorReadMultiResponsePacket

Bases: object

TAISEIA Spec. Graph_41

checksum = None
data_bytes = None
data_type_id = None
fragment_offset = None
len = None
service_id = None
type_id = None
class twseia.packets.SAStateReadRequestPacket

Bases: twseia.packets._BasePacket

TAISEIA Spec. Graph_36

classmethod create(type_id: int, service_id: int)
to_pdu()
class twseia.packets.SAStateReadResponsePacket

Bases: twseia.packets._BasePacket

TAISEIA Spec. Graph_37

classmethod from_pdu(pdu: list)
class twseia.packets.SAStateWriteRequestPacket

Bases: twseia.packets._BasePacket

TAISEIA Spec. Graph_43

classmethod create(type_id: int, service_id: int, value: int)
to_pdu()
class twseia.packets.SAStateWriteResponsePacket

Bases: twseia.packets.SAStateWriteRequestPacket

classmethod from_pdu(pdu: list)
twseia.sa_txt_cmd.read_sa_cmd_helps(register: twseia.packets.SARegisterPacket)
class twseia.services.Enum16BitService

Bases: twseia.services.SAServiceBase

ID = 6
read_bit(bit_index: int)int
read_value()
to_cmd_help()twseia.services.SACmdHelp
class twseia.services.Enum16Service

Bases: twseia.services.SAServiceBase

ID = 1
read_value()
to_cmd_help()twseia.services.SACmdHelp
class twseia.services.HMService

Bases: twseia.services.SAServiceBase

ID = 21
read_hour()
read_minute()
read_value()
to_cmd_help()twseia.services.SACmdHelp
class twseia.services.Int16Service

Bases: twseia.services.SAServiceBase

ID = 16
read_max()
read_min()
read_value()
to_cmd_help()twseia.services.SACmdHelp
class twseia.services.Int32Service

Bases: twseia.services.SAServiceBase

ID = 17
read_max()
read_min()
read_value()
to_cmd_help()twseia.services.SACmdHelp
class twseia.services.Int8Service

Bases: twseia.services.SAServiceBase

ID = 15
read_max()
read_min()
read_value()
to_cmd_help()twseia.services.SACmdHelp
class twseia.services.MDService

Bases: twseia.services.SAServiceBase

ID = 20
read_day()
read_month()
read_value()
to_cmd_help()twseia.services.SACmdHelp
class twseia.services.MSService

Bases: twseia.services.SAServiceBase

ID = 22
read_minute()
read_second()
read_value()
to_cmd_help()twseia.services.SACmdHelp
class twseia.services.SACmdHelp(**kwargs)

Bases: object

property description
property id
property mode
property params
to_json()
property txt
property unit
update_kwargs(name, value)
update_kwargs_params(value)
update_kwargs_txt(value)
update_kwargs_type(value)
update_kwargs_unit(value)
property value_type
class twseia.services.SADataValueType(value)

Bases: enum.IntEnum

An enumeration.

ENUM16 = 1
ENUM16_BIT = 6
INT16 = 16
INT32 = 17
INT8 = 15
STR = 32
TIME_HM = 21
TIME_MD = 20
TIME_MS = 22
TIME_YMDHM = 24
TIME_YMDHMS = 23
UINT16 = 11
UINT32 = 12
UINT64 = 13
UNIT8 = 10
class twseia.services.SAServiceBase

Bases: object

cmd_txt = None
data_bytes = None
data_type_id = None
description = None
classmethod from_dynamic_len_pdu(pdu: list)
classmethod from_fixed_len_pdu(pdu: list)
io_mode_id = None
read_value()
service_id = None
to_cmd_help()twseia.services.SACmdHelp
to_json()
to_state_report()
unit = None
class twseia.services.UInt16Service

Bases: twseia.services.SAServiceBase

ID = 11
read_max()
read_min()
read_value()
to_cmd_help()twseia.services.SACmdHelp
class twseia.services.UInt32Service

Bases: twseia.services.SAServiceBase

ID = 12
read_max()
read_min()
read_value()
to_cmd_help()twseia.services.SACmdHelp
class twseia.services.UInt64Service

Bases: twseia.services.SAServiceBase

ID = 13
read_max()
read_min()
read_value()
to_cmd_help()twseia.services.SACmdHelp
class twseia.services.UInt8Service

Bases: twseia.services.SAServiceBase

ID = 10
read_max()
read_min()
read_value()
to_cmd_help()twseia.services.SACmdHelp
twseia.services.query_sa_data_type_dynamic_len(data_type_id: int)
twseia.utils.append_checksum(pdu: list)list
twseia.utils.compute_pdu_checksum(pdu: list)
twseia.utils.convert_enum_to_value_list(enum_type)