diff --git a/FileSets/v2.80~33/PageSettingsRelay.qml b/FileSets/v2.80~33/PageSettingsRelay.qml index 522e26e6..fcf34a63 100644 --- a/FileSets/v2.80~33/PageSettingsRelay.qml +++ b/FileSets/v2.80~33/PageSettingsRelay.qml @@ -138,6 +138,16 @@ MbPage { bind: "com.victronenergy.system/Relay/5/State" show: hasRelay5 } + MbSubMenu { + id: conditions + description: qsTr("Temperature sensors") + item: VBusItem { value: relayPage.summary } + show: relayFunction.value === 4 || relay1Function.value === 4 + subpage: PageSettingsRelayTempSensors { + id: relayPage + title: qsTr("Temperature sensors") + } + } MbEditBox { id: relay0name @@ -168,17 +178,6 @@ MbPage { show: hasRelay1 } - MbSubMenu { - id: conditions - description: qsTr("Temperature sensors") - item: VBusItem { value: relayPage.summary } - show: relayFunction.value === 4 || relay1Function.value === 4 - subpage: PageSettingsRelayTempSensors { - id: relayPage - title: qsTr("Temperature sensors") - } - } - MbEditBox { id: relay2name description: qsTr("Relay 3 Name") diff --git a/FileSets/v2.80~37/PageSettingsRelay.qml b/FileSets/v2.80~37/PageSettingsRelay.qml new file mode 100644 index 00000000..90c17b71 --- /dev/null +++ b/FileSets/v2.80~37/PageSettingsRelay.qml @@ -0,0 +1,243 @@ +//////// modified to +//////// add 6 relays for Raspberry PI +//////// custom relay name for Relay Overview +//////// show/hide relay in Relay Overview + +import QtQuick 1.1 +import com.victron.velib 1.0 +import "utils.js" as Utils + +MbPage { + id: pageRelaySettings + title: qsTr("Relay") + property string bindPrefix: "com.victronenergy.settings" + property VBusItem relay1Item: VBusItem { bind: "com.victronenergy.system/Relay/1/State" } + property bool hasRelay1: relay1Item.valid + + property VBusItem relay2Item: VBusItem { bind: "com.victronenergy.system/Relay/2/State" } + property bool hasRelay2: relay2Item.valid + property VBusItem relay3Item: VBusItem { bind: "com.victronenergy.system/Relay/3/State" } + property bool hasRelay3: relay3Item.valid + property VBusItem relay4Item: VBusItem { bind: "com.victronenergy.system/Relay/4/State" } + property bool hasRelay4: relay4Item.valid + property VBusItem relay5Item: VBusItem { bind: "com.victronenergy.system/Relay/5/State" } + property bool hasRelay5: relay5Item.valid + + property VBusItem relay0NameItem: VBusItem { bind: Utils.path(bindPrefix, "/Settings/Relay/0/CustomName") } + property VBusItem relay1NameItem: VBusItem { bind: Utils.path(bindPrefix, "/Settings/Relay/1/CustomName") } + property VBusItem relay2NameItem: VBusItem { bind: Utils.path(bindPrefix, "/Settings/Relay/2/CustomName") } + property VBusItem relay3NameItem: VBusItem { bind: Utils.path(bindPrefix, "/Settings/Relay/3/CustomName") } + property VBusItem relay4NameItem: VBusItem { bind: Utils.path(bindPrefix, "/Settings/Relay/4/CustomName") } + property VBusItem relay5NameItem: VBusItem { bind: Utils.path(bindPrefix, "/Settings/Relay/5/CustomName") } + + function relayName (nameItem, relayNumber) + { + var prefix, suffix + if (nameItem.valid && nameItem.value != "") + { + prefix = nameItem.value + " (" + suffix = ")" + } + else + { + prefix = "" + suffix = "" + } + if (relayNumber == 1) + return prefix + (hasRelay1 ? qsTr("Relay 1") : qsTr("Relay")) + suffix + qsTr (" On") + else + return prefix + qsTr("Relay ") + relayNumber + suffix + qsTr (" On") + } + + model: VisualItemModel { + MbItemOptions { + id: relayFunction + description: hasRelay1 ? qsTr("Function (Relay 1)") : qsTr("Function") + bind: Utils.path(bindPrefix, "/Settings/Relay/Function") + possibleValues:[ + MbOption { description: qsTr("Alarm relay"); value: 0 }, + MbOption { description: qsTr("Generator start/stop"); value: 1 }, + MbOption { description: qsTr("Tank pump"); value: 3 }, + MbOption { description: qsTr("Manual"); value: 2 }, + MbOption { description: qsTr("Temperature"); value: 4 } + ] + } + + MbItemOptions { + description: qsTr("Alarm relay polarity") + bind: Utils.path(bindPrefix, "/Settings/Relay/Polarity") + show: relayFunction.value === 0 + possibleValues: [ + MbOption { description: qsTr("Normally open"); value: 0 }, + MbOption { description: qsTr("Normally closed"); value: 1 } + ] + } + + MbSwitch { + id: relaySwitch + // Use a one-way binding, because the usual binding: + // checked: Relay.relayOn + // will be broken when the switched toggled, and changes in the relayOn property made + // elsewhere will not change the state of the switch any more. + Binding { + target: relaySwitch + property: "checked" + value: Relay.relayOn + when: true + } + enabled: userHasWriteAccess + name: qsTr("Alarm relay On") + onCheckedChanged: Relay.relayOn = checked; + show: relayFunction.value === 0 + } + + MbSwitch { + id: manualSwitch + name: relayName (relay0NameItem, 1) + bind: "com.victronenergy.system/Relay/0/State" + show: relayFunction.value === 2 // manual mode + } + + MbItemOptions { + id: relay1Function + description: hasRelay1 ? qsTr("Function (Relay 2)") : qsTr("Function") + bind: Utils.path(bindPrefix, "/Settings/Relay/1/Function") + show: hasRelay1 + possibleValues:[ + MbOption { description: qsTr("Manual"); value: 2 }, + MbOption { description: qsTr("Temperature"); value: 4 } + ] + } + MbSwitch { + id: manualSwitch1 + name: relayName (relay1NameItem, 2) + bind: "com.victronenergy.system/Relay/1/State" + show: hasRelay1 && relay1Function.value === 2 + } + MbSwitch { + id: manualSwitch2 + name: relayName (relay2NameItem, 3) + bind: "com.victronenergy.system/Relay/2/State" + show: hasRelay2 + } + MbSwitch { + id: manualSwitch3 + name: relayName (relay3NameItem, 4) + bind: "com.victronenergy.system/Relay/3/State" + show: hasRelay3 + } + MbSwitch { + id: manualSwitch4 + name: relayName (relay4NameItem, 5) + bind: "com.victronenergy.system/Relay/4/State" + show: hasRelay4 + } + MbSwitch { + id: manualSwitch5 + name: relayName (relay5NameItem, 6) + bind: "com.victronenergy.system/Relay/5/State" + show: hasRelay5 + } + + MbSubMenu { + id: conditions + description: qsTr("Temperature control rules") + show: relayFunction.value === 4 || relay1Function.value === 4 + subpage: Component { + PageSettingsRelayTempSensors { + id: relayPage + title: qsTr("Temperature control rules") + } + } + } + + MbEditBox { + id: relay0name + description: qsTr("Relay 1 Name") + item.bind: "com.victronenergy.settings/Settings/Relay/0/CustomName" + show: item.valid && relayFunction.value === 2 // manual mode + maximumLength: 32 + enableSpaceBar: true + } + MbSwitch { + id: showRelay0 + name: qsTr("Show Relay 1 in overview") + bind: "com.victronenergy.settings/Settings/Relay/0/Show" + } + + MbEditBox { + id: relay1name + description: qsTr("Relay 2 Name") + item.bind: "com.victronenergy.settings/Settings/Relay/1/CustomName" + show: item.valid + maximumLength: 32 + enableSpaceBar: true + } + MbSwitch { + id: showRelay1 + name: qsTr("Show Relay 2 in overview") + bind: "com.victronenergy.settings/Settings/Relay/1/Show" + show: hasRelay1 + } + + MbEditBox { + id: relay2name + description: qsTr("Relay 3 Name") + item.bind: "com.victronenergy.settings/Settings/Relay/2/CustomName" + show: item.valid + maximumLength: 32 + enableSpaceBar: true + } + MbSwitch { + id: showRelay2 + name: qsTr("Show Relay 3 in overview") + bind: "com.victronenergy.settings/Settings/Relay/2/Show" + show: hasRelay2 + } + + MbEditBox { + id: relay3name + description: qsTr("Relay 4 Name") + item.bind: "com.victronenergy.settings/Settings/Relay/3/CustomName" + show: item.valid + maximumLength: 32 + enableSpaceBar: true + } + MbSwitch { + id: showRelay3 + name: qsTr("Show Relay 4 in overview") + bind: "com.victronenergy.settings/Settings/Relay/3/Show" + show: hasRelay3 + } + + MbEditBox { + id: relay4name + description: qsTr("Relay 5 Name") + item.bind: "com.victronenergy.settings/Settings/Relay/4/CustomName" + show: item.valid + maximumLength: 32 + enableSpaceBar: true + } + MbSwitch { + id: showRelay4 + name: qsTr("Show Relay 5 in overview") + bind: "com.victronenergy.settings/Settings/Relay/4/Show" + show: hasRelay4 + } + + MbEditBox { + id: relay5name + description: qsTr("Relay 6 Name") + item.bind: "com.victronenergy.settings/Settings/Relay/5/CustomName" + show: item.valid + maximumLength: 32 + enableSpaceBar: true + } + MbSwitch { + id: showRelay5 + name: qsTr("Show Relay 6 in overview") + bind: "com.victronenergy.settings/Settings/Relay/5/Show" + show: hasRelay5 + } + } +} diff --git a/FileSets/v2.80~37/PageSettingsRelay.qml.orig b/FileSets/v2.80~37/PageSettingsRelay.qml.orig new file mode 100644 index 00000000..dabaf6e2 --- /dev/null +++ b/FileSets/v2.80~37/PageSettingsRelay.qml.orig @@ -0,0 +1,91 @@ +import QtQuick 1.1 +import com.victron.velib 1.0 +import "utils.js" as Utils + +MbPage { + id: pageRelaySettings + title: qsTr("Relay") + property string bindPrefix: "com.victronenergy.settings" + property VBusItem relay1Item: VBusItem { bind: "com.victronenergy.system/Relay/1/State" } + property bool hasRelay1: relay1Item.valid + + model: VisualItemModel { + MbItemOptions { + id: relayFunction + description: hasRelay1 ? qsTr("Function (Relay 1)") : qsTr("Function") + bind: Utils.path(bindPrefix, "/Settings/Relay/Function") + possibleValues:[ + MbOption { description: qsTr("Alarm relay"); value: 0 }, + MbOption { description: qsTr("Generator start/stop"); value: 1 }, + MbOption { description: qsTr("Tank pump"); value: 3 }, + MbOption { description: qsTr("Manual"); value: 2 }, + MbOption { description: qsTr("Temperature"); value: 4 } + ] + } + + MbItemOptions { + description: qsTr("Alarm relay polarity") + bind: Utils.path(bindPrefix, "/Settings/Relay/Polarity") + show: relayFunction.value === 0 + possibleValues: [ + MbOption { description: qsTr("Normally open"); value: 0 }, + MbOption { description: qsTr("Normally closed"); value: 1 } + ] + } + + MbSwitch { + id: relaySwitch + // Use a one-way binding, because the usual binding: + // checked: Relay.relayOn + // will be broken when the switched toggled, and changes in the relayOn property made + // elsewhere will not change the state of the switch any more. + Binding { + target: relaySwitch + property: "checked" + value: Relay.relayOn + when: true + } + enabled: userHasWriteAccess + name: qsTr("Alarm relay On") + onCheckedChanged: Relay.relayOn = checked; + show: relayFunction.value === 0 + } + + MbSwitch { + id: manualSwitch + name: hasRelay1 ? qsTr("Relay 1 On") : qsTr("Relay On") + bind: "com.victronenergy.system/Relay/0/State" + show: relayFunction.value === 2 // manual mode + } + + MbItemOptions { + id: relay1Function + description: hasRelay1 ? qsTr("Function (Relay 2)") : qsTr("Function") + bind: Utils.path(bindPrefix, "/Settings/Relay/1/Function") + show: hasRelay1 + possibleValues:[ + MbOption { description: qsTr("Manual"); value: 2 }, + MbOption { description: qsTr("Temperature"); value: 4 } + ] + } + + MbSwitch { + id: manualSwitch1 + name: qsTr("Relay 2 On") + bind: "com.victronenergy.system/Relay/1/State" + show: hasRelay1 && relay1Function.value === 2 // manual + } + + MbSubMenu { + id: conditions + description: qsTr("Temperature control rules") + show: relayFunction.value === 4 || relay1Function.value === 4 + subpage: Component { + PageSettingsRelayTempSensors { + id: relayPage + title: qsTr("Temperature control rules") + } + } + } + } +} diff --git a/changes b/changes index d04c1083..a46d5869 100644 --- a/changes +++ b/changes @@ -1,3 +1,6 @@ +v5.6: + added support for Venus OS v2.80~37 + v5.5: added support for Venus OS v2.80~33 added Temperature sensor relay mode diff --git a/gitHubInfo b/gitHubInfo new file mode 100644 index 00000000..3435a5c5 --- /dev/null +++ b/gitHubInfo @@ -0,0 +1 @@ +kwindrem:latest diff --git a/version b/version index 4ef789b0..ef353b3e 100644 --- a/version +++ b/version @@ -1 +1 @@ -v5.5 +v5.6