This is a work-in-progress MicroPython project designed to run on ESP32 boards, specifically the ones developed by Iodeo, which are designed to be directly plugged into Minitel terminals.
The goal of this project is to turn a Minitel into a Home Assistant control interface.
- Connects to Home Assistant via its REST API.
- Displays a simple dashboard of Home Assistant entities (e.g., lights) and interacts with them.
- Development mode includes a built-in Minitel emulator via WebSockets.
- Notification system: Monitors a configurable entity and displays notifications with sound when its value changes.
- Add prompt mode
- Add keymaps on screen
- Add a startup screen
- Add a way to make the configuration through the Minitel (wifi, api url, api token)
- Add a way to customize the dashboard on the Minitel (e.g., add/remove entities, change layout, reorder, ...)
- Create a notification system to display messages on the Minitel (with the minitel beep)
- Create a remote dev mode
- Add brightness control to lightbulbs
- Optimize inline renderer
Create a config.json file at the root of the project with the following content:
{
"HA_API_URL": "<home-assistant-url>:8123/api",
"HA_API_TOKEN": "Bearer <api_token>",
"WIFI_SSID": "",
"WIFI_PASSWORD": "",
"DASHBOARD_TAB": {"entities": ["<entity_id_1>", "<entity_id_2>"]},
"NOTIFICATION_ENTITY": "input_text.notification"
}To enable the notification system, add the NOTIFICATION_ENTITY field to your configuration:
{
"HA_API_URL": "<home-assistant-url>:8123/api",
"HA_API_TOKEN": "Bearer <api_token>",
"WIFI_SSID": "",
"WIFI_PASSWORD": "",
"DASHBOARD_TAB": {
"entities": [
"light.living_room",
"light.bedroom"
]
},
"NOTIFICATION_ENTITY": "input_text.notification"
}When the value of the configured notification entity changes in Home Assistant, the Minitel will display a notification with a sound beep and show the new value.
Note: The notification entity is monitored independently from the dashboard entities, so you don't need to add it to the DASHBOARD_TAB.entities list.
- Install MicroPython on your ESP32 board.
- Copy all Python files from the project root to the ESP32 using a tool like mpremote or ampy.
- Ensure the
config.jsonfile is also uploaded.
The emulator uses curses which does not natively run on Windows.
To simulate the Minitel environment on your local machine:
- Install the required dependencies:
pip install -r requirements.txt- Start the emulator server:
uvicorn hominitel.minitel.emulator_server:app --reload- Run the app
python -m hominitelNow you can see the screen in the emulator server terminal and interact with it in the app terminal. (Note: The emulator requires the enter key to be pressed to send an input, which is not the case on the Minitel)