Seite 2 von 2

Re: REST API - Ich blick's nicht

Verfasst: Do 9. Dez 2021, 10:32
von azrael783
@carsten_h Check mal deine Sensoren. Du solltest zwei "Eiswarnung" Sensoren haben. Einen der die Antwart des Rest-Calls enthält und einen der die Icons entsprechend anzeigt.

Re: REST API - Ich blick's nicht

Verfasst: Do 9. Dez 2021, 10:44
von carsten_h
Friedi hat geschrieben: Do 9. Dez 2021, 10:25 Der Binary Sensor benötigt in diesem Fall auf jeden Fall als Grundlage den Rest-Sensor (siehe viewtopic.php?p=727#p727). Ohne den hat er ja keinen Wert ...
Ja klar, den habe ich ja auch definiert und normal angezeigt wird ja vorne auch die Schneeflocke, nur eben nicht als badge.

Also zusammengefasst. Das hier steht für den REST Sensor drin:

Code: Alles auswählen

# Sensor für Eiswarner
  - platform: rest
    scan_interval: 7200
    name: eiswarnung_text
    resource: !secret eiswarnung_url
    json_attributes:
      - success
      - message
      - callsLeft
      - callsDailyLimit
      - callsResetInSeconds
      - result
    value_template: "{{ value_json.result.forecastText }}"
Dies hier steht für den binary Sensor drin:

Code: Alles auswählen

  - platform: template
    sensors:
      eiswarnung:
        friendly_name: Eiswarnung
        value_template: >- 
          {{state_attr('sensor.eiswarnung_text', 'result')['forecastId'] == 1 or state_attr('sensor.eiswarnung_text', 'result')['forecastId'] == 2 }}
        icon_template: >-
          {% if state_attr('sensor.eiswarnung_text', 'result')['forecastId'] == 0 %}
            mdi:snowflake-off
          {% elif state_attr('sensor.eiswarnung_text', 'result')['forecastId'] == 1 %}
            mdi:snowflake-alert
          {% elif state_attr('sensor.eiswarnung_text', 'result')['forecastId'] == 2 %}
            mdi:snowflake
          {%- else %}
            mdi:help-box
          {% endif %}
Mit diesem Eintrag in der ui-lovelace.yaml:

Code: Alles auswählen

    badges:
       - entity: sensor.eiswarnung
erhalte ich das hier:
Bildschirmfoto 2021-12-09 um 09.13.31.png
Bildschirmfoto 2021-12-09 um 09.13.31.png (5.57 KiB) 330 mal betrachtet
mit diesem Eintrag:

Code: Alles auswählen

    cards:
      - type: entities
        state_color: true
        entities:
          - sensor.eiswarnung
erhalte ich das hier:
Bildschirmfoto 2021-12-09 um 10.57.03.png
Bildschirmfoto 2021-12-09 um 10.57.03.png (6.09 KiB) 330 mal betrachtet
Warum ist bei mir das Icon nicht in dem Badge zu sehen, sondern der Text false?

Re: REST API - Ich blick's nicht

Verfasst: Do 9. Dez 2021, 11:08
von azrael783
Ich kann es gerade nicht nachvollziehen, da ich den Template Sensor nicht erstellt bekomme.

Re: REST API - Ich blick's nicht

Verfasst: Do 9. Dez 2021, 15:21
von Osorkon
carsten_h hat geschrieben: Do 9. Dez 2021, 10:44 Warum ist bei mir das Icon nicht in dem Badge zu sehen, sondern der Text false?
Das kann ich Dir sagen.

Da Du an der Stelle keinen binary_sensor sondern einen sensor erstellt hast.

Der gleiche code. Links als Binary Sensoer. Rechts als sensor.
eiswarnung.PNG
eiswarnung.PNG (3.89 KiB) 320 mal betrachtet
Gruß
Osorkon

Re: REST API - Ich blick's nicht

Verfasst: Do 9. Dez 2021, 15:55
von carsten_h
Osorkon hat geschrieben: Do 9. Dez 2021, 15:21Da Du an der Stelle keinen binary_sensor sondern einen sensor erstellt hast.
Jetzt wo Du es schreibst.
Patsch vor die Stirn.
Geht!
Danke!

Re: REST API - Ich blick's nicht

Verfasst: Do 9. Dez 2021, 16:10
von Friedi
carsten_h hat geschrieben: Do 9. Dez 2021, 15:55 Jetzt wo Du es schreibst.
Patsch vor die Stirn.
Geht!
Danke!
Hab’s auch nicht gesehen 🤷‍♂️

Re: REST API - Ich blick's nicht

Verfasst: Fr 10. Dez 2021, 09:42
von azrael783
@Osorkon aus deinem Code geht leider nicht hervor, dass es ein binary_sensor ist, da nicht klar ist wo du den Code eingefügt hast und unter "-platform: template" "sensor" steht. Das deutet für mich auf einen normalen Sensor hin. Wahrscheinlich hat das auch dazu geführt, dass ich diesen Teil nicht in meiner "sensor.yaml" Datei einfügen konnte.

Hier mal meine Lösung als binary_sensor:

Code: Alles auswählen

# configuration.yaml
template: 
  - binary_sensor:
    - name: Eiswarnung
      state: >
        {{state_attr('sensor.eiswarnung_restcall', 'result')['forecastId'] == 1 or state_attr('sensor.eiswarnung_restcall', 'result')['forecastId'] == 2 }}
      icon: >
        {% if state_attr('sensor.eiswarnung_restcall', 'result')['forecastId'] == 0 %}
          mdi:snowflake-off
        {% elif state_attr('sensor.eiswarnung_restcall', 'result')['forecastId'] == 1 %}
          mdi:snowflake-alert
        {% elif state_attr('sensor.eiswarnung_restcall', 'result')['forecastId'] == 2 %}
          mdi:snowflake
        {%- else %}
          mdi:help-box
        {% endif %}
Den Sensor, der den Restcall macht, habe ich "eiswarnung_restcall" genannt, um Überschneidungen bei den Namen zu vermeiden.

Re: REST API - Ich blick's nicht

Verfasst: Fr 10. Dez 2021, 09:46
von Friedi
azrael783 hat geschrieben: Fr 10. Dez 2021, 09:42 @Osorkon aus deinem Code geht leider nicht hervor, dass es ein binary_sensor ist, da nicht klar ist wo du den Code eingefügt hast und unter "-platform: template" "sensor" steht. Das deutet für mich auf einen normalen Sensor hin.
Naja, er schrieb ja, dass es ein binary_sensor ist. Wahrscheinlich hat er ihn, wie ich auch, ausgelagert in einer binary_sensors.yaml.