EverythingSmartHome / fingerprint-mqtt

Fingerprint sensor with MQTT support based on Adafruit Fingerprint Sensor Library
GNU General Public License v3.0
24 stars 14 forks source link

Configuration sensor/topic code depricated #21

Closed Jasper-itsme closed 1 year ago

Jasper-itsme commented 1 year ago

Issue When copy pasting your configuration.yaml code into HomeAssistant, the editor shows that your mqtt topic code is depricated. Also after restarting HomeAssistant the logs show a warning regarding the same and is referring to: https://www.home-assistant.io/integrations/sensor.mqtt/#new_format

Suggestion

#Fingerprint mqtt topic
mqtt:
  sensor:
    - name: "Fingerprint"
      state_topic: "/fingerprint/mode/status"
      value_template: "{{value_json.state}}"
      json_attributes_topic: "/fingerprint/mode/status"
      json_attributes_template: "{{value_json | tojson}}"

#Fingerprint template sensors
sensor:
  - platform: template
    sensors:
      fingerprint_mode:
        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:
        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:
        friendly_name: "Fingerprint ID"
        value_template: >-
          {{state_attr('sensor.fingerprint', 'id')}}
      fingerprint_person:
        friendly_name: "Fingerprint Person"
        value_template: >-
          {% if states('sensor.fingerprint_id') | int >= 1 %}
            {%- set printid = states('sensor.fingerprint_id') | int -%}
            {%- set prints = states("input_text.fingerprint_data") | from_json if states("input_text.fingerprint_data") else [] -%}
            {%- set fingerprint = prints|selectattr('id', 'eq', states('sensor.fingerprint_id') | int) | first -%}
            {{fingerprint["name"]}}
          {% 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 %}

(love your work and tutorials, thanks!)

Itayabram commented 1 year ago

hi i tried using your code, I keep getting an error in the logs can you help? thanks

Logger: homeassistant.helpers.event Source: helpers/template.py:425 First occurred: 14:01:59 (1 occurrences) Last logged: 14:01:59

Error while processing template: Template("{% if states('sensor.fingerprint_id') | int >= 1 %} {%- set printid = states('sensor.fingerprint_id') | int -%} {%- set prints = states("input_text.fingerprint_data") | from_json if states("input_text.fingerprint_data") else [] -%} {%- set fingerprint = prints|selectattr('id', 'eq', states('sensor.fingerprint_id') | int) | first -%} {{fingerprint["name"]}} {% elif is_state('sensor.fingerprint', 'Waiting') %} Waiting {% elif is_state('sensor.fingerprint', 'Not matched') %} Not matched {% endif %}") Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 423, in async_render render_result = _render_with_context(self.template, compiled, kwargs) File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1942, in _render_with_context return template.render(kwargs) File "/usr/local/lib/python3.10/site-packages/jinja2/environment.py", line 1301, in render self.environment.handle_exception() File "/usr/local/lib/python3.10/site-packages/jinja2/environment.py", line 936, in handle_exception raise rewrite_traceback_stack(source=source) File "