Hallo zusammen,
ich habe eine Frage zum Widget Classchanger. Es geht um meinen Bewässerungscomputer. Der hat ein Reading, wo man die nächste Bewässerung sieht.
Das Reading rl4_next hat entweder keinen Wert, wenn keine Bewässerung geplant ist, oder auch den nächsten Wochentag (Sonntag-Samstag) und am Tag der Bewässerung steht die Uhrzeit drin. z.B. 18:30
Ich habe also 4 Zustandsmöglichkeiten (hier relay 4)
rl4_next=""
rl4_next="Freitag"
rl4_next="18:30"
Im Frontend würde ich gerne die Ausgabe der nächsten Ausführung ausblenden, wenn das reading leer ist.
Ich habe folgendes Versucht, scheint aber Probleme zu geben, denn er blendet immer den Text aus:
<div data-type="classchanger"
data-device="myHydrawise"
data-get="rl4_next"
data-get-on="^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$||^(w)$"
data-get-off=""
data-off-class="hide"
data-on-class="inline">
<div class="inline" style="color:#0088CC;">Nächste Ausführung:</div>
<div data-type="label"
data-device="myHydrawise"
data-get="rl4_next"
data-unit=""
data-color="#0088CC"
class="inline">
</div>
</div>
Funktioniert das überhaupt mit RegEx? Kann aber auch an der Expression liegen - darin bin ich nicht ganz so gut.
Für einen Tipp wäre ich auf jeden Fall mal dankbar.
Grüße,
Alex
Regex sollte an der Stelle funktionieren. Aber Du hast in deiner Regex 2 "capturing groups"
Hallo amenomade
ich habe zum einfachen Testen einen next_dummy erstellt.
Der hat aktuell den Wert "18:30"
Ich habe die Klammern nun weggelassen, er zeit trotzdem den Text "Nächste Ausführung: 18:30" nicht an, obwohl der Wert ja gesetzt ist.
Ich bin mir noch nicht schlüssig, ob die Regex richtig ist, bzw. ob man die mit dem oder verknüfpen darf, oder ob ich classchanger falsch verstehe:
<div data-type="classchanger"
data-device="next_dummy"
data-get="state"
data-get-on="^[0-2][0-9]:[0-5][0-9]$||^w$"
data-get-off=""
data-off-class="hide"
data-on-class="inline">
<div class="inline" style="color:#0088CC;">Nächste Ausführung:</div>
<div data-type="label"
data-device="next_dummy"
data-get="state"
data-unit=""
data-color="#0088CC"
class="inline">
</div>
</div>
Vielen Dank schon mal.
VG,
Alex
Mach es erstmal simple:
data-get-on="..:.."
Dann sehen wir mal
Hallo amenomade,
simple geht:
<div data-type="classchanger"
data-device="next_dummy"
data-get="state"
data-get-on="18:30"
data-get-off=""
data-off-class="hide"
data-on-class="inline">
<div class="inline" style="color:#0088CC;">Nächste Ausführung dummy:</div>
<div data-type="label"
data-device="next_dummy"
data-get="state"
data-unit=""
data-color="#0088CC"
class="inline">
</div>
</div>
Grüße,
Alex
Nachtrag: Das mit dem "oder" scheint ein Problem zu sein:
data-get-on="18:30|Samstag"
Da wird dann wieder nichts angezeigt.
Du hast aber mit einem Wert gemacht
data-get-on="18:30"
ich meinte einen Test mit Regex
data-get-on="..:.."
Alles klar -verstanden:
<div data-type="classchanger"
data-device="next_dummy"
data-get="state"
data-get-on="..:.."
data-get-off=""
data-off-class="hide"
data-on-class="inline">
<div class="inline" style="color:#0088CC;">Nächste Ausführung dummy:</div>
<div data-type="label"
data-device="next_dummy"
data-get="state"
data-unit=""
data-color="#0088CC"
class="inline">
</div>
Es wird mit dieser Einstellung nichts angezeigt.
Grüße,
Alex
Ich verstehe nicht warum.
Aber Du willst ja nur verstecken, wenn das Reading leer ist.
Probier mal mit
data-get-on=".+"
oder
data-get-on="(.+)"
Hallo amenomade,
jetzt funktioniert es. Ich muss gestehen, dass ich in dem Bereich längers kein Update mehr gemacht habe bzw. mein Tablet Verzeichnis root zugeordnet habe. Sonst sieht mein Frontend jede Woche anders aus. Heute habe ich nun das Modul classchanger explizit upgedatet. Jetzt funktioniert es in Kombination mit deinem letzten Vorschlag. Ohne Update hat das auch nicht funktioniert. Vielleicht das als Erklärung, warum du es nicht verstanden hast.
Vielen Dank für deine Mühe.
Viele Grüße,
Alex