Announcement

Collapse
No announcement yet.

Running Kinect plugin remotely

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

    #61
    Originally posted by Furious View Post
    Would like to say no, as the events were some of the oldest, and I didn't have any web admin open from anywhere. I haven't been able to reproduce so far, so wondering if the circumstances are very rare.
    This has been happening to me on a few occasions now. Maybe 5-6 times I have found a trigger not firing and upon checking found that the kinect trigger has gone back to the "Time is.."

    I've not been able to put my finger on the circumstances yet. I have been updating events quite a lot recently but I don't recall changing the ones that are affected.

    I'll play some more and try to reproduce it.

    Comment


      #62
      Originally posted by kenrad View Post
      Spud,

      This issue seems to be related to the kinect on that PC so it is not the plug in but the PC I will have to chase that down but recently I also started getting and error on my remote instances and then the kinect stops working the only wat i have found to correct the issue is to close the remote instance and restart it

      please see the attachment for the error and let me know what could be causing it

      Thanks Ken
      any info on this one thing that I did notice when this error occurs is it appears that the kinect plug in disconnects itself from homeseer. If I go to he events that are for the instance of the plugin they give the error message that the instance is not connected.

      This could be what jimbob is experiencing as well he should set the logging to debug and see if that error appears

      Cheers Ken
      HSPRO,HS3PRO, BLsecurity, , MCSxap, HSTouch Android, UltraGCIR, CM15a, USBUIRT, BLUSBUIRT, WIFIRGB, BLAB8SS, BLcontrol, BLGData, BLLAN,BLOccupied, BLRadar, BLVolume, iTunesDAAP, UltraGCIR3, Airplayspeak, BLalarm, BLbackup, BLLED, BLrandom, BLReminders, BLRF, BL Speech, Hyperion, IFTTT, KINECT, XBMC, MCSprinkers PRO, PHLocation, ULtrapioneer, Ultralog, ultraweatherbug, Z,troller, GC-100, GC WIFICC, GC-WIFI SERIAL, Nitrogen logic depth camera controllers,

      Comment


        #63
        I can turn on debug logging if required but I don't see any error messages.

        My issue is that the kinect trigger sometimes disappears for one of the kinects.
        I have 2 remote kinects (no local one). One of these is on my HTPC which is shutdown every night, so that kinect disconnects as expected. It's just that occasionally I will notice a VR trigger not firing from the HTPC Kinect and when I check I find the trigger has reverted to "Time is.."

        Comment


          #64
          Can we get the .exe to do some checking and possibly act on a problem like restart itself (on a remote system that is)
          What I'm seeing is that if there's been a network interruption, the remote plugin recognises the speech, but then cannot fire any events, and the server end shows errors. This will carry on until the remote plugin is killed and restarted and reconnects back to the HS server.

          Comment


            #65
            Originally posted by Furious View Post
            Can we get the .exe to do some checking and possibly act on a problem like restart itself (on a remote system that is)
            What I'm seeing is that if there's been a network interruption, the remote plugin recognises the speech, but then cannot fire any events, and the server end shows errors. This will carry on until the remote plugin is killed and restarted and reconnects back to the HS server.
            the hard part is detecting the problem, the plugin is already supposed to try to reconnect if it loses connection with HS3.

            can you systematically replicate this problem by simulating a network interruption? if so please tell me how you do it.

            also, what errors do you see on the server ends?

            Comment


              #66
              in version 3.0.0.30, I have added the possibility to log to a file. So for all problem related to disconnection or crash of remote instances, please install this version turn on "Log to file" and set "File Log Level" to trace, then send me your log file when the problem appears.

              The logs are writen to Logs/Kinect_<instance_name>.txt

              Comment


                #67
                Thanks spud, i've installed .30 and set to trace.
                Just before updating, I did see a strange one where it had reconnected but wasn't working. Checking the console window, it had literally logged "speech recognition started" following immediately by "speech recognition stopped", but no errors.... weird

                Comment


                  #68
                  One odd thing I just encountered - with the file logging turned up to trace, I could see how often it was triggering speech checking, and that after being online for 8 hours, the speech recognition just didn't work.
                  The log file showed confidence of 0.2 or less for phrases, even for the shortest and easiest, even though it was getting them right. I fiddled with the mic volume, position, nothing worked.
                  I decided to kill and restart the kinect plugin process on the tablet it was on, hey presto, recognition worked again. The same phrases in the exact same position and the same speaking location and volume, all now yielding 0.98+ confidence....
                  Anyone else seen this happen?

                  Comment


                    #69
                    Originally posted by Furious View Post
                    One odd thing I just encountered - with the file logging turned up to trace, I could see how often it was triggering speech checking, and that after being online for 8 hours, the speech recognition just didn't work.
                    The log file showed confidence of 0.2 or less for phrases, even for the shortest and easiest, even though it was getting them right. I fiddled with the mic volume, position, nothing worked.
                    I decided to kill and restart the kinect plugin process on the tablet it was on, hey presto, recognition worked again. The same phrases in the exact same position and the same speaking location and volume, all now yielding 0.98+ confidence....
                    Anyone else seen this happen?
                    do you have echo cancellation turned on? If so please try to turn it off.
                    also, could you post your ini file for this instance?
                    thanks

                    Comment


                      #70
                      No, echo cancellation isn't set, here's the ini setting:

                      Code:
                      [GENERAL]
                      visual_recognition_enabled=False
                      log_level=Debug
                      log_to_file_enabled=True
                      file_log_level=Trace
                      [VOICE_RECOGNITION]
                      confidence_threshold=0.68
                      attention_phrase=House

                      Comment


                        #71
                        Ok, so it stopped working, but is still actually recognising the speech, it's just not able to trigger events (see 2 failures in quick succession, computer with the remote plugin was rebooted this morning)

                        Is there any chance of putting some extra trapping for remote instances so it can do a complete re-initialise? My current monitoring of logs and attempting to kill and restart a remote process is very hit and miss, I'm thinking it's probably easier/more robust to incorporate it into the plugin code.

                        Code:
                        Apr-25 22:42:00 TRACE Speech Detected:
                        Apr-25 22:42:00 TRACE Phrase hypothesized = House, Confidence=0.1115392 
                        Apr-25 22:42:01 TRACE Phrase hypothesized = House who's, Confidence=0.5262588 
                        Apr-25 22:42:01 TRACE Phrase hypothesized = House who's home, Confidence=0.6219046 
                        Apr-25 22:42:02 DEBUG Phrase recognized with confidence=0.9330091
                        Apr-25 22:42:02 DEBUG House who's home
                        Apr-25 22:42:02 ERROR Object reference not set to an instance of an object.
                        Apr-25 22:42:02 DEBUG    at System.Runtime.Remoting.Messaging.LogicalCallContext.PropagateIncomingHeadersToCallContext(IMessage msg)
                           at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
                           at HomeSeerAPI.IAppCallbackAPI.TriggerMatches(String Plug_Name, Int32 TrigID, Int32 SubTrig)
                           at HSPI_KINECT.Triggers.TriggerFireByEventRef(Int32 evRef)
                           at HSPI_KINECT.VoiceRecognition.SpeechRecognizedHandler(Object sender, SpeechRecognizedEventArgs e)
                        Apr-25 22:42:06 TRACE Speech Detected:
                        Apr-25 22:42:06 TRACE Phrase hypothesized = House, Confidence=0.04535243 
                        Apr-25 22:42:07 TRACE Phrase hypothesized = House who's, Confidence=0.5795741 
                        Apr-25 22:42:07 TRACE Phrase hypothesized = House who's at, Confidence=0.6808606 
                        Apr-25 22:42:07 TRACE Phrase hypothesized = House who's home, Confidence=0.7164561 
                        Apr-25 22:42:08 DEBUG Phrase recognized with confidence=0.9735612
                        Apr-25 22:42:08 DEBUG House who's home
                        Apr-25 22:42:08 ERROR Object reference not set to an instance of an object.
                        Apr-25 22:42:08 DEBUG    at System.Runtime.Remoting.Messaging.LogicalCallContext.PropagateIncomingHeadersToCallContext(IMessage msg)
                           at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
                           at HomeSeerAPI.IAppCallbackAPI.TriggerMatches(String Plug_Name, Int32 TrigID, Int32 SubTrig)
                           at HSPI_KINECT.Triggers.TriggerFireByEventRef(Int32 evRef)
                           at HSPI_KINECT.VoiceRecognition.SpeechRecognizedHandler(Object sender, SpeechRecognizedEventArgs e)
                        Last edited by Furious; April 25, 2015, 04:52 PM.

                        Comment


                          #72
                          Got another.
                          I reboot my HS3 server once a week. This morning, the plugin was running but not working on the remote server, and by the looks of it, errored out and never reinitialised. It was stuck at waiting to be initialised, and I had to kill it and restart the exe on the remote server:
                          Code:
                          Apr-26 02:04:49 ERROR System.IO.IOException: The process cannot access the file 'C:\Users\admin\Documents\Kinect\Logs\Kinect_LivingRoom.txt' because it is being used by another process.
                             at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
                             at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
                             at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
                             at System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
                             at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
                             at System.IO.StreamWriter..ctor(String path, Boolean append)
                             at System.IO.File.AppendText(String path)
                             at HSPI_KINECT.Logger.Init()
                             at HSPI_KINECT.KinectApp.Init()

                          Comment


                            #73
                            Woke up again to find that the reboot of the server with the remote plugin was still stuck at "waiting to be initialised", so decided to double check events while I was looking, and managed to reproduce the problem where the trigger reverts to "the time is..."
                            If the remote plugin isn't initialised, and you expand an event, then you lose the configuration of the kinect trigger.

                            Comment


                              #74
                              Originally posted by Furious View Post

                              Code:
                              Apr-25 22:42:06 TRACE Speech Detected:
                              Apr-25 22:42:06 TRACE Phrase hypothesized = House, Confidence=0.04535243 
                              Apr-25 22:42:07 TRACE Phrase hypothesized = House who's, Confidence=0.5795741 
                              Apr-25 22:42:07 TRACE Phrase hypothesized = House who's at, Confidence=0.6808606 
                              Apr-25 22:42:07 TRACE Phrase hypothesized = House who's home, Confidence=0.7164561 
                              Apr-25 22:42:08 DEBUG Phrase recognized with confidence=0.9735612
                              Apr-25 22:42:08 DEBUG House who's home
                              Apr-25 22:42:08 ERROR Object reference not set to an instance of an object.
                              Apr-25 22:42:08 DEBUG    at System.Runtime.Remoting.Messaging.LogicalCallContext.PropagateIncomingHeadersToCallContext(IMessage msg)
                                 at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
                                 at HomeSeerAPI.IAppCallbackAPI.TriggerMatches(String Plug_Name, Int32 TrigID, Int32 SubTrig)
                                 at HSPI_KINECT.Triggers.TriggerFireByEventRef(Int32 evRef)
                                 at HSPI_KINECT.VoiceRecognition.SpeechRecognizedHandler(Object sender, SpeechRecognizedEventArgs e)
                              this error happens in the HS communication layer which I can't debug. I will try to have Rich have a look at it, and try to make the plugin periodically ping the HS server and when it detects an issue make it reset everything.

                              Code:
                              Apr-26 02:04:49 ERROR System.IO.IOException: The process cannot access the file 'C:\Users\admin\Documents\Kinect\Logs\Kinect_LivingRoom.txt' because it is being used by another process.
                                 at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
                                 at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
                                 at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
                                 at System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
                                 at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
                                 at System.IO.StreamWriter..ctor(String path, Boolean append)
                                 at System.IO.File.AppendText(String path)
                                 at HSPI_KINECT.Logger.Init()
                                 at HSPI_KINECT.KinectApp.Init()
                              I fixed this one in version 3.0.0.31 available here. It was a bug introduced with the logging to file feature.

                              and managed to reproduce the problem where the trigger reverts to "the time is..."
                              If the remote plugin isn't initialised, and you expand an event, then you lose the configuration of the kinect trigger.
                              when an instance is not running and I try to expand an event with a Kinect trigger or action attached to this instance, I get the following which is the expected behavior:
                              Click image for larger version

Name:	eventswheninstancenotrunning.jpg
Views:	1
Size:	31.2 KB
ID:	1178327

                              then, if I restart the instance and reload the events page, everything goes back to normal and I don't lose any of the triggers/actions configuration.
                              What happen for you when you restart the instance? does the trigger stay "the time is..." ? if so please give me the exact steps you do to reproduce this problem.

                              Thanks for all your testing!

                              Comment


                                #75
                                Thanks for your reply Spud, looking forward to the fix .
                                If I remember correctly - saw the event was bad, went to the plugin, stopped and started and fired the remote plugin up, then went back to the event page and refreshed.
                                It stayed as it was, and I then had to set the drop down to the plugin instance and the box was blank for the phrase.

                                Comment

                                Working...
                                X