diff --git a/SomfyController.ino.esp32.bin b/SomfyController.ino.esp32.bin index 39984f8..061212a 100644 Binary files a/SomfyController.ino.esp32.bin and b/SomfyController.ino.esp32.bin differ diff --git a/SomfyController.littlefs.bin b/SomfyController.littlefs.bin index db83d88..a510fb7 100644 Binary files a/SomfyController.littlefs.bin and b/SomfyController.littlefs.bin differ diff --git a/data/icons.css b/data/icons.css index 36727d4..4d4d89d 100644 --- a/data/icons.css +++ b/data/icons.css @@ -296,7 +296,12 @@ i.icss-anim:after { [class*="-hover"].icss-reverse:hover { animation-direction: reverse; } - +.icss-panel-left { + display:none; +} +.icss-panel-right { + display: none; +} /* Stack icons */ .icss-stack { position: relative; @@ -632,14 +637,16 @@ i.icss-ldrapery { i.icss-ldrapery:after { width: var(--shade-position, 0%); height: calc(100% - .05em); - left: 0em; + right: calc(100% - var(--shade-position)); + left:0em; top: 0.025em; border-bottom: solid 0.025em gray; - border-right:solid 0.025em gray; - background-image: repeating-conic-gradient(var(--shade-color, currentColor) 0% 25%, rgba(71, 212, 255, 0) 0% 50%); + border-right: solid 0.025em gray; + background-image: repeating-linear-gradient(to left, var(--shade-color, currentColor), var(--shade-color, currentColor) 75%, rgba(255,255,255,0) 100%); background-position: 0 0, 100% 100%; - background-size: 0.05em 0.05em; + background-size: 0.1em 0.1em; background-color: rgba(71, 212, 255, 0); + transform:rotate(180deg); } i.icss-rdrapery { width: 1.1em; @@ -667,11 +674,62 @@ i.icss-rdrapery { top: 0.025em; border-bottom: solid 0.025em gray; border-left: solid 0.025em gray; - background-image: repeating-conic-gradient(var(--shade-color, currentColor) 0% 25%, rgba(71, 212, 255, 0) 0% 50%); + background-image: repeating-linear-gradient(to left, var(--shade-color, currentColor), var(--shade-color, currentColor) 75%, rgba(255,255,255,0) 100%); background-position: 0 0, 100% 100%; - background-size: 0.05em 0.05em; + background-size: 0.1em 0.1em; background-color: rgba(71, 212, 255, 0); } +i.icss-cdrapery { + width: 1.1em; + height: .9em; + background-color: transparent; + border: .05em solid transparent; + border-width: 0 .1em; + box-shadow: inset 0 0 0 .01em, inset 0 .01em 0 .07em, 0 .07em 0; + margin: .1em 0 .07em; +} + + i.icss-cdrapery:before { + width: 1.1em; + height: .2em; + border-bottom: .1em solid transparent; + box-shadow: inset 0 1em, 0 0em 0 -.1em; + top: -.05em; + left: -.09em; + } + + i.icss-cdrapery:after { + } + i.icss-cdrapery > span.icss-panel-left { + width: calc(var(--shade-position, 0%) * .5); + height: calc(100% - .05em); + display:inline-block; + position:absolute; + right: calc(50% - (var(--shade-position, 0%) *.5)); + left: 0em; + top: 0.025em; + border-bottom: solid 0.025em gray; + border-right: solid 0.025em gray; + background-image: repeating-linear-gradient(to left, var(--shade-color, currentColor), var(--shade-color, currentColor) 75%, rgba(255,255,255,0) 100%); + background-position: 0 0, 100% 100%; + background-size: 0.1em 0.1em; + background-color: rgba(71, 212, 255, 0); + transform: rotate(180deg); + } + i.icss-cdrapery > span.icss-panel-right { + width: calc(var(--shade-position, 0%) * .5); + height: calc(100% - .05em); + display: inline-block; + position: absolute; + left: calc(100% - ((var(--shade-position, 0%) *.5)) - .015em); + top: 0.025em; + border-bottom: solid 0.025em gray; + background-image: repeating-linear-gradient(to left, var(--shade-color, currentColor), var(--shade-color, currentColor) 75%, rgba(255,255,255,0) 100%); + background-position: 0 0, 100% 100%; + background-size: 0.1em 0.1em; + background-color: rgba(71, 212, 255, 0); + } + i.icss-shutter { width: 1.1em; @@ -777,6 +835,17 @@ i.icss-garage { background-color: rgba(71, 212, 255, 0); background-position:left bottom; } + i.icss-garage > span.icss-panel-left { + position: absolute; + display:inline-block; + border-radius:50%; + border:solid 1px white; + width: .1em; + height:.05em; + top: calc(var(--shade-position, 0%) - .32em); + background: white; + left: calc(50% - .05em); + } i.icss-lightbulb-o { width: .35em; height: .1em; diff --git a/data/index.html b/data/index.html index 1a8cd7f..ed27df2 100644 --- a/data/index.html +++ b/data/index.html @@ -3,11 +3,11 @@ - - - + + + - +
@@ -313,7 +313,8 @@ - + + @@ -327,7 +328,7 @@
-
+
my
diff --git a/data/index.js b/data/index.js index f4f9b28..26a312e 100644 --- a/data/index.js +++ b/data/index.js @@ -1196,7 +1196,7 @@ class Security { var security = new Security(); class General { - initialized = false; + initialized = false; appVersion = 'v2.1.5'; reloadApp = false; init() { @@ -1982,7 +1982,7 @@ class Somfy { divCtl += ' icss-window-shade'; break; } - divCtl += `" data-shadeid="${shade.shadeId}" style="--shade-position:${shade.flipPosition ? 100 - shade.position : shade.position}%;vertical-align: top;">`; + divCtl += `" data-shadeid="${shade.shadeId}" style="--shade-position:${shade.flipPosition ? 100 - shade.position : shade.position}%;vertical-align: top;">`; divCtl += shade.tiltType !== 0 ? `
` : ''; divCtl += `
`; divCtl += `
`; @@ -2718,10 +2718,22 @@ class Somfy { document.getElementById('divSunSensor').style.display = ''; break; case 5: + case 6: ico.classList.remove('icss-window-shade'); ico.classList.add('icss-garage'); document.getElementById('divSunSensor').style.display = 'none'; break; + case 7: + ico.classList.remove('icss-window-shade'); + ico.classList.add('icss-rdrapery'); + document.getElementById('divSunSensor').style.display = ''; + break; + case 8: + ico.classList.remove('icss-window-shade'); + ico.classList.add('icss-cdrapery'); + document.getElementById('divSunSensor').style.display = ''; + break; + } let tilt = ico.parentElement.querySelector('i.icss-window-tilt');