OK, Thanks. I keep reading about these virtual switches (which I have in the IDE) but I have no idea how to implement them in the new scheme of things? Deeper down the rabbit hole I go!
There arenāt any variables in the Rules but you can use a virtual switch to hold a binary status. My approach to this problem actually uses a virtual motion sensor as it simplifies the logic. I turn a light on if there is motion between fifteen minutes before sunset and and thirty minutes after sunrise. I also turn the light off if motion goes inactive as my Ikea motion sensors give me a three minute delay that suits me just fine. This is actually my code, such as it is ā¦
name: '[R] Motion: Landing'
actions:
- if:
and:
- equals:
left:
device:
devices:
- &landing_motion xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- &landing_virtual xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
component: main
capability: motionSensor
attribute: motion
right:
string: active
aggregation: Any
- between:
value:
time:
reference: Now
start:
time:
reference: Sunset
offset:
value:
integer: -15
unit: Minute
end:
time:
reference: Sunrise
offset:
value:
integer: 30
unit: Minute
then:
- command:
devices:
- &landing_shelf_light xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
commands:
- component: main
capability: switch
command: on
else:
- if:
and:
- equals:
left:
device:
devices:
- *landing_motion
- *landing_virtual
component: main
capability: motionSensor
attribute: motion
right:
string: inactive
aggregation: All
- between:
value:
time:
reference: Now
start:
time:
reference: Sunset
offset:
value:
integer: -15
unit: Minute
end:
time:
reference: Sunrise
offset:
value:
integer: 34
unit: Minute
then:
- command:
devices:
- *landing_shelf_light
commands:
- component: main
capability: switch
command: off
My buttons have push, held and double options. I use the push for a toggle on/off on the motion-controlled light. It does look like there is such a thing as a toggle command but if so it doesnāt seem to be available to the punters yet. Iāve stripped down my actual code here ā¦
name: '[R] Button: Landing'
actions:
- if:
equals:
left:
device:
devices:
- &landing_button xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
component: main
capability: button
attribute: button
right:
string: pushed
then:
- if:
equals:
left:
device:
devices:
- &landing_shelf_light xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
component: main
capability: switch
attribute: switch
trigger: Never
right:
string: off
then:
- command:
devices:
- &landing_virtual xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
commands:
- component: main
capability: switch
command: on
- command:
devices:
- *landing_shelf_light
commands:
- component: main
capability: switch
command: on
else:
- command:
devices:
- *landing_virtual
commands:
- component: main
capability: switch
command: off
- command:
devices:
- *landing_shelf_light
commands:
- component: main
capability: switch
command: off
The ālanding_virtualā virtual motion sensor has both switch and motion capabilities so I can treat it like a switch in this rule.
I actually have multiple copies of this rule, one for each button I have doing the same thing. In webCoRE you can differentiate between āany button is pushedā (condition) and āany button gets pushedā (trigger) but if there is a way of doing the same with Rules I hadnāt spotted it at the time.
Last, but by no means least. If the light is turned off by any mechanism (app, ActionTiles, Google etc) I need to clear the manual override.
name: '[R] Virtual: Landing'
actions:
- if:
and:
- equals:
left:
device:
devices:
- &landing_shelf_light xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
component: main
capability: switch
attribute: switch
right:
string: off
- equals:
left:
device:
devices:
- &landing_virtual xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
component: main
capability: motionSensor
attribute: motion
trigger: Never
right:
string: active
then:
- command:
devices:
- *landing_virtual
commands:
- component: main
capability: switch
command: off
I wrote āI could probably turn off triggering on the motion sensor there, but that was documented after I last pondered the rule at all.ā but it turns out I had pondered it and had turned it off. I do have some unnecessary triggering going on somewhere.
While I am here, here is how I turn off a switch if it has been running for 45 minutes. You can do something similar to turn off lights if motion remains inactive for a while.
name: '[R] Fan Timer: Bedroom'
actions:
- if:
remains:
equals:
left:
device:
devices:
- &bedroom_fan xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
component: main
capability: switch
attribute: switch
right:
string: on
duration:
value:
integer: 45
unit: Minute
then:
- command:
devices:
- *bedroom_fan
commands:
- component: main
capability: switch
command: off
The [R] in the name of the rule just helps me identify rules in the app history.
You can use it to make a new virtual device with Edge drive [ST Edge] vEdge Creator: a virtual device generator for end users
but maybe your question wasnāt how to make them, but how to implement them in the new scheme of things sorry for that I donāt have an answer, still too far for me
No, it will not be an automatic switch because it is a community written driver.
But once the automatic transition occurs it will be easy to switch over to the community driver.
According to the FAQ, devices WILL be migrated to community Edge drivers if the fingerprint matches.
That is good to know. But he will still need to manually add the community written edge driver to his hub.
Yup, just install it and should be good to go.
thanks for this
installed the driver
from Channel āMariano Shared Beta Driverā
Should I worry that this is beta? Ie if it migrates to this driver could the driver then disappear?
Anyone know if there is an edge replacement for
Google Sheets Logging smartapp? Or will that just die when Groovy IDE dies?
One a driver is installed it canāt be removed by the developer, but it can be automatically updated by the developer.
Devices have state. I often use a Virtual Switch to store such.
Iām doing that with the built-in routines. I have one routine for button pushing and another for motion. I control when those routines are active using a virtual switch as a precondition. The result is this:
If Between 10pm and Sunrise (Nighttime virtual switch is on)
If Motion is detected and the light is not already on, turn it on at 1% and auto turn off after 2 mins
If Button is toggled up and the light is not already on, turn it on at 100% and donāt turn it off
Turn on Nighttime virtual switch at 10pm and turn it off at Sunrise
I have the GE motion switch/dimmers which support Occupancy, Vacancy, and Manual modes. Mine operate in vacancy mode where motion does not active the light, only the button.
There is also the Sharptools rules engine which integrates with Smartthings, however, your rules arenāt running locally on your hub. All three of my routines above operate locally on my hub and are wicked fast when activated.
JDRoberts can comment better than I can, however, my understanding is that the framework for developing new SmartApps is not complete so all existing Groovy SmartApps die when the IDE goes away. ST is converting SmartLighting and SevereWeather into plugins so they will live on. One popular SmartApp is Lock User Manager (LUM) from Rboy and they post status here Migration FAQ's which gives you a flavor for how things are going.
I have a bunch of devices with no standard fingerprints, below is an example. There work perfectly under Groovy (without custom device handlers, but sometimes requiring manual device handlers selection) and quite a few people on here use them. Generally from brands like Aubess and intended for Tuya. Can these be linked to the Edge drivers replacing the IDE drivers they work fine with or will they all become useless?
Data: application: 41
- endpointId: 01
- manufacturer: _TZ3000_mx3vgyea
- model: TS000F
- zigbeeNodeType: ROUTER
Raw Description: 01 0104 0100 01 08 0000 0003 0004 0005 0006 000A E000 1000 01 0019
Ok, So I had though the new start date was 10/15, not 9/30. However, a friend (who just started with Hubitat) told me heād seen comments about it happening already. So I logged into the IDE and yes, one of my drivers had been switched. Iām not enrolled in beta and had not loaded new drivers, deciding to take the wait and see (and pray) approach. I confirmed it in the app as well. At first offline, due to a dead battery (a bali shade remote, which I rarely use), so I replaced the battery, confirmed the remote worked fine and then after 5-10 minutes it showed up again as active in the app and appeared to function (battery level only). In the IDE, it shows up as cloud and active though. Is all the IDE info no longer valid once moved to Edge? Has anyone else seen a diver update?
have you added any new devices in the past couple of months? (I canāt remember the date they started). Adding new devices or re-adding existing ones should get Edge Drivers unless you are using custom device handlers.
Yes, you can not rely on IDE for Edge devices⦠no routing, no ID#, shows as Unknown Device in routing tables for non-Edge devices, etc.
Also, many cloud-to-cloud integrations would display as Placeholder in IDE reflecting the new architecture of the platform.
no, this device has been on the system fora couple of years with no changes. Iāve added other things a few months ago, but they all showed up as the older DTHs. I know this one just m,oved this week as I checked it about a week ago and there were no Edge drivers at that time.
Iām wondering that since the device had been offline due to a dead battery, possibly for some time, if the hub had to add the device back, causing it to pick up the new driver.
But it was offline a week or so ago, when I checked (and tried to document) all of my devices. And the battery was dead at that time, And it was not an edge driver. This driver would have been a logical first one to implement as if it got screwed up it would have little impact. I never got my other set of blinds set up with the remote, so I canāt tell if both would have been upgraded at the same time, which would have been expected.