def refresh(self): cmd = request_status_command(self.type) pkt_builder = packet_builder() pkt_builder.set_command(cmd) data = pkt_builder.finalize() data = self._lan_service.appliance_transparent_send(self.id, data) if len(data) > 0: self._online = True response = appliance_response(data) _LOGGER.debug("Decoded Data: {}".format({ 'prompt_tone': response.prompt_tone, 'target_temperature': response.target_temperature, 'indoor_temperature': response.indoor_temperature, 'outdoor_temperature': response.outdoor_temperature, 'operational_mode': response.operational_mode, 'fan_speed': response.fan_speed, 'swing_mode': response.swing_mode, 'eco_mode': response.eco_mode, 'turbo_mode': response.turbo_mode })) else: self._online = False
def apply(self): self._updating = True try: cmd = set_command(self.type) cmd.prompt_tone = self._prompt_tone cmd.power_state = self._power_state cmd.target_temperature = self._target_temperature cmd.operational_mode = self._operational_mode.value cmd.fan_speed = self._fan_speed cmd.swing_mode = self._swing_mode.value cmd.eco_mode = self._eco_mode cmd.turbo_mode = self._turbo_mode pkt_builder = packet_builder(self.id) # cmd.night_light = False cmd.fahrenheit = self.farenheit_unit pkt_builder.set_command(cmd) data = pkt_builder.finalize() data = self._lan_service.appliance_transparent_send(data) _LOGGER.debug("apply - Recieved from {}, {}: {}".format( self.ip, self.id, data.hex())) if len(data) > 0: response = appliance_response(data) self._support = True if not self._defer_update: self.update(response) finally: self._updating = False self._defer_update = False
def refresh(self): cmd = request_status_command(self.type) pkt_builder = packet_builder(self.id) pkt_builder.set_command(cmd) data = pkt_builder.finalize() data = self._lan_service.appliance_transparent_send(data) _LOGGER.debug("refresh - Recieved from {}, {}: {}".format( self.ip, self.id, data.hex())) if len(data) > 0: self._online = True response = appliance_response(data) self._defer_update = False self._support = True if not self._defer_update: if data[0xa] == 0xc0: self.update(response) if data[0xa] == 0xa1 or data[0xa] == 0xa0: '''only update indoor_temperature and outdoor_temperature''' _LOGGER.debug( "refresh - Special Respone. {}, {}: {}".format( self.ip, self.id, data[0xa:].hex())) pass # self.update_special(response) self._defer_update = False else: self._online = False
def apply(self): self._updating = True try: cmd = set_command(self.type) cmd.prompt_tone = self._prompt_tone cmd.power_state = self._power_state cmd.target_temperature = self._target_temperature cmd.operational_mode = self._operational_mode.value cmd.fan_speed = self._fan_speed.value cmd.swing_mode = self._swing_mode.value cmd.eco_mode = self._eco_mode cmd.turbo_mode = self._turbo_mode # cmd.temp_unit_f() print(f"0x09 byte was {cmd.data[0x09]}") pkt_builder = packet_builder(self.id) pkt_builder.set_command(cmd) data = pkt_builder.finalize() data = self._lan_service.appliance_transparent_send(data) _LOGGER.debug("apply - Recieved from {}, {}: {}".format( self.ip, self.id, data.hex())) if len(data) > 0: response = appliance_response(data) if not self._defer_update: self.update(response) print(f"updated device to:{self}") finally: self._updating = False self._defer_update = False
def _process_response(self, data): _LOGGER.debug("Update from {}:{} {}".format(self.ip, self.port, data.hex())) if len(data) > 0: self._online = True self._active = True if data == b'ERROR': self._support = False _LOGGER.warn("Got ERROR from {}, {}".format(self.ip, self.id)) return response = appliance_response(data) self._defer_update = False self._support = True if not self._defer_update: if data[0xa] == 0xc0: self.update(response) if data[0xa] == 0xa1 or data[0xa] == 0xa0: '''only update indoor_temperature and outdoor_temperature''' _LOGGER.debug("Update - Special Respone. {}:{} {}".format( self.ip, self.port, data[0xa:].hex())) pass # self.update_special(response) self._defer_update = False elif not self._keep_last_known_online_state: self._online = False
def refresh(self): cmd = request_status_command(self.type) pkt_builder = packet_builder(self.id) pkt_builder.set_command(cmd) data = pkt_builder.finalize() data = self._lan_service.appliance_transparent_send(data) response = appliance_response(data) self._defer_update = False self.update(response)
def refresh(self): cmd = request_status_command(self.type) pkt_builder = packet_builder(self.id) pkt_builder.set_command(cmd) data = pkt_builder.finalize() data = self._lan_service.appliance_transparent_send(data) _LOGGER.debug("refresh - Recieved from {}, {}: {}".format(self.ip, self.id, data.hex())) response = appliance_response(data) self._defer_update = False self.update(response)
def refresh(self): cmd = request_status_command(self.type) pkt_builder = packet_builder() pkt_builder.set_command(cmd) data = pkt_builder.finalize() data = self._lan_service.appliance_transparent_send(self.id, data) response = appliance_response(data) print("Decoded Data: {}".format({ 'audible_feedback': response.audible_feedback, 'target_temperature': response.target_temperature, 'indoor_temperature': response.indoor_temperature, 'outdoor_temperature': response.outdoor_temperature, 'operational_mode': response.operational_mode, 'fan_speed': response.fan_speed, 'swing_mode': response.swing_mode, 'eco_mode': response.eco_mode, 'turbo_mode': response.turbo_mode }))
def refresh(self): cmd = request_status_command(self.type) pkt_builder = packet_builder(self.id) pkt_builder.set_command(cmd) data = pkt_builder.finalize() data = self._lan_service.appliance_transparent_send(data) _LOGGER.debug("refresh - Recieved from {}, {}: {}".format( self.ip, self.id, data.hex())) if len(data) > 0: response = appliance_response(data) self._defer_update = False self._support = True if data[0xa] != 0xc0: _LOGGER.debug( "refresh - Not status(0xc0) respone, defer update. {}, {}: {}" .format(self.ip, self.id, data[0xa:].hex())) self._defer_update = True if not self._defer_update: self.update(response) self._defer_update = False
def apply(self): self._updating = True try: cmd = set_command(self.type) cmd.audible_feedback = self._audible_feedback cmd.power_state = self._power_state cmd.target_temperature = self._target_temperature cmd.operational_mode = self._operational_mode.value cmd.fan_speed = self._fan_speed.value cmd.swing_mode = self._swing_mode.value cmd.eco_mode = self._eco_mode cmd.turbo_mode = self._turbo_mode pkt_builder = packet_builder(self.id) pkt_builder.set_command(cmd) data = pkt_builder.finalize() data = self._lan_service.appliance_transparent_send(data) response = appliance_response(data) if not self._defer_update: self.update(response) finally: self._updating = False self._defer_update = False
if msg_type != args.fiter_type: continue print("\n### No.{0} {1} {2} => {3}".format(packet.number, packet.sniff_time, packet.ip.src, packet.ip.dst)) if (not ipaddress.ip_address(packet.ip.src).is_private or not ipaddress.ip_address(packet.ip.dst).is_private): print("NOT LOCAL: packet to/from Midea Cloud") print("Message Type:\t %s %s applianceId: -hex: %s -int: %d" % (msg_type.upper(), hex(msg_type_hex), device_id, convert_device_id_int(device_id))) if len(reply) >= 20: response = appliance_response(reply) print("Decoded Data:\t {}".format({ 'power_state': response.power_state, 'operational_mode': get_operational_mode(response.operational_mode), 'target_temperature': response.target_temperature, 'fan_speed': get_fan_speed(response.fan_speed), 'swing_mode': response.swing_mode, 'eco_mode': response.eco_mode, 'turbo_mode': response.turbo_mode,