Announcement

Collapse
No announcement yet.

DL Monoprice HDMI Matix plugin

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    DL Monoprice HDMI Matix plugin

    I'm trying to install this plugin but it will not discover my 4x4 switch, I have the right serial cable as I can use the supplied software to control and get updates from the switch. When I click config it opens the plugin config page but it does nothing. Anyone got any ideas?
    John
    Last edited by lj502; August 25, 2012, 03:44 PM. Reason: Renamed it

    #2
    Hi John,

    I just sent you an email with a few debugging steps to try.

    Thanks
    David

    Comment


      #3
      OK, first bug found! :-) Clicking 'Add' on the config page doesn't actually add a switch. I hope to post a fix for this in a day or two. In the meantime you can manually add a switch by adding a line to the [Switches] section of hspi_drhdx.ini like this:

      Code:
      [Switches]
      HDX-404=serial,COM:1
      -David

      Comment


        #4
        That was the fix for mine, now I have perfect 2-way control of my matrix switch. Great plugin and support!

        Thanx
        John

        Comment


          #5
          Wow, this is great. I have one of these and will have to try this plugin out soon!

          Comment


            #6
            OK, I tried this, and am getting errors. To make matters worse, i just recently set my sprinklers back up, but did not program the safety maximums yet (which after this I will definitely be doing today, ha). Long story short, the HDMI switch plugin crashed HS during a water run, and it ran all night.

            Problem 1:
            So...the first error (that led to the overall HS crash). Upon installing the plugin, I edited the ini file, and left it set for COM1. My actual HDMI switch is on COM9, but I wasn't sure of what COM it was on last night, and was just getting the plugin part ready before going to bed. FYI, there is nothing on my COM1 at all. In the morning, HS was crashed and this was on the screen:



            8/24/2012 10:25:22 PM
            Safe handle has been closed
            HomeSeer version: 2.5.0.57
            Source: mscorlib
            Target: Boolean SetEvent(Microsoft.Win32.SafeHandles.SafeWaitHandle)
            Stack trace:
            at Microsoft.Win32.Win32Native.SetEvent(SafeWaitHandle handle)
            at System.Threading.EventWaitHandle.Set()
            at System.IO.Ports.SerialStream.AsyncFSCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOverlapped)
            at System.Threading._IOCompletionCallback.IOCompletionCallback_ Context(Object state)
            at System.Threading.ExecutionContext.runTryCode(Object userData)
            at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWi thGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
            at System.Threading.ExecutionContext.RunInternal(ExecutionConte xt executionContext, ContextCallback callback, Object state)
            at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
            at System.Threading._IOCompletionCallback.PerformIOCompletionCa llback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)

            I tested it again with and with the plugin enabled in HS. Sure enough, this will crash HS. Please capture the exception if there is nothing on a defined COM port! The thread should just exit, but not crash HS.

            Problem 2:
            Then I configured the plugin properly to COM9, where my HDMI switch is. This didn't work. Here are the errors from the log.

            8/25/2012 12:06:54 PM - DR Monoprice HDX P - SerialPort COM9 successfully opened
            8/25/2012 12:06:54 PM - DR Monoprice HDX P - Connecting to COM:9
            8/25/2012 12:06:54 PM - DR Monoprice HDX P - Thread serial.thread.HDX-404 is not active
            8/25/2012 12:06:54 PM - DR Monoprice HDX P - Exception in COM:9: The I/O operation has been aborted because of either a thread exit or an application request.
            8/25/2012 12:06:54 PM - DR Monoprice HDX P - Switch.Name=HDX-404, Switch.ClassObject.Name=COM:9, Switch.Thread.Name=serial.thread.HDX-404
            8/25/2012 12:06:54 PM - DR Monoprice HDX P - HDX-404.Thread.IsAlive=True
            8/25/2012 12:06:54 PM - DR Monoprice HDX P - HDX-404.ClassObject.TcpClient.Connected=False
            8/25/2012 12:06:54 PM - DR Monoprice HDX P - HDX-404.ClassObject.SerialPort.IsOpen=True
            8/25/2012 12:06:54 PM - DR Monoprice HDX P - Connection failed! Watchdog timer restarting thread for HDX-404
            8/25/2012 12:06:34 PM - DR Monoprice HDX P - SerialPort COM9 successfully opened
            8/25/2012 12:06:34 PM - DR Monoprice HDX P - Connecting to COM:9
            8/25/2012 12:06:34 PM - DR Monoprice HDX P - Thread serial.thread.HDX-404 is not active
            8/25/2012 12:06:34 PM - DR Monoprice HDX P - Exception in COM:9: The I/O operation has been aborted because of either a thread exit or an application request.
            8/25/2012 12:06:34 PM - DR Monoprice HDX P - Switch.Name=HDX-404, Switch.ClassObject.Name=COM:9, Switch.Thread.Name=serial.thread.HDX-404
            8/25/2012 12:06:34 PM - DR Monoprice HDX P - HDX-404.Thread.IsAlive=True
            8/25/2012 12:06:34 PM - DR Monoprice HDX P - HDX-404.ClassObject.TcpClient.Connected=False
            8/25/2012 12:06:34 PM - DR Monoprice HDX P - HDX-404.ClassObject.SerialPort.IsOpen=True

            I can control the switch easily using a terminal program and sending HEX codes directly to the switch over COM9, so I am sure that everything is fine there. Help!

            Comment


              #7
              Originally posted by Automated View Post
              Problem 1:
              So...the first error (that led to the overall HS crash). Upon installing the plugin, I edited the ini file, and left it set for COM1. My actual HDMI switch is on COM9, but I wasn't sure of what COM it was on last night, and was just getting the plugin part ready before going to bed. FYI, there is nothing on my COM1 at all. In the morning, HS was crashed and this was on the screen:

              8/24/2012 10:25:22 PM
              Safe handle has been closed
              HomeSeer version: 2.5.0.57
              Source: mscorlib
              Target: Boolean SetEvent(Microsoft.Win32.SafeHandles.SafeWaitHandle)
              Stack trace:
              at Microsoft.Win32.Win32Native.SetEvent(SafeWaitHandle handle)
              at System.Threading.EventWaitHandle.Set()
              at System.IO.Ports.SerialStream.AsyncFSCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOverlapped)
              at System.Threading._IOCompletionCallback.IOCompletionCallback_ Context(Object state)
              at System.Threading.ExecutionContext.runTryCode(Object userData)
              at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWi thGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
              at System.Threading.ExecutionContext.RunInternal(ExecutionConte xt executionContext, ContextCallback callback, Object state)
              at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
              at System.Threading._IOCompletionCallback.PerformIOCompletionCa llback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)

              I tested it again with and with the plugin enabled in HS. Sure enough, this will crash HS. Please capture the exception if there is nothing on a defined COM port! The thread should just exit, but not crash HS.
              Can you reproduce this on demand? I've tried both setting the plugin for a non-existing COM port and to an existing COM port without a switch on it and I can't get the plugin to crash, let alone bring Homeseer down. Can you post your ini file and some details about what ports you have? I definitely want to track this error down.


              Problem 2:
              Then I configured the plugin properly to COM9, where my HDMI switch is. This didn't work. Here are the errors from the log.

              8/25/2012 12:06:54 PM - DR Monoprice HDX P - SerialPort COM9 successfully opened
              8/25/2012 12:06:54 PM - DR Monoprice HDX P - Connecting to COM:9
              8/25/2012 12:06:54 PM - DR Monoprice HDX P - Thread serial.thread.HDX-404 is not active
              8/25/2012 12:06:54 PM - DR Monoprice HDX P - Exception in COM:9: The I/O operation has been aborted because of either a thread exit or an application request.
              8/25/2012 12:06:54 PM - DR Monoprice HDX P - Switch.Name=HDX-404, Switch.ClassObject.Name=COM:9, Switch.Thread.Name=serial.thread.HDX-404
              8/25/2012 12:06:54 PM - DR Monoprice HDX P - HDX-404.Thread.IsAlive=True
              8/25/2012 12:06:54 PM - DR Monoprice HDX P - HDX-404.ClassObject.TcpClient.Connected=False
              8/25/2012 12:06:54 PM - DR Monoprice HDX P - HDX-404.ClassObject.SerialPort.IsOpen=True
              8/25/2012 12:06:54 PM - DR Monoprice HDX P - Connection failed! Watchdog timer restarting thread for HDX-404
              8/25/2012 12:06:34 PM - DR Monoprice HDX P - SerialPort COM9 successfully opened
              8/25/2012 12:06:34 PM - DR Monoprice HDX P - Connecting to COM:9
              8/25/2012 12:06:34 PM - DR Monoprice HDX P - Thread serial.thread.HDX-404 is not active
              8/25/2012 12:06:34 PM - DR Monoprice HDX P - Exception in COM:9: The I/O operation has been aborted because of either a thread exit or an application request.
              8/25/2012 12:06:34 PM - DR Monoprice HDX P - Switch.Name=HDX-404, Switch.ClassObject.Name=COM:9, Switch.Thread.Name=serial.thread.HDX-404
              8/25/2012 12:06:34 PM - DR Monoprice HDX P - HDX-404.Thread.IsAlive=True
              8/25/2012 12:06:34 PM - DR Monoprice HDX P - HDX-404.ClassObject.TcpClient.Connected=False
              8/25/2012 12:06:34 PM - DR Monoprice HDX P - HDX-404.ClassObject.SerialPort.IsOpen=True

              I can control the switch easily using a terminal program and sending HEX codes directly to the switch over COM9, so I am sure that everything is fine there. Help!
              What's happening here is that if the plugin doesn't hear from a switch for 10 seconds, it closes the port and reopens it. The plugin is very verbose with its reporting to the log and what you are seeing is what I'd expect. This is what I see in the logs too when I point the plugin at a non-existent COM port.

              However, you do have a switch on COM9 and for some reason the plugin isn't seeing it. To help me figure out what is going wrong here, please can you send me some output from your terminal program when it is talking to the switch? The 4x2 switch and the 4x4 switch that I have access to have different byte 'signatures' and the plugin has to recognise the difference. One possibility is that your switch is different again.

              Very happy to help sort this out for you.

              -David

              Comment


                #8

                Comment


                  #9
                  Now I just tried your generic IP/serial plugin, and it is switching this HDMI switch just fine!
                  What benefits will we have if we can get this plugin to work, over just using the generic one? From what I can see, it seems that it will give approximately the same functionality, although this plugin can give easier direct control through the HS browser interface. Since that is not how it will normally be switched, but rather through events, I could just use the generic one.

                  Comment


                    #10
                    Problem 1 - OK, there's an interesting scenario. I'll have to build a VM to test this out.

                    Problem 2 - Very interesting. Unfortunately I don't have a Quatech to test this with but I do have a Vlinx serial server (http://www.bb-elec.com/product_family.asp?familyid=2) and I get some odd results when I use it with Homeseer via virtual COM ports. For instance I have an RCS serial thermostat. When I use the Vlinx virtual COM port software it works perfectly in Homeseer. If I try VSPE virtual COM software (http://www.eterlogic.com/Products.VSPE.html), Homeseer doesn't see it properly, even though in a terminal program it looks fine. Simliarly I use the Vista Alarm plugin. It will only work if I use VSPE and not Vlinx's software. Again, both look fine via a terminal program. My homeseer server therefore runs both software packages.

                    As it happens, my Monoprice switch is connected to a Vlinx and I'm not using either virtual COM packages to speak to it, I'm connecting via TCP directly. I believe this should be possible with a quatech too. I just googled the manuals and it looks like you can talk directly to the quatech on port 5000. You might want to try to putty in to your Quatech to see if this is going to work. If it does, you should be able to configure the plugin like so:
                    Code:
                    [Switches]
                    Monoprice HDX402=tcp,192.168.1.1:5000
                    Meanwhile, back to checking the signature theory out, can you try connecting to the switch with RealTerm (http://realterm.sourceforge.net)? This utility has a option to see bytes coming from the switch in Hex and will be easier for me to troubleshoot. RealTerm can also communicate over direct IP.
                    Click image for larger version

Name:	mono-realt.jpg
Views:	1
Size:	121.8 KB
ID:	1166893

                    -David

                    Comment


                      #11
                      Originally posted by Automated View Post
                      Now I just tried your generic IP/serial plugin, and it is switching this HDMI switch just fine!
                      What benefits will we have if we can get this plugin to work, over just using the generic one? From what I can see, it seems that it will give approximately the same functionality, although this plugin can give easier direct control through the HS browser interface. Since that is not how it will normally be switched, but rather through events, I could just use the generic one.
                      The only advantage of using the dedicated plugin is to get updates from the switch when something is changed either via the front panel buttons, or via the IR remote. To do that with the generic plugin is possible but wouldn't be as tidy.

                      -David

                      Comment


                        #12
                        OK. I have RealTerm installed. What do you want me to set exactly, and to do/execute to get what output you want?

                        Also, I did try earlier to make a direct IP connection, and that did not work. Actually, I have tried several of my devices using the direct IP connection options in various plugins, and the result is always that it is not nearly as reliable as when I use the virtual port drivers. For that reason, and especially because it allows my Ztrollers to be extremely stable, I always use the virtual port driver method.

                        Comment


                          #13
                          Originally posted by drule View Post
                          The only advantage of using the dedicated plugin is to get updates from the switch when something is changed either via the front panel buttons, or via the IR remote. To do that with the generic plugin is possible but wouldn't be as tidy.

                          -David
                          Ah, ok. In that case, lets try to get this working.

                          Comment


                            #14
                            Originally posted by Automated View Post
                            OK. I have RealTerm installed. What do you want me to set exactly, and to do/execute to get what output you want?

                            Also, I did try earlier to make a direct IP connection, and that did not work. Actually, I have tried several of my devices using the direct IP connection options in various plugins, and the result is always that it is not nearly as reliable as when I use the virtual port drivers. For that reason, and especially because it allows my Ztrollers to be extremely stable, I always use the virtual port driver method.
                            On the "Display" tab, set Display As to be Hex [space]. On the "Port" tab, set Baud to 9600 and Port to be the COM port that has the switch on. Then click the Change button. You should see lots of data coming in from the switch straight away. It usually comes in as bursts of 14 bytes. Grab a screenshot, or cut & paste the incoming data.

                            -David

                            Comment


                              #15
                              Ah, ok. I was afraid of that.

                              I had tried it that way before, and actually just tried it again. I get no response at all in RealTerm. Strange, because I can control the switch just fine using your other plugin. I am wondering now if some of the other serial pins are actually needed. I could always hook them up also, and see if it changes anything.
                              Last edited by Automated; August 25, 2012, 04:58 PM.

                              Comment

                              Working...
                              X