
apostolakisl
Members-
Posts
6949 -
Joined
-
Last visited
Everything posted by apostolakisl
-
Creating a Timer in ISY
apostolakisl replied to IT Solutions's topic in New user? Having trouble? Start here
I went back and looked at your screen shot below. Your program is not counting. You see the green is only a stripe on the left edge, not the full icon. This program can not stop running on its own. You have some other program or you did something manually to stop the counter. This program can not evaluate to "true" and be done on its own. On its own, it either runs true and keeps running true indefinitely (full solid green icon), or it runs false and is just a red stripe on the left edge (it will be solid red for a split second first). On its own, it can not run true and then quit. The only way to stop this program would be to have a "stop" command given to it either manually or by another program. Also if you make changes to it and save it that will also cause a "stop". -
Creating a Timer in ISY
apostolakisl replied to IT Solutions's topic in New user? Having trouble? Start here
@IT Solutions The "if" triggers every time the variable changes (state variable that is). If your 1 minute counter is working properly, then after 1 minute (prior to completing the 2 minute wait listed in the "then"), the program will retrigger (start over), the wait clause will terminate prior to completion, and no notification will be sent. This will continue to happen as long as the counter keeps changing by 1 in a period of time that is less than 2 minutes. As soon as the counter stays constant for 2 minutes at a value greater than 0, it will complete the wait clause and send the notification. I think your programs will do the same thing, just with a lot more complexity. This will also send you a notification when it stops counting because the heater turned off, so you might want to put a "stop the program I wrote" clause in the program that stops the counter on purpose. -
Creating a Timer in ISY
apostolakisl replied to IT Solutions's topic in New user? Having trouble? Start here
@IT Solutions You could write another program that sends you an email if the counter stops counting. Something like If $yourcountervariable is not 0 Then wait 2 minutes send notification that counter stopped counting repeat every 10 seconds turn on some light wait 2 seconds turn off some light This assumes you are using a state variable (not integer). What will happen is that once per minute, the "if" clause will restart the program, so the "wait 2 minutes" will never complete. But if the counter stops counting at any value above 0 for more than 2 minutes, you will get an email. -
Creating a Timer in ISY
apostolakisl replied to IT Solutions's topic in New user? Having trouble? Start here
@IT Solutions If the program in the program tree shows a solid green icon, then it is currently executing a "then" (solid red for "else"), or in your case, counting once per minute. Please note, this is different than a green strip at the left side of the icon which means that the last time it ran, it ran "then", but is currently not running anything. In my example below, "Elk Temp" is running a "then" loop (this posts the current outdoor temp to my Elk keypads once every 5 minutes), while "Disarm" is not currently running, but last time it did run it ran "true". Anyway, if it is is solid green, and the counter is not moving, then this is basically impossible unless your system has hung. ISY isn't like windows, it pretty much never "hangs", but I suppose it is possible. I don't think folder conditions or anything else matters here. If the icon is solid green, the "then" clause is running. The only other, and unlikely possibility, is you have some other program that keeps putting the variable back to whatever it is "stuck" on every time the counter tries to increase it. -
Creating a Timer in ISY
apostolakisl replied to IT Solutions's topic in New user? Having trouble? Start here
I'm quite sure you will just back up your ISY and then restore it to polisy. @Jimbo is writing the Elk node. You would have to ask him about Elk counters and custom values, at present that is not on his todo list. He pretty much has everything covered that is currently in the Elk ISY module plus he is going to add "last user". Access to tasks, custom values, and counters is not on the list. Jimbo seems to be pretty good at writing the node, however, and perhaps you can get him to add those things. -
Creating a Timer in ISY
apostolakisl replied to IT Solutions's topic in New user? Having trouble? Start here
As mentioned by @DennisC, the end point is that everything will co-exist on the Polisy hardware platform. Based on the push to get the Elk NS finished, I suspect they are pretty close to releasing the all in one Polisy solution. -
Creating a Timer in ISY
apostolakisl replied to IT Solutions's topic in New user? Having trouble? Start here
There is a partial list of node servers on this forum under "polyglot node servers". To see the full list you need to install polyglot (the node server host software) onto your raspberry pi (or similar) and browse the list. FYI, Elk is no longer going to be supported on ISY when it moves over to the new polisy hardware (polisy is the in-develpment isy next gen device). At that point you will need to use the Elk NS instead (which is currently in beta but working pretty well). Node Servers have the advantage of being able put all the nodes (for Elk a node would be any zone, output, armed status, or similar) into scenes. With the Elk node server (not the Elk module you currently have), you can put Elk zones/outputs/etc directly into scenes and skip the programs. So you might have an Elk zone that when violates turns a light on directly, no program needed. All of the nodes work that way. Like I could put an Elk armed status into a scene with Roomba. When I arm away, it would vacuum. Or I can directly link a light switch to an Elk output by putting them into the same scene (turn on light and output turns on). And so on with any of the nodes. -
Creating a Timer in ISY
apostolakisl replied to IT Solutions's topic in New user? Having trouble? Start here
Your timer sticking at 3 is really not possible. If the program shows solid green colored icon (not half green) it is currently running the repeat and will be counting once per minute. My best guess is that your admin console lost its connection and that the actual value was still counting. NS stands for node server. With a raspberry pi, Polisy, or other linux device running the node server software, you can create nodes on your isy for a whole slew of things. There are like 50 or 60 NS's now including everything from your roomba, ip cameras, tesla, pool equipment, etc to isy. If you move the reset to 0 into the else clause, it will change the counter reset from happening when the heater turns on, to when the heater turns off. One or the other may be best for you, or it may make no difference. I don't fully understand what you are using that number for. But if the point is to trigger a different program if and only if the number hits 60, it won't matter. If the point is to email the finished value when the heater has turned off, you would want to leave it as is. In that case, I would put the email notification trigger in the else of the program. -
Creating a Timer in ISY
apostolakisl replied to IT Solutions's topic in New user? Having trouble? Start here
This is the way I would do it. tes - [ID 008E][Parent 0093][Not Enabled] If Elk Zone 'zone' is Violated And Elk Zone 'zone' is not Normal Then $i.door.open.timer = 0 Repeat Every 1 minute $i.door.open.timer += 1 Else - No Actions - (To add one, press 'Action') If you want the resolution to be in 1 minute blocks. You could do seconds and divide by 60. -
Didn't see your original post, was looking at the quote. I didn't see you enabling another program, I thought you were trying to make it all one program, which while possible, would require a lot of confusing stuff. You are correct about the second program. If he wants the first Thursday to still turn lights on, then he needs to add a line that says "and time is 11:59:59 pm" into my program. Then it will trigger at 11:59:59 and disable the 3rd program 1 second earlier than yours. As I mentioned, he may need a time trigger in there anyway since I am not positive that ISY time data node server values are triggers. Need to test that.
-
You need to connect things with and's and or's and use parenthesis to make the above stuff work. However things get very complicated doing it that way. I would suggest instead 2 "enabler" programs that enable a 3rd program on the 3rd Thursday of November and disables that 3rd program on the first Thursday of January. That program will do the turning on/off of the lights per your sunrise/sunset schedule that you want, it won't contain any date info. if month is november and day of month is >14 and day of week is thursday Then enable 3rd program If month is january and day of week is Thursady (since it is the first Thursday you don't need > some number of days) Then disable 3rd program 3rd program If time is from/to whatever you want or time is the other from/to time you want Then turn lights on Else turn lighs off NOTE: The first program will run true also on the 4 (and if there is a 5th) Thursday of November. It won't matter. Similarly, the second program will run on every Thursday of January, but it won't matter. Enbaling a program that is already enbaled doesn't matter, and the same for disabling. EDIT: You might need a trigger in the first two programs. I'm not sure if the ISY time data info is a trigger. So you might need to put "and time is 1am" or something like that to get the program to check the other data.
-
If you have a polyglot running you can install the "ISY time data" node which has "days since unix epoch". Unix epoch is the number of days that have passed since Jan 1, 1970. Since this number just keeps counting day by day you can use it to divide by 30/remainder. In fact, you can use that value to divide/remainder for any interval you want. It also has minutes and hours since start of year so you could do the same thing with minutes and hours (though it would probably be wrong for the first interval on Jan 1)
-
Every 30 day program is fairly easy to do. Just use a variable that counts days then divide by 30 using the remainder function. Make sure you set the variable to "init" each time it rolls over to the next day so it isn't lost on a reboot. Set the ISY to "catch up" on reboot just in case you have a reboot at midnight. If the isy is off for more than the catch up time, however, it will fall back one day and you'll need to manually fix it. Probably not gonna happen too often if ever. New Program - [ID 016B][Parent 0093] If Time is 12:00:00AM (could be a different time if you want) Then $i.total_day += 1 $i.total_day Init To $i.total_day $i.30_day = $i.total_day $i.30_day %= 30 $i.30_day Init To $i.30_day Else - No Actions - (To add one, press 'Action') Now i.30_day will be variable that counts from 0 to 29 over 30 days. So your program would just be if i.30_day is 0 (or whatever 0-29 you want) and whatever else you want (like maybe a time of day), then charge your battery.
-
can nodelink run on a polisy?
-
Any way to control 20amp plugs for pool circulator
apostolakisl replied to ThisIsTheWay's topic in ISY994
Standard Insteon switchlinc on/off switch is rated for up to 1hp motor. -
I think you meant 192.168.0.255
-
I had this same problem a few years ago. When you link two accounts to Google Home it does not try to stop you. And it still works kind of sort of making it even more unclear what is going on. So if you want to share your link to ISY with your wife or whomever, you need to log them into your google account, not link their google account. Also, I just finished unlinking and relinking my home account. For reasons unkown it gave me permissions errors.
-
While you can't turn a scene on directly to a level, you can brighten or dim a scene. Not 100% sure if Alexa accepts that command (ie "dim scene xyz") but you certainly can do it from a scene controller such as a switchlinc or ISY. The problem of course is that all the devices in a scene get their own custom brightness level when the scene is turned on. I suppose if you had 2 devices in a scene with 1 device set to be 50% on and the other set to be 60% when you turn the scene "on", then you might think that turning the scene "on" to 50% would mean on light at 25% and the other at 30%. But, this gets a bit ambiguous. You might consider creating 2 or more scenes at various dimmed levels. Then name the scenes something like "bedroom lamps 50 percent" and "bedroom lamps". While it would seem as though saying "Bedroom lamps 50 percent" is telling the scene "Bedroom lamps" to only ramp up to 50%, it is actually a completely different scene.
-
Correct me if i am wrong. But it would seem that the temp virtual node has no affiliation with any particular variable. Set the temp at the node, the variable stays the same. Set the variable value, the node stays the same. It appears the only connection between a variable and temp node is if you use a program to transfer the value from one to the other (either direction). But this is not restricted to the "assigned" variable you use when configuring the node in polyglot.
-
While hours works for me on this one application, unless there is a way to let the user configure the label in polyglot, I think you would be better off with no label at all. Then people can make it whatever they want and label the node itself to clue in the user. I would leave the temp one as is, just add another one that is pretty much the same as the temp one but with no label (or user defined label).
-
Thanks for the update. The 1 decimal place works great. Any chance you can make a generic one? Or is it possible to be able to create your own label as part of the configuration? In my case, I'm looking for the label to be "hours". I could use it as is, but it would just be confusing when people go to set how many hours for something to run and the label says "Fahrenheit". It would be better for there to be no label at all rather than a label that incorrectly describes the value.
-
I would just call it "numeric value" or something totally generic. Certainly you could just use the "dimmer" node and just know that despite the label, you are not dimming a light. It would be there as a generic node that can track or set anything that can be controlled or tracked with a number. Humidity, RPM's, minutes, days, seconds, hours to set something to stay on, or off, or track how long it has been on/off, etc. The first thing I would use it for is to control the hvac at my church. Currently I have a variable that I set for the number of hours I want it to turn on the system. Before an event in the church that you know will last, for example, 2.5 hours, you set the variable to 2.5 and it counts down to off and shuts down the system. It would be much easier to train the ISY novices at the church to use a node rather than digging into variables and setting it there. Perhaps doing decimals doesn't work, but I could use minutes instead. Trouble is currently limited to 100 minutes using the dim level node or using hours I would be stuck with whole numbers. Below is the program I use currently, but like I said I have to set it in the variable section. It allows for setting down to 2 decimal places. The idea is to set it in 15 minute increments, like 3.25 for 3 hours 15 minutes. Manual Time to Unit Shut Down - [ID 003E][Parent 0049] If $s.Manual.Hours.To.Shutdown > 0 Then $s.Units.Running = 3 Wait 3 minutes $s.Manual.Hours.To.Shutdown -= 0.05 Else $s.Units.Running = 6 $s.Units.Running = 0 $s.Manual.Hours.To.Shutdown = 0