Hallo zusammen,
in meinem HABPanel fehlt mir inzwischen nur nur noch die Jalousiesteuerung. Meine Jalousien sind haben keine Positionserfassung, daher habe ich sie in openHAB zwar mit rollershutter-items angebunden, die Position ist aber eher primitiv:
Es gibt nur drei Positionen: 0% wenn ganz offen, 100% wenn ganz zu, bei allem dazwischen wird der Wert auf 50% gesetzt. In der Basic-UI klappt das super.
Für HABPanel möchte ich auch keinen Schieberegler, um verschiedene Positionen anzufahren, sondern
- die drei möglichen Befehle UP, DOWN, STOP auslösen
- die drei (bei mir) möglichen Status 0%, 100% und 50% anzeigen.
Am allerliebsten würde ich das mit diesem Element machen, dass ich aus dem "Overall “skin” based on the Orange Tree theme" von Yannick Schaus rauskopiert hab:
Dabei soll bei 0% die linke, 50% die mittlere und 100% die rechte Schaltfläche in der orangenen "ON"-Farbe dargestellt werden. Leider gibt es die drei Tasten nur im kompletten Custom-Widget mit Slider:
Das ist zwar hübsch, aber in meinem Fall sinnlos, weil ich den Slider nicht benötige.
Könnt Ihr mir sagen, wie ich die Schaltflächen ohne den Rest darstellen kann (und noch die Farben hinbekomme...)?
Gruß,
Simon
Habpanel und Blinds (Jalousien)
-
- Beiträge: 231
- Registriert: 3. Dez 2019 08:21
Habpanel und Blinds (Jalousien)
So, fertig
So siehts jetzt aus...
...mit Jalousien "ganz unten" und Fenster zu: ... mit Jalousien in Zwischenstellung und Fenster offen: Wenn die Jalousie fährt, sind übrigens alle drei Icons grau.
Dafür habe ich jetzt relativ großen Aufwand betrieben:
- Jede Jalousie ist mit drei Items angelegt (Rollershutter, Switch fürs Fahren, Switch für die Richtung)
- Für den Status des Items brauche ich drei Regeln:
Die Icons habe ich mit Inkscape gebastelt und mit den Statusendungen (-10, -60 und -100) unter items/classic abgelegt. Für die Jalousie gibts jetzt so ein Vorlagen-Widget mit folgendem Code:
Wenn sich das was vereinfachen oder verbessern lässt, bitte immer her damit, ich freu mich!
Gruß,
Simon
Gehe zur vollständigen AntwortSo siehts jetzt aus...
...mit Jalousien "ganz unten" und Fenster zu: ... mit Jalousien in Zwischenstellung und Fenster offen: Wenn die Jalousie fährt, sind übrigens alle drei Icons grau.
Dafür habe ich jetzt relativ großen Aufwand betrieben:
- Jede Jalousie ist mit drei Items angelegt (Rollershutter, Switch fürs Fahren, Switch für die Richtung)
- Für den Status des Items brauche ich drei Regeln:
Code: Alles auswählen
// Jalousie OG Bad ***********************************************************************************************
rule "Jalousie OG Bad fährt"
when
Item OG_Bad_RS_faehrt changed from OFF to ON
then
tJalousie_1?.cancel
OG_Bad_RS.postUpdate(NULL)
tJalousie_1 = createTimer(now.plusSeconds(55), [ |
if (OG_Bad_RS_rauf.state == ON) OG_Bad_RS.postUpdate(0) else OG_Bad_RS.postUpdate(100)
OG_Bad_RS_faehrt.sendCommand(OFF)
])
end
rule "Jalousie OG Bad stoppt"
when
Item OG_Bad_RS_faehrt changed from ON to OFF
then
if (OG_Bad_RS.state == NULL) {
OG_Bad_RS.postUpdate(50)
}
tJalousie_1?.cancel
tJalousie_1 = null
end
rule "Jalousie OG Bad dreht um"
when
Item OG_Bad_RS_rauf changed
then
if(OG_Bad_RS.state == NULL) {
OG_Bad_RS_faehrt.sendCommand(OFF)
Thread::sleep(500)
OG_Bad_RS_faehrt.sendCommand(ON)}
end
Code: Alles auswählen
<button class="btn" style="width: 31%; height: 100%; padding: 0; background: inherit; outline: none">
<span>
<widget-icon iconset="'custom-icon'"icon="'blindsup'" ng-click="sendCmd('OG_Bad_RS', 'UP')" size="37" state="itemState('OG_Bad_RS')=='0' ? '0' : 'OFF'" />
</span>
</button>
<button class="btn" style="width: 31%; height: 100%; padding: 0; background: inherit; outline: none">
<span>
<widget-icon iconset="'custom-icon'"icon="'blindss'" ng-click="sendCmd('OG_Bad_RS', 'STOP')" size="35" state="itemState('OG_Bad_RS')=='50' ? '50' : 'OFF'" />
</span>
</button>
<button class="btn" style="width: 31%; height: 100%; padding: 0; background: inherit; outline: none">
<span>
<widget-icon iconset="'custom-icon'"icon="'blindsdown'" ng-click="sendCmd('OG_Bad_RS', 'DOWN')" size="37" state="itemState('OG_Bad_RS')=='100' ? '100' : 'OFF'" />
</span>
</button>
Gruß,
Simon
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
- Beiträge: 231
- Registriert: 3. Dez 2019 08:21
Re: Habpanel und Blinds (Jalousien)
Bin weiter gekommen. Ich habe einfach den Code von meinem Fensterstatus-Button dreimal hintereinander kopiert und den entsprechenden Befehl mit "ng-click" eingefügt.
Funktioniert SUPER, solange ich die Icons aus dem smarthome-set verwende, z.B. bulb. Wenn ich auf eigene SVGs umstelle (iconset="'custom-icon'"icon="'down'") wird der Aktivitätsstatus leider nicht farblich angepasst.
Hat dafür jemand einen Tip?
Funktioniert SUPER, solange ich die Icons aus dem smarthome-set verwende, z.B. bulb. Wenn ich auf eigene SVGs umstelle (iconset="'custom-icon'"icon="'down'") wird der Aktivitätsstatus leider nicht farblich angepasst.
Hat dafür jemand einen Tip?
Code: Alles auswählen
<button class="btn" style="width: 30%; height: 100%; padding: 0; background: inherit; outline: none">
<span>
<widget-icon iconset="'smarthome-set'" icon="'bulb'" ng-click="sendCmd('OG_Bad_RS', 'UP')" size="40" state="itemState('OG_Bad_RS')=='0' ? 'ON' : 'OFF'" />
</span>
</button>
<button class="btn" style="width: 30%; height: 100%; padding: 0; background: inherit; outline: none">
<span>
<widget-icon iconset="'custom-icon'"icon="'up'" ng-click="sendCmd('OG_Bad_RS', 'STOP')" size="40" state="itemState('OG_Bad_RS')=='50' ? 'ON' : 'OFF'" />
</span>
</button>
<button class="btn" style="width: 30%; height: 100%; padding: 0; background: inherit; outline: none">
<span>
<widget-icon iconset="'custom-icon'"icon="'down'" ng-click="sendCmd('OG_Bad_RS', 'DOWN')" size="40" state="itemState('OG_Bad_RS')=='100' ? 'ON' : 'OFF'" />
</span>
</button>
-
- Beiträge: 231
- Registriert: 3. Dez 2019 08:21
Re: Habpanel und Blinds (Jalousien)
So, fertig
So siehts jetzt aus...
...mit Jalousien "ganz unten" und Fenster zu: ... mit Jalousien in Zwischenstellung und Fenster offen: Wenn die Jalousie fährt, sind übrigens alle drei Icons grau.
Dafür habe ich jetzt relativ großen Aufwand betrieben:
- Jede Jalousie ist mit drei Items angelegt (Rollershutter, Switch fürs Fahren, Switch für die Richtung)
- Für den Status des Items brauche ich drei Regeln:
Die Icons habe ich mit Inkscape gebastelt und mit den Statusendungen (-10, -60 und -100) unter items/classic abgelegt. Für die Jalousie gibts jetzt so ein Vorlagen-Widget mit folgendem Code:
Wenn sich das was vereinfachen oder verbessern lässt, bitte immer her damit, ich freu mich!
Gruß,
Simon
So siehts jetzt aus...
...mit Jalousien "ganz unten" und Fenster zu: ... mit Jalousien in Zwischenstellung und Fenster offen: Wenn die Jalousie fährt, sind übrigens alle drei Icons grau.
Dafür habe ich jetzt relativ großen Aufwand betrieben:
- Jede Jalousie ist mit drei Items angelegt (Rollershutter, Switch fürs Fahren, Switch für die Richtung)
- Für den Status des Items brauche ich drei Regeln:
Code: Alles auswählen
// Jalousie OG Bad ***********************************************************************************************
rule "Jalousie OG Bad fährt"
when
Item OG_Bad_RS_faehrt changed from OFF to ON
then
tJalousie_1?.cancel
OG_Bad_RS.postUpdate(NULL)
tJalousie_1 = createTimer(now.plusSeconds(55), [ |
if (OG_Bad_RS_rauf.state == ON) OG_Bad_RS.postUpdate(0) else OG_Bad_RS.postUpdate(100)
OG_Bad_RS_faehrt.sendCommand(OFF)
])
end
rule "Jalousie OG Bad stoppt"
when
Item OG_Bad_RS_faehrt changed from ON to OFF
then
if (OG_Bad_RS.state == NULL) {
OG_Bad_RS.postUpdate(50)
}
tJalousie_1?.cancel
tJalousie_1 = null
end
rule "Jalousie OG Bad dreht um"
when
Item OG_Bad_RS_rauf changed
then
if(OG_Bad_RS.state == NULL) {
OG_Bad_RS_faehrt.sendCommand(OFF)
Thread::sleep(500)
OG_Bad_RS_faehrt.sendCommand(ON)}
end
Code: Alles auswählen
<button class="btn" style="width: 31%; height: 100%; padding: 0; background: inherit; outline: none">
<span>
<widget-icon iconset="'custom-icon'"icon="'blindsup'" ng-click="sendCmd('OG_Bad_RS', 'UP')" size="37" state="itemState('OG_Bad_RS')=='0' ? '0' : 'OFF'" />
</span>
</button>
<button class="btn" style="width: 31%; height: 100%; padding: 0; background: inherit; outline: none">
<span>
<widget-icon iconset="'custom-icon'"icon="'blindss'" ng-click="sendCmd('OG_Bad_RS', 'STOP')" size="35" state="itemState('OG_Bad_RS')=='50' ? '50' : 'OFF'" />
</span>
</button>
<button class="btn" style="width: 31%; height: 100%; padding: 0; background: inherit; outline: none">
<span>
<widget-icon iconset="'custom-icon'"icon="'blindsdown'" ng-click="sendCmd('OG_Bad_RS', 'DOWN')" size="37" state="itemState('OG_Bad_RS')=='100' ? '100' : 'OFF'" />
</span>
</button>
Gruß,
Simon
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
- Beiträge: 85
- Registriert: 25. Sep 2017 19:04
Re: Habpanel und Blinds (Jalousien)
Super! Vielen Dank, hab da ein ähnliches Projekt!