Zitat von: jemu75 am 08 März 2024, 17:50:32Wie angekündigt, anbei meine Templates, die ich bisher im Einsatz habe:
...
shellyrgbw2
Shelly RGB Licht - Devicekeys: dev
..
Zusätzlich habe ich eine Farbvariable für "on" definiert und setze diese in vielen der Templates ein.
Ihr könnt die Templates auch anpassen und statt "on" z.B. "success" verwenden. Dann müsst ihr keine separate Farbvariable in den Einstellungen von FHEMApp definieren.
Nutzt die Templates gern als Anregung für eure eigenen Ideen und meldet euch gern bei Fragen.
Grüße
Jens
Pumpe:Pool_Pumpe_.* {return 100 if ReadingsNum($name,'Pool_Pumpe_100',0); return 90 if ReadingsNum($name,'Pool_Pumpe_90',0); return 70 if ReadingsNum($name,'Pool_Pumpe_70',0); return 40 if ReadingsNum($name,'Pool_Pumpe_40',0); return 0;}
Pumpe {if (ReadingsVal("$name","Pool_Pumpe_100","") eq "1") {return 100} elsif (ReadingsNum("$name","Pool_Pumpe_90","") eq "1") {return 90} elsif (ReadingsNum("$name","Pool_Pumpe_70","") eq "1") {return 70} elsif (ReadingsNum("$name","Pool_Pumpe_40","") eq "1") {return 40} elsif ([ReadingsNum("$name","Pool_Pumpe_100","")] and [ReadingsNum("$name","Pool_Pumpe_90","")] and [ReadingsNum("$name","Pool_Pumpe_70","")] and [ReadingsNum("$name","Pool_Pumpe_40","")] eq "0") {return "Aus"}}
ZitatPS das mit Pumpe_40 1 und Pumpe_70 1 sind noch verdrahtungsfehler die ich erst am abend ändern kann
Zitat von: Aurel_B am 08 Mai 2024, 09:36:07Sehe ich das anhand von deinem Listing richtig, es kann mehr als 1 Pool_Pumpe_XX Reading auf 1 stehen? Also bei dem Beispiel sind ja sowohl Pool_Pumpe_40 als auch Pool_Pumpe_70 auf 1. Heisst das, die Pumpe läuft mit 70% (und alle tieferen Prozentwerte stehen auch auf 1, also Reading Pool_Pumpe_40 ist zu verstehen mit "Pumpe läuft mindestens auf 40%)?
Falls die Kombination wichtig wäre für deine Auswertung wäre es eventuell sinnvoll, alle Readings miteinander zu verketten und als binäre Zahl zu interpretieren?
Falls nicht bin ich eher ein Fan von "einfachem Code, welchen ich auch in 2 Jahren noch verstehen werde". Das wäre für mich hier ein if-elsif-else, also Pseudocode:if (Pool_Pumpe_100 == 1)
set Pumpe=100;
elsif (Pool_Pumpe_70 == 1)
set Pumpe=70
etc.etc.