Auswahl, welcher Sensor gerade eine bestimmte Zahl hat

Hallo zusammen,

Ich habe 4 Sensoren von Waste Collection Schedule, welche mir die Tage bis zur nächsten Leerung anzeigen.
Nun möchte ich wissen, welche Tonne morgen oder heute an der Reihe ist und diese Information in einem input_number-Helfer zusammenfassen. Konkret:

  • wenn morgen oder heute keine Tonne an der Reihe ist, soll der Helfer den Wert 0 haben.
  • wenn morgen oder heute die graue Tonne an der Reihe ist, soll der Helfer den Wert 1 haben
  • wenn morgen oder heute die gelbe Tonne an der Reihe ist, soll der Helfer den Wert 2 haben
  • wenn morgen oder heute die grüne Tonne an der Reihe ist, soll der Helfer den Wert 3 haben
  • wenn morgen oder heute die braune Tonne an der Reihe ist, soll der Helfer den Wert 4 haben

Da bei uns zwar niemals mehr als eine Tonne pro Tag abgeholt wird, es aber vorkommt, daß an zwei aufeinanderfolgenden Tagen zwei Tonnen abgeholt werden, soll die Tonne, welche heute abgeholt wird, priorisiert werden.

Leider habe ich gerade keine Ahnung, wie ich das realisieren kann.
Normalerweise würde ich einfach vier If-statements benutzen, um die Farbe für morgen festzulegen und danach das gleiche noch einmal für heute, um letzterem den Vorzug zu geben:

Helfer_Tonne = 0;
if {Tonne_grau == 1) {
  Helfer_Tonne = 1;
}
if {Tonne_gelb == 1) {
  Helfer_Tonne = 2;
}
if {Tonne_gruen == 1) {
  Helfer_Tonne = 3;
}
if {Tonne_braun == 1) {
  Helfer_Tonne = 4;
}

if {Tonne_grau == 0) {
  Helfer_Tonne = 1;
}
if {Tonne_gelb == 0) {
  Helfer_Tonne = 2;
}
if {Tonne_gruen == 0) {
  Helfer_Tonne = 3;
}
if {Tonne_braun == 0) {
  Helfer_Tonne = 4;
}

Aber wie man das in HA abbilden kann, habe ich noch nicht herausbekommen.
Ausserdem habe ich gerade keine Idee, dieses Programm auszulösen.

Klar, kannst Du alles zurechtfriemeln, Dich in Jinja üben und es wird funktionieren.
Aber das Thema Müll ist bereits im Forum wirklich ausreichend und gut abgearbeitet wurden.
Es gibt gute über HACS installierbare Karten wie GitHub - idaho/hassio-trash-card: TrashCard - indicates what type of trash will be picked up next based on your calendar entries 🗑️ · GitHub

Sorry, aber es geht mir hier zwar (aktuell) um das Thema Müll, aber das Allgemeine Problem, mehrere Sensorwerte in einem bestimmten Muster auf einem Helfer abzubilden löst die Karte nicht.

In diesem Fall benötige ich das Ergebnis nicht, um auf einem Dashboard etwas anzuzeigen, da ich Dashboards nur als Hilfsmittel benutze, HA und meine Geräte zu überprüfen, sondern um mehrere andere Aktionen auszuführen.
In diesem Fall geht es mir darum, eine LED in einer bestimmten Farbe leuchten zu lassen und parallel dazu auf einem openHASP-plate einen Button in einer Farbe darzustellen.

Der Wert des Helfers bildet dabei den Zustand einer finite state machine ab.

Ich glaub selbst das hatte ich hier einmal von jemanden gesehen - kleine Mülltonnen im Schrank mit entsprechender LED Farbe. Ganz nett.

Ich wür

Ich würde einen Template Sensor anlegen: Einstellungen → Geräte & Dienste → Helfer → Helfer erstellen → Sensor

{% set grau = states('sensor.grau') | int(99) %}
{% set gelb = states('sensor.gelb') | int(99) %}
{% set gruen = states('sensor.gruen') | int(99) %}
{% set braun = states('sensor.braun') | int(99) %}

{% if grau == 0 %} 1
{% elif gelb == 0 %} 2
{% elif gruen == 0 %} 3
{% elif braun == 0 %} 4
{% elif grau == 1 %} 1
{% elif gelb == 1 %} 2
{% elif gruen == 1 %} 3
{% elif braun == 1 %} 4
{% else %} 0
{% endif %}

Viel Spaß

Danke.

So funktioniert es.
Mit dem Template-Editor habe ich auch schon herumgespielt, aber kein funktionierendes Template herausbekommen. Auf die Idee, nicht den Sensor selbst abzufragen, sondern erst “Variablen” zu definieren bin ich nicht gekommen…
Und darauf, ein so verschachteltes if-Statement zu verwenden bin ich auch nicht gekommen.