Why can't I get this Shelley to pick up. All the wiring looks fine, works fine at the switch but cannot discover the device.
Do I have to bridge L and 1?
View attachment 685329
All looks good to at least pick up the device
South Africa’s biggest forum. Discuss, discover, and connect with thousands of members.
Why can't I get this Shelley to pick up. All the wiring looks fine, works fine at the switch but cannot discover the device.
Do I have to bridge L and 1?
View attachment 685329
It just does not discover. Do these have an indicator light?
Think it's that switches neutral hooked itnl up to another switch and it works.
But I'm having an issue with its functionality. One of the 2 way switches has to be on for Shelley to work.
This is my wiring diagram. View attachment 685471View attachment 685473
You could do that in a function with minimal code, if the goal is to have less nodes in the flow.I'm still deeply confused how Node Red doesn't have something as simple as the basic time to us as an event condition.
What I mean is one that isn't the single Input of a flow but can be put in line of another input.
I thought the time-range-switch was the answer but the problem is that it does too much when out of the zone and puts everything off the whole time.
I want to simply do...
Presence (Binary Sensor) > Time > Turn On
Presence (Binary Sensor) > Time > Turn Off
Instead, I'm now basically doing the same as I did in HA which is...
Presence > Time > Turn On > Delay > Turn Off.
The delay works in a perfect world if I got home at exactly 19:00 or before and wanted it off at 23:00.
But now if I say get home at 20:00 and it detects the presence change now the off will run an hour later.
You have the capability of setting a variable for the context of the entire flow.:Okay seems the node-red-contrib-time-range-switch was the answer.
![]()
Nice thing now, and what I was hoping for is that I can stop the entire automation from happening should the state change inside those 40 seconds.
This wasn't possible with Home Assistant as the delays only work after the trigger so if someone was impatient (in the car on said morning) and pressed the buttons to open stuff meanwhile then it would trigger it again and you'd have a door closing which was open but HA believes it was closed since it checked and actioned 40 seconds before.
var count=flow.get('count') || 0; // get variable
flow.set('count',count); // set the variable
You have the capability of setting a variable for the context of the entire flow.:
JavaScript:var count=flow.get('count') || 0; // get variable flow.set('count',count); // set the variable
Thus you can have a second flow that looks for an event and sets this variable.
After you delay, simply check this variable value and abort if required.
Simply add an Inject node to joined at the call off service set the time trigger to 23:00 and it will switch it off immaterial if the delay has been reached or not yet.I'm still deeply confused how Node Red doesn't have something as simple as the basic time to us as an event condition.
What I mean is one that isn't the single Input of a flow but can be put in line of another input.
I thought the time-range-switch was the answer but the problem is that it does too much when out of the zone and puts everything off the whole time.
I want to simply do...
Presence (Binary Sensor) > Time > Turn On
Presence (Binary Sensor) > Time > Turn Off
Instead, I'm now basically doing the same as I did in HA which is...
Presence > Time > Turn On > Delay > Turn Off.
The delay works in a perfect world if I got home at exactly 19:00 or before and wanted it off at 23:00.
But now if I say get home at 20:00 and it detects the presence change now the off will run an hour later.
This is a simplified diagram:You have completely lost me in one single seemingly simple post.
That Flow is the one that actually works exactly as I would like it to, everything else is still a cock up.

[
{
"id": "7d34e824.449118",
"type": "tab",
"label": "Flow 2",
"disabled": false,
"info": ""
},
{
"id": "b1c69f1f.00145",
"type": "server-state-changed",
"z": "7d34e824.449118",
"name": "Door Opened",
"server": "378bb7a2.0cc518",
"version": 1,
"entityidfilter": "",
"entityidfiltertype": "exact",
"outputinitially": false,
"state_type": "str",
"haltifstate": "open",
"halt_if_type": "str",
"halt_if_compare": "is",
"outputs": 2,
"output_only_on_state_change": true,
"x": 176.5,
"y": 134,
"wires": [
[
"494a41e3.a5a67"
],
[]
]
},
{
"id": "494a41e3.a5a67",
"type": "function",
"z": "7d34e824.449118",
"name": "flow.set('opened',true); // set the variable",
"func": "flow.set('opened',true); // set the variable\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 546.5,
"y": 133,
"wires": [
[]
]
},
{
"id": "75be8c15.448914",
"type": "server-state-changed",
"z": "7d34e824.449118",
"name": "Arm Alarm",
"server": "378bb7a2.0cc518",
"version": 1,
"entityidfilter": "",
"entityidfiltertype": "exact",
"outputinitially": false,
"state_type": "str",
"haltifstate": "on",
"halt_if_type": "str",
"halt_if_compare": "is",
"outputs": 2,
"output_only_on_state_change": true,
"x": 146.5,
"y": 283,
"wires": [
[
"95bd2d59.e7905"
],
[]
]
},
{
"id": "95bd2d59.e7905",
"type": "function",
"z": "7d34e824.449118",
"name": "flow.set('opened',false); // set the variable",
"func": "flow.set('opened',false); // set the variable\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 410.5,
"y": 281,
"wires": [
[
"9978c76b.ad8188"
]
]
},
{
"id": "9978c76b.ad8188",
"type": "delay",
"z": "7d34e824.449118",
"name": "",
"pauseType": "delay",
"timeout": "35",
"timeoutUnits": "seconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"x": 364.5,
"y": 472,
"wires": [
[
"b9f06c47.8c07d"
]
]
},
{
"id": "b9f06c47.8c07d",
"type": "switch",
"z": "7d34e824.449118",
"name": "Was anything opened - expression: flow.get('opened') = false",
"property": "flow.get('opened')",
"propertyType": "jsonata",
"rules": [
{
"t": "false"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 748.5,
"y": 437,
"wires": [
[
"8372fd95.ab038"
]
]
},
{
"id": "8372fd95.ab038",
"type": "debug",
"z": "7d34e824.449118",
"name": "Arm Alarm",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"x": 1112.5,
"y": 417,
"wires": []
},
{
"id": "378bb7a2.0cc518",
"type": "server",
"z": "",
"name": "Home Assistant",
"legacy": false,
"hassio": false,
"rejectUnauthorizedCerts": true,
"ha_boolean": "y|yes|true|on|home|open",
"connectionDelay": true
}
]
This is a simplified diagram:
View attachment 686897
Create a new flow sheet, copy this code and import it onto the sheet for your perusal.
JSON:[ { "id": "7d34e824.449118", "type": "tab", "label": "Flow 2", "disabled": false, "info": "" }, { "id": "b1c69f1f.00145", "type": "server-state-changed", "z": "7d34e824.449118", "name": "Door Opened", "server": "378bb7a2.0cc518", "version": 1, "entityidfilter": "", "entityidfiltertype": "exact", "outputinitially": false, "state_type": "str", "haltifstate": "open", "halt_if_type": "str", "halt_if_compare": "is", "outputs": 2, "output_only_on_state_change": true, "x": 176.5, "y": 134, "wires": [ [ "494a41e3.a5a67" ], [] ] }, { "id": "494a41e3.a5a67", "type": "function", "z": "7d34e824.449118", "name": "flow.set('opened',true); // set the variable", "func": "flow.set('opened',true); // set the variable\nreturn msg;", "outputs": 1, "noerr": 0, "x": 546.5, "y": 133, "wires": [ [] ] }, { "id": "75be8c15.448914", "type": "server-state-changed", "z": "7d34e824.449118", "name": "Arm Alarm", "server": "378bb7a2.0cc518", "version": 1, "entityidfilter": "", "entityidfiltertype": "exact", "outputinitially": false, "state_type": "str", "haltifstate": "on", "halt_if_type": "str", "halt_if_compare": "is", "outputs": 2, "output_only_on_state_change": true, "x": 146.5, "y": 283, "wires": [ [ "95bd2d59.e7905" ], [] ] }, { "id": "95bd2d59.e7905", "type": "function", "z": "7d34e824.449118", "name": "flow.set('opened',false); // set the variable", "func": "flow.set('opened',false); // set the variable\nreturn msg;", "outputs": 1, "noerr": 0, "x": 410.5, "y": 281, "wires": [ [ "9978c76b.ad8188" ] ] }, { "id": "9978c76b.ad8188", "type": "delay", "z": "7d34e824.449118", "name": "", "pauseType": "delay", "timeout": "35", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "x": 364.5, "y": 472, "wires": [ [ "b9f06c47.8c07d" ] ] }, { "id": "b9f06c47.8c07d", "type": "switch", "z": "7d34e824.449118", "name": "Was anything opened - expression: flow.get('opened') = false", "property": "flow.get('opened')", "propertyType": "jsonata", "rules": [ { "t": "false" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 748.5, "y": 437, "wires": [ [ "8372fd95.ab038" ] ] }, { "id": "8372fd95.ab038", "type": "debug", "z": "7d34e824.449118", "name": "Arm Alarm", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "x": 1112.5, "y": 417, "wires": [] }, { "id": "378bb7a2.0cc518", "type": "server", "z": "", "name": "Home Assistant", "legacy": false, "hassio": false, "rejectUnauthorizedCerts": true, "ha_boolean": "y|yes|true|on|home|open", "connectionDelay": true } ]
It's nothing workable, but to give you an idea how 2 different flows can interact with the same variable.
Simply add an Inject node to joined at the call off service set the time trigger to 23:00 and it will switch it off immaterial if the delay has been reached or not yet.
Anybody using Silux products? Local Company.
http://www.siluxcontrol.com/index.php
I'm considering using the Thermo Stabilizer instead of geyserwise to monitor and control my geyser. Open for other suggestions as well.