FHEM Forum

FHEM => Frontends => FHEMWEB => Thema gestartet von: TomLee am 02 Mai 2024, 16:33:58

Titel: textField-long für alle gesetzten userattr ?
Beitrag von: TomLee am 02 Mai 2024, 16:33:58
Hallihallo,

angenommen ich hab ganz viele userattr in einem Device angegeben und in jedem einzelnen hätte ich gerne textField-long aktiviert.
Mit widgetOverride muss ich jedes userattr einzeln angeben.
Gibt es eine andere Möglichkeit ?

Gruß

Thomas
Titel: Aw: textField-long für alle gesetzten userattr ?
Beitrag von: rudolfkoenig am 02 Mai 2024, 16:39:35
Versuch mal widgetOverride an der FHEMWEB Instanz zu setzen.
Titel: Aw: textField-long für alle gesetzten userattr ?
Beitrag von: TomLee am 02 Mai 2024, 16:50:34
komm ich nicht mit, was soll ich denn da eintragen, wenn nicht jedes userattr einzeln aufführen ? Die userattr-Liste kann auch erweitert werden, diese erweiterten Einträge stell ich mir vor sollen auch gleich "textField-long aktiviert" sein.
Titel: Aw: textField-long für alle gesetzten userattr ?
Beitrag von: rudolfkoenig am 02 Mai 2024, 17:48:57
Sorry, habe die Aufgabe falsch verstanden, ich dachte an mehrere Geraete mit den gleichen userattr.
Ein widgetOverride mit Regexp gibts leider nicht.
Titel: Aw: textField-long für alle gesetzten userattr ?
Beitrag von: TomLee am 02 Mai 2024, 17:58:22
Ok, danke. Ist auch nicht wichtig, es war nur so ein Gedanke.
Titel: Aw: textField-long für alle gesetzten userattr ?
Beitrag von: TomLee am 02 März 2025, 10:43:30
Immer noch nicht wichtig, aber weiterhin im Hinterkopf.

Sehe (https://forum.fhem.de/index.php?topic=140846.msg1335494#msg1335494) gerade das man auch direkt in dem userattr-Attribut die textField-long Angabe vornehmen kann.
attr <devicename> userattr bli:textField-long bla:textField-long blub:textField-long ...
Wäre es ohne größeren Aufwand möglich, einen weiteren optionalen Parameter in userattr vorzusehen, der das textField-long für alle angegebenen userattrs vornimmmt?
Titel: Aw: textField-long für alle gesetzten userattr ?
Beitrag von: rudolfkoenig am 02 März 2025, 15:36:01
Bei userattr kann man Regexps angeben:
define d dummy
attr d userattr x.*:textField-long
attr d x1 green
attr d x2 blue
Reicht das?
Titel: Aw: textField-long für alle gesetzten userattr ?
Beitrag von: TomLee am 02 März 2025, 15:47:07
Nee, die Benennung der userattr sollte weiterhin frei wählbar sein.

Mein Anwendungsfall ist ein Alexa-Routinen-dummy:

(Nicht optimal, aber ich mag auch nicht mehr davon weg, eher verbessern/optimieren.)

defmod du_alexa_routinen dummy
attr du_alexa_routinen userattr egsaugerpause:textField-long newspamentry printshoppinglist alexarestart countgarbage delcountgarbage oilprice solaryield sonosrestart
attr du_alexa_routinen alexaName routinen
attr du_alexa_routinen alexarestart set alexa restart
attr du_alexa_routinen delcountgarbage deletereading cal_Abfallkalender Leerungen_Restabfall/Wertstoffe
attr du_alexa_routinen egsaugerpause set di_test on
attr du_alexa_routinen newspamentry {newspamentry('cm_bla','Fritzbox1','sip_Telefon')}
attr du_alexa_routinen printshoppinglist {system("lpr -P HL-2035 -o media=Custom.95x138mm /opt/fhem/einkaufsliste.txt")}
attr du_alexa_routinen readingList pct
attr du_alexa_routinen room Sprachsteuerung
attr du_alexa_routinen setList pct:slider,1,1,100
attr du_alexa_routinen solaryield {fhem('set Sonos_Wohnzimmer speak 22 der momentane solare Ertrag beträgt '.ReadingsNum('MQTT2_inverter_HM_1500_1','P_AC',-1).'Watt')}
attr du_alexa_routinen sonosrestart "pm2 restart 0"
attr du_alexa_routinen stateFormat pct
attr du_alexa_routinen userReadings cmnd:pct.* {\
    my @usrattr = split(' ',AttrVal($name,'userattr','nA'));;\
    my $i = 1;;\
    my %pct2cmnd = map {$i++ => $_} @usrattr;;\
    my $cmnd = $pct2cmnd{ReadingsNum($name,'pct',0)};;\
    return if !$cmnd;;\
    my $w=AttrVal($name,$cmnd,'nA');;\
    fhem("$w");;\
    return $w;;\
},\
routine:pct.* {\
    my @usrattr = split(' ',AttrVal($name,'userattr','nA'));;\
    my $i = 1;;\
    my %pct2cmnd = map {$i++ => $_} @usrattr;;\
    return $pct2cmnd{ReadingsNum($name,'pct',0)};;\
}
attr du_alexa_routinen webCmd pct

setstate du_alexa_routinen 9
setstate du_alexa_routinen 2025-03-02 15:35:26 cmnd "pm2 restart 0"
setstate du_alexa_routinen 2025-03-02 15:35:26 pct 9
setstate du_alexa_routinen 2025-03-02 15:35:26 routine sonosrestart
Titel: Aw: textField-long für alle gesetzten userattr ?
Beitrag von: rudolfkoenig am 02 März 2025, 16:04:04
ZitatMein Anwendungsfall ist ein Alexa-Routinen-dummy:
In diesem Fall duerfte das Erweitern aller userattr Feldern am umweltfreundlichsten sein :)