mirror of
https://github.com/rstrouse/ESPSomfy-RTS.git
synced 2025-12-13 02:52:11 +01:00
Add dry contact support for IO Remote and Relays #165
This commit is contained in:
parent
87995bf707
commit
bb36ed0f82
9 changed files with 194 additions and 122 deletions
|
|
@ -293,8 +293,8 @@
|
|||
<option value="0">RTS</option>
|
||||
<option value="1">RTW</option>
|
||||
<option value="2">RTV</option>
|
||||
<option value="8">Relay</option>
|
||||
<option value="9">Remote</option>
|
||||
<option value="8">IO-Relay</option>
|
||||
<option value="9">IO-Remote</option>
|
||||
</select>
|
||||
<label for="selShadeProto">Protocol</label>
|
||||
</div>
|
||||
|
|
@ -306,12 +306,12 @@
|
|||
<label for="selShadeBitLength">Bit Length</label>
|
||||
</div>
|
||||
<div id="divGPIOControl" class="field-group">
|
||||
<div class="field-group" style="">
|
||||
<div id="divGPIOUp" class="field-group" style="">
|
||||
<select id="selShadeGPIOUp" data-bind="gpioUp" data-datatype="int" style="width:70px;">
|
||||
</select>
|
||||
<label for="selShadeGPIOUp">UP</label>
|
||||
</div>
|
||||
<div class="field-group" style="">
|
||||
<div id="divGPIODown" class="field-group" style="">
|
||||
<select id="selShadeGPIODown" data-bind="gpioDown" data-datatype="int" style="width:70px;">
|
||||
</select>
|
||||
<label for="selShadeGPIODown">Down</label>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
var errors = [
|
||||
{ code: -10, desc: "Pin setting in use for Transceiver" },
|
||||
{ code: -11, desc: "Pin setting in use for Ethernet Adapter" },
|
||||
{ code: -12, desc: "Pin setting in use on another motor" }
|
||||
{ code: -10, desc: "Pin setting in use for Transceiver. Output pins cannot be re-used." },
|
||||
{ code: -11, desc: "Pin setting in use for Ethernet Adapter. Output pins cannot be re-used." },
|
||||
{ code: -12, desc: "Pin setting in use on another motor. Output pins cannot be re-used." }
|
||||
]
|
||||
document.oncontextmenu = (event) => {
|
||||
if (event.target && event.target.tagName.toLowerCase() === 'input' && (event.target.type.toLowerCase() === 'text' || event.target.type.toLowerCase() === 'password'))
|
||||
|
|
@ -3112,15 +3112,25 @@ class Somfy {
|
|||
valid = false;
|
||||
}
|
||||
if (obj.proto === 8 || obj.proto === 9) {
|
||||
if (obj.gpioUp === obj.gpioDown) {
|
||||
ui.errorMessage(document.getElementById('divSomfySettings'), 'For GPIO controlled motors the up and down GPIO selections must be unique.');
|
||||
valid = false;
|
||||
}
|
||||
}
|
||||
if (obj.proto === 9) {
|
||||
if (obj.gpioMy === obj.gpioUp || obj.gpioMy === obj.gpioDown) {
|
||||
ui.errorMessage(document.getElementById('divSomfySettings'), 'For GPIO controlled motors the up and down and my GPIO selections must be unique.');
|
||||
valid = false;
|
||||
switch (obj.shadeType) {
|
||||
case 5: // Garage 1-button
|
||||
if (obj.proto !== 9 && obj.gpioUp === obj.gpioDown) {
|
||||
ui.errorMessage(document.getElementById('divSomfySettings'), 'For GPIO controlled motors the up and down GPIO selections must be unique.');
|
||||
valid = false;
|
||||
}
|
||||
break;
|
||||
case 9: // Dry contact.
|
||||
break;
|
||||
default:
|
||||
if (obj.gpioUp === obj.gpioDown) {
|
||||
ui.errorMessage(document.getElementById('divSomfySettings'), 'For GPIO controlled motors the up and down GPIO selections must be unique.');
|
||||
valid = false;
|
||||
}
|
||||
else if (obj.proto === 9 && (obj.gpioMy === obj.gpioUp || obj.gpioMy === obj.gpioDown)) {
|
||||
ui.errorMessage(document.getElementById('divSomfySettings'), 'For GPIO controlled motors the up and down and my GPIO selections must be unique.');
|
||||
valid = false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (valid) {
|
||||
|
|
|
|||
|
|
@ -167,20 +167,27 @@
|
|||
#somfyShade[data-shadetype="6"] #divStepSettings {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#somfyShade[data-proto="9"][data-shadetype="5"] #divGPIOUp,
|
||||
#somfyShade[data-proto="9"][data-shadetype="5"] #divGPIOMy,
|
||||
#somfyShade[data-proto="8"][data-shadetype="5"] #divGPIOMy,
|
||||
#somfyShade[data-proto="9"][data-shadetype="9"] #divGPIOUp,
|
||||
#somfyShade[data-proto="9"][data-shadetype="9"] #divGPIOMy,
|
||||
#somfyShade[data-proto="8"][data-shadetype="9"] #divGPIOUp {
|
||||
display: none;
|
||||
}
|
||||
.group-draggable,
|
||||
.shade-draggable {
|
||||
height:32px;
|
||||
border-top:solid 2px transparent;
|
||||
cursor:grab;
|
||||
height: 32px;
|
||||
border-top: solid 2px transparent;
|
||||
cursor: grab;
|
||||
}
|
||||
.group-draggable.dragging *,
|
||||
.group-draggable.over *,
|
||||
.shade-draggable.dragging *,
|
||||
.shade-draggable.over * {
|
||||
pointer-events: none;
|
||||
}
|
||||
.group-draggable.over,
|
||||
.shade-draggable.over {
|
||||
border-top: solid 2px var(--shade-color, '#00bcd4');
|
||||
}
|
||||
.group-draggable.dragging *,
|
||||
.group-draggable.over *,
|
||||
.shade-draggable.dragging *,
|
||||
.shade-draggable.over * {
|
||||
pointer-events: none;
|
||||
}
|
||||
.group-draggable.over,
|
||||
.shade-draggable.over {
|
||||
border-top: solid 2px var(--shade-color, '#00bcd4');
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue