Announcement

Collapse
No announcement yet.

A script to log device changes to InfluxDB for use with Grafana

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

    A script to log device changes to InfluxDB for use with Grafana

    Hey all, I have been looking for a way to log device changes to an external database so I could then visualize the data. I couldn't find anything ready-made so I put together a script using parts I found on these forums as a starting point. I settled on using InfluxDB as the database mostly because I couldn't get SQLExpress to work. I think it is a better solution anyway.

    Why do this?
    I wanted pretty dashboards with lots of cool graphs and stuff. Grafana is what I'm using to generate my dashboards.

    OK, how then?
    I am using Windows, so these instructions reflect that. Install InfluxDB. Install Grafana. Create a database in InfluxDB where your measurements will go. I called mine "homeauto". Configuration is beyond the scope of this post but I can try to answer questions if you have them. Both InfluxDB and Grafana run on Windows and don't have any other dependencies.

    Copy this script and paste it into a new text file, then rename it L2DB-influxdb.vb. Place that in your HomeSeer Scripts folder. Make sure you modify the variables at the top to fit your system.

    Code:
    'VB.Net script to write Homeseer 3 values to InfluxDB
    'Created by Brian based on code found on the Homeseer forums. No warranty. Use at your own risk.
    'Uncomment the log statements if you're having problems to try to track down the error.
    
    'Installation Instrustions: 
    '	0: Install InfluxDB & get it running
    '	1: Modify the variables below to fit your system.
    '	2: Add this line to Homeseer\Scripts\Startup.vb
    '    hs.RegisterStatusChangeCB("L2DB-influxdb.vb","Main")
    '	3: Restart Homeseer
    
    Imports System.Web
    Imports System.Net
    Imports System.IO
    Imports System.Text
    
    Sub Main(ByVal Parms As Object)
    
    	'==========================================================
    	'Modify these to fit your system
    	dim INFLUX_DB_SERVER_IP = "localhost"
    	dim INFLUX_DB_SERVER_PORT = "8086"
    	dim INFLUX_DB_DATABASE_NAME = "homeauto"
    	dim SKIP_LIST = "183" 'comma separated list of device references to skip logging
    	'==========================================================
    
    	dim device_name, device_location, device_location2, deviceObj, device_type, problem
    	dim dev_address as string
        Dim device_value As Double
        Dim devRef As Integer
    	
    	
        'hs.WriteLog("L2DB-InfluxDB", "Script running")
    
    	'Get device info from Homeseer
        dev_address = Parms(1) 'address of device. 
        device_value = Parms(2) 'new value of device
        devRef = Parms(4) 'Device reference of the device 
        deviceObj = hs.GetDeviceByRef(devRef)
        device_name = deviceObj.name(hs)
        device_location = deviceObj.location(hs)
        device_location2 = deviceObj.location2(hs)
        device_type = deviceObj.Device_Type_String(hs)
    	
    	If device_type = "Timer" Then 'Don't log timers
    		Exit Sub
    	End If
    	
    	If SKIP_LIST <> "" Then 
    		Dim skips = SKIP_LIST.split(New Char() {","c})
    		Dim skip as String
    		For Each skip in Skips
    			If devref = skip
    				Exit Sub
    			End If
    		Next
    	End If
    	
    	'hs.WriteLog("L2DB-InfluxDB", "Logging to Database: Reference: " & devref & " Address: " & dev_address & ", Device Name: " & device_name & ", New Value: " & device_value)
    	
    	
    	'Build the post data string
    	Dim postdata as String = devref
    	If device_name <> "" Then 
    		postdata = postdata & ",name=" & device_name
    	End If
    	If device_location <> "" Then 
    		postdata = postdata & ",location=" & device_location
    	End If
    	If device_location2 <> "" Then 
    		postdata = postdata & ",location2=" & device_location2
    	End If
    	If device_type <> "" Then 'Types are optional and not all devices have them
    		postdata = postdata & ",type=" & device_type
    	End If
    	If dev_address <> "" Then 'Addresses are optional and not all devices have them
    		postdata = postdata & ",address=" & dev_address
    	End If
    	
    	postdata = postdata.Replace(" ", "\ ")
    	postdata = postdata & " value=" & device_value
    	
    	'hs.WriteLog("L2DB-InfluxDB", postdata)
    	
    	'Set up the Webrequest
    	Dim url = "http://" & INFLUX_DB_SERVER_IP & ":" & INFLUX_DB_SERVER_PORT & "/write?db=" & INFLUX_DB_DATABASE_NAME
    	Dim httpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)
    	
    	
    	'Dim httpWebRequest = DirectCast(WebRequest.Create("https://requestb.in/XXXXXXX"), HttpWebRequest)  'For testing- to see what the request contains
    	
    	httpWebRequest.ContentType = "application/x-www-form-urlencoded"
    	httpWebRequest.Method = "POST"
    	Dim encoding As New System.Text.UTF8Encoding
    	
    	'Make the request to the database
    	Try
    		Dim data As Byte() = encoding.GetBytes(postdata)
    		httpWebRequest.ContentLength = data.Length
    		Dim myStream As Stream = httpWebRequest.GetRequestStream()
            
    		If data.Length > 0 Then
    			myStream.Write(data, 0, data.Length)
    			myStream.Close()
    		End If
    	Catch ex As Exception
    		hs.WriteLog("L2DB-InfluxDB", "Error: " & ex.ToString())
    	End Try
    	
    	Try
    		Dim httpResponse = DirectCast(HttpWebRequest.GetResponse(), HttpWebResponse) 
    		Using streamReader = New StreamReader(httpResponse.GetResponseStream().ToString) 
    			Dim responseText = StreamReader.ReadToEnd() 
    			'hs.WriteLog("L2DB-InfluxDB", "Response: " & responseText) 
    		End Using 
    	Catch ex As Exception
    		hs.WriteLog("L2DB-InfluxDB", "Error: " & ex.ToString())
    		hs.WriteLog("L2DB-InfluxDB", "Request was: " & postdata)
    	End Try
    
    End Sub
    I recommend running InfluxDB from the command line so that you can watch the output and see your measurements being added. Once you're satisfied with how it is working, you can use NSSM to run it as a service. I am using Telegraf to send info about my Homeseer server itself to InfluxDB. Installation is straightforward.
    Attached Files
    Last edited by bdc; February 23, 2018, 06:00 PM. Reason: Typos

    #2
    I'm surprised you haven't had any comments on this yet. This looks great.

    I've been looking to get this set up with InfluxDB as well, but run Homeseer on Linux. Has anyone gotten something similar working?

    Comment


      #3
      Originally posted by Ranger View Post
      I'm surprised you haven't had any comments on this yet. This looks great.

      I've been looking to get this set up with InfluxDB as well, but run Homeseer on Linux. Has anyone gotten something similar working?
      I just saw this post, and it looks like exactly what I was looking to do! I'll be trying it out this weekend on my Linux HS3 system.
      HS Pro 3.0 | Linux Ubuntu 16.04 x64 virtualized under Proxmox (KVM)
      Hardware: Z-NET - W800 Serial - Digi PortServer TS/8 and TS/16 serial to Ethernet - Insteon PLM - RFXCOM - X10 Wireless
      Plugins: HSTouch iOS and Android, RFXCOM, BlueIris, BLLock, BLDSC, BLRF, Insteon PLM (MNSandler), Device History, Ecobee, BLRing, Kodi, UltraWeatherWU3
      Second home: Zee S2 with Z-Wave, CT101 Z-Wave Thermostat, Aeotec Z-Wave microswitches, HSM200 occupancy sensor, Ecolink Z-Wave door sensors, STI Driveway Monitor interfaced to Zee S2 GPIO pins.

      Comment


        #4
        This is wicked cool looking. Thanks!

        In my job we use a number of tools to track system resources, Java memory and threads, database or service call times, etc. I'm very much a data visualization fan.

        I just haven't looked yet at such options for HS but Grafana looks a lot like how I would like to see things. I have saved this thread as a starting point.

        -L

        Comment


          #5
          Thanks for the kind words. It should be very easy to adapt the script for Linux. You can use curl to write to InfluxDB. An example from the docs:
          Code:
          curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
          I don't know enough about Homeseer scripting to make the modifications myself.

          Comment


            #6
            I made a few modifications to your script and got it working under Linux (mostly). There are a few devices that throw errors when inserting into InfluxDB, mainly Oregon sensors from the RFXCOM plugin. I suspect it has something to do with naming conventions. I added all the dll files listed in the Imports to ScriptingReferences and used the script below.

            I have some more tweaking to do to get everything right, but I'm happy with the results so far! If anyone is wondering, the pool data is coming from an ePool sensor from game-group.com. I have a Raspberry Pi 3 connected to the receiver running a python script that feeds data to HomeSeer via JSON interface.

            Code:
            'VB.Net script to write Homeseer 3 values to InfluxDB
            'Created by Brian based on code found on the Homeseer forums. No warranty. Use at your own risk.
            'Uncomment the log statements if you're having problems to try to track down the error.
            
            'Installation Instrustions: 
            '	0: Install InfluxDB & get it running
            '	1: Modify the variables below to fit your system.
            '	2: Add this line to Homeseer\Scripts\Startup.vb
            '    hs.RegisterStatusChangeCB("L2DB-influxdb.vb","Main")
            '	3: Restart Homeseer
            
            Imports System.Core
            Imports System.Web
            Imports System.Net
            Imports System.IO
            Imports System.Text
            
            Public Sub Main(ByVal Parms As Object)
            
            	'==========================================================
            	'Modify these to fit your system
            	dim INFLUX_DB_SERVER_IP = "jalapeno2.mylocaldomain.net"
            	dim INFLUX_DB_SERVER_PORT = "8086"
            	dim INFLUX_DB_DATABASE_NAME = "homeauto"
            	dim SKIP_LIST = "" 'comma separated list of device references to skip logging
            	'==========================================================
            
            	dim device_name, device_location, device_location2, deviceObj, device_type, problem
            	dim dev_address as string
                Dim device_value As Double
                Dim devRef As Integer
            	
            	
            '    hs.WriteLog("L2DB-InfluxDB", "Script running")
            
            	'Get device info from Homeseer
                dev_address = Parms(1) 'address of device. 
                device_value = Parms(2) 'new value of device
                devRef = Parms(4) 'Device reference of the device 
                deviceObj = hs.GetDeviceByRef(devRef)
                device_name = deviceObj.name(hs)
                device_location = deviceObj.location(hs)
                device_location2 = deviceObj.location2(hs)
                device_type = deviceObj.Device_Type_String(hs)
            
            	If device_type = "Timer" Then 'Don't log timers
            		Exit Sub
            	End If
            	
            	If SKIP_LIST <> "" Then 
            		Dim skips = SKIP_LIST.split(New Char() {","c})
            		Dim skip as String
            		For Each skip in Skips
            			If devref = skip
            				Exit Sub
            			End If
            		Next
            	End If
            	
            	hs.WriteLog("L2DB-InfluxDB", "Logging to Database: Reference: " & devref & " Address: " & dev_address & ", Device Name: " & device_name & ", New Value: " & device_value)
            
            	'Build the post data string
            	Dim postdata as String = devref
            	If device_name <> "" Then 
            		postdata = postdata & ",name=" & device_name
            	End If
            	If device_location <> "" Then 
            		postdata = postdata & ",location=" & device_location
            	End If
            	If device_location2 <> "" Then 
            		postdata = postdata & ",location2=" & device_location2
            	End If
            	If device_type <> "" Then 'Types are optional and not all devices have them
            		postdata = postdata & ",type=" & device_type
            	End If
            	If dev_address <> "" Then 'Addresses are optional and not all devices have them
            		postdata = postdata & ",address=" & dev_address
            	End If
            	
            	postdata = postdata.Replace(" ", "\ ")
            	postdata = postdata & " value=" & device_value
            	
            '	hs.WriteLog("L2DB-InfluxDB", postdata)
            	
            	'Set up the Webrequest
            	Dim url = "http://" & INFLUX_DB_SERVER_IP & ":" & INFLUX_DB_SERVER_PORT & "/write?db=" & INFLUX_DB_DATABASE_NAME
            	Dim httpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)
            
            	'Dim httpWebRequest = DirectCast(WebRequest.Create("https://requestb.in/XXXXXXX"), HttpWebRequest)  'For testing- to see what the request contains
            	
            	httpWebRequest.ContentType = "application/x-www-form-urlencoded"
            	httpWebRequest.Method = "POST"
            	Dim encoding As New System.Text.UTF8Encoding
            
            	'Make the request to the database
            	Try
            		Dim data As Byte() = encoding.GetBytes(postdata)
            		httpWebRequest.ContentLength = data.Length
            		Dim myStream As Stream = httpWebRequest.GetRequestStream()
                    
            		If data.Length > 0 Then
            			myStream.Write(data, 0, data.Length)
            			myStream.Close()
            		End If
            	Catch ex As Exception
            		hs.WriteLog("L2DB-InfluxDB", "Error: " & ex.ToString())
            	End Try
            	
            	Try
            		Dim httpResponse = DirectCast(HttpWebRequest.GetResponse(), HttpWebResponse) 
            		dim myReader As StreamReader 
            		dim myStream as Stream
            		myStream = httpResponse.GetResponseStream()
            		myReader = New StreamReader(myStream) 
            		Dim responseText = myReader.ReadToEnd() 
            '		hs.WriteLog("L2DB-InfluxDB", "Response: " & responseText) 
            
            	Catch ex As Exception
            		hs.WriteLog("L2DB-InfluxDB", "Error: " & ex.ToString())
            		hs.WriteLog("L2DB-InfluxDB", "Request was: " & postdata)
            	End Try
            
            End Sub
            Attached Files
            Last edited by reidfo; March 7, 2018, 11:23 AM. Reason: Fixed copy/paste error
            HS Pro 3.0 | Linux Ubuntu 16.04 x64 virtualized under Proxmox (KVM)
            Hardware: Z-NET - W800 Serial - Digi PortServer TS/8 and TS/16 serial to Ethernet - Insteon PLM - RFXCOM - X10 Wireless
            Plugins: HSTouch iOS and Android, RFXCOM, BlueIris, BLLock, BLDSC, BLRF, Insteon PLM (MNSandler), Device History, Ecobee, BLRing, Kodi, UltraWeatherWU3
            Second home: Zee S2 with Z-Wave, CT101 Z-Wave Thermostat, Aeotec Z-Wave microswitches, HSM200 occupancy sensor, Ecolink Z-Wave door sensors, STI Driveway Monitor interfaced to Zee S2 GPIO pins.

            Comment


              #7
              Thanks for this reidfo. I just tried this and seems to be working great. I just wanted to point out that your code is missing the last "End Sub". Other than that, no issues thus far.

              Comment


                #8
                Originally posted by Ranger View Post
                Thanks for this reidfo. I just tried this and seems to be working great. I just wanted to point out that your code is missing the last "End Sub". Other than that, no issues thus far.
                Glad it's working for you too. Thanks for pointing out the copy/paste error in the code block. Edited the post to fix.
                HS Pro 3.0 | Linux Ubuntu 16.04 x64 virtualized under Proxmox (KVM)
                Hardware: Z-NET - W800 Serial - Digi PortServer TS/8 and TS/16 serial to Ethernet - Insteon PLM - RFXCOM - X10 Wireless
                Plugins: HSTouch iOS and Android, RFXCOM, BlueIris, BLLock, BLDSC, BLRF, Insteon PLM (MNSandler), Device History, Ecobee, BLRing, Kodi, UltraWeatherWU3
                Second home: Zee S2 with Z-Wave, CT101 Z-Wave Thermostat, Aeotec Z-Wave microswitches, HSM200 occupancy sensor, Ecolink Z-Wave door sensors, STI Driveway Monitor interfaced to Zee S2 GPIO pins.

                Comment


                  #9
                  reidfo, are you having an issue where device status changes to "N/A" about once a day and stays that way until the status changes?

                  Comment


                    #10
                    No, I haven't had that problem.
                    HS Pro 3.0 | Linux Ubuntu 16.04 x64 virtualized under Proxmox (KVM)
                    Hardware: Z-NET - W800 Serial - Digi PortServer TS/8 and TS/16 serial to Ethernet - Insteon PLM - RFXCOM - X10 Wireless
                    Plugins: HSTouch iOS and Android, RFXCOM, BlueIris, BLLock, BLDSC, BLRF, Insteon PLM (MNSandler), Device History, Ecobee, BLRing, Kodi, UltraWeatherWU3
                    Second home: Zee S2 with Z-Wave, CT101 Z-Wave Thermostat, Aeotec Z-Wave microswitches, HSM200 occupancy sensor, Ecolink Z-Wave door sensors, STI Driveway Monitor interfaced to Zee S2 GPIO pins.

                    Comment


                      #11
                      This script is great and exactly what I was looking for. I am getting some random device errors however. One states "You must provide a request body if you set ContentLength>0 or SendChunked==true"

                      Some Google searches talk about [Begin]GetRequestStream before [Begin]GetResponse in the code but when I make any changes it breaks the whole thing. Any ideas?

                      Thanks,
                      Morgan

                      Comment


                        #12
                        Originally posted by morgan.rinehart View Post
                        This script is great and exactly what I was looking for. I am getting some random device errors however. One states "You must provide a request body if you set ContentLength>0 or SendChunked==true"

                        Some Google searches talk about [Begin]GetRequestStream before [Begin]GetResponse in the code but when I make any changes it breaks the whole thing. Any ideas?

                        Thanks,
                        Morgan
                        Try uncommenting this line:
                        Code:
                        'hs.WriteLog("L2DB-InfluxDB", "Logging to Database: Reference: " & devref & " Address: " & dev_address & ", Device Name: " & device_name & ", New Value: " & device_value)
                        Then look at your log to see what device is causing the error. I feel like that happens when one of the fields is blank but I can't remember now. Maybe post the relevant log entries (after uncommenting the above line) and I'll see if I can help troubleshoot.

                        Comment


                          #13
                          I had some errors with devices that included either spaces or commas i the name. I modified the script to replace those with other characters and haven't seen any errors since.
                          HS Pro 3.0 | Linux Ubuntu 16.04 x64 virtualized under Proxmox (KVM)
                          Hardware: Z-NET - W800 Serial - Digi PortServer TS/8 and TS/16 serial to Ethernet - Insteon PLM - RFXCOM - X10 Wireless
                          Plugins: HSTouch iOS and Android, RFXCOM, BlueIris, BLLock, BLDSC, BLRF, Insteon PLM (MNSandler), Device History, Ecobee, BLRing, Kodi, UltraWeatherWU3
                          Second home: Zee S2 with Z-Wave, CT101 Z-Wave Thermostat, Aeotec Z-Wave microswitches, HSM200 occupancy sensor, Ecolink Z-Wave door sensors, STI Driveway Monitor interfaced to Zee S2 GPIO pins.

                          Comment


                            #14
                            Hi, has anyone added these graphs to the HS3Touch app ?


                            Sent from my iPhone using Tapatalk

                            Comment


                              #15
                              So uncommented that line and many more devices are logging with no errors but what is strange is I am now seeing errors on ZWAVE and Insteon devices like this script is interfering with them some how. I would be interested to see how to replace spaces and , in device names. Have many of those and found this line in the script but do not know enough about scripting to tell what the replacement is postdata = postdata.Replace(" ", "\ "). I included the logs below and you can see like at 2:54:33 PM I am getting Z-Wave device error talking about "Object reference not set to an instance of an object." Don't have those errors when the script is disabled. Feel like I am almost there on getting this setup it sure is better than logging to Device History then syncing the SQLLite to MYSQL. I much prefer InfluxDB and this would make my logging so much cleaner.

                              Thanks,
                              Morgan

                              Mar-28 2:54:33 PM L2DB-InfluxDB Logging to Database: Reference: 373 Address: E1D61766-002-Q8, Device Name: kW Hours 4, New Value: 7.504
                              Mar-28 2:54:33 PM Z-Wave Device: Node 2 Bedroom kW Hours 4 Set to 7.504 (7.504 kW Hours)
                              Mar-28 2:54:33 PM Z-Wave Error Error setting the value for device with reference ID 523 to a value(255): Object reference not set to an instance of an object.
                              Mar-28 2:54:33 PM L2DB-InfluxDB Request was: 523,name=Front\ Walk\ Sensor\ Binary\ Motion,location=Front\ Walk,location2=Motion\ Sensor,type=Z-Wave\ Sensor\ Binary,address=E1D61766-011-Q52 value=255
                              Mar-28 2:54:33 PM L2DB-InfluxDB Error: System.Net.ProtocolViolationException: You must provide a request body if you set ContentLength>0 or SendChunked==true. Do this by calling [Begin]GetRequestStream before [Begin]GetResponse. at Microsoft.VisualBasic.CompilerServices.Symbols.Container.Inv okeMethod(Method TargetProcedure, Object[] Arguments, Boolean[] CopyBack, BindingFlags Flags) at Microsoft.VisualBasic.CompilerServices.NewLateBinding.Object LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack) at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGe t(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack) at scriptcode4.VBWrapper.Main(Object Parms)
                              Mar-28 2:54:33 PM L2DB-InfluxDB Error: System.Net.WebException: The operation has timed out at Microsoft.VisualBasic.CompilerServices.Symbols.Container.Inv okeMethod(Method TargetProcedure, Object[] Arguments, Boolean[] CopyBack, BindingFlags Flags) at Microsoft.VisualBasic.CompilerServices.NewLateBinding.Object LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack) at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGe t(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack) at scriptcode4.VBWrapper.Main(Object Parms)
                              Mar-28 2:54:30 PM Warning Plugin Blue-Iris is not responding but it is still running, not restarting yet.
                              Mar-28 2:54:02 PM APCUPSD Debug --------------- refreshTimer END -----------------
                              Mar-28 2:54:02 PM APCUPSD (UPS1) Error An unexpected error occured in the QueryStatusAndEvents() UPS1 function/subroutine: [System.NullReferenceException: Object reference not set to an instance of an object. at System.Runtime.Remoting.Messaging.LogicalCallContext.Propaga teIncomingHeadersToCallContext(IMessage msg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(Mess ageData& msgData, Int32 type) at HomeSeerAPI.IHSApplication.SetDeviceValueByRef(Int32 dvRef, Double Valuenum, Boolean trigger) at HSPI_APCUPSD.HS_DEVICES.SetDeviceValueAndString(String instance, Int32 iDeviceRef, Double iDeviceValue, String strDeviceString, Boolean OnlyIfChanged) at HSPI_APCUPSD.HS_DEVICES.SetDeviceValueStringAndIcon(String instance, Int32 iDeviceRef, Double iDeviceValue, String strDeviceString, String strIcon, Boolean OnlyIfChanged) at HSPI_APCUPSD.HSPI_INSTANCE.UpdateUPSDevices() at HSPI_APCUPSD.HSPI_INSTANCE.QueryStatusAndEvents()]
                              Mar-28 2:54:02 PM L2DB-InfluxDB Request was: 571,name=CC-UPS-01\ Last\ Updated,location=APCUPSD,location2=Power\ Systems,type=Timestamp,address=UPS1_003 value=1522248725
                              Mar-28 2:54:02 PM L2DB-InfluxDB Error: System.Net.ProtocolViolationException: You must provide a request body if you set ContentLength>0 or SendChunked==true. Do this by calling [Begin]GetRequestStream before [Begin]GetResponse. at Microsoft.VisualBasic.CompilerServices.Symbols.Container.Inv okeMethod(Method TargetProcedure, Object[] Arguments, Boolean[] CopyBack, BindingFlags Flags) at Microsoft.VisualBasic.CompilerServices.NewLateBinding.Object LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack) at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGe t(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack) at scriptcode8.VBWrapper.Main(Object Parms)
                              Mar-28 2:54:02 PM L2DB-InfluxDB Error: System.Net.WebException: The operation has timed out at Microsoft.VisualBasic.CompilerServices.Symbols.Container.Inv okeMethod(Method TargetProcedure, Object[] Arguments, Boolean[] CopyBack, BindingFlags Flags) at Microsoft.VisualBasic.CompilerServices.NewLateBinding.Object LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack) at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGe t(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack) at scriptcode8.VBWrapper.Main(Object Parms)
                              Mar-28 2:53:30 PM Pushover 3P Error POST URL Object reference not set to an instance of an object.
                              Mar-28 2:53:30 PM L2DB-InfluxDB Request was: 388,name=Pushover\ 3P\ Application\ Messages\ Remaining,location=Pushover,location2=System,type=Pushover\ 3P\ Device,address=P-4-Remaining value=6059
                              Mar-28 2:53:30 PM L2DB-InfluxDB Error: System.Net.ProtocolViolationException: You must provide a request body if you set ContentLength>0 or SendChunked==true. Do this by calling [Begin]GetRequestStream before [Begin]GetResponse. at Microsoft.VisualBasic.CompilerServices.Symbols.Container.Inv okeMethod(Method TargetProcedure, Object[] Arguments, Boolean[] CopyBack, BindingFlags Flags) at Microsoft.VisualBasic.CompilerServices.NewLateBinding.Object LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack) at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGe t(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack) at scriptcode7.VBWrapper.Main(Object Parms)
                              Mar-28 2:53:30 PM L2DB-InfluxDB Error: System.Net.WebException: The operation has timed out at Microsoft.VisualBasic.CompilerServices.Symbols.Container.Inv okeMethod(Method TargetProcedure, Object[] Arguments, Boolean[] CopyBack, BindingFlags Flags) at Microsoft.VisualBasic.CompilerServices.NewLateBinding.Object LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack) at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGe t(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack) at scriptcode7.VBWrapper.Main(Object Parms)
                              Mar-28 2:53:29 PM L2DB-InfluxDB Logging to Database: Reference: 185 Address: 41.82.C3:1, Device Name: Interior Garage Door - Door Sensor, New Value: 0
                              Mar-28 2:53:29 PM Insteon Received 41.82.C3:1 (Security Interior Garage Door - Door Sensor) Go OFF
                              Mar-28 2:53:29 PM Insteon Received 41.82.C3:1 (Security Interior Garage Door - Door Sensor) Go ON

                              Comment

                              Working...
                              X