wuwentao / midea_ac_lan

Auto-configure and then control your Midea M-Smart devices (Air conditioner, Fan, Water heater, Washer, etc) via local area network.
MIT License
106 stars 5 forks source link

C3 heat pump - how to activate “super_silent" mode ? #80

Open erikgieseler opened 3 weeks ago

erikgieseler commented 3 weeks ago

HA core version

2024.6.1

Integration version

0.4.1

Device type and model

Heat Pump Wi-Fi Controller 171H120F

Used App

SmartHome

The description of problem

Hello,

in the source code of the C3 heat pump there are the modes “silent_mode” and “super_silent”.

There is a switch in the HA for “silent_mode”. But there is nothing like this for “super_silent”.

Does anyone know how to activate the “super_silent” mode ?

References: https://github.com/georgezhao2010/midea_ac_lan/issues/339 https://github.com/georgezhao2010/midea_ac_lan/commit/448410e86b5b33af9adcf690a02c8dd6e267283e

The logs

No response

wuwentao commented 3 weeks ago

@erikgieseler there is no silent_level or super_silent option data for it. you may need to find out the super_silent data diff like origin issue

maybe you can follow the same step, to get the data diff like below(please provide the full log, just show a example)

16:41:10 - silent mode is turned on
16:43:10 - silent mode is turned off

message "body" difference:
"010017a00303201e27c037191912371919053c223c14260000" - turned off
"010017a20303201e27c037191912371919053c223c14260000" - turned on

it only have on and off, no silent_level or super_silent data provide, so georgezhao2010 didn't finish it, you can't use it.

erikgieseler commented 3 weeks ago

I have tested this accordingly, unfortunately there are no differences in the data between silent and super_silent when I activate this in the app.

But I found out by trial and error that you can activate the super_silent mode by sending 0x03 instead of 0x01 as with silent.

The example code would then look like this:

class MessageSetSuperSilent(MessageC3Base):
    def __init__(self, protocol_version):
        super().__init__(
            protocol_version=protocol_version,
            message_type=MessageType.set,
            body_type=0x05)
        self.super_silent_mode = False

    @property
    def _body(self):
        super_silent_mode = 0x03 if self.super_silent_mode else 0

        return bytearray([
            super_silent_mode,
            0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00
        ])

You could perhaps just add a pushbutton to activate the super_silent mode. Unfortunately, only silent mode would then be displayed as active.

Unfortunately my programming skills are not that good, otherwise I would program it myself :-(

silent on: silent

super_silent on: super_silent

off: off

erikgieseler commented 3 weeks ago

I found source code in another GitHub repository that seems to have been extracted from the SmartHome app. Maybe that will help.

Source: https://github.com/mill1000/midea-msmart/issues/107

T0xC3_2023120100_sm.zip T_0000_C3_171H120F_2023062601.txt