Jump to content

smorgasbord

Members
  • Posts

    148
  • Joined

  • Last visited

Everything posted by smorgasbord

  1. I did the unplug/replug PLM, but note I did it when upgrading to the EISY also. This time when rebooting the EISY I got a different device as not connecting (an IOLinc, which is dual-band). Also, I almost never get the same problems - different units are reporting as not connecting at different start ups. Sometimes while running, too, iirc. I have an outdoor outlet that I use as my bridge, not an Access Point, sorry. I just did the 4 tap test on it and the PLM was blinking green only. Some of the devices reporting as missing as battery powered (motion sensors). The Admin Console has options for backing and restoring the PLM. I've never done that. Should I reset the PLM? Not sure how the EISY uses it or anything it might hold, settings-wise. Here's the back of my PLM,
  2. Upgraded my ISY-994i to eisy and things mostly work. However, on reboot I often get some pop-up error messages in the Admin Console: Cannot communicate With <<name of the sensor (6-digit Insteon address)>>. Please check connections. This is an intermittent problem. It happens to both battery powered and wired devices, including dual-band devices. My home isn't large, I do have an Access Point setup to bridge the electrical. Could I have a bad PLM? It's several years old (2413S). I have an older EXICOMM 5010K that I think is actually 2412S. When I upgraded from ISY to EISY I followed the steps (used a new cable bought with the EISY) which did not involve backing up or restoring anything on the PLM. Am I right to suspect the PLM? If so, what's my best fix? There are new ones being sold somewhere, right? TIA
  3. What's the procedure for when I've added/removed YoLink devices? Just restart from the Polyglot Dashboard and then reboot the EISY?
  4. Yes, I understand that part, which is why I think of a program's "If" condition as a "When" condition. Instead of: "if a control is switched on," I think: "When a control is switched on." That help me, might or might not help others. What I was talking about, and have since figured out, is about how the execution/call stack works. Turns out the ISY/EISY does NOT have a stack. When a first program calls a second program, that second program starts and runs in its own "instance" or "context" (to use C programmer nomenclature). More importantly, the first program does not stop and wait for the second program to finish and "return" to the first program. Instead, both programs are now running simultaneously (or as close as the OS can support). BTW, using the Notification plug-in to send numerous notifications to my UD Mobile app revealed a lot to me about how programs run on the EISY.
  5. Motion sensors set to ON Commands only, and there are no programs looking for a "switched Off." I also have about a 5 minute time-out so the motion sensor isn't constantly sending commands.
  6. OK, I ended up with 2 variables and 4 programs: RecirRanRecently: An integer (not state) that is True (1) if pump has recently run sOnVacay: A state variable that is True if we've set a Vacation Mode, which stops the pump from running automatically and turns lights on/off semi-randomly. Repeat Loop(): A "Repeat While" loop that asks to run the Pump every 35 minutes. Started at 7am and stopped at 10:30pm. Bathroom Motion(): When the Motion Sensor detects motion, asks to run the Pump Run If(): If Pump hasn't been run in last 15 minutes, runs the Pump routine Run Once(): The routine that runs the pump. Only the "THEN" block is called and only from Run If(), so the Waits don't get interrupted. Uses $RecirRanRecently variable to prevent Run If() from calling it when it shouldn't. Runs pump for 1.75 minutes and then Waits for 13.25 minutes. Run Once: If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then $RecirRanRecently = 1 Set 'Recir Pump' On Wait 1 minute and 45 seconds Set 'Recir Pump' Off Wait 13 minutes and 15 seconds $RecirRanRecently = 0 Else - No Actions - (To add one, press 'Action') —— Run If: If $RecirRanRecently is not 1 Then Run Program 'Run Once' (Then Path) Else - No Actions - (To add one, press 'Action') —— Bathroom Motion: If 'Bathroom Motion-Sensor' is switched On And $sOnVacay is not 1 And $RecirRanRecently is not 1 Then Run Program 'Run If' (If) Else - No Actions - (To add one, press 'Action') —— Repeat Loop: If From 6:59:00AM To 10:31:00PM (same day) And $sOnVacay is not 1 Then Repeat While $sOnVacay is not 1 Run Program 'Run If' (If) Wait 35 minutes Else - No Actions - (To add one, press 'Action') Run If() has two Waits that combine for a 15 minute minimum time period between successive pump runs. The Repeat Loop() program only asks for pump runs every 35 minutes. Motion in the bathroom will ask for a pump run if the 15 minute minimum time has elapsed. While Repeat Loop() only runs during waking hours, motion in the bathroom at any time can run the pump. I thought about trying to reduce this to 3 programs instead of 4, but since Repeat Loop() might ask for a pump run soon after a Bathroom Motion requested and granted pump run I think it's needed. If we could compound the While clause of the Repeat instruction, such as: Repeat While ( ($sOnVacay is not 1) AND (sRecirRanRecently is not 1) ) Which isn't possible as I understand it. I could maybe create a third variable and have it be the sum of those two variables, and then have Repeat While ThirdVariable is 0, but I don't know about addition and of an integer and a state. Thoughts/ideas welcome.
  7. RecirRanRecently is not a State variable, so the IF isn't re-evaluated. Isn't convention to put a lower-case "s" in front of State variable names? I'm trying new program logic now, where I have double-stacked routines to perform the test and then the run. I'll post here in a little bit if it looks like it's working.
  8. I just ran into a related issue with a hot water recirculating pump routine. I wanted movement in a bathroom to run the pump for 2 minutes to get the hot water into the pipes. But, if the pump has been recently run (say 15 minutes), it shouldn't run because it's wasteful. So, I wrote this program: If 'Bathroom Motion-Sensor' is switched On And $RecirRanRecently is not 1 Then $RecirRanRecently = 1 Set 'Recir Pump' On Wait 2 minutes Set 'Recir Pump' Off Wait 13 minutes $RecirRanRecently = 0 Else - No Actions - (To add one, press 'Action') Now, given that there is no Reentrancy and no Call Stack, I understand why it fails, but don't know the best way to fix. The first time through it works. And the second time through it'll work, too. But, if that second time is rejected for being too soon (RecirRanRecently is 1), then first instance is terminated at one of the two Waits, and so RecirRanRecently is never reset to 0. And so the pump would never run again until reboot initializes RecirRanRecently to 0. EDIT: I'm not using the time-out in the motion sensor hardware because I have another program that runs the pump on timed intervals (every half hour) and it uses the same RecirRanRecently variable in an attempt to get this motion program to not run soon after the timer program rang What's the best way to accomplish this?
  9. I'm slowly groking how EISY/ISY programming works. My first learning was that If-Then-Else is really When-Then-Else. That is the If() block is called when something inside it changes (assuming your variables, if any, are State and not Integer). The second was that programs are not re-entrant. If a program is called while it is still running, that first "instance" will terminate at the next Wait or Repeat line. No passing Go or collecting $200 - the rest of that program won't be called. Instead the new "instance" of the program runs. After instrumenting my code with lots of UD Mobile notifications, I'm seeing that if in MyProgram1 you have: Run Program 'MyProgram2' (If) Then MyProgram2 will run the If block and execute either Then or Else...BUT The execution of MyProgram1 does NOT wait for MyProgram2 to finish executing. It's not on a Call Stack, it's just you have multiple programs running simultaneously. I assume this is the same whether calling the (If) or (Then) or (Else) blocks directly. If I'm correct, this means that I can't use this mechanism to have subroutines. Which I'd really like to have since it prevents duplicating the same code in multiple programs. So, my real question is: How to have subroutines? TIA NOTE: Edited this post to correct the terminology. The behavior is as described and that is what is called "re-entrant."
  10. So combination of enabling IPv6 on my router and @Techman's MMS.ATT.NET make text messages work! At least until I over use it and get blocked by ATT I guess. Thanks! Now onto groking the programming model.
  11. I have thought that the "If" statement should actually be a "When" statement to help programmers understand the program invocation process. But, maybe that's just me.
  12. I have my Water Depth Sensor set to update every 30 minutes. But, I don't see anything from it in the log file because it's not one of the added/known devices. Is there something i need to do/enable/load to get that to happen? FWIW, here's a screenshot from the YoLink app on one of my depth sensors (I have two).
  13. After a few go-rounds trying different things with support, it looks like I did not have IPv6 enabled in my router. Enabling that seems to have gotten regular email notifications to work, although the ATT Wireless (9876543210@txt.att.net) email to SMS still fails. That's probably ATT's fault.
  14. Yeah, the Captcha is only for submitting a new ticket. And maybe it's only for the first ticket one submits.
  15. Thanks for that, but this Captcha thing isn't in the Admin Console, it's on UD's ticket website.
  16. Thanks. What about calling other programs? Will something like this work as expected: Repeat while $sOnVacay is not 0 Run Program 'Prog2' (Then Path) $sOnVacay -= 1 I understand that if a single program gets called while it's already running the previous instance of that running program will stop at Wait or Repeat, but if a program calls another program (which could even call a third program), is that all "normal" as an old "C" programmer would expect, or is the execution stack somehow different?
  17. So the plot thickens! In submitting a ticket, it took 4 or 5 tries for the Captcha to connect from my browser. At first I was thinking it might be that I have some sites blocked via my hosts file, but eventually the Captcha pictures came up and worked. I'm wondering if this sort of intermittent problem with the Captcha is connected with my email sending problem. I'm not running my VPN right now, but have in the past...
  18. I've read https://wiki.universal-devices.com/index.php?title=ISY-99i/ISY-26_INSTEON:Scope,_Precedence_and_Execution_Order#Boot/Startup_Sequence_and_Program_Execution_Order but still have questions. I have a program like this: If From 7:00:00AM To 10:00:00PM Then Repeat while $sOnVacay is not 0 (Actions) Else (No Actions) If the EISY reboots during the day, will this program get started (if enabled)? Or, should I set it to Run At Startup and let the "If Schedule" do its thing? The Repeat code essentially does a thing every 30 minutes (there's a Wait) during the From/To time period. I don't want to have two (or zero) copies of this routine running, naturally. EDIT: What I mean by that last comment is a question as to whether programs in EISY are re-entrant. That is, can you have multiple copies of the same program running in different threads at the same time? Basically, if a program is running, and say is at a long Wait, and another program directly invokes the Run(If) of that first program, what happens? And then, if a program is running and is at a long Wait, and one of the If conditions change, how is the program re-run? Does it wait for the first execution to complete or does it terminate what's running to run it again with the new conditions? TIA
  19. After a reboot I tried the Test function again. Got a new error: Also, maybe I should file a support ticket as this is a brand new, just installed today eisy. So, maybe there's an internal hardware problem?
  20. I don't have any SMTP settings since I'm using the default via the check box. I have an excellent 1Gig internet connection. EDIT: Just swapped the cable. No improvement. EDIT: Firmware and UI are both v.5.8.4 I assume the UDI_TREE-STATE files are on the eisy - (they're not on my host, which is Mac). How do I access the folder to delete them? thanks again.
  21. Alternatively, can I write messages to the console? The UD Mobile app has messages for PG3 starting and stopping. Can I write my own messages there? I'm trying to do some debugging on my programs with timers and countdowns and not being able to do the equivalent of printf is pretty frustrating.
  22. Well, now even sending to my regular email address is failing. I've rebooted multiple times. Here's the log for 2 Test sends, nothing really in there except what's shown in the error dialog. ISY Error Log.v5.8.4__Tue 2024.11.05 05.14.16 PM.txt
  23. This may be problematic as the "History" feature ("Get device activity logs") always comes up empty "No Logs Now." I do get historical measurement data, but that's not the same thing. Are there other ways to grab logs in YoLink? As for "theaparm," I don't know. My settings are: Type - Fixed as "Water Depth Sensor" Name Room Measure Range (5m or 10m) meters Tank Depth in feet and inches Unit (cm, m, ft) Density (0.50-1.50) where water is 1.0 Alert for Water Depth range, alert reminder, alert interval Recording Interval Thanks for looking!
  24. FWIW, this was working on my old ISY-99i. Same program (backed up on ISY, restored in EISY).
  25. Can't do either TLS or increase timeout when using the default UD SMTP server.
×
×
  • Create New...