Soft hack to open telnet
You need gateway 3(mgl03) connected to MiHome. And also ip and gateway token.
1 way (recommended)
Via XiaomiGateway3 component.
You must input in the 'Open Telnet command' field(as it is without changing anything):
{"method":"set_ip_info","params":{"ssid":"\"\"","pswd":"123123 ; passwd -d admin ; echo enable > /sys/class/tty/tty/enable; telnetd"}}
2 way (recommended if not using Home Assistant)
php-miio (https://github.com/skysilver-lab/php-miio)
You may need to change id.
php miio-cli.php --ip GW_IP --token GW_TOKEN --sendcmd '{"id":123,"method":"set_ip_info","params":{"ssid":"\"\"","pswd":"123123 ; passwd -d admin ; echo enable > /sys/class/tty/tty/enable; telnetd"}}'
3 way (maybe problem with sequence id)
python-miio (https://github.com/rytilahti/python-miio)
miiocli device --ip GW_IP --token GW_TOKEN raw_command set_ip_info '{"ssid":"\"\"","pswd":"123123 ; passwd -d admin ; echo enable > /sys/class/tty/tty/enable; telnetd"}'
Login: admin
Password is empty
After opening telnet, it is better to install custom firmware (only for Xiaomi Gateway 3 mgl03).
Read here: https://github.com/zvldz/mgl03_fw/tree/main/firmware#the-easy-way
Open telnet command should also work with:
- lumi.gateway.mgl03 - Mi Smart Home Hub
- lumi.gateway.acn01 - Aqara Hub M1S CN
- lumi.gateway.aeu01 - Aqara Hub M1S EU
- lumi.aircondition.acn05 - Aqara Air Conditioning Controller P3
- lumi.gateway.sacn01 - Smart USB Wall Outlet Hub
Aqara Hub E1 (ZHWG16LM usb stick)
You need gateway E1 connected to MiHome. And also ip and gateway token.
1 way (recommended)
Via XiaomiGateway3 component, version 2+.
You must input in the 'Open Telnet command' field(as it is without changing anything):
{"method":"set_ip_info","params":{"ssid":"\"\"","pswd":"123123 ; /bin/riu_w 101e 53 3012; telnetd"}}
2 way (recommended if not using Home Assistant)
php-miio (https://github.com/skysilver-lab/php-miio)
You may need to change id.
php miio-cli.php --ip GW_IP --token GW_TOKEN --sendcmd '{"id":123,"method":"set_ip_info","params":{"ssid":"\"\"","pswd":"123123 ; /bin/riu_w 101e 53 3012; telnetd"}}'
3 way (maybe problem with sequence id)
python-miio (https://github.com/rytilahti/python-miio)
miiocli device --ip GW_IP --token GW_TOKEN raw_command set_ip_info '{"ssid":"\"\"","pswd":"123123 ; /bin/riu_w 101e 53 3012 ; telnetd"}'
Login: root
Password is empty
I am not author, I just tested and improved and published.
In the instruction should I indicate the ssid and the pswd of the wifi? Or should I execute the statement as is?
That's the debug info output:
DEBUG:miio.miioprotocol:Discovered 185be15b with ts: 1970-01-01 12:08:29, token: b'ffffffffffffffffffffffffffffffff'
DEBUG:miio.miioprotocol:192.168.1.130:54321 >>: {'id': 1, 'method': 'set_ip_info', 'params': '{ssid:"",pswd:123123 ; passwd -d admin ; echo enable > /sys/class/tty/tty/enable; telnetd}'}
DEBUG:miio.miioprotocol:192.168.1.130:54321 (ts: 1970-01-01 12:08:33, id: 1) << {'id': 1, 'error': {'code': -9999, 'message': 'user ack timeout'}, 'exe_time': 4070}
DEBUG:miio.click_common:Exception: {'code': -9999, 'message': 'user ack timeout'}