Announcement

Collapse
No announcement yet.

Arduino Plugin feature requests

Collapse
This is a sticky topic.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    I have 4 Arduino Mega boards in use, each one has a single OneWire temperature probe. 2 have analog inputs used for a luminance sensors. 3 of the boards are in use with multiple digital inputs and outputs, PWM outputs, etc. Two of the production boards have 20-30 digital I/O connections. One of the boards is a test platform and only has a OneWire, a luminance sensor and 4 digital I/O pins. The CPU usage for my Arduino plug-in executable is usually under 1%. When there is I/O activity it will spike to 4-5%.
    HS4 Pro, 4.2.19.0 Windows 10 pro, Supermicro LP Xeon

    Comment


      Originally posted by rprade View Post
      I have 4 Arduino Mega boards in use, each one has a single OneWire temperature probe. 2 have analog inputs used for a luminance sensors. 3 of the boards are in use with multiple digital inputs and outputs, PWM outputs, etc. Two of the production boards have 20-30 digital I/O connections. One of the boards is a test platform and only has a OneWire, a luminance sensor and 4 digital I/O pins. The CPU usage for my Arduino plug-in executable is usually under 1%. When there is I/O activity it will spike to 4-5%.
      Great stats Randy. I should probably monitor the Arduino executable for CPU usage. What version of the plugin and sketch are you using? Did you make any adjustments to the sketch? If so what were your changes?

      Thanks again for the information.
      Billy

      Comment


        Originally posted by bdraper View Post
        Great stats Randy. I should probably monitor the Arduino executable for CPU usage. What version of the plugin and sketch are you using? Did you make any adjustments to the sketch? If so what were your changes?

        Thanks again for the information.
        It is the default normal sketch (not API) with no modifications. The only thing I do different is to choose my own ports in the 55000 range. My plug-in is essentially the .103 beta, with some added logging threading changes, minor changes to the config page, changes to support the v2 Ethernet boards and the newest IDE.

        Nothing changed in my system from .103 to .108 in terms of CPU usage. For the record I went back to v1 POE (r2) Ethernet boards because they are so reliable. I had some intermittent failure to connect issues with the v2 boards that I never have (or had) with the original Ethernet POE boards. My v2 boards were using POE modules. There were articles that stated the v2 boards reset the Mega boards more reliably, but I was able to prove my v1 boards were much more reliable than the v2 boards.

        I have had no issues with the .108 build, so I don't know when Greig will release a new version. I have been running it since May 8. I did give him one enhancement request that he is considering. Greig will have to weigh in on any update plans. I remember him saying he was quite busy. To be quite honest .103 is just fine, I would be very comfortable running it. .108 requires new sketches and the 1.6.8 IDE. With those changes I'm sure Greig wants to work on it some more before releasing a new version. I would expect there to be a newer version when he makes a new beta available.
        HS4 Pro, 4.2.19.0 Windows 10 pro, Supermicro LP Xeon

        Comment


          Originally posted by rprade View Post
          It is the default normal sketch (not API) with no modifications. The only thing I do different is to choose my own ports in the 55000 range. My plug-in is essentially the .103 beta, with some added logging threading changes, minor changes to the config page, changes to support the v2 Ethernet boards and the newest IDE.

          Nothing changed in my system from .103 to .108 in terms of CPU usage. For the record I went back to v1 POE (r2) Ethernet boards because they are so reliable. I had some intermittent failure to connect issues with the v2 boards that I never have (or had) with the original Ethernet POE boards. My v2 boards were using POE modules. There were articles that stated the v2 boards reset the Mega boards more reliably, but I was able to prove my v1 boards were much more reliable than the v2 boards.

          I have had no issues with the .108 build, so I don't know when Greig will release a new version. I have been running it since May 8. I did give him one enhancement request that he is considering. Greig will have to weigh in on any update plans. I remember him saying he was quite busy. To be quite honest .103 is just fine, I would be very comfortable running it. .108 requires new sketches and the 1.6.8 IDE. With those changes I'm sure Greig wants to work on it some more before releasing a new version. I would expect there to be a newer version when he makes a new beta available.
          Thanks Randy where did you get the .108 build, I only see .103 in the updater. I should probably download .103 from the updater and give it a go as I am on .100 right now and only expanding my testing. Not seeing any issues with it at the moment, just wanted to post some observations about CPU usage for Moskus. Only time will tell with my system as I increase my usage and understanding of the Arduino. This is really cool stuff, and I am enjoying the adventure.
          Billy

          Comment


            Revisiting this thread made me aware of some new discussions that I must have missed. Al mentioned the Freetronics hardware watchdog boards from Australia. I have been using these since last year.

            I have never had a connection issue with my boards, but I use a couple of them in "mission critical" control situations with regard to my hydronic heat and hot water system. I was very skeptical of trusting my heating to either HomeSeer or Arduino operation. From the outset, I planned the system to have backup operation in case there was ever a problem with the boards, HomeSeer or the communication between them. The first thing I did was ask Greig to provide an "Alive" pin that will go high in the event communication is lost. I use this alive pin to drive an opto-isolated pair of relays to have my system fail over to straight 24 volt - thermostat - zone valve operation. In the event HomeSeer goes down, the power supply to the Arduino's or anything else in the chain fails, the system will still operate. The relays are wired such that their normally open contacts are for automation and normally closed are the failsafe - if they lose their power supply, the system reverts to manual. We don't want pipes to freeze if we are away in the wintertime when an automation failure might occur.

            The next thing to consider was the possibility that the boards were connected to HomeSeer, but somehow were locked up or had some other unusual failure. On each of my 4 boards I added pin 18 as a test output and pin 19 as a test input. I shorted those pins together, then had a set of events for each board that run at regular intervals. The first event turns pin 18 "On", which pulls pin 19 low. It also starts a timer. A second event looks for pin 19 to change to low, indicating it passed the test. If the timer reaches 3 seconds without pin 19 going low, a third event is triggered indicating a test failure. In my original configuration the failure event would trigger a "disconnect" and subsequent "reconnect" of the board with some small delays between each action. The "fail" event also sends me a pushover message. Over the course of a year I had less that 10 times where any of the boards would fail.

            I discovered the hardware watchdog boards last year, and again without having any connection issues, just out of an abundance of caution, I ordered a handful of the boards. Since I already had the test events configured and running, I connected these boards to VCC, GND, Reset and the pin 18-19 pair I use for testing. Since the watchdog timer configures for a 5 minute interval I modified the test events to test each board once every 4 minutes in a "round robin" fashion. When the board is tested, once every 4 minutes, the watchdog is reset. If the watchdog doesn't see this test it will perform a hard reset the board.

            I log all these tests and get a pushover message in the event a failure is detected and as I stated above there have only been a handful of failures reported. I find no evidence that the watchdog has ever reset a board, so I will have to assume the failure reported was either a random failure of pin 19's status being reported by the plug-in or HomeSeer's failure to trigger an event. Since updating to build 3.0.0.289 of HomeSeer I have not seen a single failure, so I am inclined it was HomeSeer not triggering properly. Bear in mind that there is one board being tested each minute or 1,440 tests each day. About 10 failures out of more than 500,000 tests is not bad and I'm not even convinced those are Arduino failures.

            It also needs to be considered that this constant and rhythmic testing I perform could possibly improve the HomeSeer-Arduino connection reliability.

            I have had two instances where my HomeSeer server was down for an extended period and manual control took over. I have not had a single instance of Ardunio induced failure.
            Last edited by randy; June 25, 2016, 03:14 PM.
            HS4 Pro, 4.2.19.0 Windows 10 pro, Supermicro LP Xeon

            Comment


              Originally posted by bdraper View Post
              Thanks Randy where did you get the .108 build, I only see .103 in the updater. I should probably download .103 from the updater and give it a go as I am on .100 right now and only expanding my testing. Not seeing any issues with it at the moment, just wanted to post some observations about CPU usage for Moskus. Only time will tell with my system as I increase my usage and understanding of the Arduino. This is really cool stuff, and I am enjoying the adventure.
              Greig an I work together on (I assume) all of the test builds. I am a Guinea pig for builds that might need further development, have new features, require a new library or IDE. .108 is such a alpha build as I stated above. When I and other testers have not encountered a problem, then he releases the beta. IIRC there were still some connectivity issues to be worked out and Greig was concerned about the v2 boards not connecting reliably. For that reason .108 is not ready for more general beta release.

              Use .103 it is very good - especially if you are still on .36. There is a whole host of changes from .36 to .103 and all of them are improvements. The changes to .108 are incremental and mostly to do with the new libraries for v2 Ethernet shields. Unless you want to use those shields there is really no need to test .108. My experience with those shields was not good.
              HS4 Pro, 4.2.19.0 Windows 10 pro, Supermicro LP Xeon

              Comment


                Originally posted by rprade View Post
                Greig an I work together on (I assume) all of the test builds. I am a Guinea pig for builds that might need further development, have new features, require a new library or IDE. .108 is such a alpha build as I stated above. When I and other testers have not encountered a problem, then he releases the beta. IIRC there were still some connectivity issues to be worked out and Greig was concerned about the v2 boards not connecting reliably. For that reason .108 is not ready for more general beta release.

                Use .103 it is very good - especially if you are still on .36. There is a whole host of changes from .36 to .103 and all of them are improvements. The changes to .108 are incremental and mostly to do with the new libraries for v2 Ethernet shields. Unless you want to use those shields there is really no need to test .108. My experience with those shields was not good.
                Thanks Randy, I will give .103 a try, currently running .100.

                Thanks again for your insight and the testing you are doing to improve the plugin.

                Greig, great plugin, thanks for all the hard work.
                Billy

                Comment


                  Randy, I installed .103 and have been monitoring it for several days now. No issues so far, it is running very well and my CPU usage is back down to where it was before adding all of the temp sensors. Thanks for the suggestion.

                  By the way, which version of HomeSeer are you running? I am on version 3.0.0.218. I was planning on upgrading to one of the later releases when everything settled down.
                  Billy

                  Comment


                    Originally posted by bdraper View Post
                    Randy, I installed .103 and have been monitoring it for several days now. No issues so far, it is running very well and my CPU usage is back down to where it was before adding all of the temp sensors. Thanks for the suggestion.

                    By the way, which version of HomeSeer are you running? I am on version 3.0.0.218. I was planning on upgrading to one of the later releases when everything settled down.
                    I'm running 3.0.0.289. There were some pretty huge changes to the event engine in the last several releases leading up to 289, though I never saw a change in average CPU usage. Mine hovers around 10-20% with HomeSeer and Vivotek VAST running on it. It is an E3-1230 Xeon at 3.3ghz.

                    Current Date/Time: 7/2/2016 8:21:31 PM
                    HomeSeer Version: HS3 Pro Edition 3.0.0.289
                    Operating System: Microsoft Windows 10 Pro - Work Station
                    System Uptime: 0 Days 21 Hours 18 Minutes 25 Seconds
                    IP Address: 192.168.2.36
                    Number of Devices: 1541
                    Number of Events: 1180
                    Available Threads: 800

                    Enabled Plug-Ins
                    1.0.0.108: Arduino Plugin
                    2.0.27.0: BLBackup
                    2.0.6.0: BLEditor
                    2.0.120.0: BLRadar
                    1.0.3.0: BLShutdown
                    2.0.69.0: BLStat
                    3.0.0.15: DirecTV
                    3.0.0.15: DirecTV
                    3.0.0.15: DirecTV
                    3.0.0.15: DirecTV
                    3.0.0.15: DirecTV
                    3.0.0.27: EasyTrigger
                    3.0.0.30: EnvisaLink
                    3.5.1.0: Harmony Hub
                    3.0.0.68: HSTouch Server
                    1.0.16092.165: MyQ
                    3.0.1.39: PHLocation
                    0.0.0.22: Pushover 3P
                    3.0.5579.15955: Ultra1Wire3
                    3.0.5833.22517: UltraECM3
                    3.0.5917.35093: UltraLog3
                    3.0.6013.19563: UltraMon3
                    3.0.5939.37453: UltraWeatherWU3
                    3.0.0.50: weatherXML
                    3.0.1.83: Z-Wave



                    Form the release notes:

                    Changes from 3.0.0.290 to 3.0.0.291

                    * On Linux, fixed events going out of order

                    Changes from 3.0.0.289 to 3.0.0.290

                    * Fixed Amazon echo thermostat setpoint command for Auto mode returning an error


                    3.0.0.292 is out, but I have no idea what from .291.
                    HS4 Pro, 4.2.19.0 Windows 10 pro, Supermicro LP Xeon

                    Comment


                      Originally posted by bdraper View Post
                      Moskus, which version of the Arduino plugin are you using? I am on version 1.0.0.100.

                      Until only recently I have only been playing around with the Arduino, basically just monitoring a few temp sensors on a breadboard. Everything was working well so I thought I would expand the system to a few of my temp sensors on my 1-wire network. I have 20 or so DS1820s monitored by a TEMP08 unit spread out in and outside the house. Our attic is split so I have a sensor in each side and also one in the crawlspace. Other temp senors are located in the duct work and in some rooms. he documentation states that the The Arduino plugin will monitor 15 one-wire sensors, so I was able to easily split my system up and add 13 sensors. I noticed after doing this the CPU usage on my HomeSeer application usually averaged around 10% (using Jon00s PerfMon utility), now it is averaging around 25%. Everything is still working well with the increase in CPU, however it is notable. I plan on adding an additional board at a later date and wonder if it will increase more. I am sure there is something that I could do just not sure what? It appears that the sensors update quite frequently, some every few seconds, the CPU increase could be due to this activity. I wonder if adding a timer into the default sketch would reduce the overall CPU usage. I am using sketch V1.0.0.99, the only modifications to it were adding in the IP addresses.
                      Originally posted by rprade View Post
                      I have 4 Arduino Mega boards in use, each one has a single OneWire temperature probe. 2 have analog inputs used for a luminance sensors. 3 of the boards are in use with multiple digital inputs and outputs, PWM outputs, etc. Two of the production boards have 20-30 digital I/O connections. One of the boards is a test platform and only has a OneWire, a luminance sensor and 4 digital I/O pins. The CPU usage for my Arduino plug-in executable is usually under 1%. When there is I/O activity it will spike to 4-5%.

                      Hmmm!

                      I'm using HS3 .280 with Arduino plugin 1.0.0.103 and I see huge CPU spikes between 24-27% every minute or so.

                      Over time, this is the result:


                      It has over all three times more CPU time than even HStouch!

                      .. and I'm not doing alot with it. My setup is for two boards, but only one connected. The other is set to "Disconnect", I use it from time to time for testing. The first board is controlling my irrigation, so it's just 4 outputs controlling relays.

                      Board 2 config:



                      Board 1 config:




                      Is there anything I can do?

                      I do have the capacity, but it seems that I'm doing something is wrong with my setup if something is working overtime like this, and I like my system to be as stable as possible?
                      HSPro 3.0.0.458, Z-NET with Z-wave plugin 3.0.1.190, RFXCOM + 2x RFXtrx433E, HSTouch, Squeezebox plugin, iTach IP/WF2IR & GC-100-6 with UltraGCIR, BLDenon, NetcamStudio, Jon00s Webpage builder, Harmony Hub plugin, SCSIP (with FreePBX), Arduino plugin, IFTTT, Pushalot plugin, Device History plugin.
                      Running on Windows 10 (64) virtualized
                      on ESXi (Fujitsu Primergy TX150 S8).
                      WinSeer (for Win10) - TextSeer - FitbitSeer - HSPI_MoskusSample

                      Are you Norwegian (or Scandinavian) and getting started with HomeSeer? Read the "HomeSeer School"!

                      Comment


                        Interesting. My CPU usage on several of the modules looks similar to yours.

                        Our System Idle process is similar as is several other modules. However since upgrading the Arduino to .103, I have never disabled the event that restarts the Arduion plugin nightly. Using some rough math, it appears that your Arduino plugin is using over double the CPU usage as mine.

                        My Arduino setup is fairly simple. I only have one board setup at the moment with 3 pins active, 1 analog, 1 output and 1 One Wire pin. The analog pin provides a voltage measurement, the output turns a LED on/off based on other device status and the One Wire pin has 12 temperature sensors on it.

                        I monitored my CPU usage for a while and noticed most of the time the Arduino used 3 or less percent, there were very rare spikes of 5 to 14. My HomeSeer computer is a ASUS VM42-S075V, with 16GB of memory. The unit came with 4GB of memory and I just maxed it out to 16, the only upgrade I have done to it. The case is small and it fits nicely in a media cabinet. Its only job is to run HomeSeer and so far it does it very well.

                        Have you verified the Arduino executable is version .103?

                        If you remove the test board does the CPU usage go down?
                        Attached Files
                        Billy

                        Comment


                          Native ESP8266 support would be great.

                          Comment


                            Originally posted by NickStrong View Post
                            Native ESP8266 support would be great.
                            This is on the list and I will have an update soon with some bug fixes and improvements then I will look at the ESP8266 again but I did not have much luck the last time I tried.

                            Greig.

                            Sent from my SM-G925F using Tapatalk
                            Zwave = Z-Stick, 3xHSM100� 7xACT ZDM230, 1xEverspring SM103, 2xACT HomePro ZRP210.
                            X10 = CM12U, 2xAM12, 1xAW10, 1 x TM13U, 1xMS13, 2xHR10, 2xSS13
                            Other Hardware = ADI Ocelot + secu16, Global Cache GC100, RFXtrx433, 3 x Foscams.
                            Plugings = RFXcom, ActiveBackup, Applied Digital Ocelot, BLDeviceMatrix, BLGarbage, BLLAN, Current Cost, Global Cache GC100,HSTouch Android, HSTouch Server, HSTouch Server Unlimited, NetCAM, PowerTrigger, SageWebcamXP, SqueezeBox, X10 CM11A/CM12U.
                            Scripts =
                            Various

                            Comment


                              Originally posted by bdraper View Post
                              Have you verified the Arduino executable is version .103?

                              If you remove the test board does the CPU usage go down?
                              Yes, the file version is verified to be .103.
                              I'll try to remove the test board.


                              I'm using Ethernet shields (no Wifi, no direct COM-port connection) if it matters.
                              Last edited by Moskus; July 5, 2016, 02:31 AM.
                              HSPro 3.0.0.458, Z-NET with Z-wave plugin 3.0.1.190, RFXCOM + 2x RFXtrx433E, HSTouch, Squeezebox plugin, iTach IP/WF2IR & GC-100-6 with UltraGCIR, BLDenon, NetcamStudio, Jon00s Webpage builder, Harmony Hub plugin, SCSIP (with FreePBX), Arduino plugin, IFTTT, Pushalot plugin, Device History plugin.
                              Running on Windows 10 (64) virtualized
                              on ESXi (Fujitsu Primergy TX150 S8).
                              WinSeer (for Win10) - TextSeer - FitbitSeer - HSPI_MoskusSample

                              Are you Norwegian (or Scandinavian) and getting started with HomeSeer? Read the "HomeSeer School"!

                              Comment


                                I am using a genuine Arduino UNO with a Ethernet shield on my installation, however this one is installed in the cabinet with the HomeSeer and has a direct USB connection for power and easy programming.

                                Based on Randy's earlier post he is using 4 Arduino Mega Boards with Ethernet shields (no Wifi, no direct COM-port connection)
                                Billy

                                Comment

                                Working...
                                X