Jump to content

Xathros

Members
  • Posts

    4589
  • Joined

  • Last visited

Everything posted by Xathros

  1. Thank you. The 800W was a pure guess, I did not review the charts for the actuals. -Xathros
  2. If it is possible, I would think that both systems would need to have the data and ground in common. -Xathros
  3. Here is what my daily report looks like. It might give you a few ideas. -Xathros
  4. I have only basic experience with these sensors myself but my belief is that it was designed for 1 host supporting many sensors not a sensor(s) supporting multiple hosts. -Xathros
  5. Here is Program #1 This uses 2 state mvars: s.FridgeRuntimeCycleMins and s.FridgeRuntimeDailyMins Program: FridgeRuntimeMonitor If Status 'GEM Fridge Channel' >50W and Status 'GEM Fridge Channel' <800W Then Wait 1 minute Repeat Every 1 minute $s.FridgeRuntimeCycleMins += 1 $s.FridgeRuntimeCycleMins Init To $s.FridgeRuntimeCycleMins $s.FridgeRuntimeDailyMins += 1 $s.FridgeRuntimeDailyMins Init To $s.FridgeRuntimeDailyMins Else $s.FridgeRuntimeCycleMins = 0 $s.FridgeRuntimeCycleMins Init To $s.FridgeRuntimeCycleMins Second Program Notifies if a cycle exceeds a threshold (45mins in this example). This uses another state mvar: s.FridgeNotifySuspend Program: FridgeCycleNotify If $s.FridgeRuntimeCycleMins >= 45 And $s.FridgeNotifySuspend is 0 Then Send Notification to 'YourCell' content 'FridgeCycleTimeExceeded' $s.FridgeNotifySuspend = 1 Else - No Actions - (To add one, press 'Action') Third program throttles notifications to no more than once every 30 mins in this example. Program: FridgeNotifySuspend If $s.FridgeNotifySuspend is 1 Then Wait 30 minutes $s.FridgeNotifySuspend = 0 Else - No Actions - (To add one, press 'Action') Fourth Program counts defrost cycles daily. This uses an integer mvar: i.FridgeDefrostCount Program: FridgeDefrostCounter If Status 'Gem Fridge Channel' > 800W Then $i.FridgeDefrostCount += 1 $i.FridgeDefrostCount Init To $i.FridgeDefrostCount Else - No Actions - (To add one, press 'Action') Fifth program is Daily report and will expand to report lots of other daily data as you expand your system. For now, it only contains the above fridge example code. Program: DailyReport If Time is 11:59:50PM Then Send Notification to 'YourCell' content 'DailyReport' Wait 20 seconds $i.FridgeDefrostCount = 0 $i.FridgeDefrostCount Init To 0 $s.FridgeRuntimeDailyMins = 0 $s.FridgeRuntimeDailyMins Init To 0 Else - No Actions - (To add one, press 'Action') Example Alert: 2014/07/31 2:11:58 PM: The normal fridge cycle time threshold has been exceeded. Current cycle has been running for: 45 minutes. Example Daily Report: Daily Report: 2014/07/31 Fridge ran for a total of: 396 minutes. Fridge ran 1 defrost cycle(s) today. Please note in the above examples, the syntax of the "Status GEM..." entries is not accurate. These programs should serve as a solid basis on which to build your other monitor and manager programs from. You can very easily act on the values of the state variables used in these examples for other uses. Hope this is what you were looking for. -Xathros
  6. OK. I'm going to ponder this over my lunch and will get back to you shortly. In the meantime, can you define a few more parameters of the intended use: Shutdown after X minutes/hrs of continuous operation and stay off until ? Shutdown after X min/hrs of accumulated operation and stay off... Are we reporting accumulated runtime? There are a number of ways I can proceed but need to fully understand the intended goal. -Xathros
  7. Or possibly a synchrolinc. Neither of which I own so either way, I need a bit more to go on to get started with a proper solution to the stated requirement. -Xathros
  8. What I need to know is how does the ISY know the fridge is running? What is the input trigger to start/stop tracking the runtime ? -Xathros
  9. Teken- Can you give me some more detail on the above? What are the conditions to look for when tracking this device? -Xathros
  10. My pleasure. As always, Happy to help. Good luck with your troubleshooting! -Xathros
  11. Your welcome. More sensors will require more variables. You might consider renaming the ones we have used already to reflect the sensor to which they belong and name additional ones according to their sensor as well. May I suggest: s.Secure_RoomTemp i.Secure_RoomAlertTmp i.Secure_RoomDelta i.SecureRoomSuspend You can rename the existing variables on the variables page and they will be updated throughout your programs automagically. I would also recommend creating folders for each sensor's set of programs to keep things organized and give you an easy way to enable/disable the programs for individual sensors. -Xathros
  12. @Teken Modify NotificationSuspend as follows: If Then Wait 20 minutes $i.NotificationSuspend = 0 Run Program SecureRoomMonitor (IfPath) Else If the room temp is steady, the monitor program will not automatically retrigger even when above the threshold since it requires a change in temp value to trigger. The change above will force the notification to resend as long as the temp remains above the threshold. -Xathros
  13. Correct. I have to do this with my CAI based temp probes as well. Everything is 10X actual. -Xathros
  14. First, the program won't trigger until the temp value changes. Bump the value up one and see if it triggers. In my original posting my program said: $i.AlertDelta = $Secure_room - $i.AlertSentAt. This is not valid code in the ISY but is the intended goal. Doing this the ISY way: $i.AlertDelta is $Secure_Room sets AlertDelta to the current Secure_Room temp value. $i.AlertDelta -= $i.AlertSentAt subtracts i.AlertSentAt from i.AlertDelta leaving i.AlertDelta with the actual difference between the current Room temp and the temp when the last alert was sent. -Xathros
  15. -Xathros
  16. Yes Sir it was. I have just edited the whole thing to make it functional and syntactically correct. Note: I changed s.AlertSentAt to and integer i.AlertSentAt, Added a line to SecureRoomMonitor to set i.AlertSentAt and corrected the calculation section in the Else of SecureRoomMonitor Sorry for all the errors. Was rushing out the door when I posted that yesterday. -Xathros
  17. Sorry. Use "is". I typed out those programs yesterday and I often make the mistake of substituting "=" for "is". -Xathros
  18. Something like this should do it: Create an integer variable: i.NotificationSuspend and set it's value to 0 Create another integer variable: i.AlertSentAt and set it's value to 0 Create another integer variable: i.AlertDelta and set it's value to 0 Program: SecureRoomMonitor (Modify your program to something like this:) If $Secure_Room > 220 and $i.NotificationSuspend = 0 Then Send Notification $i.NotificationSuspend = 1 $i.AlertSentAt = $Secure_Room Run Program NotificationSuspend (ThenPath) Else $i.AlertDelta = $Secure_Room $i.AlertDelta -= $i.AlertSentAt Run Program OverrideSuspend (IfPath) Program: Notification Suspend If Then Wait 20 minutes $i.NotificationSuspend = 0 Else Modify the wait to meet your needs. And another program to monitor the rate change during the Suspend Period: Program: OverrideSuspend if $i.AlertDelta >= 50 Then $i.NotificatiopnSuspend = 0 Run Program SecureRoomMonitor (IfPath) Else In this configuration, if the temp increases another 5 deg during the 20 minute notification suspend time, the suspend is overridden, an alert sent and the alert suspend restarted. This will happen everytime the temp increases 5deg above the temp at the previous alert. Otherwise, the alert will continue once every 20 mins until the temp drops below 22C. Adjust as necessary. Hope this helps. -Xathros EDITED to correct program logic and Syntax
  19. When customizing the notification, Select Variables, then the variable name from the list. It will insert the above substitution variable in the notification. Alternatively, you could just type it in since we know the type and ID: 2 and 11 hence ${var.2.11} -Xathros
  20. Easy: ${var.2.11} -Xathros
  21. Now I see it! Its the Variable ID. As in: /rest/vars/set/<var-type>/<var-id>/<value> Sets a variable given by var-id var-type: 1 – Integer 2 – State So in this case, the alert was caused by a change in value of variable 2.11 <state.11> I modified my program to be driven by a state variable and tested by changing the variable value. Now I get "Value: 2.1" My State variable is ID#1 so that correlates to your perfectly. -Xathros
  22. I recreated your custom notification on my test system and ran a test. The value I get in place of your "Value: 2.11" is the name of my device tree "Network: XathTest". In my test case, the program was sending an X10 command. It looks like {Alert.Details} is related to the most recent event to occur within the system. There are very few places in the ISY that support floating point values. Energy and Climate modules come to mind. You might look at the data available from those and see if you can spot a 2.11 somewhere. -Xathros
  23. Sorry. I have no clue what the 2.11 means in this case. -Xathros
  24. What does your custom notification definition look like? -Xathros
  25. I pulled my system out when I moved and rebuilt/expanded at my new place. Ended up with a much more functional system the second time around. Could have fixed the first one by starting over but never felt it was worth doing until the move forced the issue. -Xathros
×
×
  • Create New...