Müllabfuhrtermine - Entitäten sortieren nach Datum

Moin!

Ich habe mal ein wenig rumprobiert, habe aber es aber nicht hinbekommen. Da ich ja schon waste_collection_schedule Einträge in den YAMLs habe, gab es Fehlermeldungen.

Ich müsste daher mal in Ruhe die configuration.yaml & die sensors.yaml sichern und enstprechend mit den neuen Einträgen füttern.
Dazu fehlt mir gerade die nötige Ruhe. Aber ich versuche es.
"Versuch mach kluch" sagte Homer schon

Grüße
Sky
 
Wie ich leider feststellen mußte, ist das Sortierproblem NICHT gelöst.
Kaum ist der erste Termin verstrichen, bleibt er oben stehen, ohne das er erwartungsgemäß nach unten wandert, weil er ja nun später dran ist.
1697371472633.png
Könnte also sein, das er nur nach TAG sortiert, ohne dabei MONAT zu beachten.
Ich habe die Sortierung auch mal auf NUMERIC gestellt, ändert aber leider nichts.
In der Entität sieht das so aus.
1697371680067.png
Ich fürchte, das man da noch vor dem Sortieren eine Umwandlung vornehmen muß, damit auf dem "String 2023-11-10" ein numerischer Wert "20231110" wird.
 
Geht leider nicht, da die Karte kein Sort nach "add_days_to" unterstützt.
So sieht es aktuell aus:
1697377102814.png
Und wenn ich per YAML das "daysto" hinzufüge, sieht es so aus:
1697377223150.png
Dann stimmt die Sortierung ja überhaupt nicht mehr.

Hier noch ein Auszug aus der sensors.yaml
Code:
# Müll Temrine
    
  - platform: waste_collection_schedule
    name: Restabfall
    details_format: "upcoming"
    add_days_to: True
    value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen{% endif %}'
    types:
      - Restabfall

  - platform: waste_collection_schedule
    name: Altpapier
    details_format: "upcoming"
    add_days_to: True
    value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen{% endif %}'
    types:
      - Altpapier

  - platform: waste_collection_schedule
    name: Leichtverpackungen
    details_format: "upcoming"
    add_days_to: True
    value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen{% endif %}'
    types:
      - Leichtverpackungen

  - platform: waste_collection_schedule
    name: Biomüll
    details_format: "upcoming"
    add_days_to: True
    value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen{% endif %}'
    types:
      - Biomüll

  - platform: waste_collection_schedule
    name: Glas
    details_format: "upcoming"
    add_days_to: True
    value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen{% endif %}'
    types:
      - Glasverpackungen
 
@RudiP es beachtet nicht nur den Tag, aber so geschrieben natürlich zuerst den Tag. Deshalb hatte ich die Sortierung nach YYYY-MM-DD vorgeschlagen.
 
Ja,hast Du Vorgeschlagen, nur funktioniert dein Code nicht bei mir. Du hast es als Template, ich als Sensor. Da nimmt er kein "attribute_template" an.
Aber die Anzeige des Datum ist bei uns beiden ja trotzdem gleich.
Zudem habe ich ja "daysto" bei mir drin und danach sollte er ja vernünftig sortieren können, tut er aber nicht.

@u5zzug
Dein Link läuft auf einen Error 404. ;) Aber egal. Hab die passende Seite trotzdem gefunden.
Ja, ich hatte meinen Code von einer anderen Seite, den zwischenzeitlich aber korrigiert, genauso so, wie deiner, aber das Sortieren klappt dennoch nicht.
1697446642504.png
1697446697232.png
1697446715833.png
1697446738980.png

Wie zu sehen ist, hast Restmüll ein DaysTo von 1, steht folgerichtig ganz oben.
Papiertonne hat aber ein Daysto von 25 und Gelber Sack von 14. Da passt die Sortierung dann nicht.
Und es ist egal, ob ich "numeric" auf true oder false setze.

Was mich noch etwas verwundert, die Auto Entities Karte hat ja auch eine visuelle Oberfläche zum Einstellen. Dort ist unter "Sorting" und "Sort methode" kein "attribute" aufgeführt.
Normalerweise ändert sich die Vorschau SOFORT, wenn ich einen Wert ändere. Nicht so, wenn ich Sort methode "attribute" ändere. Dann kann ich auch reverse auf true setzen, die Reihenfolge wird nicht umgedreht.
Nutze ich Sort methode state, klappt das aber einwandfrei.
Für mich sieht das so aus, als wenn bei Sort methode attribute irgendwas nicht funktioniert.
 
Du hast es als Template, ich als Sensor. Da nimmt er kein "attribute_template" an.
Na, ich habe es als Sensoren von waste_collection_schedule und diese haben als Attribut - leider als "key" und nicht als "value" - das Datum stehen, welches ich dann in einem Template aufgreife. In der Oberfläche verwende ich dann entsprechend nurnoch letztere.
 
Tja, da hört es bei mir dann auf, so tief stecke ich in der Sache (noch) nicht drin. KEY, VALUE. Hmmm.
Aber der Unterschied zwischen deinem Code und meinem Code:
Code:
- platform: template
  sensors:
Code:
  - platform: waste_collection_schedule
Deswegen kann ich das "attribute_templates" nicht nutzen.
1697454747950.png
Das "daysto" ist aber definitiv vorhanden und zeigt den korrekten Wert an, trotzdem kann ich nicht danach sortieren.

Oha, ich glaub, ich habs. Gerade gesehen, dass das attribute ja "daysTo" und nicht "DaysTo" heißt.
Kurz angepasst und "numeric sort" aktiviert und jetzt stimmt die Anzeige.

Code:
type: custom:auto-entities
card:
  type: entities
  title: Müllabfuhr
  state_color: true
filter:
  include:
    - entity_id: '*custom'
sort:
  method: attribute
  attribute: daysTo
  reverse: false
  numeric: true
  ignore_case: false
Komisch, das ignore Case hatte ich vorher auch mal aktiviert, hatte aber nichts gebracht.
Aber ok, schauen wir mal, wie es morgen wird, wenn mal wieder ein Termin verstrichen ist.
 
Tja, da hört es bei mir dann auf, so tief stecke ich in der Sache (noch) nicht drin. KEY, VALUE. Hmmm.
Key = Name = das womit man es ansprechen kann. Wie "daysTo".
Value = Wert = das worauf man zugreifen will. Wie "25".

Anhand vom key kann man normal value auslesen (wie Du es jetzt machst), in diesem Fall war aber key der relevante und obendrein veränderliche Wert, deshalb der Umweg.
Aber der Unterschied zwischen deinem Code und meinem Code:
Ah, ich glaub ich weiß wo unser Missverständnis liegt. Ich habe auch Deinen Code, aber den eben erweitert um eigenen, das ist kein "stattdessen".

Aber hey, mit der Option "daysTo" kann man sich den Umweg faktisch sparen, den dort wird die notwendige Angabe eben als value mit einem festen Namen bereitgestellt, worauf man dann direkt zugreifen kann.
 
Puh, bin ich ja froh, das wir doch quasi das selbe haben. :)
Und wieder was gelernt, KEY und VALUE. Danke für deine Erklärung.
Jetzt muß ich mir das nur noch merken, damit ich das bei anderen Dingen auch anwenden kann.
 
Ehrlich gesagt nicht wirklich, aber meine persönliche Erfahrung besagt, dass man in normalen Gesprächen besser nicht zu viel Programmierkrams einfließen lassen sollte :)
 
Kurze Rückmeldung. Heute wurde der Restmüll abgeholt und die Anzeige zeigt den nächsten Abholtermin nun auch korrekt sortiert an.
Puh, ich danke euch allen vielmals.
Gemeinsam sind wir Stark. :)
 
Ich habe da mit dem Müllteil noch etwas rumgespielt und eine für mich bessere Lösung und Anzeige gefunden, wie ich finde.
Vorteil, ich kann die Namen vergeben, wie ich will, muß also nicht dieses "custom" anhängen, was in der Anzeige immer etwas komisch ausgesehen hat.
1697798032473.png
So sieht die Anzeige jetzt bei mit aus. Leider funktioniert Card mod hier nicht, sonst hätte ich die Zeilen gerne etwas enger gestellt.
Der Unterschied zu der vorherigen Lösung ist, das man mehrere Filter Group erstellen kann. Also hier z.B. jeweils eine für die jeweilige Abfall Art. Ich zeig euch das mal im YAML Code.
Code:
type: custom:auto-entities
card:
  type: entities
  title: Müllabfuhr
  state_color: true
  card_mod:
    style: |
      ha-card {
        --mdc-icon-size: 16px;
      }
      .card-content div {
        margin-top: 0px !important;
        margin-bottom: 0px  !important;
        height: 36px;
      }
      .card-content {
        padding-top: 0px;
      }
filter:
  include:
    - entity_id: '*glas*'
    - entity_id: '*restabfall*'
    - entity_id: '*papier*'
    - entity_id: '*leichtver*'
    - entity_id: '*bio*'
sort:
  method: attribute
  attribute: daysTo
  reverse: false
  numeric: true
  ignore_case: true
Mit dem "card_mod" setzte ich die einzelnen Zeilen etwas enger zusammen, damit es optisch nicht so aufgebläht aus sieht.

Das setzt natürlich voraus, das in der sensors.yaml, wo mal die waste_collection stehen hat (bei euch eventuell auch wo anders), die Namen entsprechend anpasst.
Hier mein entsprechender Code:
Code:
# Müll Temrine
    
  - platform: waste_collection_schedule
    name: Restabfall grau
    details_format: "upcoming"
    add_days_to: True
    value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen{% endif %}'
    types:
    - Restabfall

  - platform: waste_collection_schedule
    name: Altpapier grün
    details_format: "upcoming"
    add_days_to: True
    value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen{% endif %}'
    types:
      - Altpapier

  - platform: waste_collection_schedule
    name: Leichtverpackung gelb
    details_format: "upcoming"
    add_days_to: True
    value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen{% endif %}'
    types:
      - Leichtverpackungen

  - platform: waste_collection_schedule
    name: Biotonne braun
    details_format: "upcoming"
    add_days_to: True
    value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen{% endif %}'
    types:
      - Biomüll

  - platform: waste_collection_schedule
    name: Glas Kontainer
    details_format: "upcoming"
    add_days_to: True
    value_template: '{% if value.daysTo == 0 %}Heute{% elif value.daysTo == 1 %}Morgen{% else %}in {{value.daysTo}} Tagen{% endif %}'
    types:
      - Glasverpackungen

  - platform: waste_collection_schedule
    name: Restabfall
    details_format: "upcoming"
    add_days_to: True
    value_template: 'am: {{value.date.strftime("%d.%m.%Y")}}'
    types:
      - Restabfall

  - platform: waste_collection_schedule
    name: Altpapier
    details_format: "upcoming"
    add_days_to: True
    value_template: 'am: {{value.date.strftime("%d.%m.%Y")}}'
    types:
      - Altpapier

  - platform: waste_collection_schedule
    name: Leichtverpackung
    details_format: "upcoming"
    add_days_to: True
    value_template: 'am: {{value.date.strftime("%d.%m.%Y")}}'
    types:
      - Leichtverpackungen

  - platform: waste_collection_schedule
    name: Biotonne
    details_format: "upcoming"
    add_days_to: True
    value_template: 'am: {{value.date.strftime("%d.%m.%Y")}}'
    types:
      - Biomüll

  - platform: waste_collection_schedule
    name: Glas
    details_format: "upcoming"
    add_days_to: True
    value_template: 'am: {{value.date.strftime("%d.%m.%Y")}}'
    types:
      - Glasverpackungen

  - platform: waste_collection_schedule
    name: AbfallNaechster
    add_days_to: True
    details_format: "upcoming"
    value_template: ' {{ value.daysTo }} '
 

Zurzeit aktive Besucher

Keine Mitglieder online.

Letzte Anleitungen

Statistik des Forums

Themen
4.608
Beiträge
47.203
Mitglieder
4.258
Neuestes Mitglied
fumdock
Zurück
Oben