コード例 #1
0
from __future__ import annotations

from velbusaio.command_registry import register_command
from velbusaio.message import Message

COMMAND_CODE = 0x0E


class InterfaceStatusRequestMessage(Message):
    """
    send by: VMB1USB
    received by:
    """
    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_low_priority(priority)
        self.needs_no_rtr(rtr)
        self.needs_no_data(data)
        self.set_attributes(priority, address, rtr)

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes([COMMAND_CODE])


register_command(COMMAND_CODE, InterfaceStatusRequestMessage)
コード例 #2
0
    send by: VMBGP*
    received by:
    """
    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_low_priority(priority)
        self.needs_no_rtr(rtr)
        self.needs_data(data, 5)
        self.set_attributes(priority, address, rtr)
        self.channel = (data[0] >> 1) & 0x03
        self.name = "".join([chr(x) for x in data[1:]])


register_command(COMMAND_CODE, ChannelNamePart3Message)
register_command(COMMAND_CODE, ChannelNamePart3Message2, "VMBGP1")
register_command(COMMAND_CODE, ChannelNamePart3Message2, "VMBEL1")
register_command(COMMAND_CODE, ChannelNamePart3Message2, "VMBGP1-2")
register_command(COMMAND_CODE, ChannelNamePart3Message2, "VMBGP2")
register_command(COMMAND_CODE, ChannelNamePart3Message2, "VMBEL2")
register_command(COMMAND_CODE, ChannelNamePart3Message2, "VMBGP2-2")
register_command(COMMAND_CODE, ChannelNamePart3Message2, "VMBGP4")
register_command(COMMAND_CODE, ChannelNamePart3Message2, "VMBEL4")
register_command(COMMAND_CODE, ChannelNamePart3Message2, "VMBGP4-2")
register_command(COMMAND_CODE, ChannelNamePart3Message2, "VMBGPO")
register_command(COMMAND_CODE, ChannelNamePart3Message2, "VMBGPOD")
register_command(COMMAND_CODE, ChannelNamePart3Message2, "VMBGPOD-2")
register_command(COMMAND_CODE, ChannelNamePart3Message2, "VMBELO")
register_command(COMMAND_CODE, ChannelNamePart3Message2, "VMBGP4PIR")
register_command(COMMAND_CODE, ChannelNamePart3Message2, "VMBDMI")
コード例 #3
0
ファイル: cover_off.py プロジェクト: Cereal2nd/velbus-aio
        self.set_attributes(priority, address, rtr)
        # 00000011 = channel 1
        # 00001100 = channel 2
        # so shift 1 bit to the right + and with 03
        tmp = (data[0] >> 1) & 0x03
        self.channel = self.byte_to_channel(tmp)

    def set_defaults(self, address):
        if address is not None:
            self.set_address(address)
        self.set_high_priority()
        self.set_no_rtr()

    def data_to_binary(self):
        """
        :return: bytes
        """
        if self.channel == 0x01:
            tmp = 0x03
        else:
            tmp = 0x0C

        return bytes([COMMAND_CODE, tmp])


register_command(COMMAND_CODE, CoverOffMessage2, "VMB1BL")
register_command(COMMAND_CODE, CoverOffMessage2, "VMB2BL")
register_command(COMMAND_CODE, CoverOffMessage, "VMB1BLE")
register_command(COMMAND_CODE, CoverOffMessage, "VMB2BLE")
register_command(COMMAND_CODE, CoverOffMessage, "VMB1BLS")
コード例 #4
0
class ChannelNameRequestMessage2(ChannelNameRequestMessage):
    """
    send by:
    received by: VMB2BL
    """
    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_low_priority(priority)
        self.needs_no_rtr(rtr)
        self.needs_data(data, 1)
        self.set_attributes(priority, address, rtr)
        tmp = (data[0] >> 1) & 0x03
        self.channels = self.byte_to_channels(tmp)

    def data_to_binary(self):
        """
        :return: bytes
        """
        tmp = 0x00
        if 1 in self.channels:
            tmp += 0x03
        if 2 in self.channels:
            tmp += 0x0C
        return bytes([COMMAND_CODE, tmp])


register_command(COMMAND_CODE, ChannelNameRequestMessage)
register_command(COMMAND_CODE, ChannelNameRequestMessage2, "VMB2BL")
コード例 #5
0
    received by:
    """
    def __init__(self, address=None):
        Message.__init__(self)
        self.high_address = 0x00
        self.low_address = 0x00
        self.data = bytes([])
        self.set_defaults(address)

    def populate(self, priority, address, rtr, data):
        """
        :return None
        """
        self.needs_low_priority(priority)
        self.needs_no_rtr(rtr)
        self.needs_data(data, 6)
        self.set_attributes(priority, address, rtr)
        self.high_address = data[0]
        self.low_address = data[1]
        self.data = data[2:]

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes([COMMAND_CODE, self.high_address, self.low_address
                      ]) + self.data


register_command(COMMAND_CODE, MemoryDataBlockMessage)
コード例 #6
0
        self.watt = 0

    def populate(self, priority, address, rtr, data):
        """
        -DB1    last 2 bits   = channel
        -DB1    first 6 bist  = pulses
        -DB2-5                = pulse counter
        -DB6-7                = ms/pulse
        :return: None
        """
        self.needs_no_rtr(rtr)
        self.needs_data(data, 7)
        self.set_attributes(priority, address, rtr)
        self.channel = (data[0] & 0x03) + 1
        self.pulses = (data[0] >> 2) * 100
        self.counter = (data[1] << 24) + (data[2] << 16) + (data[3] << 8) + data[4]
        self.kwh = float(float(self.counter) / self.pulses)
        self.delay = (data[5] << 8) + data[6]
        self.watt = float((1000 * 1000 * 3600) / (self.delay * self.pulses))
        if self.watt < 55:
            self.watt = 0

    def get_channels(self):
        """
        :return: list
        """
        return self.channel


register_command(COMMAND_CODE, KwhStatusMessage)
コード例 #7
0
        :return: None
        """
        self.needs_high_priority(priority)
        self.needs_no_rtr(rtr)
        self.needs_data(data, 4)
        self.set_attributes(priority, address, rtr)
        self.dimmer_channels = self.byte_to_channels(data[0])
        self.dimmer_state = data[1]
        self.dimmer_transitiontime = int.from_bytes(data[2:3],
                                                    byteorder="big",
                                                    signed=False)

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes([
            COMMAND_CODE,
            self.channels_to_byte(self.dimmer_channels),
            self.dimmer_state,
        ]) + self.dimmer_transitiontime.to_bytes(
            2, byteorder="big", signed=False)


register_command(COMMAND_CODE, SetDimmerMessage, "VMBDME")
register_command(COMMAND_CODE, SetDimmerMessage, "VMB4DC")
register_command(COMMAND_CODE, SetDimmerMessage, "VMBDMI")
register_command(COMMAND_CODE, SetDimmerMessage, "VMBDMI-R")
register_command(COMMAND_CODE, SetDimmerMessage, "VMB1LED")
register_command(COMMAND_CODE, SetDimmerMessage, "VMBDALI")
コード例 #8
0

class SetLedMessage(Message):
    """
    send by: VMB4RYLD
    received by: VMB6IN
    """
    def __init__(self, address=None):
        Message.__init__(self)
        self.leds = []
        self.set_defaults(address)

    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_low_priority(priority)
        self.needs_no_rtr(rtr)
        self.needs_data(data, 1)
        self.set_attributes(priority, address, rtr)
        self.leds = self.byte_to_channels(data[0])

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes([COMMAND_CODE, self.channels_to_byte(self.leds)])


register_command(COMMAND_CODE, SetLedMessage)
コード例 #9
0
        self.sub_address_1 = 0xFF
        self.sub_address_2 = 0xFF
        self.sub_address_3 = 0xFF
        self.sub_address_4 = 0xFF
        self.set_defaults(address)
        self.serial = 0

    def module_name(self):
        """
        :return: str
        """
        return "Unknown"

    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_low_priority(priority)
        self.needs_no_rtr(rtr)
        # self.needs_data(data, 6)
        self.set_attributes(priority, address, rtr)
        self.module_type = data[0]
        (self.serial, ) = struct.unpack(">L", bytes([0, 0, data[1], data[2]]))
        self.sub_address_1 = data[3]
        self.sub_address_2 = data[4]
        self.sub_address_3 = data[5]
        self.sub_address_4 = data[6]


register_command(COMMAND_CODE, ModuleSubTypeMessage)
コード例 #10
0
        self.set_defaults(address)

    def set_defaults(self, address):
        if address is not None:
            self.set_address(address)
        self.set_high_priority()
        self.set_no_rtr()

    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_high_priority(priority)
        self.needs_no_rtr(rtr)
        self.needs_data(data, 4)
        self.set_attributes(priority, address, rtr)
        self.relay_channels = self.byte_to_channels(data)
        (self.delay_time, ) = struct.unpack(">L", bytes([0]) + data[1:])

    def data_to_binary(self):
        """
        :return: bytes
        """
        return (
            bytes([COMMAND_CODE,
                   self.channels_to_byte(self.relay_channels)]) +
            struct.pack(">L", self.delay_time)[-3:])


register_command(COMMAND_CODE, StartRelayTimerMessage)
コード例 #11
0
        self.led_on = []
        self.led_slow_blinking = []
        self.led_fast_blinking = []
        self.set_defaults(address)

    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_low_priority(priority)
        self.needs_no_rtr(rtr)
        self.needs_data(data, 3)
        self.set_attributes(priority, address, rtr)
        self.led_on = self.byte_to_channels(data[0])
        self.led_slow_blinking = self.byte_to_channels(data[1])
        self.led_fast_blinking = self.byte_to_channels(data[2])

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes([
            COMMAND_CODE,
            self.channels_to_byte(self.led_on),
            self.channels_to_byte(self.led_slow_blinking),
            self.channels_to_byte(self.led_fast_blinking),
        ])


register_command(COMMAND_CODE, UpdateLedStatusMessage)
コード例 #12
0
class MeteoRawMessage(Message):
    """
    send by: VMBMETEO
    received by:
    """

    def __init__(self, address=None):
        Message.__init__(self)
        self.rain = 0
        self.light = 0
        self.wind = 0

    def populate(self, priority, address, rtr, data):
        """
        data bytes (high + low)
            1 + 2   = current temp
            3 + 4   = min temp
            5 + 6   = max temp
        :return: None
        """
        self.needs_no_rtr(rtr)
        self.needs_data(data, 6)
        self.set_attributes(priority, address, rtr)
        self.rain = (((data[0] << 8) | data[1]) / 32) * 0.1
        self.light = ((data[2] << 8) | data[3]) / 32
        self.wind = (((data[4] << 8) | data[5]) / 32) * 0.1


register_command(COMMAND_CODE, MeteoRawMessage, "VMBMETEO")
コード例 #13
0
from velbusaio.command_registry import register_command
from velbusaio.message import Message

COMMAND_CODE = 0xDF


class TempSetCoolingMessage(Message):
    """
    send by:
    received by: VMB4RYLD
    """
    def __init__(self, address=None):
        Message.__init__(self)
        self.set_defaults(address)

    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_no_rtr(rtr)
        self.set_attributes(priority, address, rtr)

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes([COMMAND_CODE, 0xAA])


register_command(COMMAND_CODE, TempSetCoolingMessage)
コード例 #14
0
    def set_defaults(self, address):
        if address is not None:
            self.set_address(address)
        self.set_low_priority()
        self.set_no_rtr()
        lclt = time.localtime()
        self._wday = lclt[6]
        self._hour = lclt[3]
        self._min = lclt[4]

    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_low_priority(priority)
        self.needs_no_rtr(rtr)
        self.needs_data(data, 3)
        self.set_attributes(priority, address, rtr)
        self._wday = data[0]
        self._hour = data[1]
        self._min = data[2]

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes([COMMAND_CODE, self._wday, self._hour, self._min])


register_command(COMMAND_CODE, SetRealtimeClock)
コード例 #15
0
from velbusaio.message import Message

COMMAND_CODE = 0x0A


class BusActiveMessage(Message):
    """
    send by:
    received by: VMB1USB
    """
    def set_defaults(self, address):
        if address is not None:
            self.set_address(address)
        self.set_high_priority()
        self.set_no_rtr()

    def populate(self, priority, address, rtr, data):
        self.needs_high_priority(priority)
        self.needs_no_rtr(rtr)
        self.set_attributes(priority, address, rtr)
        self.needs_no_data(data)

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes([COMMAND_CODE])


register_command(COMMAND_CODE, BusActiveMessage)
コード例 #16
0
        self.status = data[2] >> ((self.channel - 1) * 2)

    def to_json(self):
        """
        :return: str
        """
        json_dict = self.to_json_basic()
        json_dict["channel"] = self.channel
        json_dict["timeout"] = self.timeout
        json_dict["status"] = DSTATUS[self.status]
        return json.dumps(json_dict)

    def is_up(self):
        """
        :return: bool
        """
        return self.status == 0x01

    def is_down(self):
        """
        :return: bool
        """
        return self.status == 0x02


register_command(COMMAND_CODE, BlindStatusNgMessage, "VMB1BLE")
register_command(COMMAND_CODE, BlindStatusNgMessage, "VMB2BLE")
register_command(COMMAND_CODE, BlindStatusNgMessage, "VMB1BLS")
register_command(COMMAND_CODE, BlindStatusMessage, "VMB1BL")
register_command(COMMAND_CODE, BlindStatusMessage, "VMB2BL")
コード例 #17
0
ファイル: set_date.py プロジェクト: Cereal2nd/velbus-aio
        self._day = lclt[2]
        self._mon = lclt[1]
        self._year = lclt[0]

    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_low_priority(priority)
        self.needs_no_rtr(rtr)
        self.needs_data(data, 4)
        self.set_attributes(priority, address, rtr)
        self._day = data[0]
        self._mon = data[1]
        self._year = (data[2] << 8) + data[3]

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes([
            COMMAND_CODE,
            self._day,
            self._mon,
            (self._year >> 8),
            (self._year & 0x00FF),
        ])


register_command(COMMAND_CODE, SetDate)
コード例 #18
0
    received by: VMB6IN, VMB4RYLD
    """
    def __init__(self, address=None):
        Message.__init__(self)
        self.high_address = 0x00
        self.low_address = 0x00
        self.data = ""
        self.set_defaults(address)

    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_low_priority(priority)
        self.needs_no_rtr(rtr)
        self.needs_data(data, 3)
        self.set_attributes(priority, address, rtr)
        self.high_address = data[0]
        self.low_address = data[1]
        self.data = data[2]

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes(
            [COMMAND_CODE, self.high_address, self.low_address, self.data])


register_command(COMMAND_CODE, WriteDataToMemoryMessage)
コード例 #19
0

class ReceiveBufferFullMessage(Message):
    """
    send by:
    received by: VMB1USB
    """
    def set_defaults(self, address):
        if address is not None:
            self.set_address(address)
        self.set_high_priority()
        self.set_no_rtr()

    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_high_priority(priority)
        self.needs_no_rtr(rtr)
        self.needs_no_data(data)
        self.set_attributes(priority, address, rtr)

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes([COMMAND_CODE])


register_command(COMMAND_CODE, ReceiveBufferFullMessage)
コード例 #20
0
        Message.__init__(self)
        self._ds = None
        self.set_defaults(address)

    def set_defaults(self, address):
        if address is not None:
            self.set_address(address)
        self.set_low_priority()
        self.set_no_rtr()
        lclt = time.localtime()
        self._ds = not lclt[8]

    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_low_priority(priority)
        self.needs_no_rtr(rtr)
        self.needs_data(data, 1)
        self.set_attributes(priority, address, rtr)
        self._ds = data[0]

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes([COMMAND_CODE, self._ds])


register_command(COMMAND_CODE, SetDaylightSaving)
コード例 #21
0
COMMAND_CODE = 0xDC


class SwitchToDayMessage(Message):
    """
    send by:
    received by: VMB4RYLD
    """

    def __init__(self, address=None, sleep=0):
        Message.__init__(self)
        self.sleep = sleep
        self.set_defaults(address)

    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_no_rtr(rtr)
        self.set_attributes(priority, address, rtr)

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes([COMMAND_CODE, 0x00, 0x00])


register_command(COMMAND_CODE, SwitchToDayMessage)
コード例 #22
0
        self.motion1 = bool(data[0] & (1 << 2))
        self.light_motion1 = bool(data[0] & (1 << 3))
        self.motion2 = bool(data[0] & (1 << 4))
        self.light_motion2 = bool(data[0] & (1 << 5))
        self.low_temp_alarm = bool(data[0] & (1 << 6))
        self.high_temp_alarm = bool(data[0] & (1 << 7))
        self.light_value = (data[1] << 8) + data[2]

    def data_to_binary(self):
        """
        :return: bytes
        """
        raise NotImplementedError


register_command(COMMAND_CODE, ModuleStatusMessage)
register_command(COMMAND_CODE, ModuleStatusMessage2, "VMB8PBU")
register_command(COMMAND_CODE, ModuleStatusMessage2, "VMB6PBN")
register_command(COMMAND_CODE, ModuleStatusMessage2, "VMB2PBN")
register_command(COMMAND_CODE, ModuleStatusMessage2, "VMB6PBB")
register_command(COMMAND_CODE, ModuleStatusMessage2, "VMBGP1")
register_command(COMMAND_CODE, ModuleStatusMessage2, "VMBEL1")
register_command(COMMAND_CODE, ModuleStatusMessage2, "VMBGP1-2")
register_command(COMMAND_CODE, ModuleStatusMessage2, "VMBGP2")
register_command(COMMAND_CODE, ModuleStatusMessage2, "VMBEL2")
register_command(COMMAND_CODE, ModuleStatusMessage2, "VMBGP2-2")
register_command(COMMAND_CODE, ModuleStatusMessage2, "VMBGP4")
register_command(COMMAND_CODE, ModuleStatusMessage2, "VMBEL4")
register_command(COMMAND_CODE, ModuleStatusMessage2, "VMBGP4-2")
register_command(COMMAND_CODE, ModuleStatusMessage2, "VMBGPO")
register_command(COMMAND_CODE, ModuleStatusMessage2, "VMBGPOD")
コード例 #23
0
            self.set_address(address)
        self.set_high_priority()
        self.set_no_rtr()

    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_high_priority(priority)
        self.needs_no_rtr(rtr)
        self.needs_data(data, 1)
        self.set_attributes(priority, address, rtr)
        self.dimmer_channels = self.byte_to_channels(data[0])
        self.dimmer_transitiontime = int.from_bytes(data[2:3],
                                                    byteorder="big",
                                                    signed=False)

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes([
            COMMAND_CODE,
            self.channels_to_byte(self.dimmer_channels),
            0,
        ]) + self.dimmer_transitiontime.to_bytes(
            2, byteorder="big", signed=False)


register_command(COMMAND_CODE, RestoreDimmerMessage)
コード例 #24
0
"""
:author: Danny De Gaspari
"""
from __future__ import annotations

from velbusaio.command_registry import register_command
from velbusaio.message import Message

COMMAND_CODE = 0xC6


class TempSensorSettingsPart3(Message):
    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_low_priority(priority)
        self.needs_no_rtr(rtr)
        self.set_attributes(priority, address, rtr)

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes([COMMAND_CODE])


register_command(COMMAND_CODE, TempSensorSettingsPart3)
コード例 #25
0
        Message.__init__(self)
        self.relay_channels = []
        self.set_defaults(address)

    def set_defaults(self, address):
        if address is not None:
            self.set_address(address)
        self.set_high_priority()
        self.set_no_rtr()

    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_high_priority(priority)
        self.needs_no_rtr(rtr)
        self.needs_data(data, 1)
        self.set_attributes(priority, address, rtr)
        self.relay_channels = self.byte_to_channels(data[0])

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes(
            [COMMAND_CODE,
             self.channels_to_byte(self.relay_channels)])


register_command(COMMAND_CODE, SwitchRelayOnMessage)
コード例 #26
0
ファイル: relay_status.py プロジェクト: Cereal2nd/velbus-aio
        :return: bool
        """
        return self.status == INTERVAL_TIMER_ON

    def data_to_binary(self):
        """
        :return: bytes
        """
        return (bytes([
            COMMAND_CODE,
            self.channels_to_byte([self.channel]),
            self.disable_inhibit_forced,
            self.status,
            self.led_status,
        ]) + struct.pack(">L", self.delay_time)[-3:])


class RelayStatusMessage2(RelayStatusMessage):
    def is_on(self):
        """
        :return: bool
        """
        if (self.status >> (self.channel - 1)) & 1 != 0:
            return True
        else:
            return False


register_command(COMMAND_CODE, RelayStatusMessage)
register_command(COMMAND_CODE, RelayStatusMessage2, "VMB4RY")
コード例 #27
0

class SlowBlinkingLedMessage(Message):
    """
    send by: VMB4RYLD
    received by: VMB6IN
    """
    def __init__(self, address=None):
        Message.__init__(self)
        self.leds = []
        self.set_defaults(address)

    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_low_priority(priority)
        self.needs_no_rtr(rtr)
        self.needs_data(data, 1)
        self.set_attributes(priority, address, rtr)
        self.leds = self.byte_to_channels(data[0])

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes([COMMAND_CODE, self.channels_to_byte(self.leds)])


register_command(COMMAND_CODE, SlowBlinkingLedMessage)
コード例 #28
0
"""
:author: Maikel Punie <*****@*****.**>
"""
from __future__ import annotations

from velbusaio.command_registry import register_command
from velbusaio.message import Message

COMMAND_CODE = 0xAA


class LightValueRequest(Message):
    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_low_priority(priority)
        self.needs_no_rtr(rtr)
        self.set_attributes(priority, address, rtr)

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes([COMMAND_CODE])


register_command(COMMAND_CODE, LightValueRequest)
コード例 #29
0
"""
:author: Maikel Punie <*****@*****.**>
"""
from __future__ import annotations

from velbusaio.command_registry import register_command
from velbusaio.message import Message

COMMAND_CODE = 0xE5


class SensorTempRequest(Message):
    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_low_priority(priority)
        self.needs_no_rtr(rtr)
        self.set_attributes(priority, address, rtr)

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes([COMMAND_CODE])


register_command(COMMAND_CODE, SensorTempRequest)
コード例 #30
0
class CounterStatusRequestMessage(Message):
    """
    send by:
    received by: VMB7IN
    """

    def __init__(self, address=None):
        Message.__init__(self)
        self.channels = []
        self.wait_after_send = 500
        self.set_defaults(address)

    def populate(self, priority, address, rtr, data):
        """
        :return: None
        """
        self.needs_low_priority(priority)
        self.needs_no_rtr(rtr)
        self.needs_data(data, 2)
        self.set_attributes(priority, address, rtr)

    def data_to_binary(self):
        """
        :return: bytes
        """
        return bytes([COMMAND_CODE, self.channels_to_byte(self.channels), 0x00])


register_command(COMMAND_CODE, CounterStatusRequestMessage, "VMB7IN")