[gelöst]panel status (bar) und grösse

Begonnen von draddy, 22 März 2022, 16:36:14

Vorheriges Thema - Nächstes Thema

draddy

moin,

habe ich die Möglichkeit bei einem Panel auf die Statusbar Einfluss zu nehmen?

habe die Panels entweder in einem leeren Dummy oder in einer readingsGroup gesetzt und dann jeweils die PanelItems halt ..

hab mal
{"template": "panel", "connected":
{"Schreibtisch":"FITS_Licht_Schreibtisch", "Arbeitstisch":"FITS_Licht_Arbeitstisch", "Monitore":"FITS_Displays", "FITS1":"rp_FITS1"},
"name":"FITS",
"home":"true",
"sortby":"2",
"setup": {
"status": {
"bar": ["FITS_Displays.state:off:50:success"]
}
}
}

probiert, aber das will nicht so xD

wunderherlich wäre: (Aktuelles Beispiel 4 Geräte)
Alle an = Full bar
Alle aus = empty bar
1 on = 25%
2 on = 50% ....


lg
Jens

p.s. (habe ergänzt) kann man die Größe beeinflussen? hatte mit dem üblichen size probiert, aber davon blieb das panel auch gänzlich ungerührt ^^
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

jemu75

Hallo,

zum Thema Status:
Grundsätzlich wird die Farbe der PanelItems an das Panel "vererbt". D.h. sobald ein PanelItem eine andere Farbe als "success" hat, wird diese vom Panel übernommen.
Die "Vererbung" kann man jedoch übersteuern, indem man das Verhalten der Statusbar im Panel konfiguriert. Du kannst den Status in der Konfiguration des Panels über setup -> status -> bar steuern. So wie du das im Beispiel gemacht hast, sollte das passen. Entscheidend ist jedoch, ob es das Reading FITS_Displays.state in dem FHEM Device (in dem du das Panel konfiguriert hast) gibt und ob dieses den Wert "off" hat.

Generell empfehle ich, den Debugmodus zu aktivieren, wenn FHEM App nicht auf gewünschte Reading oder Attribute reagiert. Im Debugmodus kann man das JSON Objekt anzeigen und sehen, ob das definierte reading vorhanden ist und welchen Wert es aktuell beinhaltet. Das solltest du im Fall deines readings FITS_Displays.state auf jeden Fall mal kontrollieren. Die denke hier liegt die mögliche Ursache, dass es nicht klappt.  ;)
Und zum Thema Debugmodus aktivieren hier auch gleich wieder der Verweis zur Doku https://github.com/jemu75/fhemApp#debug-modus-f%C3%BCr-fhemapp-optional

zum Thema Size:
auch die Breite des Panels lässt sich über setup -> size konfigurieren. Siehe dazu auch https://github.com/jemu75/fhemApp#breite-von-templates

draddy

alles klar, dann probiere ich nochmal rum ...

Panel ist in diesem fall in einem ReadingsGroup welches die Gerät zusammen anzeigt, drum dachte ich, ich könnte so auf ein Reading von dem Gerät FITS_Displays zugreifen ^^

mit Size hatte ich eigentlich so probiert - ohne Erfolg, aber schaue ich auch nochmal in ruhe ;)
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

draddy

all right ...

{"template": "panel", "connected":
{"Schreibtisch":"FITS_Licht_Schreibtisch", "Arbeitstisch":"FITS_Licht_Arbeitstisch", "Monitore":"FITS_Displays", "FITS1":"rp_FITS1"},
"name":"FITS",
"home":"true",
"sortby":"2",
"setup": {
"size": "col-12 col-sm-6 col-md-4 col-lg-4",
"status": {
"bar": ["Connected.Monitore.Readings.state.Value:off:50:success"]
}

}
}


so kann ich mal auf das reading von z.b. "FITS_Displays" zugreifen ... nur scheint da kein mathe zu wirken ... also werd ich wohl was anderes basteln müssen dafür ^^

size klappt übrigends, kA was ich da erst falsch gemacht hatte ...

OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

draddy

#4
soo, sollte es jemanden interessieren ...
code ist immer raw!

meine Panels sind in dummys erstellt Beispielhaft am Wohnzimmer:

defmod d_WZAPP dummy
attr d_WZAPP appOptions {"template": "panel", \
"connected": \
{"WZ ALLE":"d_WZ_Licht", "WZ Fenster":"WZ_Fenster", "WZ TV":"WZ_TV", "WZ Weinkiste":"WZ_Weinkiste"},\
"name":"Wohnzimmer",\
"home":"true",\
"sortby":"3",\
"setup": {\
"size": "col-12 col-sm-6 col-md-4 col-lg-4",\
"status": {\
"bar": ["state:off:1:#2c2c2c","pState::%n:success"]\
}\
}\
}
attr d_WZAPP userReadings state {ReadingsNum($name,"pState","0")<1?"off":"on"}


Jedes Panel dummy hat 2 Readings, state kommt über das userReadings und dient nur dazu einen "off" für die bar zu bekommen. habe es sonst nicht hinbekommen das bei "alles aus" auch die bar leer ist, weiters, warum auch immer, klappt es nur, wenn ich die bar bei "off" auf 1 statt 0 setze - kein Ahnung warum, klappt bei z.b. Dimmer problemlos ...

das 2. Reading ist pState - dieses kommt über ein notify welches über eine sub in der 99 den status des Panels auswertet und eben an den Dummy gibt
notify:

defmod n_WZ_State notify WZ_Fenster:relay:.*|WZ_TV:relay:.*|WZ_Weinkiste:.* {\
my @PList  = ('WZ_Fenster', 'WZ_TV', 'WZ_Weinkiste');;\
my $pS = myPanelStatus(@PList);; fhem("setreading d_WZAPP pState $pS")\
}

sub in der 99 (kein raw)

#Status fhemAPP Panels
sub myPanelStatus(@) {
  my @numberOn  = ();
  foreach(@_) {
    my $LampenStatus = ReadingsVal($_,'state','nA');
    push (@numberOn,$_) if ($LampenStatus eq 'on');
  }
  my $pStatus = (100/@_)*@numberOn;
  return $pStatus;
}


die sub bekommt die Deviceliste als Array vom notify und prüft die Einträge auf "state on" Rückgabe ist dann ein "pct" wert welcher sofort für die Statusbar verwendet werden kann, wie bei einem Dimmer.

im Beispiel sind die Gerät Shellys (2x Plug S 1x Bulb) wie man am notify sieht, muss man da manchmal bissel rumprobieren, bis man nen trigger trifft (mag auch an mangelndem wissen meinerseits liegen :P)

danke an meinen stillen Helfer! ;)
und eventuell viel spass beim nachbauen

appOptions von den jeweiligen Devices lasse ich  weg.

gruss
Jens
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V