Jump to content

Goose66

Members
  • Posts

    2409
  • Joined

  • Last visited

Everything posted by Goose66

  1. I do want to point out that, while I completely agree there is a basic flaw in the program's design, this flaw you point out will not prevent the remaining lights from turning on after turning on the 'Entry Front Door Light', as may be interpreted from your post. That is because there is no WAIT or REPEAT statement in the running program that makes the program "re-entrant," thus once the Then branch of the program starts running, it will run to completion. If it were me, I would have a first, enabled program that had the "'Area 1 / FRONT.DOOR' is switched On" condition and a second, disabled program that had the remaining conditions and the commands from the Then statement. The "Then" branch of the first program runs the "If" branch of the second program. But neither using a variable to track the light nor structuring your programs with the "two-program" methodology (discussed ad nauseum in these forums) would appear to solve your problem of the program seemingly ignoring the sunset to sunrise condition.
  2. I think (or hope) that it was just unfortunate timing. This is only a warning, and the node server will retry the connection every long-poll interval (default 60 seconds) until it is reconnected.
  3. So you weren't getting the same 403 error that was present in the original issue. You are getting "HTTPSConnectionPool(host='partner-identity.myq-cloud.com', port=443): Read timed out. (read timeout=12.05)" error. This generally means either your network is down or the partner oAuth server is down or busy. What's more, after upgrading to 3.2.22, it appears (from your log file) it only tried four times (over 4 minutes) before the node server was shut down. Try starting it again and seeing if it can connect now.
  4. The node server can only have one sub-level. I keep all my node server service nodes in one "Node Server" folder, and the garage door openers in a "Perimeter" folder. Alternatively, you can just move them all under a "Garage Door" or "MyQ" folder.
  5. Go ahead an DM me your log file.
  6. You may need to refresh your Node Server Store. Yes, there usually is an "Update" button on the node server details page when an update is available for a node server.
  7. Ok, try again. I had changed the "edition" of the node server from "Free" to "Standard" thinking I was fixing an error, but when I saw your screenprint it occurred to me that it may mean people can't update. @drprm1 Since your Update worked, please check that you weren't charged for it. If you were, I will work with @Michel Kohanim to arrange a refund.
  8. Crap. That shouldn't be "Purchase," it should be "Update." Let me look again.
  9. Try refreshing your Node Server Store. I was able to update it on my production Polisy in my home.
  10. I have uploaded a new version of the MyQ Node Server (v3.2.22) to the Node Server Store. This version adds a User-Agent header to the oAuth calls as well as the API calls to get around the 403 unauthorized values. It also adds a new driver value for the MyQ Service node that is a Node Server Status value managed by PG3. See release notes at https://github.com/Goose66/NSDocs/blob/main/myq-pg3.md for more info.
  11. While I lost remote connectivity to my Polisy, the reboot was evidently successful, PG3 and the MyQ node server restarted, and the MyQ node server ran for three days without any 403 errors or other authentication or connectivity problems. It also restarted successfully tonight when I got back to my development box. So I have uploaded new v3.2.22 of the node server that should take care of the User-Agent issue for now. I note that there is still conversations over on the arraylabs/pymq Github repository regarding folks still having problems in HA, so I will keep an eye on it. Also, the User-Agent value is user configurable in this version, but I didn't put any references in the instructions or release notes to that. Let's keep that under wraps until we need it. There is a new version of PG3x coming out that should have a way for me to change the User-Agent and potentially other auth values (e.g., application key) remotely across all installed node servers, so maybe that will be out and in widespread use before we need to mess with all this again. Thanks for your patience.
  12. Sorry guys. I had it all (at least mostly) working and but now PG3 has completely died. Cannot get to the UI or IoX on my Polisy. Restarting the Polisy remotely did not help. And since I am remote, my options are rather limited. I will be back local on Sunday evening, and I can look at it then.
  13. I thought about that, but the problem is that if a specific value was required to work, we would have to communicate with every user on how to add it to their installation, and then if the value was required to change to a different value (or, say, needed to be randomized) then we would have to both roll out a new version and communicate to every user that they needed to remove any value they currently have configured. That said, I thought I had found a way to update the value used in the Node Server Store and then have all the installed node servers pick up the value on restart, but it looks like it won't work as I expected. If that is indeed the case, I guess a Custom Configuration Parameter settable by each user might be the best available choice.
  14. I have added User-Agent headers to both the oAuth calls and the REST API calls and it is working. I am in the east, but I’m not exactly sure how the load balancing works or if your geographical region has anything to do with. The oAuth servers are a partner company and not Chamberlain. The concern is that Chamberlain will start using the User-Agent to block particular integrations, so I am adding a facility to allow me to simply change the User-Agent value on the fly without needing a new version of the node server to be packaged and uploaded. Should be done and released in version 3.2.22 tonight.
  15. I saw the conversation on the pymyq GitHub repository today about the changes. Unfortunately I am traveling until Wednesday, but should be able to look at it then.
  16. Ok, let me see if it may be the phase out of older API calls. This happens every year-and-a-half or so. UPDATE: While it could be just a problem with the oAuth servers (a partner to Chamberlain), it looks to me like they have changed access parameters, either the client secret or something else. As I have mentioned, I built this integration based on another integration that exists out there that I couldn't use directly. So I have no way of hacking the mobile app to see what has changed in the authorization structure and instead will have to wait and see what others find. Unfortunately not seeing other integrations having specific issues reported yet, and my mobile app is still working. I will continue to investigate. If you don't restart the node server, your node server may continue to operate for some time. Also, merged the two threads.
  17. Goose66

    Pool Lights

    I'm pretty sure the OP said he was switching the 120V input to the transformer. Switching a transformer on and off rapidly can damage the transformer if it's cheap. I suggest switching the 12V down stream of the transformer. The lights can take the rapid on and off 12V - they have a solid-state power supply.
  18. Goose66

    Pool Lights

    I wouldn’t worry about the Zwave switch as much as the 12v transformer.
  19. A new version v3.1.2 is available that supports color lights. See details in the release notes: https://github.com/Goose66/NSDocs/blob/main/autelis-pg3.md. Please take special note of the requirement of deleting nodes and then restarting the node server if you are upgrading from v3.0.1.
  20. I have released an initial version of the Autelis node server for PG3 (v3.0.1) that interfaces with Autelis Pool Control device to allow IoX to access pool controllers (only Zodiac/Jandy Aqualink currently supported). Installation instructions, release notes, and version history can be found here: https://github.com/Goose66/NSDocs/blob/main/autelis-pg3.md. These devices are no longer available for purchase and the website with all information (including programming to the API) has been taken down a few years ago. Also, I do not have an Autelis device (or a pool) any more, so ongoing testing and development of this node server will be challenging. However, if you currently have an Autelis Pool Control device for Aqualink Pool Controllers and want to migrate your PG2 integration to PG3, here is your chance.
  21. A new version (v3.1.2) has been released with a couple of new features, including the ability to specify a temperature unit ("F" or "C") for reporting temperature. Release notes for the new version can be found here: https://github.com/Goose66/NSDocs/blob/main/iopool-pg3.md.
  22. I have released an initial version of the iopool node server for PG3 (v3.0.1) that interfaces with iopool public API to allow IoX to access iopool EcO pool monitors. Installation instructions, release notes, and version history can be found here: https://github.com/Goose66/NSDocs/blob/main/iopool-pg3.md. There is a 1-month trial period and then the node server is $10.95 for perpetual license. While the company has said there was a one request per second limit on accessing the API, it appears that the EcO devices only update the web service once every 15 minutes, so no need for a frequent polling interval (default short poll is 60 seconds; long poll not used). There is no "connected" status, but there is a timer since the last valid measurement was retrieved, so that can be monitored to indicate a problem with the EcO device, the cloud service, the API, or your network connection.
  23. +1 for the order of evaluation (not, and, then or) problem, but more specifically it may be a mixture of the order of evaluation and the program re-entrant nature of the IoX programming model. Remember that each of these programs is going to get called twice as someone moves through the stairwell, once for the Hall-Up Sensor motion and once for the Hall Entry Sensor motion. In addition, the programs will both get called and sunrise and sunset each day, cancelling any running timers (and subsequent "Turn Off" commands). Here's what may be happening: 1. Hall-Up Sensor is triggered 2. Both programs run their Then branch (because of the order of evaluation problem), turn on their respective scenes, and start their respective waits. 3. Hall Entry Sensor is triggered within a few seconds the Hall-up Sensor 4. Both programs are run again, cancelling their respective waits (and subsequent Turn Off commands), and depending on whether it's day or night, one of the programs Then branch is run and the other's Else branch is run. Depending on what order things happen, that may be why the lights are being left on. Either way, this is not the behavior you are expecting, I imagine. Looking at it more broadly, you may need to rethink your approach to programming in IoX (IMO, of course). Many of these types of anomalies that arise for the event-driven and re-entrant natures of the IoX model can be avoided by having two tiers of programs, a first for testing for trigger events to execute the program(s), and another for testing for conditions for conditional execution of statements (i.e., "Then" vs. "Else" branches). So in your case, a first program (e.g. "Hallway Motion"): If ‘Hallways / Hall-Up Sensor / Hall-Up.1 Motion’ is switched On Or ‘Hallways / Hall Entry Sensor / Entry.1 Motion’ is switched On Then Run Program "Hallway Lights" (If) Else -No Actions And then a second program ("Hallway Lights"): If From Sunrise To Sunset (same day) Then Set ‘Hallways / Hall Lights Day’ on Wait 35 seconds Set ‘Hallways / Hall Lights Day’ off Else Set ‘Hallways / ‘Hall Night Lights’ on wait 20 seconds Set ‘Hallways / Hall Night Lights’ off The first program "Hallway Motion" is enabled. The second program "Hallway Lights" is disabled. What you have now is that the "Hallway Motion" program ensures that, upon motion from either sensor, the "Hallway Lights" program will be run. The "Hallway Lights" program then decides which scene to turn on based on the time of day and starts the respective wait timer. Since the "Hallway Lights" program is disabled, it will never be triggered on its own. This approach is handy in most situations where the trigger events and the conditional events are really separate things, i.e. where you have conditions that you don't want to act as triggers to the programs. In addition, if there are multiple levels of conditional statements ("nested ifs") that need to be tested, then you can add additional tiers of programs to accomplish that. Moreover, again IMO, having your programs structured this way makes them more clearly self-documenting of their intended functionality.
  24. That is one possible solution. Or map names to indexes in custom parameters. Another solution is for the node server to somewhat arbitrarily but reproducibly map the names to index numbers (e.g., a short integer hash) and then the IoX user/administrator/programmer would just have to learn the index number through observation. Or the node server could generate these indexes into profile entries and update the profile for the node server, and then send a notification for the user to reboot IoX. These are all possibilities. The UD folks have functionality on their roadmap that could make this easier. It would allow the node server to send the state value of the last user with both an (arbitrarily assigned) index values as well as the user name from Schlage. Both would be displayed in the Admin Console. From that, the IoX user could learn what index values went with what user names, and setup programs accordingly. I think this functionality is coming in the near term, but I don't have a date yet.
  25. In regard to comments about polling intervals and updates: there are no pushed state updates from Schlage available here - it is 100% polling. Like in MyQ and iAquaLink node server, the concern is that frequent polling using a non-public API may alert Schlage of the the use and they may make moves to cut it off. So the Schlage node server uses the same strategy as those other node servers to have active polling (short poll interval) for around five minutes when any activity is detected, and otherwise have non-active polling (long poll interval) for the periods between detected activity. Unfortunately, in the case of wanting to turn on lights or disarm alarm systems when the door is unlocked, this may not work well unless the long poll interval is set to a potentially unacceptable short duration. Setting the long poll interval to a short duration could result, however, in constant frequent polling of the Schlage cloud service, which may create other problems (such as Schlage locking us and/or the pyschlage library out). The "Force Update" is also implemented to deal with this sort of thing. Sending the "Force Update" not only results in an immediate status update request sent to Schlage (with all state values being returned to IoX regardless of change), but it puts the node server into active polling mode. So, for example, if you had a program that sensed motion in your driveway or activity at your front door, e.g., via a motion sensor or ring camera, you could have that program do a Force Update to the appropriate Schlage lock(s) putting them in active polling mode. Then, coupled with a frequent yet hopefully acceptable short polling interval of, say, 5 or 10 seconds, you could detect unlocking by a user and then disarm alarms and turn on lights in a relatively timely fashion. We will have to wait and see how the pyschlage library usage unfolds over the coming months to see what's possible here.
×
×
  • Create New...