Hi all. I’ve just setup a fingerprint sensor using an AS608 and ESP8266 using this guide to setup an Arduino MQTT integration. How to build a WiFi connected Fingerprint Sensor with Home Assistant
The sensor is working fine as verified through Arduino serial monitor and I’ve successfully made an automation to open a door by reading info within the MQTT state topic but my lovelace cards which should show the state of reading/learning entities are just showing a status “unknown” and don’t seem to be getting any info through MQTT. When I subscribe to the relevant topics they are being received by my Home Assistant MQTT server but the entities don’t seem to be ‘connecting’ to them.
This is the configuration code I used to try to set up the entities; I’m suspecting it’s some kind of json formatting problem but I just don’t know enough about programming to identify the problem. Anyone able to help please?
sensor:
- platform: mqtt
name: "Fingerprint"
state_topic: "/fingerprint/mode/status"
value_template: "{{value_json.state}}"
json_attributes_topic: "/fingerprint/mode/status"
json_attributes_template: "{{value_json | tojson}}"
- platform: template
sensors:
fingerprint_mode:
unique_id: fingmode
friendly_name: "Fingerprint Sensor Mode"
value_template: >-
{{ state_attr('sensor.fingerprint', 'mode') }}
icon_template: >-
{% if is_state('sensor.fingerprint_mode', 'reading') %}
mdi:book-open-outline
{% elif is_state('sensor.fingerprint_mode', 'learning') %}
mdi:book-open-page-variant
{% endif %}
fingerprint_state:
unique_id: fingstate
friendly_name: "Fingerprint State"
value_template: >-
{{ states('sensor.fingerprint') }}
icon_template: >-
{% if is_state('sensor.fingerprint', 'Waiting') %}
mdi:fingerprint
{% elif is_state('sensor.fingerprint', 'Matched') %}
mdi:fingerprint
{% elif is_state('sensor.fingerprint', 'Not matched') %}
mdi:fingerprint-off
{% endif %}
fingerprint_id:
unique_id: fingid
friendly_name: "Fingerprint ID"
value_template: >-
{{ state_attr('sensor.fingerprint', 'id') }}
fingerprint_person:
unique_id: fingperson
friendly_name: "Fingerprint Person"
value_template: >-
{% if is_state('sensor.fingerprint_id', '1') %}
Lewis
{% elif states.sensor.fingerprint_id.state | int > 1 %}
{{states.sensor.fingerprint_id.state}}
{% elif is_state('sensor.fingerprint', 'Waiting') %}
Waiting
{% elif is_state('sensor.fingerprint', 'Not matched') %}
Not matched
{% endif %}
icon_template: >-
{% if is_state('sensor.fingerprint', 'Waiting') %}
mdi:human-male
{% elif is_state('sensor.fingerprint', 'Matched') %}
mdi:human-greeting
{% elif is_state('sensor.fingerprint', 'Not matched') %}
mdi:police-badge
{% endif %}
