FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: HoTi am 28 Januar 2016, 14:02:36

Titel: Suche Widget für Fenster
Beitrag von: HoTi am 28 Januar 2016, 14:02:36
Hallo zusammen,

ich brauche einen Tipp von euch. Meine Frau will für alle Fenster nur ein ICON haben. Wenn kein Fenster auf soll das ICON grau sein. Wenn ein Fenster auf soll oben die Anzahl der offenen oder gekippten Fenster stehen.

Aber jetzt kommt es: Sie möchte beim draufklicken so eine Art Circlemenu haben bei dem Ihr angezeigt wird welches Fenster auf ist.
Hat jemand von euch sowas schon mal gemacht? Oder kann mir sagen wie ich klein die offenen Fenster anzeige ohne eine extra Seite öffnen zu müssen?!
Titel: Antw:Suche Widget für Fenster
Beitrag von: CoolTux am 28 Januar 2016, 14:55:11

<div data-type="circlemenu" class="cell circlemenu top-space">
                <ul class="menu">
                        <li>
                                <div data-type="symbol" data-off-color="#aa6900" data-off-background-color="#aa6900"
                                        data-icon="fenster warn"
                                        data-device="dummy_open_windows"
                                        data-get="numberOfOpenWindows"
                                        data-background-icon="fa-circle-thin" >
                                </div>
                        <li>
                                <div data-type="symbol" data-color="#aa6900" data-device="dummy_open_Windows" data-icon="fa-window" data-get="nameOpenWindows"></div>
                        </li>
                </ul>
        </div>
[code]

Vielleicht geht es so in etwa. Achtung das ist nur so ein Proof of Concept
Titel: Antw:Suche Widget für Fenster
Beitrag von: gandy am 28 Januar 2016, 18:34:23
Hi,

habe sowas ähnliches umgesetzt, lässt sich sicher anpassen/erweitern:

FHEM:

define FensterStatusGast structure window FensterSensor01 FensterSensor02
define FensterStatusWohnen structure window FensterSensor03 FensterSensor04 FensterSensor05 FensterSensor06 FensterSensor07 FensterSensor08 FensterSensor09 FensterSensor10 FensterSensor11 FensterSensor12 FensterSensor13
define FensterStatusSchlafen structure window FensterSensor14 FensterSensor15 FensterSensor16 FensterSensor17 FensterSensor18
define FensterStatusAlle structure window FensterStatusGast FensterStatusWohnen FensterStatusSchlafen
attr FensterStatus.+ clientstate_behavior relative
attr FensterStatus.+ clientstate_priority open|open tilted|tilted closed|closed


HTML:

    <header>FENSTER</header>
    <div class="cell">
        <div data-type="circlemenu" class="cell circlemenu">
            <ul>
              <li><div data-type="symbol" data-device="FensterStatusAlle"
                       data-get-on='["closed","tilted","open"]'
                       data-on-colors='["lightgreen","#505050","#505050"]'
                       data-on-background-colors='["#505050","yellow","red"]'
                       data-background-icon="fa-circle"
                       data-icons='["fs-fts_door_right","fs-fts_door_tilt","fs-fts_door_right_open"]'></div></li>
              <li><div data-type="symbol" data-device="" data-icon="oa-weather_directions" data-off-color="#aa6900"/></li>
              <li><div data-type="symbol" data-device="FensterStatusGast"
                       data-get-on='["closed","tilted","open"]'
                       data-on-colors='["#505050","yellow","red"]'
                       data-icons='["fs-fts_door_right","fs-fts_door_tilt","fs-fts_door_right_open"]'></div></li>
              <li><div data-type="symbol" data-device="FensterStatusWohnen"
                       data-get-on='["closed","tilted","open"]'
                       data-on-colors='["#505050","yellow","red"]'
                       data-icons='["fs-fts_door_right","fs-fts_door_tilt","fs-fts_door_right_open"]'></div></li>
              <li><div data-type="symbol" data-device="FensterStatusSchlafen"
                       data-get-on='["closed","tilted","open"]'
                       data-on-colors='["#505050","yellow","red"]'
                       data-icons='["fs-fts_door_right","fs-fts_door_tilt","fs-fts_door_right_open"]'></div></li>
            </ul>
        </div>
        <div data-type="label" class="small narrow darker">WOHNUNG</div>
    </div>


Farblich kodiert ist geschlossen  (grau), gekippt (gelb) und offen (rot). Was fehlt ist die Anzahl der Fenster, ist aber eine gute Idee, bin gespannt auf Deine Lösung  ;D

Grüße,
Andy.
Titel: Antw:Suche Widget für Fenster
Beitrag von: HoTi am 29 Januar 2016, 09:01:07
Danke euch.

Habe den Code von gandy ausprobiert. Aber ich bekomme es nicht hin.

So sieht es bei mir aus, was mach ich falsch?

define FensterStatusAlle structure window EG_ez_TK_mi EG_ku_FK_mi EG_wc_FK_mi OG_sz_TK_mi OG_kz_TK_mi OG_az_FK_dach OG_bz_FK_dach
attr FensterStatusAlle clientstate_behavior relative
attr FensterStatusAlle clientstate_priority open|open tilted|tilted closed|closed
attr FensterStatusAlle room System


<!-- Fensterstatus -->
<li data-row="5" data-col="6" data-sizex="2" data-sizey="2">
<header><font size="+1">Warnungen</font></header>
<div class="container">
<div class="left"></div>
<div data-type="circlemenu" class="cell circlemenu">
<ul>
  <li><div data-type="symbol" data-device="FensterStatusAlle"
   data-get-on='["closed","tilted","open"]'
   data-on-colors='["lightgreen","#505050","#505050"]'
   data-on-background-colors='["#505050","yellow","red"]'
   data-background-icon="fa-circle"
   data-icons='["fs-fts_door_right","fs-fts_door_tilt","fs-fts_door_right_open"]'></div></li>
  <li><div data-type="symbol" data-device="" data-icon="oa-weather_directions" data-off-color="#aa6900"/></li>
  <li><div data-type="symbol" data-device="OG_sz_TK_mi"
   data-get-on='["closed","tilted","open"]'
   data-on-colors='["#505050","yellow","red"]'
   data-icons='["fs-fts_door_right","fs-fts_door_tilt","fs-fts_door_right_open"]'></div></li>
  <li><div data-type="symbol" data-device="OG_kz_TK_mi"
   data-get-on='["closed","tilted","open"]'
   data-on-colors='["#505050","yellow","red"]'
   data-icons='["fs-fts_door_right","fs-fts_door_tilt","fs-fts_door_right_open"]'></div></li>
  <li><div data-type="symbol" data-device="EG_ez_TK_mi"
   data-get-on='["closed","tilted","open"]'
   data-on-colors='["#505050","yellow","red"]'
   data-icons='["fs-fts_door_right","fs-fts_door_tilt","fs-fts_door_right_open"]'></div></li>
  <li><div data-type="symbol" data-device="EG_ku_FK_mi"
   data-get-on='["closed","tilted","open"]'
   data-on-colors='["#505050","yellow","red"]'
   data-icons='["fs-fts_door_right","fs-fts_door_tilt","fs-fts_door_right_open"]'></div></li>
  <li><div data-type="symbol" data-device="EG_wc_FK_mi"
   data-get-on='["closed","tilted","open"]'
   data-on-colors='["#505050","yellow","red"]'
   data-icons='["fs-fts_door_right","fs-fts_door_tilt","fs-fts_door_right_open"]'></div></li>
  <li><div data-type="symbol" data-device="OG_az_FK_dach"
   data-get-on='["closed","tilted","open"]'
   data-on-colors='["#505050","yellow","red"]'
   data-icons='["fs-fts_door_right","fs-fts_door_tilt","fs-fts_door_right_open"]'></div></li>
  <li><div data-type="symbol" data-device="OG_bz_FK_dach"
   data-get-on='["closed","tilted","open"]'
   data-on-colors='["#505050","yellow","red"]'
   data-icons='["fs-fts_door_right","fs-fts_door_tilt","fs-fts_door_right_open"]'></div></li>    
</ul>
</div>
<div data-type="label" class="small narrow darker">WOHNUNG</div>
    </div>


Titel: Antw:Suche Widget für Fenster
Beitrag von: berndp am 29 Januar 2016, 09:14:01
Ich habs sowas mit einem Script gelöst.
Alle Fensterkontakte heißen bei mir RAUMNAME_FK. So hab ich ein Notify beim auslösen eines Fensterkontaktes:
define FensterStatusNotify notify .*_FK:.* { \
      windowCount();;\
}


Und die Funktion zum "offene Fenster zählen" sieht so aus:
sub windowCount() {
my $offene=0;
   my $geschlossene=0;
   my @stati=devspec2array("NAME=/*.*_FK/*");
     foreach(@stati) {
   
        my $stat=ReadingsVal($_, "state", "off");
          if ($stat eq "on") {
          $offene++;
  }
  if ($stat eq "off") {
          $geschlossene++;
          }

}
    fhem("set FesterOffenAnzahl $offene");

}


Das Dummy FensterOffenAnzahl sorgt dafür dass ein Symbol in der UI leuchtet und Zahl der offenen Fenster zeigt.

  <div data-type="symbol" data-device="FesterOffenAnzahl"
        data-get-on='["0","1"]'
        data-icons='["ftui-window","ftui-window warn"]'
        data-on-colors='["#555","#666"]' class="big">
    </div>