Moin zusammen,
Ich habe mir eine Regel gebaut, welche die Rollläden in Abhängigkeit des Twilight-Wertes fährt. Zur Steuerung greife ich auf den Inhalt von Dummys zurück, um den WAF zu steigern. Nun ist der WAF aber noch nicht hoch, weil man da stumpfe Zahlenwerte einsetzen muss. Schöner wäre natürlich, wenn da Texte stehen würden und beim Klick auf den Text der Zahlenwert in das Dummy geschrieben wird.
Und ich bin etwas irritiert - ich habe dazu keine Lösung gefunden. Vermutlich fehlt es doch nur wieder an den richtigen (Such)Worten, oder :-[
komfortwillige Grüße
Niels
Erkläre mal bitte genauer!
Wofür sind die dummys und was trägst Du da ein wenn es doch Twilight gesteuert ist!?
hilfbereite Grüße
Dan
Die Werte sollen zur Steuerung des Ansprechverhaltens der Regel sein. Diese soll bei Twilight > Dummy_auf und Twilight < Dummy_zu reagieren. Momentan haben beide Dummys den Wert 4. Dann fahren die Rolläden bei Twilight 3 runter und bei 5 hoch.
Nun könnte ich bei Dummy_auf auch andere Werte eintragen, damit wir uns mal an einen gefühlt guten Zeitpunkt herantasten können bzw. die Regel auch Deaktivieren können. Zum Deaktivieren der Regel schreibe ich einen nicht vorkommenden Wert rein - z.B. 20. Jetzt sollte im Frontend z.B. stehen:
Früh (4) Normal (5) Spät (7) Deaktiv (20)
Oder eben bei Dummy zu:
Früh (4) Normal (3) Spät (2) Deaktiv (0)
Wenn Frau die Werte anklicken kann ist alles gut ;)
Ich werde dann sicher noch feststellen, dass ich sich überlappende Auswahlen bereitstellen muss und das entsprechend abfangen muss, aber nicht alles mit einem Mal ;)
ergänzende Grüße
Niels
Dann mach doch ein Dropdown (status) mit den Texten und ein passendes userReading für state.
z.B. so:
attr <dummy> setList status:frueh,normal,spaet,deaktiv
attr <dummy> userReadings state:status.* {ReadingsVal($name,"status","") eq "frueh"?4:ReadingsVal($name,"status","") eq "normal"?3:ReadingsVal($name,"status","") eq "spaet"?2:0}
Gruß
Dan
Danke,
Ich verstehe - wenn nicht von geradeaus, dann eben von hinten. Die Liste ist da, doch der state wird nicht gesetzt (bzw. immer auf 0).
Daher habe ich mal versucht, ein anderes User Reading zu definieren:attr <dummy> userReadings trigger:status.* {ReadingsVal($name,"status","") eq "frueh"?4:ReadingsVal($name,"status","") eq "normal"?3:ReadingsVal($name,"status","") eq "spaet"?2:0}
Nun geht der State zwar auf 'status XXX", aber der Trigger bleibt auch immer auf 0.
voranschreitende Grüße
Niels
Mach mal noch dazu:
attr <dummy> readingList status
Dann sollte es klappen!
Gruß
Dan
Super, funktioniert! Den syntax muss ich noch mal in Ruhe genießen, aber langsam kommt es ;)
Hier mal die komplette Lösung. Sicher von den Einstellungen etwas oversized, aber zum Testen ganz gut, das wird später reduziert/optimiert:define du_Rollo_TL_auf dummy
attr du_Rollo_TL_auf readingList status
attr du_Rollo_TL_auf setList status:maximales_Licht,wetterbedingt,Indoor,Zivil,Nautisch,Astronomisch,deaktiviert
attr du_Rollo_TL_auf userReadings state:status.* {ReadingsVal("du_Rollo_TL_auf","status","") eq "maximales_Licht"?6:ReadingsVal("du_Rollo_TL_auf","status","") eq "wetterbedingt"?5:ReadingsVal("du_Rollo_TL_auf","status","") eq "Indoor"?4:ReadingsVal("du_Rollo_TL_auf","status","") eq "Zivil"?3:ReadingsVal("du_Rollo_TL_auf","status","") eq "Nautisch"?2:ReadingsVal("du_Rollo_TL_auf","status","") eq "Astronomisch"?1:ReadingsVal("du_Rollo_TL_auf","status","") eq "deaktiviert"?20:20}
attr du_Rollo_TL_auf webCmd status
define du_Rollo_TL_zu dummy
attr du_Rollo_TL_zu readingList status
attr du_Rollo_TL_zu setList status:wetterbedingt,Indoor,Zivil,Nautisch,Astronomisch,absolute_Nacht,deaktiviert
attr du_Rollo_TL_zu userReadings state:status.* {ReadingsVal("du_Rollo_TL_zu","status","") eq "wetterbedingt"?5:ReadingsVal("du_Rollo_TL_zu","status","") eq "Indoor"?4:ReadingsVal("du_Rollo_TL_zu","status","") eq "Zivil"?3:ReadingsVal("du_Rollo_TL_zu","status","") eq "Nautisch"?2:ReadingsVal("du_Rollo_TL_zu","status","") eq "Astronomisch"?1:ReadingsVal("du_Rollo_TL_zu","status","") eq "absolute_Nacht"?0:20}
attr du_Rollo_TL_zu webCmd status
define di_Rollo_TL DOIF
([TL_Home:light] == [?du_Rollo_TL_auf] and [?HM_Tuer_WZ_Terasse:state] ne "open" and [?DuoFern_Rollladen_Terasse_Fenster:position] > 80 and [?06:00-13:00])
(set DuoFern_Rollladen_Terasse_.* position 0)
DOELSEIF
([TL_Home:light] == [?du_Rollo_TL_zu] and [?HM_Tuer_WZ_Terasse:state] ne "open" and [?DuoFern_Rollladen_Terasse_Fenster:position] < 10 and [?15:00-23:00])
(set DuoFern_Rollladen_Terasse_.* position 85)
attr di_Rollo_TL do always
einstellbare Grüße
Niels
So, nun schläft man drüber und möchte das Gelernte weiter verfeinern und schon hat man wieder ein Wissensdefizit :-[
Ich habe meine UserReadings jetzt ergänzt, um beim Einstellen anzuzeigen, wann denn momentan das Event auftritt:attr Rollo_TL_auf userReadings trigger:status.* {ReadingsVal("du_Rollo_TL_auf","status","") eq "Indoor"?{ReadingsVal("TL_Home","sr_indoor","???")}:"---"}
Funktioniert, doch leider kommt da ein Hex-Wert (HASH(0x3191110)) und ich habe keine Idee, wie ich das umwandeln kann.
Und wird das Reading geändert, wenn sich etwas im TL_Home ändert, oder nur, wenn man eine Änderung am du_Rollo_TL_auf macht?
unformatierte Grüße
Niels
Zitat von: Muschelpuster am 10 November 2016, 11:29:57
attr Rollo_TL_auf userReadings trigger:status.* {ReadingsVal("du_Rollo_TL_auf","status","") eq "Indoor"?{ReadingsVal("TL_Home","sr_indoor","???")}:"---"}
So vielleicht?
attr Rollo_TL_auf userReadings trigger:status.* {ReadingsVal("du_Rollo_TL_auf","status","") eq "Indoor"?ReadingsVal("TL_Home","sr_indoor","???"):"---"}
Gruß
Dan
Danke Dan,
Klar - ich bin ja schon im Perl-Code, den brauche/kann ich ja nicht nochmals aufmachen.
Immer diese Klammern ;) Ich musste sogar die Antwort 2x lesen, bevor ich den Unterschied geschnallt hatte :-[
Klammer-legasthenische Grüße
Niels
Wenigstens hast Du den Unterschied alleine gefunden! 8)
Ich hoffe ohne ein diff. ;D ;D ;D
Gruß
Dan
Ja, nur durch die Kraft meiner altersschwachen Augen und meines begrenzten Geistes 8)
kraftvolle Grüße
Niels