CoRE - Community's own Rule Engine
[Description coming soon]
CoRE - Community's own Rule Engine
License: GNU General Public License v3.0
As pistons become more complex, logic frequently changes through the development. It would be useful to be able to move the order of Conditions, and more so, Actions. (As it is now, I re-create an Action and shift everything "down" to make room in an old slot for a new Action that I may want earlier.
String manipulation could get crazy, but all that I find necessary would be conversion of a string value to a number for additional arithmetic and evaluations.
https://community.smartthings.com/t/smart-weather-station-tile-app/2710/129?u=cal7
Is it containing words followed by the number? Perhaps I can modify CoRE's casting function to "extract" all digits from the string and convert them to a number?
Line 878, 'happenning' should be 'happening'
When using the action "Adjust level" with grouped Sonos for a single speaker, the volume will be adjusted by the piston for all the speakers.
The initial trigger increases the volume or decreases the volume a lot more than the expected value for all the speakers, then the next triggers will increase / decrease the volume with the correct value but for all the grouped speakers.
Please see below.
Log Trace:
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:46:02 PM: trace ╔═══ Task processing took 926ms
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:46:02 PM: trace ║░░░ Removing any existing ST safety nets
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:46:02 PM: info ║░░░ Executing virtual command adjustLevel (839ms)
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:46:01 PM: trace ║░░░ Installing ST safety net
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:46:01 PM: trace ║░░░ Rescheduling time triggers
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:46:01 PM: trace ╚═══ Processing tasks (v0.1.119.20160714)
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:46:01 PM: trace ╔═══ Event processing took 74ms
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:46:01 PM: info ║░░░ ♦ Basic Piston changed state to true ♦
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:46:01 PM: trace ╚═══ Processing event switch for device Dining Room Dimmer Switch with id d5238591-3d96-402a-9f5a-f6236ee1ab96, value on, generated on Sat Jul 16 01:46:00 UTC 2016, about 714ms ago (v0.1.119.20160714)
Log Debug:
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:52 PM: debug ╔═══ Done in 750ms
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:52 PM: info ║░░░ Executing virtual command adjustLevel (481ms)
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:51 PM: debug ║░░░ Processing command task [taskId:1, time:1468633671866, idx:1, marker:1468633671928, created:1468633671906, ownerId:1, data:[p:[[d:5, t:number, i:0]]], type:cmd, deviceId:546656ff-29e0-4551-9c39-bd196821bfd8]
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:51 PM: debug ║░░░ Found 1 task due at this time
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:51 PM: debug ║░░░ Scheduling actions for condition #0. State did change.
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:51 PM: info ║░░░ ♦ Basic Piston changed state to true ♦
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:51 PM: debug ║░░░ Primary IF block evaluation result is true
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:51 PM: debug ║░░░ Scheduling actions for condition #1. State did change.
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:51 PM: debug ║░░░ Setting non-matching device list to []
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:51 PM: debug ║░░░ Setting matching device list to []
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:51 PM: debug ║░░░ ♣ Function eval_trg_changes_to for Dining Room Dimmer Switch's switch [on] changes to 'on' returned true
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:51 PM: debug ║░░░ Event eligibility for the primary IF block is 2 - ELIGIBLE (triggers required, event is a trigger)
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:51 PM: debug ╚═══ Received a primary block device event
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:48 PM: debug ╔═══ Done in 213ms
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:48 PM: debug ║░░░ Scheduling actions for condition #-1. State did change.
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:48 PM: info ║░░░ ♦ Basic Piston changed state to false ♦
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:48 PM: debug ║░░░ Primary IF block evaluation result is false
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:48 PM: debug ║░░░ Scheduling actions for condition #1. State did NOT change.
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:48 PM: debug ║░░░ Setting non-matching device list to []
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:48 PM: debug ║░░░ Setting matching device list to []
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:48 PM: debug ║░░░ ♠ Function eval_trg_changes_to for Dining Room Dimmer Switch's switch [off] changes to 'on' returned false
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:47 PM: debug ║░░░ Event eligibility for the primary IF block is 2 - ELIGIBLE (triggers required, event is a trigger)
7046db9c-f7ee-4cbe-ab02-3bdc2c05bf28 9:47:47 PM: debug ╚═══ Received a primary block device event
Let me know...
Need the ability to have it monitor energy devices. Would also like the ability to issue refresh commands on energy devices since I currently use RM to refresh my solar values with a periodic refresh every 15 mins but only from sunrise to sunset
When trying to save a new piston (pressing "done after filling out all needed fields), the ST app will say "An unexpected error has occurred". Looking at Live Logging, there is a Null Pointer Exception at line 8440. My piston isn't using any time-based rules.
Using a T-Mobile Samsung Galaxy S7, running Android 6.0.1. SmartThings Hub v2.
v0.2.145.20160822
This started just today. I pulled latest and published it to no affect. I've been using this app for about a week and haven't had this problem. Suddenly today, I went to update a piston and found when I click on a piston in CoRE I get the spinning icon for a couple seconds and then it simply goes away. I can no longer open my existing pistons, add pistons, or open the settings. Global variables and statistics work fine, however.
Hi,
As requested, I am replying with my issue on GitHub.
The trigger "stays" seems to be working under "IF" but not under "OR IF", "ELSE IF"...
Please see screenshot below:
https://1drv.ms/i/s!AjRjK_1unBAzlgQVIhN1PIcRMhAD
Under "OR-IF", the trigger "stays" is not firing the "When true..." or "THEN..."
I can see countdown, but then it goes under and "over due" or "past due" until it resets and does not execute conditional actions...
Thank you for your support!
Title in GitHub shows
CoRE - Communit's own Rule Engine
Should be Community's own Rule Engine
Sorry to be pedantic ;-)
For some reason CoRE does not pick up my Netatmo device for CarbonDioxide. It says "you can't currently add this".
Netatmo device here: https://github.com/SmartThingsCommunity/SmartThingsPublic/blob/6ac174c2f3ef5bf3bd598076c62a88dd9519ca64/devicetypes/dianoga/netatmo-basestation.src/netatmo-basestation.groovy
ST documentation here: http://docs.smartthings.com/en/latest/capabilities-reference.html?highlight=water#carbon-dioxide-measurement
At first I thought it was a data type mismatch (docs say number, DTH says text, CoRE looks for decimal) but I know groovy usually handles that.
At a loss, let me know if I can try anything (@bridaus on community).
thanks!
Could you add offsets for sunset/sunrise in the Piston/Action Restriction section?
When you select 'advanced options' at bottom of piston page and then enable the debugging switch to 'on' you then have to reselect advanced options to go in and select which debugging notifications you want, it would be a better UI experience if you didnt have to reselect the advanced options and the debugging menu stayed open
When you go to select a device for an action, the second item under convenience is "Control", but tapping it displays a blank page with the error message "You are not authorized to perform the requested operations". This happens on Android, I'm not sure about iOS
It's harmless, but it's been there for a while so I figured I should mention it.
If you do not choose "First" or some value for aggregation, the variable is not set. But it is not required. It should either be required, or defaulted to some value if not selected.
Adrian,
Feature request to be able to duplicate a Piston so we have a starting place to work from rather than starting from scratch
Rick
Mode trigger Changes Away From does not appear to work. Example and logs at https://community.smartthings.com/t/beta-milestone-1-core-communitys-own-rules-engine/48189/558?u=kckopp
I think I may be losing my mind...
I have a "simple" piston that looks like:
If Denon is ON and Theater Riser Lights are ON
then
Turn on virtual switch Theater_Mode
Set mode to Moving playing in theater
else
turn off virtual switch
set mode to Home
The virtual switch seems to work fine - turns on and off as expected. The mode does the opposite.
When the conditions are true it changes mode to home and when false it sets it to movie playing in theater.
Seems backwards and very strange.
I need the ability to be able to use seconds in the wait period.
Command spelling issue for Thermostat Fan Mode
http://docs.smartthings.com/en/latest/capabilities-reference.html#thermostat-fan-mode around line 5304
Support triggers off of more than one button per device. RM supported 20 buttons per. Great for minimotes and double/triple tap switches. I just did a quick install and test of the app and didn't see it, but if it's already in and I missed it, sorry!
Awesome work so far btw. Thanks!
Problem resolved by SmartThings.
When using "Trigger" using "Comparison" "Changes to" + "Value" "on" + "Interaction" "Physical", piston is not triggering actions.
I get the following error:
babb4c21-cfda-4b3e-aaca-eea07bc3a08b 10:28:00 AM: error ║ ERROR: Error evaluating condition: java.lang.NullPointerException: Cannot get property 'physical' on null object
babb4c21-cfda-4b3e-aaca-eea07bc3a08b 10:27:58 AM: debug ║ ♣ Function eval_cond_is_one_of for Home's mode [Morning] is one of '[Awake, Morning]' returned true
babb4c21-cfda-4b3e-aaca-eea07bc3a08b 10:27:58 AM: error ║ ERROR: Error evaluating condition: java.lang.NullPointerException: Cannot get property 'physical' on null object
babb4c21-cfda-4b3e-aaca-eea07bc3a08b 10:27:58 AM: debug ║ ♠ Function eval_cond_is_less_than for Kitchen Multisensor's illuminance [288] is less than '60' returned false
babb4c21-cfda-4b3e-aaca-eea07bc3a08b 10:27:43 AM: debug ║ ♣ Function eval_cond_is_one_of for Home's mode [Morning] is one of '[Awake, Morning]' returned true
babb4c21-cfda-4b3e-aaca-eea07bc3a08b 10:27:43 AM: error ║ ERROR: Error evaluating condition: java.lang.NullPointerException: Cannot get property 'physical' on null object
Just to confirm i have physical switches selected in that case.
Thank you for the support!
if you add an 'If...' condition, then remove it by unselecting the capability, the trigger number still increments, so future 'If...' conditions for the same piston skip numbers. im not sure if this also implies a data leak ie the condition is not being removed from the st database?
phone: iphone 6+
ios: 9.3.4
hub type: hub v2.0, rev e, us
hub firmware: 000.015.00003
core: v0.2.13c.20160814
As the number of Pistons grow in the phone app, the option to add a new Piston keeps moving down the page. Consider moving the Add a CoRE piston option to the top and freeze it there
Thanks, Rick
Can you add?
When setting both global and local variables, it would be nice to be able to choose the type of variable similar to the Set variable task. Currently, only strings and decimals can be initiated in the local and global variables.
Use case: When trying to initialize a dimmer level from a local variable, the dimmer wouldn't set correctly because it was looking for a number and found a decimal instead.
When using $minutes as a variable, the displayed result for a 2 digit minute is 26, or 31 for example. When it's a single digit like 6 mins, it shows just as 6. There is a space preceding the first digit where it would normally show the leading 0, it should show as 06.
Current hr:min 8: 6
Desired hr:min 8:06
Thanks, Rick
Hey ADY,
When setting up CORE to do a web call. Its mandatory that I give it some sort of a variable. But for zoneminder https://zoneminder.readthedocs.io/en/stable/api.html with its api I just make a call to a specific URL and it does what I want it to do. Can we remove the mandatory setting on that field? Or perhaps have a different POST method for like POST-NOTHING? Thank you for your help with this and you're code is awesome as always.
It would make sharing pistons very easy and would be good for backing them up
the wait action under each device when used does not work, the subsequent action is processed without the delay.
Pause or cancel any scheduled actions when restrictions are in effect.
Do you have a separate git repo for the angular app you're using for the Dashboard? If so, where is it so that I may fork it? I'd love to toss in some front-end love once in a while, and though I can get all the source it would be nice to have a formal pull request mechanism. Thanks!
Would it be useful to have a pause symbol next to any pistons that are paused. Saves having to open each piston to check which are running or not.
This isn't a bug or feature request, but you said I should post it here so it doesn't get lost...
Any suggestions on how to implement the logic below or if it's even possible at this point?
IF Contact changes to closed
set x = 0
while contact is closed and x < 5
wait 4 minutes
for 0 to x
using siren
speakText("beep ${x * 50}")
wait 1 second
x++
I'm trying to avoid having to do something like:
If Contact is closed
Using Siren
wait 4 minutes
beep 0
wait 4 minutes
beep 50
wait 1 second
beep 50
wait 4 minutes
beep 100
wait 1 second
beep 100
wait 1 second
beep 100
wait 4 minutes
beep 150
wait 1 second
beep 150
wait 1 second
beep 150
wait 1 second
beep 150
etc...
else
using siren
cancel pending actions
Using core to turn off lights when my wife leaves the house. If the lights are already out, it turns them on instead of leaving them off.
So say I have a piston that evaluates condtion A and when condition A becomes true I then want to force it to go evaluate another piston.
In my case I have a piston that turns on my kids space heaters but only from 8p-7a and only if we're home. So say we get home at 10pm and I want the heaters to turn on so i then tell my piston that fires when we get home to go evaluate that rule so their space heaters turn on.
Possible Bug - When attempting to save "local and global state" of Philips Hue bulbs (RGB/W Capability). It appears that "Capture state to local store" never actually saves anything but 'null' in this scenario and several others that previously worked. I am able to save state to a local variable and then load it without issue; however, variables don't give me the ability to check for "Only if state is empty".
Live Log:
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:30 PM: debug ╔═══ Done in 532ms
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:30 PM: trace ║╔══ Task processing took 525ms
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:30 PM: trace ║║░░ Removing any existing ST safety nets
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:30 PM: info ║║░░ Executing virtual command loadStateLocally (42ms)
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:30 PM: debug ║║░░ Storing state variable :::8f4938e2-ea30-4053-98ae-006e91246c37::: with value null
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:30 PM: debug ║║░░ Load from state: attributes are [hue, saturation, level, switch], values are null
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:30 PM: debug ║║░░ Processing command task [taskId:2, time:1471747410650, idx:2, created:1471747400685, ownerId:6, data:[p:[[d:[hue, saturation, level, switch], t:attributes, i:0], [d:true, t:bool, i:1]]], type:cmd, deviceId:8f4938e2-ea30-4053-98ae-006e91246c37]
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:30 PM: info ║║░░ Executing virtual command loadStateLocally (53ms)
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:30 PM: debug ║║░░ Storing state variable :::f5cf5350-4682-4af5-9d82-c5ee794cce20::: with value null
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:30 PM: debug ║║░░ Load from state: attributes are [hue, saturation, level, switch], values are null
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:30 PM: debug ║║░░ Processing command task [taskId:2, time:1471747410650, idx:1, created:1471747400685, ownerId:6, data:[p:[[d:[hue, saturation, level, switch], t:attributes, i:0], [d:true, t:bool, i:1]]], type:cmd, deviceId:f5cf5350-4682-4af5-9d82-c5ee794cce20]
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:30 PM: debug ║║░░ Found 2 tasks due at this time
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:30 PM: trace ║║░░ Installing ST safety net
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:30 PM: trace ║║░░ Rescheduling time triggers
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:30 PM: trace ║╚══ Processing tasks (v0.2.142.20160820)
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:30 PM: debug ╚═══ Received a time event
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:20 PM: debug ╔═══ Done in 341ms
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:20 PM: trace ║╔══ Task processing took 94ms
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:20 PM: trace ║║░░ Removing any existing ST safety nets
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:20 PM: info ║║░░ Scheduling ST job to run in 10.0s, at Sat, Aug 20 2016 @ 8:43 PM MDT
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:20 PM: trace ║║░░ Rescheduling time triggers
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:20 PM: trace ║╚══ Processing tasks (v0.2.142.20160820)
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:20 PM: trace ║╔══ Event processing took 245ms
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:20 PM: info ║║░░ :diamonds: Latching Piston changed state to false :diamonds:
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:20 PM: debug ║║░░ Secondary IF block evaluation result is true
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:20 PM: debug ║║░░ :clubs: Function eval_trg_changes_to for Upstairs Motion Sensor's motion [inactive] changes to 'inactive' returned true
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:20 PM: debug ║║░░ Event eligibility for the secondary IF block is 2 - ELIGIBLE (triggers required, event is a trigger)
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:20 PM: debug ║║░░ Primary IF block evaluation result is false
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:20 PM: debug ║║░░ :spades: Function eval_trg_changes_to for Upstairs Motion Sensor's motion [inactive] changes to 'active' returned false
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:20 PM: debug ║║░░ Event eligibility for the primary IF block is 2 - ELIGIBLE (triggers required, event is a trigger)
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:20 PM: trace ║╚══ Processing event motion for device Upstairs Motion Sensor with id 43f38e09-dbe3-4270-9bce-6d6ca9a958fc, value inactive, generated on Sun Aug 21 02:43:19 UTC 2016, about 1106ms ago (v0.2.142.20160820)
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:20 PM: debug ╚═══ Received a dual block device event
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:09 PM: debug ╔═══ Done in 2080ms
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:08 PM: debug ║║░░ Processing command task [taskId:1, time:1471747388151, idx:4, created:1471747388160, marker:1471747388164, ownerId:8, data:[p:[[d:Crimson, t:enum, i:0], [d:null, t:text, i:1], [d:null, t:number, i:2], [d:null, t:number, i:3], [d:null, t:number, i:4]]], type:cmd, deviceId:8f4938e2-ea30-4053-98ae-006e91246c37]
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:08 PM: trace ║║░░ Rescheduling time triggers
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:08 PM: debug ║║░░ Found 2 tasks due at this time
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:08 PM: trace ║╚══ Processing tasks (v0.2.142.20160820)
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:07 PM: info ║║░░ :diamonds: Latching Piston changed state to true :diamonds:
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:07 PM: debug ║║░░ Event eligibility for the secondary IF block is 2 - ELIGIBLE (triggers required, event is a trigger)
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:07 PM: debug ║║░░ Primary IF block evaluation result is true
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:07 PM: debug ║║░░ :clubs: Function eval_trg_changes_to for Upstairs Motion Sensor's motion [active] changes to 'active' returned true
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:07 PM: trace ║╚══ Processing event motion for device Upstairs Motion Sensor with id 43f38e09-dbe3-4270-9bce-6d6ca9a958fc, value active, generated on Sun Aug 21 02:43:05 UTC 2016, about 1306ms ago (v0.2.142.20160820)
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:07 PM: debug ║║░░ Event eligibility for the primary IF block is 2 - ELIGIBLE (triggers required, event is a trigger)
0e50ced2-b9d6-4d7e-9cbb-bd4cdc2e7e21 8:43:07 PM: debug ╚═══ Received a dual block device event
Dashboard view:
Comment was left on ST forum regarding putting 'Add a CoRE Piston' at top of main page. Along with this could you make the order of pistons editable instead of only being alphabetical?
Hello!
For my test purpose, I created a simulated virtual switch. I created a simple piston 👍
IF motion changes to active
THEN
Turn on light
ELSE
wait 3 mins
Turn off light
Restriction : Execute only when all switch OFF (my simulated switch).
Result : When I enter the room, the light goes on...
I tried 'Prevent already scedule task...' but it's not working. When I turn on the switch, I'm not in the room.
Anytime I attempt to hit Done within a new or current Piston, or leaving the CoRE smart app, I get an error that pops up tin eh app An unexpected error error occurred
. The logs within IDE spit this one out java.lang.NullPointerException: Cannot get property 'app' on null object @ line 8355
. It has been working without issues and just one day stopped in recent weeks and finally had time to try to debug further. The pistons that are running still work, but creation of new pistons will not work because of the incompletion of the save of the piston with the Done. I get the same issue when trying to remove a piston or even attempting to completely remove CoRE. Let me know what other info I can provide to help with my issue.
The Flash settings won't save unless the On and Off Intervals are >= 1000.
Anything under that probably wouldn't work so I'm assuming this isn't a bug, but you might want to either prompt the user for seconds and programmatically convert to milliseconds or mention the valid range in the input's label or description to make it less confusing for users.
Thanks.
Consider any number of numbers by using a delimiter, such as *. Could be any delimiter really but * is what many ST users are use to
Thanks, Rick
When selecting a music player i.e. Kodi I have to manually type in the condition. If you need help with this please reach out to JoshLyon since he wrote the Kodi device handler.
I have a Simple piston that uses a time-based condition to turn on and off my furnace fan (time between 10:35 PM CDT and 5:35 AM CDT). The piston isn't executing at the 5:35 AM CDT time.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.