Suche Widget für Fenster

Begonnen von HoTi, 28 Januar 2016, 14:02:36

Vorheriges Thema - Nächstes Thema

HoTi

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?!
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

CoolTux


<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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

gandy

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.
fhem (svn) auf i5-4210U NUC
2x HMLAN, 19x HM-SEC-RHS, 15x HM-LC-Bl1PBU-FM, etc.
ODYS Neron Tablet / Android 4.2
Samsung Galaxy Tab 2 10.1N / Android 4.1.2
Samsung Galaxy Note / Android 6.0.1

HoTi

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>


Viele Grüße aus  Oberbayern
Tim (RettungsTim)

berndp

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>