Balken & Slider: Unterschied zwischen den Versionen
Spiff (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
Spiff (Diskussion | Beiträge) K (→BRI-Slider) |
||
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{SEITENTITEL:Balken & Slider}} | |||
{{Infobox Modul | |||
|ModPurpose=Erstellen von erweiterten Balken und Slidern als Widget | |||
|ModType=h | |||
|ModCmdRef=advancedSlider | |||
|ModForumArea=Frontends | |||
|ModTechName=fhemweb_advancedSlider.js | |||
|ModOwner=Spiff ({{Link2FU|1289|Forum}} / [[Benutzer Diskussion:Spiff|Wiki]])}} | |||
=== Info === | === Info === | ||
!!!Seite noch im Aufbau!!! | |||
Weitere Infos: | |||
https://forum.fhem.de/index.php?topic=28318.0 | https://forum.fhem.de/index.php?topic=28318.0 | ||
=== Benutzung der Variablen === | === Benutzung der Variablen === | ||
{| class="wikitable" | {| class="wikitable" | ||
! colspan=4 | Balken-Optionen | |||
|- | |||
! Parameter | ! Parameter | ||
! Werte | ! Werte | ||
Zeile 150: | Zeile 163: | ||
| Fügt einen Schatten hinter dem Balken hinzu (der Schatten verletzt den durch length und width definierten Bereich) | | Fügt einen Schatten hinter dem Balken hinzu (der Schatten verletzt den durch length und width definierten Bereich) | ||
| 0 | | 0 | ||
|- | |||
! colspan=4 | Slider-Optionen | |||
|- | |||
! Parameter | |||
! Werte | |||
! Zweck | |||
! Default | |||
|- | |||
| slider | |||
| 0,1 | |||
| Fügt dem Balken die Slider-Funktionalität hinzu | |||
| 0 | |||
|- | |||
| sliderTechnology | |||
| 0,1<br> | |||
0 = noUiSlider<br> | |||
1 = jQuery UI Slider | |||
| Auswahl der zu benutzenden Slider-Technologie aus Kompatibilitätsgründen v.a. bei mobilen Endgeräten. Siehe Abschnitt Kompatiblilität | |||
| 0 | |||
|- | |||
| setDevice | |||
| (Device-Name) | |||
| Stellt ein, welches Device durch den Slider über "set" bedient werden soll | |||
| $DEVICE | |||
|- | |||
| setTarget | |||
| (Set-Funktion) | |||
| Stellt ein, welche Funktion durch den Slider über "set" bedient werden soll | |||
| - (=state) | |||
|- | |||
| disableNotify | |||
| (Notify-Name) | |||
| Deaktiviert das angegebene Notify (verhindert, dass der Balken im Konstrukt dummy+notify per longpoll ein Update bekommt, während der Slider bewegt wird)<br />'''Bug: bei jeder Slidebewegung wird bisher kontinuierlich das Notify auf 'inactive' gesetzt, auch wenn es schon 'inactive' ist. Das kann dazu führen, dass in der Warteschleife so viele inactive-Events abgesetzt wurden, dass diese auch erst nach dem Loslassen des Sliders Anwendung finden. Dann bleibt das Notify 'inactive' und die Seite mit dem Slider muss aktualisiert werden.''' | |||
| - | |||
|- | |||
| sliderHandleDesign | |||
| 0,1 | |||
| Fügt dem Slider ein Handle hinzu | |||
| 1 | |||
|} | |||
== Beispiele == | |||
=== Default-Balken === | |||
{| class="wikitable" | |||
! Definition !! Erläuterungen !! Aussehen | |||
|- | |||
| style="width:40%" |<code>state:adslider</code> | |||
| style="width:40%" | Standardeinstellungen des Balkens (ohne Slider). | |||
| style="width:20%" | [[Datei:AdvancedSlider_default.png|thumb]] | |||
|- | |||
|} | |||
=== Beispiel 1 === | |||
{| class="wikitable" | |||
! Definition !! Erläuterungen !! Aussehen | |||
|- | |||
| style="width:40%" |<code>state:adslider,width:30,length:200,<br />color1:glossyGreen,borderSize:5,borderRadius:15,<br />borderColor:999999,textSize:10,<br />slider:1,sliderHandleDesign:0,setDevice:mp,<br />setTarget:position,textValue:"",disableNotify:n_position_mp</code> | |||
| style="width:40%" | Der Slider macht ein "set mp position (Sliderwert)". | |||
| style="width:20%" rowspan=2 | [[Datei:AdvancedSlider_example1.png|thumb]] | |||
|- | |||
| <code>define n_position_mp notify mp:position setreading slider1 $VALUE</code> | |||
| Das notify stellt den Slider immer auf den Wert des Devices ein. Über disableNotify wird das Notify für die Dauer des Slidens deaktiviert und danach wieder aktiviert. | |||
|- | |||
|} | |||
=== Beispiel 2 === | |||
{| class="wikitable" | |||
! Definition !! Erläuterungen !! Aussehen | |||
|- | |||
| style="width:40%" |<code>state:adslider,slider:1,<br />sliderHandleDesign:0,<br />shadow:1,borderSize:5,<br />borderRadius:15,borderColor:000000,<br />length:500,width:50,<br />color2:flat_FFFFFF,<br />color1:gradient_00FF00_FF0000,<br />overlay:/fhem/images/BalkenHorizontal.png,<br />overlayStyle:relative,textValue:""</code> | |||
| Balken mit Slider, abgerundeten Ecken, einem Rand, Overlay-Bild für die Skale, Hintergrundschatten und Farbgradient grün->rot | |||
| [[Datei:AdvancedSlider_example2.png|thumb]] | |||
|- | |||
|} | |||
=== HUE-Slider === | |||
{| class="wikitable" | |||
! Definition !! Erläuterungen !! Aussehen | |||
|- | |||
| style="width:40%" |<code>state:adslider,width:30,length:300,borderSize:2,<br />max:65535,color1:flat_FFFFFF,color2:flat_000000,<br />opacity1:0,opacity2:0.75,textSize:0,<br />slider:1,sliderHandleDesign:0,setDevice:HUEDevice4,<br />setTarget:hue,<br />underlay:/fhem/jscolor/hue_background.svg</code> | |||
| Balken mit Slider, Underlay-Bild für die HUE-Skale, verdunkelt den rechten Regelbereich anstatt der Anzeige eines Handles | |||
| style="width:20%" rowspan=2 | [[Datei:AdvancedSlider_hue.png|thumb]] | |||
|- | |||
| <code>define n_adslider_hue notify HUEDevice4:hue.* setreading adslider_hue state $EVTPART1</code> | |||
| Das notify stellt den Slider immer auf den Wert des Devices ein. | |||
|- | |||
|} | |||
=== BRI-Slider === | |||
{| class="wikitable" | |||
! Definition !! Erläuterungen !! Aussehen | |||
|- | |||
| style="width:40%" |<code>state:adslider,width:30,length:300,borderSize:2,<br />color1:gradient_000000_FFFFFF,color2:flat_000000,<br />textSize:0,slider:1,sliderHandleDesign:0,<br />setDevice:HUEDevice4,setTarget:bri</code> | |||
| Balken mit Slider, Gradient für die Helligkeitsanzeige, schwärzt den rechten Regelbereich anstatt der Anzeige eines Handles | |||
| style="width:20%" rowspan=2 | [[Datei:AdvancedSlider_bri.png|thumb]] | |||
|- | |||
| <code>define n_adslider_bri notify HUEDevice4:bri.* setreading adslider_bri state $EVTPART1</code> | |||
| Das notify stellt den Slider immer auf den Wert des Devices ein. | |||
|- | |||
|} | |||
== Kompatibilität== | |||
Als Orientierung, welche Slidertechnologie ausgewählt werden sollte und was für Fehlerbilder möglich sind hier eine Übersicht über verschiedene mobile Endgeräte | |||
{|class="wikitable mw-collapsible mw-collapsed" | |||
! Gerät !! Betriebssystem !! Browser !! Slider Technologie !! Bemerkungen | |||
|- | |||
| style="width:40%" | Google Nexus 4 | |||
| Android 5 | |||
| WebViewControl | |||
| noUiSlider | |||
| Hin und wieder Probleme vor allem bei vertikalen Slidern und wenn die Asicht gezoomt ist. Meist stimmt die Zuordnung von Finger und Rückgabewert nicht ganz zusammen | |||
|- | |||
| style="width:40%" | Google Nexus 4 | |||
| Android 5 | |||
| WebViewControl | |||
| jQuery UI Slider | |||
| Hin und wieder Probleme vor allem bei vertikalen Slidern und wenn die Asicht gezoomt ist. Meist stimmt die Zuordnung von Finger und Rückgabewert nicht ganz zusammen | |||
|- | |||
|} | |} |
Aktuelle Version vom 6. Januar 2017, 15:06 Uhr
advancedSlider | |
---|---|
Zweck / Funktion | |
Erstellen von erweiterten Balken und Slidern als Widget | |
Allgemein | |
Typ | Hilfsmodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | Frontends |
Modulname | fhemweb_advancedSlider.js |
Ersteller | Spiff (Forum / Wiki) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Info
!!!Seite noch im Aufbau!!! Weitere Infos: https://forum.fhem.de/index.php?topic=28318.0
Benutzung der Variablen
Balken-Optionen | |||
---|---|---|---|
Parameter | Werte | Zweck | Default |
length | Zahl (Pixel) | Länge des Balkens | 300 |
width | Zahl (Pixel) | Breite des Balkens | 30 |
max | Zahl | maximal erreichbarer Wert des Readings | 100 |
style | horizontal, vertical | Ausrichtung des Balkens | horizontal |
swapDirection | 0,1 | Umkehren der Richtung horizontal: |
0 |
offset1 | Zahl (Pixel) | Erzeugt einen Abstand links bzw. unten | 0 |
offset2 | Zahl (Pixel) | Erzeugt einen Abstand rechts bzw. oben | 0 |
color1 | glossyBlue, glossyRed, glossyCopper, glossyPink, glossyGreen, glossyYellow, glossyOrange, glossyBlack, glossyWhite gradient_RRGGBB_RRGGBB |
Farbe des linken/unteren Balkens | glossyBlue |
color2 | glossyBlue, glossyRed, glossyCopper, glossyPink, glossyGreen, glossyYellow, glossyOrange, glossyBlack, glossyWhite gradient_RRGGBB_RRGGBB |
Farbe des rechten/oberen Balkens | glossyWhite |
opacity1 | Zahl (0...1) 0=transparent |
Transparenz des linken/unteren Balkens | 1 |
opacity2 | Zahl (0...1) 0=transparent |
Transparenz des rechten/oberen Balkens | 1 |
textValue | (Textstring), Perl möglich | mittig angezeigter Text | $VALUE |
textColor | RRGGBB (HEX-Format) | Farbe des Textes | 000000 |
textSize | Zahl (Pixel) | Größe des Textes | 20 |
overlay | Link | Overlay-Bild (Überdeckt Balken, nur sinnvoll mit Transparenz) | (leer) |
overlayStyle | absolute, relative | Platzierung des Bildes mit Beachtung der Offsets (relative) oder über alles (absolute) | absolute |
overlayRotate | 0,1 | Rotation des Overlay-Bildes horizontal: 90 Grad im Uhrzeigersinn |
0 |
underlay | Link | Underlay-Bild (Hintergrundbild unter dem Balken) | (leer) |
underlayStyle | absolute, relative | Platzierung des Bildes mit Beachtung der Offsets (relative) oder über alles (absolute) | absolute |
underlayRotate | 0,1 | Rotation des Overlay-Bildes horizontal: 90 Grad im Uhrzeigersinn |
0 |
borderRadius | Zahl (Pixel) | Verrundung der Ecken des Balkens | 0 |
borderSize | Zahl (Pixel) | Rahmendicke um den Balken (der Balken bleibt immer in seinem durch length und width definierten Bereich) | 0 |
borderColor | RRGGBB (HEX-Format) | Rahmenfarbe | 000000 |
shadow | 0,1 | Fügt einen Schatten hinter dem Balken hinzu (der Schatten verletzt den durch length und width definierten Bereich) | 0 |
Slider-Optionen | |||
Parameter | Werte | Zweck | Default |
slider | 0,1 | Fügt dem Balken die Slider-Funktionalität hinzu | 0 |
sliderTechnology | 0,1 0 = noUiSlider |
Auswahl der zu benutzenden Slider-Technologie aus Kompatibilitätsgründen v.a. bei mobilen Endgeräten. Siehe Abschnitt Kompatiblilität | 0 |
setDevice | (Device-Name) | Stellt ein, welches Device durch den Slider über "set" bedient werden soll | $DEVICE |
setTarget | (Set-Funktion) | Stellt ein, welche Funktion durch den Slider über "set" bedient werden soll | - (=state) |
disableNotify | (Notify-Name) | Deaktiviert das angegebene Notify (verhindert, dass der Balken im Konstrukt dummy+notify per longpoll ein Update bekommt, während der Slider bewegt wird) Bug: bei jeder Slidebewegung wird bisher kontinuierlich das Notify auf 'inactive' gesetzt, auch wenn es schon 'inactive' ist. Das kann dazu führen, dass in der Warteschleife so viele inactive-Events abgesetzt wurden, dass diese auch erst nach dem Loslassen des Sliders Anwendung finden. Dann bleibt das Notify 'inactive' und die Seite mit dem Slider muss aktualisiert werden. |
- |
sliderHandleDesign | 0,1 | Fügt dem Slider ein Handle hinzu | 1 |
Beispiele
Default-Balken
Definition | Erläuterungen | Aussehen |
---|---|---|
state:adslider
|
Standardeinstellungen des Balkens (ohne Slider). |
Beispiel 1
Definition | Erläuterungen | Aussehen |
---|---|---|
state:adslider,width:30,length:200,
|
Der Slider macht ein "set mp position (Sliderwert)". | |
define n_position_mp notify mp:position setreading slider1 $VALUE
|
Das notify stellt den Slider immer auf den Wert des Devices ein. Über disableNotify wird das Notify für die Dauer des Slidens deaktiviert und danach wieder aktiviert. |
Beispiel 2
Definition | Erläuterungen | Aussehen |
---|---|---|
state:adslider,slider:1,
|
Balken mit Slider, abgerundeten Ecken, einem Rand, Overlay-Bild für die Skale, Hintergrundschatten und Farbgradient grün->rot |
HUE-Slider
Definition | Erläuterungen | Aussehen |
---|---|---|
state:adslider,width:30,length:300,borderSize:2,
|
Balken mit Slider, Underlay-Bild für die HUE-Skale, verdunkelt den rechten Regelbereich anstatt der Anzeige eines Handles | |
define n_adslider_hue notify HUEDevice4:hue.* setreading adslider_hue state $EVTPART1
|
Das notify stellt den Slider immer auf den Wert des Devices ein. |
BRI-Slider
Definition | Erläuterungen | Aussehen |
---|---|---|
state:adslider,width:30,length:300,borderSize:2,
|
Balken mit Slider, Gradient für die Helligkeitsanzeige, schwärzt den rechten Regelbereich anstatt der Anzeige eines Handles | |
define n_adslider_bri notify HUEDevice4:bri.* setreading adslider_bri state $EVTPART1
|
Das notify stellt den Slider immer auf den Wert des Devices ein. |
Kompatibilität
Als Orientierung, welche Slidertechnologie ausgewählt werden sollte und was für Fehlerbilder möglich sind hier eine Übersicht über verschiedene mobile Endgeräte
Gerät | Betriebssystem | Browser | Slider Technologie | Bemerkungen |
---|---|---|---|---|
Google Nexus 4 | Android 5 | WebViewControl | noUiSlider | Hin und wieder Probleme vor allem bei vertikalen Slidern und wenn die Asicht gezoomt ist. Meist stimmt die Zuordnung von Finger und Rückgabewert nicht ganz zusammen |
Google Nexus 4 | Android 5 | WebViewControl | jQuery UI Slider | Hin und wieder Probleme vor allem bei vertikalen Slidern und wenn die Asicht gezoomt ist. Meist stimmt die Zuordnung von Finger und Rückgabewert nicht ganz zusammen |