zerop
-
Joined
-
Last visited
Posts posted by zerop
-
-
Edited by zerop
I've been using my ISY for over 10 years now and it has been my main automation system for that entire time. I'm transitioning over to Home Assistant (HA) Yellow. Most of my devices are still Insteon so I'm keeping my ISY but all the automation will be done through HA. One thing I'm having trouble with doing solely in HA and am looking for some help. Any ideas if what I'm trying to do is possible?
I have a bathroom light switch called MasBathLight and an 8-button keypad called BedsideKeypad.
I have a scene called MasterBathroomLights. In the scene I have both MasBathLight and BedsideKeypad as controllers. This enables me to turn on/off the bathroom light using MasBathLight which is a switch right as you walk into the bathroom, or using BedsideKeypad which is located right next to the bed.
What I would like to do is when someone goes to sleep, adjust it so that whenever someone uses either switch (MasBathLight or BedsideKeypad) to turn on the lights, I'd like the lights to turn on to 15% only. To do this I need to adjust the following:
In the scene MasterBathroomLights, adjust controller device MasBathLight for MasBathLight on-level of 15% and also in the same scene adjust controller device BedsideKeypad for MasBathLight on-level to 15% (MasBathLight is the load). The actual on-level of the scene MasterBathroomLights does not need to be adjusted as I never call that scene from anything.
Here's what my program currently in the ISY looks like to do this.
In 'MasBathLight' Set 'MasBathLight' to 15% in 0.1 seconds, 1 retry
In 'BedsideKeypad' Set 'MasBathLight' to 15% in 0.1 seconds, 1 retry
Any ideas how I can make these adjustments using an API rest command? I've found several examples online but none of them have worked. Some include using the node of the scene and the node of the controller such as
rest/links/groups/<scene_node_id>/controllers/<controller_node_id>/responders/<responder_node_id>/update/cmd/DON/<on-level>
or
/rest/scenes/adjust/[controller_node_address]/[responder_node_address]/[level]
My current work-around is that I have a program in my ISY to do the adjustment that I need and I use HA to call that program using an API Rest command.
-
-
Edited by zerop
Is there a way to +1 to a variable using the rest command? I use the following to set the variable to 2 and everything works fine.
/rest/vars/set/1/18/2
I'd like to be able to increment the variable using the rest command. My current workaround is to have a program in the ISY that increments the variable ($VariableName += 1) in the "Then" part of a program and to use the rest command to run the program (/rest/programs/<programID>/runThen). I'd like to skip the program part.
I've tried /rest/vars/set/1/18/+1 but that doesn't work.
-
-
2 minutes ago, kclenden said:
Did it run false for values of 0.500 and greater? It seems like there is some funkiness going on with how the ISY handles comparisons between a node value and a program constant.
What happens if you change your process and first set a variable to equal 'DarkSky / Forecast 0' Rain Today Inches and then use that variable in your program's IF statement?
Yes, it runs false for values of 0.500 and greater.
That is exactly how I've fixed the problem. I set a variable equal to 'DarkSky / Forecast 0' Rain Today Inches first and then I run my other programs dependent upon that variable value rather than directly from the 'DarkSky / Forecast 0' Rain Today Inches node value.
-
I did some testing by running (if) this program manually and changed the Rain Today is X.XXX Inches, 0.1" at a time. It ran true for all values between 0" - 0.499".
RainL Copy Copy Copy - [ID 00F0][Parent 0069]
If
'DarkSky / Forecast 0' Rain Today is 0.000 Inches
Then
$RainTodayAmount = 'DarkSky / Forecast 0' Rain Today Inches
Else
- No Actions - (To add one, press 'Action')I then tried this program and it ran true.
RainL Copy Copy Copy Copy - [ID 00F1][Parent 0069]
If
'DarkSky / Forecast 0' Rain Today is 0.000 Inches
And 'DarkSky / Forecast 0' Rain Today >= 0.250 Inches
Then
$RainTodayAmount = 'DarkSky / Forecast 0' Rain Today Inches
Else
- No Actions - (To add one, press 'Action')But now I'm confused why this one ran false as the values used in this program were true in the first program above.
RainLL Copy Copy - [ID 00EE][Parent 0069]
If
'DarkSky / Forecast 0' Rain Today >= 0.250 Inches
And 'DarkSky / Forecast 0' Rain Today < 0.400 Inches
Then
$RainTodayAmount = 'DarkSky / Forecast 0' Rain Today Inches
Else
- No Actions - (To add one, press 'Action')
-
5 minutes ago, TJF1960 said:
If you take one of the programs that currently run false and change only the values in the condition to equal the program that runs true, does that program now run true as well?
Yes, and vice versa. I tried both. One program that correctly runs false, changed only the values in the condition to equal the program that runs true and now that programs also runs true. I did it the other way also. For the program that incorrectly runs true, I changed only the values in the condition to equal the program that runs false and now it runs false. Maybe I'll start narrowing the range to see if I can figure out what the amount of rain fall it thinks is happening.
-
Edited by zerop
Interestingly I think I had this same issue when I was using the OpenWeatherMap node before I tarted using the DarkSky node. I only used the OpenWeatherMap node for 2 days before it was decided it wasn't working and someone stated they would pull it from the PolyGlot Cloud store so I didn't get a chance to look into it further.
-
There must be a bug somewhere because when I run (if) the program manually it runs true but yet the $RainAmountToday variable gets set to 0.000
That's just not possible.
RainL - [ID 00D1][Parent 0119]
If
'DarkSky / Forecast 0' Rain Today >= 0.400 Inches
And 'DarkSky / Forecast 0' Rain Today < 0.550 Inches
Then
ScoreSet = 400
ScoreSubtract = 300
$RainToday = 1
$RainTodayAmount = 'DarkSky / Forecast 0' Rain Today Inches
Else
- No Actions - (To add one, press 'Action') -
6 hours ago, oberkc said:
I take it from a lack of response that most, like me, cannot find a programmatic reason why your program would run true under the set of conditions described. I guess one must conclude that it is possible that something else is calling the program (then path?), that somehow the conditions from darksky are not correctly translating, or there is a bug in the ISY software.
Is this program disabled? Is this program last run consistent with with the specified time at night when are calling it? When is your "$RainTodayAmountz" reset back to zero each day?
All seven programs are in a folder, the folder has a state variable set to "0" usually. At the specified time the folder state variable is set to "1" and all 7 programs called to run (if) then the folder state variable is set back to "0" again.
There is nothing else calling this program, I've check using the find/search. The program last run is consistent with when it is called to run as well as the $RainTodayAmount variable has been set to 0.00 at that same program call time. The $RainTodayAmount variable I put in there just for testing so it doesn't have an automatic reset. I have been manually adjusting it to different values each day and see when it changes and what it changes too.
-
3 hours ago, apostolakisl said:
Is the program that represents the correct rainfall also running true, or only this one?
I don't have a program for 0" of rain so no. The seven programs I have are only if there IS rain I subtract some points from a variable. If there's no rain then I add points dependent upon that day's weather conditions.
-
-
I've recently installed the DarkSky node for my new weather info as the climate module will be going away soon. It seems to be working fine. I have a series of programs that run late each night to check how much rain, if any there was that day. Depending on how much rain there was it adjusts a watering variable. Here's one of the programs (the one that is causing me trouble).
RainL - [ID 00D1][Parent 0119]
If
'DarkSky / Forecast 0' Rain Today >= 0.400 Inches
And 'DarkSky / Forecast 0' Rain Today < 0.550 Inches
Then
ScoreSet = 400
ScoreSubtract = 300
$RainToday = 1
$RainTodayAmount = 'DarkSky / Forecast 0' Rain Today Inches
Else
- No Actions - (To add one, press 'Action')I have 7 programs exactly like this one but the range of rainfall is different for each. 0" - 0.1" another for 0.1" - 0.25" another for 0.25" - 0.4", etc. At a specific time at night I run (if) all 7 programs. There is no overlap in the conditions (see greater than equal to in example above) so only one of them should run true.
For the past couple of nights this one program (example above) has run true even though there has been no rain. I even included the variable $RainTodayAmount just as a test to see what the ISY thinks the rain amount was. If this program runs true then the variable $RainTodayAmount should be between 0.4 and 0.55. I checked this morning and the variable is "0.00". I set the accuracy to 0.00.
I tried deleting the program and recreating it from scratch. Same result. I searched all my other programs to make sure I wasn't calling this program from somewhere else...nothing.
Why is this running true? If I run (if) it manually now it runs true even with the following weather info (see attached).
ISY994i v.5.0.16
-
51 minutes ago, bpwwer said:
Step #4 was not necessary and may account for some of the issues you're having. Polyglot takes care of all interaction with the ISY, including adding nodes and setting up the node server configuration. Changing things like the ID and password will cause problems with the ISY/Polyglot communication. Given that it's difficult now to know what state everything is in, it may be best to delete everything and start over.
Steps 1, 2, and 3 are all correct. After that your step 4 should have been to restart the Admin Console. Once the Admin Console is restarted, all the nodes should show up and start populating with data. Not all fields will necessarily have data, some like wind gust are optional and OpenWeatherMap may or may not send that data.
You can try stopping and restarting the node server from the dashboard and then restarting the Admin Console and see if it all starts working, but depending on what you've changed, it may not work and deleting and re-installing would be the only solution.
The logging level determines how much information is sent to the node server log file. Off means that almost nothing is sent to the log. You can change that via the drop down menu.
All of the other weather service node servers are similar. They differ slightly in the data that they provide, the sources they collect data from, and the forecasting algorithms that they use.
On your advice I started over and I did not do step 4.
I have weather data but it doesn't say if it's online. The fact that it's got data makes me think it is online. But I don't have any forecast info. Looks like just today's info.
What does "Rain 1/3hr" and "Snow 1/3hr" mean?
-
Edited by zerop
Hello,
I need help getting OpenWeatherMap up and running as the Climate Module will no longer work soon.
I've found a number of topics on the subject but many of them are for Raspberry Pi's and others are not very detailed. At least not that I could find. Could someone point me to a step-by-step thread or move this question to the appropriate place or something? Is OpenWeatherMap the best/easiest one to use as I see there are several weather options?
Thanks!
Here's what I've been able to figure out.
I went through this process once and was able to get weather data on my ISY with 2 days of forecast data but there were some items that didn't seem to work properly so aftger some fiddling I deleted and uninstalled everything and started over. Now I can't get back to what I had before.
1. I made an account on OpenWeatherMap.org and I have an API Key
2. I went to https://polyglot.isy.io and went to the store and installed OpenWeatherMap into available slot #1 (this is my first time doing anything with nodes)
3. I configured it for my location (used zip code), I provided the API key from my OpenWeatherMap.org registration/account, I set the numbers of forecast days to 2 and saved my changes.
4. I rebooted my ISY (running v.5.0.16 Firmware and UI) and went to "Node Serves" in the drop down menu Selected "OpenWeatherMap" and "Add All Nodes"
I have some weather data but I only seem to have current data, no forecast. Also, under "NodeSever Online" it is blank. Is it online? Another field that's blank is the "Gust Speed".
Do I need to configure the node server in the ISY interface? If I go to the "Node Servers" drop down and select "Configure" and select "OpenWeatherMap" that is in the [01] slot I get the following (see screen shot below). Do I need to make any changes there or just leave it as it as that was loaded/made for me? I tried changing the User ID and password to that of my OpenWeatherMap account and it didn't seem to help anything.
And what does the "Logging Level" - Off mean?
Please Help!!
-
-
-
-
4 hours ago, bretta said:
Yes, I noticed the mistake and realized it was just that, but my point is, the "else" line should not be necessary at all. You could leave it blank. The else line is only for outside the specified hours, except outside those hours, the program is not active.
This program
would do the exact same thing as this program
Programs with a time frame aren't "active" and then "not active" in the sense that you're thinking (I think). At 4am the program will run once. It will adjust the setting in the light switch so that when the light switch is turned on the light will only go to 20% on. If there is nothing in the "else" part of the program then the light switch is never adjusted back so that when the light switch is turned on the light will go to 100% on. If there is nothing in the "else" the light switch will always be turned on to 20%. In the second example program, the program will run a second time at 6am but it will do nothing. Hence, in my program I have in the "else" part something setting the on level of the light back to 100% after 6am. A program with a time frame like this will only run twice (unless it is called/run by another program or if you have a state variable also added in the "if" section and the state variable changes values). It will run the "then" part at the start of the time frame and the "else" part at the end of the time frame.
-
Edited by zerop
4 hours ago, bretta said:Yes, I noticed the mistake and realized it was just that, but my point is, the "else" line should not be necessary at all. You could leave it blank. The else line is only for outside the specified hours, except outside those hours, the program is not active.
I need the "else" line to set the on level back to 100% outside of those hours. If there is no "else" line then the light will never go on to 100%.
-
24 minutes ago, bretta said:
Thanks mate. That works. I initially thought this did not work, but found an errant scene I'd placed the light in during all my messing around that was interfering with the program.
The "else" line is unnecessary, as if you're outside the time period specified, the program is off anyway, so won't react.
The switch setting under the device listing in the main screen should be set to how you want it to react outside the specified time period, eg, 100%, 0.1 ramp rate, etc.
This is probably the default settings when first linked, but I'd messed the hell out of them during my attempts to solve this.The "else" line in the last two screen shots had a mistake in them. The "then" line should set it to 20% and the "else" line should show setting it back to 100%. See the first screen shot for my actual program.
-
Edited by zerop
If you look at my previous posts in this thread on how to accomplish this, it is for using firmware version 4. I've since upgraded to v5 and here is how to do it in v5. You don't use "Adjust Scene" but instead use "Your Device".
Here's how to do it (use "on level").
DON'T use "On" like this (subtle difference).
Here are all your options such as changing ramp rates too.

-
I did not even recall having to create the scene. I thought you could create such an action for any individual device, whether in a scene or not. I guess I remembered incorrectly.
Not in V5 for sure. Possibly in v4, the old firmware.
Yes, you have to create the scene in v4.
-
In the interest of helping out anyone else in the future here's the message I sent.
You have to create the scene for it to work but it isn't used in the program. All you do is put that one device/light into a scene all by itself as a controller. You use the "adjust scene" in the program but you don't actually adjust the scene you "adjust" the device in the scene.
This is the scene

This is the correct programming.

This is the WRONG programming.





Adjust Controller of Scene Using API Rest
in ISY994
·
Edited by zerop
Apologies. I'm using a rest command from Home Assistant to run a program on the ISY. That ISY program is what actually does the adjusting of the screen. I'd like to adjust the scene directly from Home Assistant and therefore not require a program on the ISY. So yes, I will still need the ISY but I don't want the ISY to be running/needing any programs.