hart2hart Posted April 16, 2022 Posted April 16, 2022 Thanks for the Node server. I water my lawn leading up to sunrise so no other water is used at that time. I’d like to calculate water usage between sprinklers on and sprinklers off. It’s not clear if current variables could do this but from watching them with sink turned on and off it’s not clear to me. If already possible, how? If not, could it be added?
Javi Posted April 16, 2022 Posted April 16, 2022 A few of us are going to try this when the watering season starts. @stevehoyt has some ideas, maybe he will share. Depending on your sprinkler controller the methods will very. Below are 2 controllers with PG3 node servers which can make it easier, but will also work with programs and variables by checking water usage while running (time/day). https://forum.universal-devices.com/forum/323-opensprinkler/ https://forum.universal-devices.com/forum/287-rainmachine/
Jimbo.Automates Posted April 16, 2022 Posted April 16, 2022 Also, Rachio has a PG2 node server, hopefully it will be moved to PG3 sometime.Sent from my Pixel 6 Pro using Tapatalk
hart2hart Posted April 16, 2022 Author Posted April 16, 2022 Thanks. Don’t have a sophisticated sprinkler controller. I use ISY programs to control ex-flora devices to turn sprinklers on and off so hopefully be able to use Flume to get the water used. 1
stevehoyt Posted April 16, 2022 Posted April 16, 2022 Here is how I do it. See program below. I will add a few comments. I have variables $tmp set up for expected value, circuit running, and actual flow. In the "then" part below, I am mostly using it for debug purposes right now, and to set the variables for which circuit is running and its expected value. The expected value I get from my rain machine. Not sure what exflora has. If you turn the circuit in a program, you could skip all of my "then" part. Also you most likely know circuit and expected usage. The else gets triggered when the circuit stops running. I then sample the flume gallons variable to see volume used. Remember that the flume Node server polls based on 2 things. The long poll is how often it queries flume. The current interval is the number of minutes that the usage reflects. So if you want GPM you divide (flume value)/ ( current poll interval). I take actual value and save it to a variable then divide by sample rate. I then save it in a tmp variable and send these off to another program to compare actual and expected use. Feel free to ask any questions. RZ1 Check Kiwi - [ID 0024][Parent 0013] If 'RainMachine: / Zone 1 - Kiwis' Status is Running Then Wait 1 minute $TMP_flow_EXP = $RZ01EXP $TMP_Cir_on = 1 $TMP_Flow_Act = 0 $Flume_Current = 'FlumeWater / Flume Sensor 6697386597803890' Current US gallons Send Notification to 'Steve Mail' content 'Circuit Flow' Else $Flume_Current = 'FlumeWater / Flume Sensor 6697386597803890' Current US gallons $RZ01ACT = 'FlumeWater / Flume Sensor 6697386597803890' Current US gallons $RZ01ACT /= $TMP_Flume_Sample_Rate $TMP_Flow_Act = $RZ01ACT Send Notification to 'Steve Mail' content 'Circuit Flow' Run Program 'Excess Flow Found' (If) 1
hart2hart Posted April 16, 2022 Author Posted April 16, 2022 6 hours ago, stevehoyt said: Here is how I do it. See program below. I will add a few comments. I have variables $tmp set up for expected value, circuit running, and actual flow. In the "then" part below, I am mostly using it for debug purposes right now, and to set the variables for which circuit is running and its expected value. The expected value I get from my rain machine. Not sure what exflora has. If you turn the circuit in a program, you could skip all of my "then" part. Also you most likely know circuit and expected usage. The else gets triggered when the circuit stops running. I then sample the flume gallons variable to see volume used. Remember that the flume Node server polls based on 2 things. The long poll is how often it queries flume. The current interval is the number of minutes that the usage reflects. So if you want GPM you divide (flume value)/ ( current poll interval). I take actual value and save it to a variable then divide by sample rate. I then save it in a tmp variable and send these off to another program to compare actual and expected use. Feel free to ask any questions. RZ1 Check Kiwi - [ID 0024][Parent 0013] If 'RainMachine: / Zone 1 - Kiwis' Status is Running Then Wait 1 minute $TMP_flow_EXP = $RZ01EXP $TMP_Cir_on = 1 $TMP_Flow_Act = 0 $Flume_Current = 'FlumeWater / Flume Sensor 6697386597803890' Current US gallons Send Notification to 'Steve Mail' content 'Circuit Flow' Else $Flume_Current = 'FlumeWater / Flume Sensor 6697386597803890' Current US gallons $RZ01ACT = 'FlumeWater / Flume Sensor 6697386597803890' Current US gallons $RZ01ACT /= $TMP_Flume_Sample_Rate $TMP_Flow_Act = $RZ01ACT Send Notification to 'Steve Mail' content 'Circuit Flow' Run Program 'Excess Flow Found' (If) That looks perfect! I just had not seen "Current US gallons" as a data element on screen captures that had been posted from the Admin Console.
hart2hart Posted April 17, 2022 Author Posted April 17, 2022 Here is how I do it. See program below. I will add a few comments. I have variables $tmp set up for expected value, circuit running, and actual flow. In the "then" part below, I am mostly using it for debug purposes right now, and to set the variables for which circuit is running and its expected value. The expected value I get from my rain machine. Not sure what exflora has. If you turn the circuit in a program, you could skip all of my "then" part. Also you most likely know circuit and expected usage. The else gets triggered when the circuit stops running. I then sample the flume gallons variable to see volume used. Remember that the flume Node server polls based on 2 things. The long poll is how often it queries flume. The current interval is the number of minutes that the usage reflects. So if you want GPM you divide (flume value)/ ( current poll interval). I take actual value and save it to a variable then divide by sample rate. I then save it in a tmp variable and send these off to another program to compare actual and expected use. Feel free to ask any questions. RZ1 Check Kiwi - [iD 0024][Parent 0013] If 'RainMachine: / Zone 1 - Kiwis' Status is Running Then Wait 1 minute $TMP_flow_EXP = $RZ01EXP $TMP_Cir_on = 1 $TMP_Flow_Act = 0 $Flume_Current = 'FlumeWater / Flume Sensor 6697386597803890' Current US gallons Send Notification to 'Steve Mail' content 'Circuit Flow' Else $Flume_Current = 'FlumeWater / Flume Sensor 6697386597803890' Current US gallons $RZ01ACT = 'FlumeWater / Flume Sensor 6697386597803890' Current US gallons $RZ01ACT /= $TMP_Flume_Sample_Rate $TMP_Flow_Act = $RZ01ACT Send Notification to 'Steve Mail' content 'Circuit Flow' Run Program 'Excess Flow Found' (If) Turns out my Node server was in a weird mode but still sending sending heartbeat but variables were not changing. I restarted it and it now makes more sense by observation. Making sure I understand…. Current US gallons is a flow rate. To do what I want, it appears I’d store Today gallons at start in a variable and Today gallons at finish in another variable and use them to calculate difference which would be gallons used to water lawn. I’d think Today gallons is reset at midnight local time. I looked at flume cloud setup and didn’t see time zone field but it gathers address which I think could be used to derive time zone. Does this feel like right approach and is time zone assumption right? I’ll chat with Flume on Monday to get their response.
stevehoyt Posted April 17, 2022 Posted April 17, 2022 Current us gallons is the amount of gallons metered during the last "current interval" period. It looks I don't see any reason why "todays gallons" wouldn't work as you describe it. Since Flume has our zip code I would expect the midnight clearing would also work as you think.
hart2hart Posted April 17, 2022 Author Posted April 17, 2022 Current us gallons is the amount of gallons metered during the last "current interval" period. It looks I don't see any reason why "todays gallons" wouldn't work as you describe it. Since Flume has our zip code I would expect the midnight clearing would also work as you think. Thanks.
Jimbo.Automates Posted April 17, 2022 Posted April 17, 2022 Turns out my Node server was in a weird mode but still sending sending heartbeat but variables were not changing. I restarted it and it now makes more sense by observation. Making sure I understand…. Also check the authorized state on the controller. @stevehoyt and I have been working on making the node server more robust at handling network issues with the flume servers, but it's still known to fail. I released a new version last night that is better but still has issues, but hopefully won't crash. If you see one please report here https://github.com/UniversalDevicesInc-PG3/udi-poly-FlumeWater/issues/6Sent from my Pixel 6 Pro using Tapatalk
hart2hart Posted May 22, 2022 Author Posted May 22, 2022 Also check the authorized state on the controller. @stevehoyt and I have been working on making the node server more robust at handling network issues with the flume servers, but it's still known to fail. I released a new version last night that is better but still has issues, but hopefully won't crash. If you see one please report here https://github.com/UniversalDevicesInc-PG3/udi-poly-FlumeWater/issues/6Sent from my Pixel 6 Pro using TapatalkI migrated to the PG3 Flume water Node server this afternoon. All went well and I’m measuring water used for irrigation described in posts above in this thread. Thanks! The PG2 version I was running did lose authorization based on what I saw in log a few days ago, so for PG3 version I put checks on controller status, authorization status, Hub Node Status and Sensor Node Staus to alert me if either were not True or not in desired state of connected or authorized. The Sensor Node Status just went false after a few hours but by running water in a sink, I can see values are updating correctly and timely. Can you help me understand this node status?EDIT ——. After I wrote this I followed link to GitHub and I understand better but could you still help me fully understand all 4 status codes? 1
Recommended Posts