Card et sensors pour robonect

Hello,

J’ai fini par avoir un truc acceptable pour la carte de mon robot tondeuse, du coup, si ça peut servir à quelqu’un d’autre.

type: entities
title: ' Robonect'
show_header_toggle: false
entities:
  - type: custom:hui-vertical-stack-card
    cards:
      - type: horizontal-stack
        cards:
          - type: picture
            style: |
              ha-card {
                  width: 80%;
                  background: none;
                  box-shadow: none;
              }
            image: /local/images/devices/robonect.png
          - type: entities
            entities:
              - entity: sensor.robonect_status_plain
                type: custom:multiple-entity-row
                name: Etat
                icon: mdi:list-status
              - entity: sensor.robonect_battery
                name: Batterie
      - type: entities
        entities:
          - entity: sensor.robonect_time_in_current_status_friendly
            name: Durée état actuel
            icon: mdi:timer
          - entity: sensor.robonect_operation_hours_friendly
            name: Temps de fonctionnement
            icon: mdi:content-cut
          - entity: sensor.robonect_stopped_friendly
            icon: mdi:lock
          - entity: sensor.robonect_blade_quality
            icon: mdi:saw-blade
            name: Qualité des lames
          - entity: sensor.robonect_blade_usage_friendly
            icon: mdi:calendar
            name: Ancienneté des lames

Forcement il y aussi les sensors qui vont avec

- platform: mqtt
  state_topic: "robonect/mower/battery/charge"
  name: "robonect Battery"
  unit_of_measurement: "%"
  device_class: battery

- platform: mqtt
  state_topic: "robonect/mower/stopped"
  name: "robonect Stopped"

- platform: template
  sensors:
    robonect_stopped_friendly:
      friendly_name: "Status verrouillage"
      value_template: >
        {% if is_state("sensor.robonect_mower_stopped", "true") %}
          Actif
        {% else %}
          Inactif
        {% endif %}

- platform: mqtt
  state_topic: "robonect/wlan/rssi"
  name: "robonect wifi signal"
  unit_of_measurement: "dBm"

- platform: mqtt
  state_topic: "robonect/mower/status"
  name: "robonect status raw"

- platform: mqtt
  state_topic: "robonect/mower/status/duration"
  name: "robonect time in current status"
  unit_of_measurement: "minutes"

- platform: mqtt
  state_topic: "robonect/mower/status/plain"
  name: "robonect status plain"

- platform: template
  sensors:
    robonect_time_in_current_status_friendly:
      value_template: >
        {% set time=states("sensor.robonect_time_in_current_status")|int*60 %}
        {% set minutes = ((time % 3600) / 60) | int %}
        {% set hours = ((time % 86400) / 3600) | int %}
        {% set days = (time / 86400) | int %}

        {%- if time < 60 -%}
          Moins d'un minute
        {%- else -%}
          {%- if days > 0 -%}
            {%- if days == 1 -%}
              1 jour
            {%- else -%}
              {{ days }} jours
            {%- endif -%}
          {%- endif -%}
          {%- if hours > 0 -%}
            {%- if days > 0 -%}
              {{ ', ' }}
            {%- endif -%}
            {%- if hours == 1 -%}
              1 heure
            {%- else -%}
              {{ hours }} heures
            {%- endif -%}
          {%- endif -%}
          {%- if minutes > 0 -%}
            {%- if days > 0 or hours > 0 -%}
              {{ ', ' }}
            {%- endif -%}
            {%- if minutes == 1 -%}
              1 minute
            {%- else -%}
              {{ minutes }} minutes
            {%- endif -%}
          {%- endif -%}
        {%- endif -%}

- platform: mqtt
  state_topic: "robonect/mower/mode"
  name: "robonect mode raw"

- platform: mqtt
  state_topic: "robonect/mower/statistic/hours"
  name: "robonect Operation Hours"
  unit_of_measurement: "heures"
  icon: mdi:timer-sand

- platform: template
  sensors:
    robonect_operation_hours_friendly:
      value_template: >
        {% set time=states("sensor.robonect_operation_hours")|int*60 %}
        {% set minutes = ((time % 3600) / 60) | int %}
        {% set hours = ((time % 86400) / 3600) | int %}
        {% set days = (time / 86400) | int %}

        {%- if time < 60 -%}
          Moins d'un minute
        {%- else -%}
          {%- if days > 0 -%}
            {%- if days == 1 -%}
              1 jour
            {%- else -%}
              {{ days }} jours
            {%- endif -%}
          {%- endif -%}
          {%- if hours > 0 -%}
            {%- if days > 0 -%}
              {{ ', ' }}
            {%- endif -%}
            {%- if hours == 1 -%}
              1 heure
            {%- else -%}
              {{ hours }} heures
            {%- endif -%}
          {%- endif -%}
          {%- if minutes > 0 -%}
            {%- if days > 0 or hours > 0 -%}
              {{ ', ' }}
            {%- endif -%}
            {%- if minutes == 1 -%}
              1 minute
            {%- else -%}
              {{ minutes }} minutes
            {%- endif -%}
          {%- endif -%}
        {%- endif -%}

- platform: mqtt
  state_topic: "robonect/health/voltage/int33"
  name: "robonect Operating Voltage Robonect"
  unit_of_measurement: "V"

- platform: mqtt
  state_topic: "robonect/health/voltage/ext33"
  name: "robonect Operating Voltage Mower"
  unit_of_measurement: "V"

- platform: mqtt
  state_topic: "robonect/health/voltage/batt"
  name: "robonect Battery Voltage"
  unit_of_measurement: "V"

- platform: mqtt
  state_topic: "robonect/mower/blades/quality"
  name: "robonect blade quality"
  unit_of_measurement: "%"

- platform: mqtt
  state_topic: "robonect/mower/blades/days"
  name: "robonect blade usage days"
  unit_of_measurement: "jours"

- platform: mqtt
  state_topic: "robonect/mower/blades/hours"
  name: "robonect blade usage hours"
  unit_of_measurement: "heures"

- platform: template
  sensors:
    robonect_blade_usage_friendly:
      friendly_name: "Durée utilisation des lames"
      value_template: >
        {% if states("sensor.robonect_blade_usage_days")|int == 1 %}
          {{ states("sensor.robonect_blade_usage_days") }} Jour
        {% elif states("sensor.robonect_blade_usage_hours")|int >1 %}
          {{ states("sensor.robonect_blade_usage_days") }} Jours
        {% else -%}
          Moins d'un jour
        {%- endif %}

et l’image détourée

robonect