zephyr_ha_mqtt_sample/README.rst

65 lines
2.2 KiB
ReStructuredText

.. SPDX-License-Identifier: Apache-2.0
############################
Modbus MQTT Gateway
############################
Overview
********
This Zephyr application serves as an MQTT gateway, primarily designed to bridge Modbus devices with a Home Assistant instance. It connects to a WiFi network, obtains an IP address, and communicates with an MQTT broker.
Features
********
- **WiFi Connectivity**: Connects to a specified WiFi network using credentials provided via Kconfig.
- **Network Configuration**: Supports both DHCP and static IP addressing for flexible network integration.
- **MQTT Integration**: Configured to communicate with an MQTT broker, with specific options for Home Assistant discovery.
- **Configurability**: All major parameters, including WiFi, network, and MQTT settings, are configurable through Kconfig.
- **Simulation Support**: Includes a script and configuration for running in a simulated environment (`native_sim`).
Configuration
*************
The application is configured using Kconfig. Key options can be found in the "Home Assistant MQTT Options" menu.
- **WiFi Settings**:
- `CONFIG_WIFI_SSID`: The SSID of the WiFi network.
- `CONFIG_WIFI_PASSWORD`: The password for the WiFi network.
- **Network Settings**:
- `CONFIG_NET_DHCP`: Enable or disable DHCP.
- `CONFIG_NET_IP_ADDR`: Static IP address.
- `CONFIG_NET_IP_MASK`: Static IP netmask.
- `CONFIG_NET_IP_GATEWAY`: Static IP gateway.
- `CONFIG_NET_DNS_SERVER`: Static DNS server.
- **MQTT Broker Settings**:
- `CONFIG_HA_MQTT_BROKER_HOSTNAME`: Hostname or IP of the MQTT broker.
- `CONFIG_HA_MQTT_BROKER_PORT`: Port of the MQTT broker.
- `CONFIG_HA_MQTT_USERNAME`: Username for MQTT authentication.
- `CONFIG_HA_MQTT_PASSWORD`: Password for MQTT authentication.
- **Home Assistant Device Info**:
- `CONFIG_HA_MQTT_NAME`: Device name.
- `CONFIG_HA_MQTT_MANUFACTURER`: Manufacturer name.
- `CONFIG_HA_MQTT_MODEL`: Model name.
Building and Running
********************
**Building for Hardware (e.g., ESP32-C6)**
.. code-block:: shell
west build -b esp32c6_devkitc_hpcore
**Running in Simulation**
A simulation can be run using the provided script:
.. code-block:: shell
./run_sim.sh
This will build and run the application for the `native_sim` target.