Hallo,
vielen Dank für die Hinweise, die ich hier gefunden habe. Hier meine aktuelle Konfiguration für Home Assistant, um ESPuino per MQTT anzubinden.
mqtt:
sensor:
- name: "Battery"
state_topic: "State/ESPuino/Battery"
unique_id: espuino_battery
device_class: battery
suggested_display_precision: 2
unit_of_measurement: "%"
device:
configuration_url: http://espuino.local/
connections:
- ["mac", "AA:BB:CC:DD:EE:FF"]
manufacturer: DIY
model: ESPuino
name: ESPuino
- name: "Loudness"
state_topic: "State/ESPuino/Loudness"
unique_id: espuino_loudness
device_class: sound_pressure
suggested_display_precision: 0
unit_of_measurement: "%"
value_template: "{{ ((value | int - 1) / 20 * 100) | round }}"
device:
connections:
- ["mac", "AA:BB:CC:DD:EE:FF"]
- name: "LED Brightness"
state_topic: "State/ESPuino/LedBrightness"
unique_id: espuino_led_brightness
device_class: illuminance
suggested_display_precision: 0
unit_of_measurement: "%"
value_template: "{{ ((value | int) / 254 * 100) | round }}"
device:
connections:
- ["mac", "AA:BB:CC:DD:EE:FF"]
- name: "Software Revision"
state_topic: "State/ESPuino/SoftwareRevision"
unique_id: espuino_software_revision
device:
connections:
- ["mac", "AA:BB:CC:DD:EE:FF"]
- name: "Track"
state_topic: "State/ESPuino/Track"
unique_id: espuino_track
device:
connections:
- ["mac", "AA:BB:CC:DD:EE:FF"]
- name: "WiFi RSSI"
state_topic: "State/ESPuino/WifiRssi"
unique_id: espuino_wifi_rssi
device_class: signal_strength
suggested_display_precision: 0
unit_of_measurement: "dBm"
device:
connections:
- ["mac", "AA:BB:CC:DD:EE:FF"]
- name: "Voltage"
state_topic: "State/ESPuino/Voltage"
unique_id: espuino_voltage
device_class: voltage
suggested_display_precision: 2
unit_of_measurement: "V"
device:
connections:
- ["mac", "AA:BB:CC:DD:EE:FF"]
binary_sensor:
- name: "Lock Controls"
state_topic: "State/ESPuino/LockControls"
unique_id: espuino_lock_controls
device_class: lock
payload_on: "OFF"
payload_off: "ON"
device:
connections:
- ["mac", "AA:BB:CC:DD:EE:FF"]
media_player:
- platform: mqtt-mediaplayer
name: "ESPuino"
topic:
song_title: "{{ states('sensor.espuino_track') }}"
player_status: "State/ESPuino/State"
song_volume: "{{ states('sensor.espuino_loudness') }}"
volume:
service: mqtt.publish
data:
topic: "Cmnd/ESPuino/Loudness"
payload: >
{%- if volume < 1 %}
{{- (volume * 20) | round + 1 }}
{%- else %}
{{- ((volume * 20) / 100) | round + 1 }}
{%- endif %}
status_keyword: "Online"
next:
service: mqtt.publish
data:
topic: "Cmnd/ESPuino/TrackControl"
payload: "4"
previous:
service: mqtt.publish
data:
topic: "Cmnd/ESPuino/TrackControl"
payload: "5"
play:
service: mqtt.publish
data:
topic: "Cmnd/ESPuino/TrackControl"
payload: "3"
pause:
service: mqtt.publish
data:
topic: "Cmnd/ESPuino/TrackControl"
payload: "3"
turn_off:
service: mqtt.publish
data:
topic: "Cmnd/ESPuino/Sleep"
payload: "OFF"
- Ich habe noch ein paar zusätzliche Sensoren definiert.
- Ich habe ein Device angelegt, an dem alle Sensoren hängen.
- Ich habe die Lautstärkeberechnung etwas angepasst, damit 5 % in Home Assistant einem Schritt in ESPuino entspricht.
turn_off
zusätzlich im Media-Player.