164 lines
5.0 KiB
Markdown
164 lines
5.0 KiB
Markdown
# Integrate Home Assistant
|
|
## Auto discovery
|
|
So as to enable HASS auto discovery with MQTT you have to uncomment [ZmqttDiscovery](https://github.com/1technophile/OpenMQTTGateway/blob/0180a0dbd55ed8e0799e30ee84f68070a6f478fa/User_config.h#L99) in User_config.h. Note that Home Assistant discovery is enabled by default on all binaries and platformio configurations except for UNO.
|
|
|
|
Once done, enable discovery on your MQTT integration definition in HASS.
|
|
|
|
So as to create the MQTT username and password, you have to create a new user(recommended) into Home Assistant->Configuration->Users (available in admin mode) or use an existing username/pwd combination (not recommended). This user doesn't need to be an administrator.
|
|
|
|

|
|
|
|
::: warning Note
|
|
The max size of the username is 30 and 60 for the password.
|
|
:::
|
|
|
|
OMG will use the auto discovery functionality of home assistant to create sensors and gateways into your HASS instance automaticaly.
|
|
|
|
The gateway device will be available into Configuration->Devices section of Home Assistant.
|
|
|
|

|
|
|
|
## Manual integration examples
|
|
From @123, @finity, @denniz03, @jrockstad
|
|
|
|
### Door sensor
|
|
```yaml
|
|
binary_sensor:
|
|
- platform: mqtt
|
|
name: "test"
|
|
state_topic: "home/OpenMQTTGateway/433toMQTT"
|
|
value_template: >-
|
|
{% if value_json.value == '7821834' %}
|
|
{{'ON'}}
|
|
{% elif value_json.value == '7821838' %}
|
|
{{'OFF'}}
|
|
{% else %}
|
|
{{states('binary_sensor.test') | upper}}
|
|
{% endif %}
|
|
qos: 0
|
|
device_class: opening
|
|
```
|
|
|
|
```yaml
|
|
binary_sensor:
|
|
- platform: mqtt
|
|
name: doorbell
|
|
state_topic: 'home/OpenMQTTGateway/SRFBtoMQTT'
|
|
#value_template: "{{ value_json.raw }}"
|
|
value_template: >-
|
|
{% if value_json.value == '14163857' %}
|
|
{{'ON'}}
|
|
{% else %}
|
|
{{states('binary_sensor.doorbell') | upper}}
|
|
{% endif %}
|
|
off_delay: 30
|
|
device_class: 'sound'
|
|
- binary_sensor:
|
|
platform: mqtt
|
|
name: light_back_sensor
|
|
state_topic: 'home/OpenMQTTGateway/SRFBtoMQTT'
|
|
#value_template: '{{ value_jason.value }}'
|
|
value_template: >-
|
|
{% if value_json.value == '1213858' %}
|
|
{{'ON'}}
|
|
{% else %}
|
|
{{states('binary_sensor.light_back_sensor') | upper}}
|
|
{% endif %}
|
|
off_delay: 5
|
|
- binary_sensor:
|
|
platform: mqtt
|
|
name: rf_outlet_sensor
|
|
state_topic: 'home/OpenMQTTGateway/SRFBtoMQTT'
|
|
value_template: >-
|
|
{% if value_json.value == '16766303' %}
|
|
{{'ON'}}
|
|
{% else %}
|
|
{{states('binary_sensor.rf_outlet_sensor') | upper}}
|
|
{% endif %}
|
|
```
|
|
|
|
### Motion sensor
|
|
```yaml
|
|
binary_sensor:
|
|
- platform: mqtt
|
|
name: "Bewegung_Schlafzimmer"
|
|
#device_class: motion
|
|
state_topic: "home/OpenMQTTGateway1/HCSR501toMQTT"
|
|
value_template: '{{ value_json["presence"] }}'
|
|
payload_on: "true"
|
|
payload_off: "false"
|
|
```
|
|
|
|
### Switches
|
|
|
|
```yaml
|
|
#switches
|
|
switch:
|
|
- platform: mqtt
|
|
name: Plug1
|
|
state_topic: "home/OpenMQTTGateway/SRFBtoMQTT"
|
|
command_topic: "home/OpenMQTTGateway/commands/MQTTtoSRFB"
|
|
value_template: "{{ value_json.value }}"
|
|
payload_on: '{"value":4546575}'
|
|
payload_off: '{"value":4546572}'
|
|
state_on: 4546575
|
|
state_off: 4546572
|
|
qos: "0"
|
|
retain: true
|
|
```
|
|
|
|
### Mijia Thermometer BLE
|
|
|
|
```yaml
|
|
Sensor:
|
|
- platform: mqtt
|
|
state_topic: 'home/OpenMQTTGateway/BTtoMQTT/AAAAAAAAAAAA' # MQTT topic, check MQTT messages; replace AA... with id (BLE MAC) of your device
|
|
name: "mijia_thermometer_temperature"
|
|
unit_of_measurement: '°C'
|
|
value_template: '{{ value_json.tem | is_defined }}'
|
|
expire_after: 21600 # 6 hours
|
|
- platform: mqtt
|
|
state_topic: 'home/OpenMQTTGateway/BTtoMQTT/AAAAAAAAAAAA'
|
|
name: "mijia_thermometer_humidity"
|
|
unit_of_measurement: '%'
|
|
value_template: '{{ value_json.hum | is_defined }}'
|
|
expire_after: 21600 # 6 hours
|
|
- platform: mqtt
|
|
state_topic: 'home/OpenMQTTGateway/BTtoMQTT/AAAAAAAAAAAA'
|
|
name: "mijia_thermometer_battery"
|
|
unit_of_measurement: '%'
|
|
value_template: '{{ value_json.batt | is_defined }}'
|
|
expire_after: 21600 # 6 hours
|
|
```
|
|
|
|
|
|
### Xiaomi Mi Scale V2 BLE (XMTZC05HM)
|
|
|
|
```yaml
|
|
sensor:
|
|
- platform: mqtt
|
|
name: "Weight"
|
|
state_topic: "home/OpenMQTTGateway/BTtoMQTT/AAAAAAAAAAAA" # replace your mqtt topic here
|
|
value_template: '{{ value_json["weight"] }}'
|
|
unit_of_measurement: "kg"
|
|
icon: mdi:weight-kilogram
|
|
|
|
- platform: mqtt
|
|
name: "Impedance"
|
|
state_topic: "home/OpenMQTTGateway/BTtoMQTT/AAAAAAAAAAAA" # replace your mqtt topic here also
|
|
value_template: '{{ value_json["impedance"] }}'
|
|
unit_of_measurement: "Ohm"
|
|
icon: mdi:omega
|
|
|
|
- platform: template
|
|
sensors:
|
|
body_mass_index:
|
|
friendly_name: 'Body Mass Index'
|
|
value_template: >-
|
|
{% set HEIGHT = (1.76)|float %} # replace your height in meters
|
|
{% set WEIGHT = states('sensor.xmtzc05hm_weight')|float %}
|
|
{{- (WEIGHT/(HEIGHT*HEIGHT))|float|round(1) -}}
|
|
icon_template: >
|
|
{{ 'mdi:human' }}
|
|
```
|