示例#1
0
 def close_cover(self, **kwargs):
     """Close the cover."""
     # 0x80, 0x00, 0x1f, 0xa4, 0x10, 0x44, 0x1f, 0xa4, 0x60, 0x3, 0x0, 0x2, 0x0,
     # 0x7, 0x0, 0x6, 0x0, 0x5, 0x1, 0x4, 0x0, 0xb4
     if self._way == '1':
         self._closed = True
         mac = self._mac.split('#')
         BYTES_CLOSE[2], BYTES_CLOSE[3] = int(mac[0], 16), int(mac[1], 16)
         BYTES_CLOSE[6], BYTES_CLOSE[7] = int(mac[0], 16), int(mac[1], 16)
         BYTES_CLOSE[-4] = 0x1
         resu_crc = checkcrc.xorcrc_hex(BYTES_CLOSE)
         BYTES_CLOSE[-1] = resu_crc
         self._hass.services.call(POLY_ZIGBEE_DOMAIN, POLY_ZIGBEE_SERVICE, {
             "data": BYTES_CLOSE
         })
         time.sleep(0.4)
         BYTES_CLOSE[2], BYTES_CLOSE[3] = int(mac[0], 16), int(mac[1], 16)
         BYTES_CLOSE[6], BYTES_CLOSE[7] = int(mac[0], 16), int(mac[1], 16)
         BYTES_CLOSE[-4] = 0x0
         resu_crc = checkcrc.xorcrc_hex(BYTES_CLOSE)
         BYTES_CLOSE[-1] = resu_crc
         self._hass.services.call(POLY_ZIGBEE_DOMAIN, POLY_ZIGBEE_SERVICE, {
             "data": BYTES_CLOSE
         })
     if self._way == '2':
         # 0x80, 0x00, 0x1f, 0xa4, 0x10, 0x44, 0x1f, 0xa4, 0x60, 0x3, 0x0, 0x2, 0x0,
         # 0x7, 0x0, 0x6, 0x0, 0x5, 0x1, 0x4, 0x0, 0xb4
         self._closed = True
         mac = self._mac.split('#')
         BYTES_CLOSE[2], BYTES_CLOSE[3] = int(mac[0], 16), int(mac[1], 16)
         BYTES_CLOSE[6], BYTES_CLOSE[7] = int(mac[0], 16), int(mac[1], 16)
         BYTES_CLOSE[12] = 0x1
         BYTES_CLOSE[-4] = 0x0
         resu_crc = checkcrc.xorcrc_hex(BYTES_CLOSE)
         BYTES_CLOSE[-1] = resu_crc
         self._hass.services.call(POLY_ZIGBEE_DOMAIN, POLY_ZIGBEE_SERVICE, {
             "data": BYTES_CLOSE
         })
         time.sleep(0.4)
         BYTES_CLOSE[2], BYTES_CLOSE[3] = int(mac[0], 16), int(mac[1], 16)
         BYTES_CLOSE[6], BYTES_CLOSE[7] = int(mac[0], 16), int(mac[1], 16)
         BYTES_CLOSE[12] = 0x0
         BYTES_CLOSE[-4] = 0x0
         resu_crc = checkcrc.xorcrc_hex(BYTES_CLOSE)
         BYTES_CLOSE[-1] = resu_crc
         self._hass.services.call(POLY_ZIGBEE_DOMAIN, POLY_ZIGBEE_SERVICE, {
             "data": BYTES_CLOSE
         })
 def open_cover(self, **kwargs):
     """Open the cover."""
     # 0x80, 0x00, 0x1f, 0xa4, 0x10, 0x44, 0x1f, 0xa4, 0x60, 0x3, 0x0, 0x2, 0x0,
     # 0x7, 0x0, 0x6, 0x1, 0x5, 0x0, 0x4, 0x0, 0xb4
     if self._way == '1':
         self._closed = False
         mac = self._mac.split('#')
         BYTES_OPEN[2], BYTES_OPEN[3] = int(mac[0], 16), int(mac[1], 16)
         BYTES_OPEN[6], BYTES_OPEN[7] = int(mac[0], 16), int(mac[1], 16)
         BYTES_OPEN[-6] = 0x1
         resu_crc = checkcrc.xorcrc_hex(BYTES_OPEN)
         BYTES_OPEN[-1] = resu_crc
         self._hass.services.call(POLY_ZIGBEE_DOMAIN, POLY_ZIGBEE_SERVICE,
                                  {"data": BYTES_OPEN})
         time.sleep(0.4)
         BYTES_OPEN[2], BYTES_OPEN[3] = int(mac[0], 16), int(mac[1], 16)
         BYTES_OPEN[6], BYTES_OPEN[7] = int(mac[0], 16), int(mac[1], 16)
         BYTES_OPEN[-6] = 0x0
         resu_crc = checkcrc.xorcrc_hex(BYTES_OPEN)
         BYTES_OPEN[-1] = resu_crc
         self._hass.services.call(POLY_ZIGBEE_DOMAIN, POLY_ZIGBEE_SERVICE,
                                  {"data": BYTES_OPEN})
     elif self._way == '2':
         # 0x80, 0x00, 0x1f, 0xa4, 0x10, 0x44, 0x1f, 0xa4, 0x60, 0x3, 0x0, 0x2, 0x0,
         # 0x7, 0x0, 0x6, 0x1, 0x5, 0x0, 0x4, 0x0, 0xb4
         self._closed = False
         mac = self._mac.split('#')
         BYTES_OPEN[2], BYTES_OPEN[3] = int(mac[0], 16), int(mac[1], 16)
         BYTES_OPEN[6], BYTES_OPEN[7] = int(mac[0], 16), int(mac[1], 16)
         BYTES_OPEN[10] = 0x1
         BYTES_OPEN[-6] = 0x0
         resu_crc = checkcrc.xorcrc_hex(BYTES_OPEN)
         BYTES_OPEN[-1] = resu_crc
         self._hass.services.call(POLY_ZIGBEE_DOMAIN, POLY_ZIGBEE_SERVICE,
                                  {"data": BYTES_OPEN})
         time.sleep(0.4)
         BYTES_OPEN[2], BYTES_OPEN[3] = int(mac[0], 16), int(mac[1], 16)
         BYTES_OPEN[6], BYTES_OPEN[7] = int(mac[0], 16), int(mac[1], 16)
         BYTES_OPEN[10] = 0x0
         BYTES_OPEN[-6] = 0x0
         resu_crc = checkcrc.xorcrc_hex(BYTES_OPEN)
         BYTES_OPEN[-1] = resu_crc
         self._hass.services.call(POLY_ZIGBEE_DOMAIN, POLY_ZIGBEE_SERVICE,
                                  {"data": BYTES_OPEN})
 def stop_cover(self, **kwargs):
     """Stop the cover."""
     # 0x80, 0x00, 0x1f, 0xa4, 0x10, 0x44, 0x1f, 0xa4, 0x60, 0x3, 0x0, 0x2, 0x0,
     # 0x7, 0x0, 0x6, 0x0, 0x5, 0x0, 0x4, 0x1, 0xb4
     if self._way == '1':
         self._closed = True
         mac = self._mac.split('#')
         BYTES_STOP[2], BYTES_STOP[3] = int(mac[0], 16), int(mac[1], 16)
         BYTES_STOP[6], BYTES_STOP[7] = int(mac[0], 16), int(mac[1], 16)
         BYTES_STOP[-2] = 0x1
         resu_crc = checkcrc.xorcrc_hex(BYTES_STOP)
         BYTES_STOP[-1] = resu_crc
         self._hass.services.call(POLY_ZIGBEE_DOMAIN, POLY_ZIGBEE_SERVICE,
                                  {"data": BYTES_STOP})
         time.sleep(0.4)
         BYTES_STOP[2], BYTES_STOP[3] = int(mac[0], 16), int(mac[1], 16)
         BYTES_STOP[6], BYTES_STOP[7] = int(mac[0], 16), int(mac[1], 16)
         BYTES_STOP[-2] = 0x0
         resu_crc = checkcrc.xorcrc_hex(BYTES_STOP)
         BYTES_STOP[-1] = resu_crc
         self._hass.services.call(POLY_ZIGBEE_DOMAIN, POLY_ZIGBEE_SERVICE,
                                  {"data": BYTES_STOP})
     elif self._way == '2':
         self._closed = True
         mac = self._mac.split('#')
         BYTES_STOP[2], BYTES_STOP[3] = int(mac[0], 16), int(mac[1], 16)
         BYTES_STOP[6], BYTES_STOP[7] = int(mac[0], 16), int(mac[1], 16)
         BYTES_STOP[-8] = 0x1
         resu_crc = checkcrc.xorcrc_hex(BYTES_STOP)
         BYTES_STOP[-1] = resu_crc
         self._hass.services.call(POLY_ZIGBEE_DOMAIN, POLY_ZIGBEE_SERVICE,
                                  {"data": BYTES_STOP})
         time.sleep(0.4)
         BYTES_STOP[2], BYTES_STOP[3] = int(mac[0], 16), int(mac[1], 16)
         BYTES_STOP[6], BYTES_STOP[7] = int(mac[0], 16), int(mac[1], 16)
         BYTES_STOP[-8] = 0x0
         resu_crc = checkcrc.xorcrc_hex(BYTES_STOP)
         BYTES_STOP[-1] = resu_crc
         self._hass.services.call(POLY_ZIGBEE_DOMAIN, POLY_ZIGBEE_SERVICE,
                                  {"data": BYTES_STOP})