Hauptmenü

[erledigt] uitable und der floorplan

Begonnen von the ratman, 16 September 2024, 10:21:04

Vorheriges Thema - Nächstes Thema

the ratman

grüß euch - im zuge meiner suche nach schönen visualisierungen, bin ich nun (wieder mal) am doif hängen geblieben.

folgendes doif würde ich gerne in einen floorplan einbauen:
defmod doif_gfx_umwelt DOIF {}
attr doif_gfx_umwelt alias umwelt
attr doif_gfx_umwelt fp_fp_wetter 10,18,2,temperaturen
attr doif_gfx_umwelt room frontend _test
attr doif_gfx_umwelt uiTable {package ui_Table;;}\
card([wohnzimmer_temperatur:temperature:col],"wohnzimmer","temp_outside",-10,60,undef,undef,"°C",\&temp_hue,"1","130,,,,",undef,undef,[wohnzimmer_temperatur:humidity:col],0,100,undef,undef,"%",\&hum_hue,"0")\
\
card([nordseite_temperatursensor:temperature:col],"aussen nord","temp_outside",-10,60,undef,undef,"°C",\&temp_hue,"1","130,,,,",undef,undef,[nordseite_temperatursensor:humidity:col],0,100,undef,undef,"%",\&hum_hue,"0")|\
card([terrasse_doppeltemperatur_hydro:temperature:col],"terrasse","temp_outside",-10,60,undef,undef,"°C",\&temp_hue,"1","130,,,,",undef,undef,[wetterstation:humidity:col],0,100,undef,undef,"%",\&hum_hue,"0")|\
card([wetterstation:temperature:col],"aussen süd","temp_outside",-10,60,undef,undef,"°C",\&temp_hue,"1","130,,,,",undef,undef,[wetterstation:humidity:col],0,100,undef,undef,"%",\&hum_hue,"0")
also eigentlich nur ein angepasster uitable aus der umfangreichen hilfe.

das dumme: im floorplan kommt dann nur ein "initialized", egal, was ich im floorplan an darstellungsarten auswähle.
ich wette ja, ich übersehe wieder mal nur eine kleinigkeit, oder geht die darstellung nicht im floorplan?

hilfe wäre willkommen *g*
→do↑p!dnʇs↓shit←

Damian

Wenn du deine Definition statt im Attribut uiTable im Attribut uiState definierst, wird deine Visualisierung im Status des DOIFs dargestellt und damit auch im Floorplan.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

the ratman

wusst' ich's doch ... nur 'ne kleinigkeit.

danke dir fürs richten!
→do↑p!dnʇs↓shit←

the ratman

ich weiß, gleich werden hier augen verdreht *g*

wahrscheinlich wieder mal eine dumme frage:
ich baue nach deiner anleitung auf https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg die abfallanzeige nach.
das funzt auch soweit. allerdings stell' ich mir die frage, wie ich dem konstrukt nun einen hintergrund verpassen kann, sodass das ergebnis grafisch zu z.b der card-funktion passt.
alternativ: wie kann ich meine mülleimer in eine card kriegen?

{
  package ui_Table;
  $TC{0..5}="align='center'";
  $SHOWNOSTATE=1;
 
  sub ic
  {
    my ($icon,$days)=@_;
    icon_label($icon,$days,"white",$days eq "X" ? "#cccccc" : $days > 1 ? "#606060" : "red",30,-40)
  }
}
ic ("Abfalltonne\@gray",[$SELF:restmuell])|
ic ("Abfalltonne-Recycling-Logo\@green",[$SELF:altpapier])|
ic ("bag\@yellow",[$SELF:gelber_sack])|
ic ("Gartenabfall\@green",[$SELF:gruenschnitt])|
ic ("sperrmuell\@brown",[$SELF:sperrmuell])

vielen dank für die eventuelle hilfe!
→do↑p!dnʇs↓shit←

Damian

card ist speziell für Diagramme programmiert und kann nicht für diesen Zweck verwendet werden.

Du kannst dir einen Hintergrund als Grafik selber hinterlegen, siehe:

https://wiki.fhem.de/wiki/DOIF/uiTable#Frontendelemente_%C3%BCber_einem_Hintergrund_(Grundriss)_platzieren.

Beim Mülleimer-Beispiel würde dafür die Definition von $TABLE wie im obigen Beispiel schon reichen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

the ratman

#5
danke dir - so weit war ich noch ned fortgeschritten *g*
einfach eine dumme hintergrundfarbe für den table geht nicht? wäre eventuell ne nette sache generell.

ha! eine höher auf deiner seite
$TD{0}{0..5}="style='background-color:#FF0000'"
funzt
→do↑p!dnʇs↓shit←

Damian

Zitat von: the ratman am 18 September 2024, 19:32:15danke dir - so weit war ich noch ned fortgeschritten *g*
einfach eine dumme hintergrundfarbe für den table geht nicht? wäre eventuell ne nette sache generell.

ha! eine höher auf deiner seite
$TD{0}{0..5}="style='background-color:#FF0000'"
funzt

Es reicht alleine schon z. B.: 

$TABLE="text-align:center; width:300px; height:100px; background-color:#202020";
$TD Definition kannst dann weglassen, weil $TABLE für die ganze Tabelle gilt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

the ratman

jau, is klar. langsam kapier' ich deine gedanken hinter der sache.
muss mich nur wieder mal böse rein fuchsen, nachdem ich vorher nicht weiß, welche lösungen es für meine problemchen überhaupt gibt.

der uitable ist echt extrem umfangreich. lob an dich und fluch für mich *lach*
→do↑p!dnʇs↓shit←

the ratman

#8
so, ich hoffe, ich nerv' jetzt zum letzen mal ... hat auch weniger mit deinem doif zu tun, aber vielleicht weißt du ja 'ne lösung?
derzeit bastel' ich gerade testweise an licht-schalten mit grundriss und bin da schon recht zufrieden.

mein problem ist diesmal: ich hab' einige alte, "nicht-ip" homematic taster. die brauchen nach dem schalten schon einige zeit, bis der neue zustand klar ist.
in deinem doif wird das zum problem, wenn man zu schnell wieder umschalten will. der zustand ändert sich nicht und ab dann kriegt das doif scheints gar nix mehr bei dem einen switch mit, bis ich die seite neu aufrufe. danach sucht er sich wohl den zustand des gerätes neu und es geht wieder alles.

zur sicherheit meine ersten versuche:
{ $TABLE = "text-align:center;width:500px; height:500px; background-image:url($FW_ME/www/handy/gfx/grundriss1920b.png); background-size: 100% 100%;";
  package ui_Table;
}

"<div style='position:absolute; left:60px; top:360px;'>sofa",switch([HM_1A9622_Dim:state],"light_light_dim_00","light_light_dim_100\@gold","off","on")."</div>
<div style='position:absolute; left:160px; top:360px;'>büro",switch([wohnzimmer_buero_licht_neu_Dim:state],"light_light_dim_00","light_light_dim_100\@gold","off","on")."</div>
"

NACHTRAG:
nun ein echtes problem ... der grundriss aus
{ $TABLE = "text-align:center;width:500px; height:500px; background-image:url($FW_ME/www/handy/gfx/grundriss1920b.png); background-size: 100% 100%;";
  package ui_Table;
}
verschwindet nach jedem restart von fhem (die icons bleiben). rufe ich das attr uistate auf und speichere einfach nochmal, ist der grundriss wieder da.
→do↑p!dnʇs↓shit←

Damian

1) Schau mal ob du die aktuelle FHEM-Version hast. IconSwitch-widget https://forum.fhem.de/index.php?topic=137598.msg1307955#msg1307955 auf dem die Funktion switch basiert hatte einen Bug und wurde im März 2024 gefixt.

2) Möglicherweise ist $FW_ME nach dem Neustart nicht belegt. Du könntest versuchen den Pfad zu deiner Grafik ohne die Variable komplett auszuschreiben.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

the ratman

1) fhem ist bei mir immer tagesaktuell. wie gesagt: auch in anderen fällen ist die anzeige des zustands bei den dimmern von hm ein wenig zäh. allerdings kann ich da zumindest einen 3. zustand anzeigen. somit drückt derweil hier keiner wild herum. da hätte ich bei deiner lösung derzeit nix gefunden - oder bin ich wieder mal nur blind?
ich hatte das im web immer mit
devStateIcon on:vent_ventilation@green off:vent_ventilation@red .*:edit_settings@orange"
gelöst".
wäre also die frage: wie krieg' ich .*:edit_settings@orange im doif untergebracht?

2) mit voller adresse scheint's zu funktionieren. zumindest 2 restarts hat der hintergrund mal weggesteckt.
wie immer auf den punkt *g*
danke dir!
→do↑p!dnʇs↓shit←

the ratman

#11
noch was gefunden, dass ich nicht lösen kann ...
ich möchte ein paar infos aus einem httpmod eintragen (egal, welches der 4 readings)
mache ich das [adv5mpro2:modell_simpel], wird zuerst das reading korrekt angezeigt, aber nach einem erneuten aufruf des httpmod kommt nur noch:
#FHEMWEB notification:
doifUpdateCell('doif_gfx_fabrik','doifId','doif_gfx_fabrik_uiState_c_0_1_0_1','links PLA 2h3m ','display:inline-table;')
SyntaxError: '' string literal contains an unescaped line break
eine readingsgroup frißt die readings anstandslos, so auch z.b. der rainmeter unter windows.

define adv5mpro2 HTTPMOD http://192.168.178.9:8899/command 35
attr adv5mpro2 alias die fabrik - infos
attr adv5mpro2 disable 0
attr adv5mpro2 enableControlSet 1
attr adv5mpro2 group 3d druck
attr adv5mpro2 httpVersion 1.1
attr adv5mpro2 icon 3d_printer
attr adv5mpro2 reading01Name modell
attr adv5mpro2 reading01Regex CurrentFile: (.*)
attr adv5mpro2 reading02Name mode
attr adv5mpro2 reading02Regex MoveMode: (.*)
attr adv5mpro2 reading04Name status
attr adv5mpro2 reading04Regex MachineStatus: (.*)
attr adv5mpro2 requestData ~M119
attr adv5mpro2 room computer
attr adv5mpro2 showBody 1
attr adv5mpro2 stateFormat <table>\
<tr>\
<td align="left">name: </td><td align="left">modell</td>\
</tr><tr>\
<td align="left">modus: </td><td align="left">mode</td></td>\
</tr><tr>\
<td align="left">zustand: </td><td align="left">status</td></td>\
</tr>\
</table>
attr adv5mpro2 timeout 35
attr adv5mpro2 userReadings modell_simpel { my $js = ReadingsVal($NAME,"modell",0);; $js=~s/.gcode//;; $js=~s/_/ /g;;$js;;}
#   BUSY       1
#   DEF        http://192.168.178.9:8899/command 35
#   FUUID      660192c2-f33f-f543-d3b0-a6beae783385d2e5
#   Interval   35
#   MainURL    http://192.168.178.9:8899/command
#   ModuleVersion 4.2.0 - 11.8.2023
#   NAME       adv5mpro2
#   NOTIFYDEV  global
#   NR         330
#   NTFY_ORDER 50-adv5mpro2
#   STATE      <table>
#<tr>
#<td align="left">name: </td><td align="left">links_PLA_2h3m.gcode
</td>
#</tr><tr>
#<td align="left">modus: </td><td align="left">MOVING
</td></td>
#</tr><tr>
#<td align="left">zustand: </td><td align="left">BUILDING_FROM_SD
</td></td>
#</tr>
#</table>
#   TYPE       HTTPMOD
#   eventCount 137
#   httpbody   CMD M119 Received.
#Endstop: X-max: 110 Y-max: 110 Z-min: 0
#MachineStatus: BUILDING_FROM_SD
#MoveMode: MOVING
#Status: S:1 L:0 J:0 F:0
#LED: 1
#CurrentFile: links_PLA_2h3m.gcode
#ok
#
#   value     
#   CompiledRegexes:
#   HttpUtils:
#     NAME      
#     addr       http://192.168.178.9:8899
#     auth       0
#     compress   1
#     conn      
#     data       ~M119
#     displayurl http://192.168.178.9:8899/command
#     header    
#     host       192.168.178.9
#     httpversion 1.1
#     hu_blocking 0
#     hu_filecount 1
#     hu_port    8899
#     hu_portSfx :8899
#     ignoreredirects 1
#     loglevel   4
#     path       /command
#     protocol   http
#     redirects  0
#     timeout    35
#     url        http://192.168.178.9:8899/command
#     sslargs:
#   QUEUE:
#   READINGS:
#     2024-09-21 14:53:10   mode            MOVING
#     2024-09-21 14:53:10   modell          links_PLA_2h3m.gcode
#     2024-09-21 14:53:10   modell_simpel   links PLA 2h3m
#     2024-09-21 14:53:10   status          BUILDING_FROM_SD
#   REQUEST:
#     context    reading
#     data       ~M119
#     header    
#     ignoreredirects 0
#     num        unknown
#     retryCount 0
#     type       update
#     url        http://192.168.178.9:8899/command
#   defptr:
#     readingBase:
#       mode       reading
#       modell     reading
#       status     reading
#     readingNum:
#       mode       02
#       modell     01
#       status     04
#     readingOutdated:
#     requestReadings:
#       update:
#         mode       reading 02
#         modell     reading 01
#         status     reading 04
#
setstate adv5mpro2 <table>\
<tr>\
<td align="left">name: </td><td align="left">links_PLA_2h3m.gcode
</td>\
</tr><tr>\
<td align="left">modus: </td><td align="left">MOVING
</td></td>\
</tr><tr>\
<td align="left">zustand: </td><td align="left">BUILDING_FROM_SD
</td></td>\
</tr>\
</table>
setstate adv5mpro2 2024-09-21 14:53:10 mode MOVING
setstate adv5mpro2 2024-09-21 14:53:10 modell links_PLA_2h3m.gcode
setstate adv5mpro2 2024-09-21 14:53:10 modell_simpel links PLA 2h3m
setstate adv5mpro2 2024-09-21 14:53:10 status BUILDING_FROM_SD

→do↑p!dnʇs↓shit←

Damian

Ich vermute, dass irgendwelche Zeichen das Problem auslösen. Hier offenbar Zeilenumbruch.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

the ratman

#13
jo, nur seh ich keinen - kann ich die - vielleicht testweise gleich in
attr adv5mpro2 userReadings modell_simpel { my $js = ReadingsVal($NAME,"modell",0);; $js=~s/.gcode//;; $js=~s/_/ /g;;$js;;}
für das eine reading auf verdacht herausfiltern? zeilenumbrüche können dann ja eigentlich eh nur am anfang oder ende des readings sein, denk' ich mal.

viel schlimmer - weils nicht nur mich selber im haushalt betrifft - ist allerdings aus beirag 10 die 1).
wie verhindere ich, dass vor dem neuen zustand jemand wie irre auf den button klopft und dann gar nix mehr passiert?
also z.b. - wie oben angedacht - ein 3. icon erscheint, wenn es keinen definierten zustand gibt?

---

ich denke aber mal, ich lag flasch, dass ichuitable für ein ganzes interface nenutzen könnte.
da mir aber z.b. deine card's gefallen folgende alternative frage:
kann ich bei den card_s hintergrundfarben anpassen?
→do↑p!dnʇs↓shit←

Damian

#14
Auf jeden Fall weiß ich, dass die Schnittstelle keine einfachen Hochkommas ' verträgt, vielleicht ist das der Auslöser für die Fehlermeldung.

uiTable unterstützt über die Funktion widget zumindest alle FHEM-widgets: https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Vordefinierte_uiTable-Funktionen

ob das für dich reicht, musst du für dich beurteilen, mehr geht in der Standard-FHEM-UI auch nicht.

Die Funktion switch ist nur ein Aufruf von IconSwitch, dort kannst du schauen, was alles geht. Hier sind alle FHEM-Widgets aufgeführt: https://wiki.fhem.de/wiki/FHEMWEB/Widgets

Der dunkle Hintergrund von card ist für die farbigen Verläufe optimiert. Experimente mit anderen vor allem helleren Hintergründen waren nicht zufriedenstellend, daher ist die Änderung des Hintergrundes für Benutzer nicht vorgesehen.

Edit: Die Doku zu iconSwitch habe ich in der Commandref unter FHEMWEB gefunden:

ZitaticonSwitch,[class<classname>@]<reference value>,[<icon>][@<color>][,<reference value>,[<icon>][@<color>]]... - schaltet zyklisch nach jeder Betätigung in den angezeigten Zustand, dabei wird der aktuelle Wert auf den Vergleichswert gesetzt. Ein Zustand wird durch ein Parameterpaar beschrieben. Es können beliebig viele Paare angegeben werden. Ein Paar besteht aus einem Vergleichswert <reference value> und einem optionalen Anzeigewert mit optionaler mit Farbangabe [,<reference value>,[<icon>][@<color>]].
<reference value> kann eine Zahl oder eine Zeichenkette sein.
Wenn <icon> keinem Iconnamen entspricht, wird der Text angezeigt, sonst das Icon. Wird <icon> nicht angegeben, wird der Vergleichwert angezeigt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

the ratman

danke dir.

mal schauen, was es wird. wollte mal was aus 1 guss und von jemanden, der seine sachen länger als 2 tage betreut, haben - aber wollen ist halt nicht haben *g*
aber mit deinen cards hab' ich zumindest eine recht schöne und einfach zu implementierende darstellung für temperaturen usw. - ist ja auch schon mehr als bisher.
→do↑p!dnʇs↓shit←

Damian

Zitat von: the ratman am 22 September 2024, 10:56:22danke dir.

mal schauen, was es wird. wollte mal was aus 1 guss und von jemanden, der seine sachen länger als 2 tage betreut, haben - aber wollen ist halt nicht haben *g*
aber mit deinen cards hab' ich zumindest eine recht schöne und einfach zu implementierende darstellung für temperaturen usw. - ist ja auch schon mehr als bisher.

ja, ich würde mir auch etwas mehr Vielfalt bei den FHEM-Widgets wünschen. Ich wollte selbst welche programmieren, bin aber mangels Zeit nicht dazugekommen.

Immerhin habe ich meine Bedürfnisse alle über die Standard-FHEM-Widgets über uiTable abgedeckt.

Wenn man es schöner haben will, dann muss man auf andere UIs wie z. B. TabletUI ausweichen.

Im Anhang meine UIs für Heizung, Beschattung, Licht alle mit uiTable definiert.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

the ratman

ich hab ja auch schon angefangen, mit deiner uitable zu experimentieren (licht wäre fast fertig, div. infos wie 3d-drucker, tankstellen, wetter und sensoren auch). das ist ja nun mein problem *g* weils mir sehr gut gefällt, aber für das "große ganze" noch etwas zu unflexibel ist.

ich war eigentlich sogar recht verwundert, dass man mit uitable tatsächlich recht weit kommt, nachdem ich nicht denke, dass du den als vollständige oberfläche geplant hast ...
wobei - wenn ich mir's doif so anschaue und dann hochrechne, wie eine ganze oberfläche von dir aussehen würde ... die könnte dann sicher mal so richtig was.

ich hab jetzt nur mal alles andere durch. bleiben tut mir eigentlich eh nur der floorplan mit readingsgroups und ab jetzt zusätzlich uitable, wenn ich nicht für 3 verschiedene darstellungen immer alles vollständig neu machen will.

der rest an oberflächen ... ich weiß ned ... fehlende dokus, halbgare lösungen, teilweise nicht mal ansatzweise fertig und schon nicht mehr "betreut". zu gefährlich für einen klicki-bunti wie mich. da quäle ich mich lieber durch deinen klammern- und komma-wald *lach* immerhin darf man dich auch mal ein bissi mit fragen löchern.
→do↑p!dnʇs↓shit←

Damian

#18
Das ist richtig, uiTable ist eigentlich nur ein Attribut im DOIF-Device, um etwas zu visualisieren. Mit der Unterstützung von FHEM-Widgets sind aber auch Benutzereingaben möglich und mit DOIF-Perl mit Templates sind skalierbare Tabellen möglich wo Steuerung und Visualisierung in einem Device steckt. Ich hatte nicht den Anspruch gehabt die FHEM-UI zu ersetzen, sondern lediglich zu ergänzen.

Ich persönlich benutze keine weiteren UIs, um zum FHEM-Standard keinen zusätzlichen Pflegeaufwand zu haben. Wenn schon, dann würde ich eher zu einer anderen Hausautomatisierung wechseln, aber dafür ist mir der Aufwand des Umstiegs zu hoch (dafür stecke ich in FHEM schon zu tief drin :) ). Home Assistent habe ich übrigens nebenbei laufen, einfach um mitreden zu können :) .

Klickibunti habe ich mit den eigenen SVG-Funktionen von uiTable auch hinbekommen ;)

Edit: Vielleicht baue ich mal einen Assistenten, der aus einfachen Benutzer-Vorgaben uiTables baut, das wird vermutlich aber ein Projekt, wenn ich mal in Rente bin, wenn es bis dahin noch FHEM gibt :)   
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

the ratman

#19
das man keine andere hausautomatisation nutzen kann, ist ja zum teil deine schuld *lach*

zeig mir was, das so flexibel wie fhem ist und dann auch noch sowas wie dein doif bietet. jedes mal wenn ich mit leuten mit anderen automatisationen rede, schauen die nur blöd in die gegend, wenn ich ihnen nur meine doif's zeige. und die sind lächerlich primitiv gegen die möglichkeiten, die du da eingbaut hättest.
ist immer dasselbe, was du hörst: "ach, fhem. viel zu altbacken und umständlich. perl ist ja sowas von steinzeit! fhem ist ein grafisches desaster." aber bei den möglichkeiten die fhem bietet werden's dann alle ganz still.

ui's: jeder wie ers mag. ich bin gern grafisch unterwegs - da muss dann alles zusammen passen, darf nicht "im auge weh tun".
dann kommt hinzu, dass ich es gerne dunkel, meine holde aber hell hat. das wird dann auch meistens schwierig, und man darf gleich 2 versionen basteln, damit alles gut ausschaut. dann noch 2 mal dasselbe für tablets/pc und weil ich eh zu viel zeit hab' bastel' ich dann auch noch übersichten für meine windoof-oberfläche mit rainmeter. (siehe anhang) das ist dann auch noch lua-script, dass ich ähnlich gut wie perl kann ... gar nicht *lach*
weil ich grad drüber stolper - mein fast aktueller floorplan ... nur ein paar bilder: https://www.kodinerds.net/thread/68259-zeigt-her-eure-visualisierung/?postID=573648#post573648

mit klicki-bunti meine ich eigentlich alles - von der erstellung einer oberfläche, bis hin zu doif und readinggroups, ...
ich träume da immer von einer grafischen oberfläche, mit der man sich z.b. ein doif zusammenklicken kann. da gabs ja mal einen grafischen editor, der mit "puzzleteilen" gearbeitet hat. hatten wir nicht schon vor jahren mal eine ähnliche diskussion? *g*
und ja, mir ist auch klar, dass sich keiner den umbau von fhem in richtung "mehr userfreundlichkeit" antun wird. würde ich auch nicht machen, hätte ich hierfür was probrammiert.
→do↑p!dnʇs↓shit←

the ratman

#20
ich fang'an deinen uitable zu mögen - man darf sich halt nur nicht d'rauf beschränken.
hier meine "lösung" für die fehlermeldungen: einfach den httpmod + z-index mit in den floorplan nehmen, schon schaut's aus wie gewollt.
somit fehlt mir nur mehr eine idee, wie ich den iframe mit dem cam-stream los werde, wenn der drucker aus ist - aber das ist nicht deine baustelle *g*

ich dank dir auf jeden fall für deine idee mit dem uitable. der wertet den floorplan sichtlich auf!
→do↑p!dnʇs↓shit←

the ratman

darf ich nochmal nerven ... ich finde bei dir nix zu dimmbaren lampen, die wie im web in einem icon pct anzeigen, aber trotzdem on/off schalten.
verwende ich einen normalen switch, so geht das natürlich nur mit dem state on/off gut, bei allen anderen werten verschwindet einfach das icon im uitable.

im endeffekt also sowas wie dein dimmer([Strauch3:pct],"\@yellow",2)
allerdings nur mit einem icon.
→do↑p!dnʇs↓shit←

Damian

Zitat von: the ratman am 02 Oktober 2024, 14:13:24darf ich nochmal nerven ... ich finde bei dir nix zu dimmbaren lampen, die wie im web in einem icon pct anzeigen, aber trotzdem on/off schalten.
verwende ich einen normalen switch, so geht das natürlich nur mit dem state on/off gut, bei allen anderen werten verschwindet einfach das icon im uitable.

im endeffekt also sowas wie dein dimmer([Strauch3:pct],"\@yellow",2)
allerdings nur mit einem icon.

Du könntest das slider-widget nutzen. Es gibt ja die Funktion widget, über die man alle FHEM-widgets nutzen kann oder selber eine Funktion definieren, die ein FHEM-widget nutzt. Hier habe ich z. B. die Funktion slider definiert: https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Eigene_uiTable-Funktionen_programmieren
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

the ratman

slider ist leider nix - ich brauch' eine stehlampe als icon in "leuchtet" / "leuchtet nicht". ist ja vor allem für meine holde gedacht, muss also was gleich schauen.
notfalls nehm ich halt die lampe selber oder eine readingsgroup und zirkel die über deinen uitable. hätte das halt gerne alles aus einem guss.

bin übrigens ein bissi verwundert, weil du ja schon dimmer hast - nur mit unverständlich vielen icons *g*
→do↑p!dnʇs↓shit←

Damian

Hinter dimmer steckt das Widget iconRadio, welches mehrere icons mit dazugehörigen Werten visualisiert, die man anklicken kann, um einen bestimmten Wert zu setzen und anzuzeigen:

Auszug aus der Comandref:

ZitaticonRadio,[class<classname>@][use4icon@]<select color>,<value>,<icon>[@<color>][,<value>,<icon>[@<color>]]... - zeigt Icons als Radiobutton an und gibt Value bei Betätigung zurück.
<value> ist der Rückgabe- u.Vergleichswert. Wenn eine numerische Folge von <value> angegeben wird, dann passt der laufende Wert zum nächsten höheren Vergleichswert. Vor und hinter der numerischen Folge dürfen nicht numerische Werte angegeben werden, dazwischen nicht. Die numerische Folge muss auf- oder absteigend sein.
Beispiel: iconRadio,808080,zu,control_arrow_down,10,fts_shutter_10,20,fts_shutter_20,30,fts_shutter_30,auf,control_arrow_up

Man könnte also folgendes über die Funktion widget in uiTable definieren:

widget([bla:state],"iconRadio,\@yellow,off,light_light_dim_00,30,light_light_dim_30,70,light_light_dim_70,on,light_light_dim_100","set")
mit vier Icons für off, 30%, 70%, on
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

the ratman

#25
danke dir, aber dann hab ich ja wieder x icons in einer reihe für eine lampe. den platz hätte ich am handy gar ned *g*.
ich will eben nur ein icon, dass mindestens on/off anzeigt (egal, welchen pct es grade hat). gerne dann auch mit den dim-icons, die mir den pct mit anzeigen.

mir gehts ja nur darum, dass ein normaler switch von dir einfach das icon verschwinden lässt, wenn der zustand nicht on oder off ist.
das lässt sich im webinterface scheinbar mit "subtype" lösen --> dimmer, colordimmer, extcolordimmer. die zeigen alle den pct, bis hin zur farbe der lampe an, aber alle lassen sich per klick on/off schalten ... mit nur 1 icon.

und falls du keine dimmer hast ( https://fhem.de/commandref.html#HUEDevice ):
du kannst "pct", "on", "off" schalten.
dann gibts noch ein "onoff", dass den zustand mit 0 und 1 anzeigt, aber nicht schaltbar ist.
du kannst den state schalten, aber der zeigt nicht nur "on", "off" sondern den pct-wert an, wenn nicht "on" oder "off" gestellt ist.
→do↑p!dnʇs↓shit←

Damian

Zitat von: the ratman am 03 Oktober 2024, 09:55:18mir gehts ja nur darum, dass ein normaler switch von dir einfach das icon verschwinden lässt, wenn der zustand nicht on oder off ist.

das liegt am FHEM-widget iconSwitch, welches von switch benutzt wird, das widget kann nur Werte anzeigen die definiert wurden, da habe ich leider keine Karten im Spiel
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

the ratman

war mir schon klar. dachte nur, du hast eventuell auch dafür was in der hinterhand *g*
→do↑p!dnʇs↓shit←