English / 简体中文
The main goal of ChatIoT is to enable users to interact with IoT devices without writing code or clicking through operations.
This project focuses on the smart home domain, using Home Assistant as the foundational platform. After installing Home Assistant, users can achieve the following functionalities through natural language:
- Control devices, such as "Turn on the study room light."
- Create rules, such as "If someone passes the living room, automatically turn on the living room light."
Before using ChatIoT, you need to complete some preparatory steps.
First, you need to install Home Assistant locally. It is recommended to use Docker for installation.
Next, you need to install the HACS integration in Home Assistant.
Finally, you can install specific integrations from the HACS store to connect your devices to Home Assistant.
For detailed instructions, refer to the Home Assistant Installation Guide.
Note: Currently, ChatIoT supports Xiaomi Home and Xiaomi MIoT Auto integrations for connecting Mi Home devices. If you do not have such devices but still want to experience ChatIoT, you can use a device simulator to create a virtual home environment. For detailed instructions, refer to the Miot Device Simulation Guide.
ChatIoT leverages large language models for device control and rule creation. Given the difficulty of deploying large model services locally, ChatIoT currently uses API calls.
Below is a list of currently supported APIs (requires support for OpenAI calls):
- qwen-max[Recommended]
- qwen-plus
- qwen-turbo
- moonshot-v1-8k
- deepseek-chat
- deepseek-reasoner
We will soon support a broader range of large language model calls.
Home Assistant custom integration files are placed in the /config/custom_components
directory. Therefore, installation essentially involves placing the ChatIoT files in this directory. There are two methods:
cd config # Home Assistant configuration directory
git clone https://github.com/zju-emnets/ChatIoT
cd chatiot
./install.sh /config # /config is the default location in the Home Assistant container. Use the external absolute path when operating in the externally mounted configuration folder.
HACS > Overflow Menu > Custom repositories > Repository: https://github.com/zju-emnets/ChatIoT.git & Category or Type: Integration > ADD > ChatIoT in New or Available for download section of HACS > DOWNLOAD
For detailed instructions, refer to the ChatIoT Integration Installation Guide.
If ChatIoT has been helpful for your research publication, please cite ChatIoT using the following BibTeX entry:
@article{gao2024chatiot,
title={ChatIoT: Zero-code Generation of Trigger-action Based IoT Programs},
author={Gao, Yi and Xiao, Kaijie and Li, Fu and Xu, Weifeng and Huang, Jiaming and Dong, Wei},
journal={Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies},
volume={8},
number={3},
pages={1--29},
year={2024},
publisher={ACM New York, NY, USA}
}