Module Envoy_Token Dim varToken As String = "" Dim varTokenDate As Long = 0 Dim varEnphaseID As String = "enphase_login_email" Dim varEnphasePW As String = "enphase_login_password" Dim varSerialNumber As String = "serial_number_envoy" Dim varEnvoy As String = "https://domain_or_ip:https_port" Public Function ValidateServerCertificate(ByVal sender As Object, ByVal certificate As Object, ByVal chain As Object, ByVal sslPolicyErrors As Net.Security.SslPolicyErrors) As Boolean Return True End Function Sub Envoy_Test() Dim result As String = "" Dim WEB = New Net.WebClient() WEB.Headers("Content-Type") = "application/json" WEB.Headers("Authorization") = "Bearer " & varToken Try result = WEB.UploadString(varEnvoy & "/production.json?details=1", "POST", "") Catch ex As Exception Return ("") End Try Return result End Sub Function GetEnphaseToken(ID As String, PW As String, SN As String) As String Dim result As String = "" Dim json_id As New json Dim WEB = New Net.WebClient() Dim LoginData As System.Collections.Specialized.NameValueCollection = New System.Collections.Specialized.NameValueCollection() LoginData.Add("user[email]", ID) LoginData.Add("user[password]", PW) Try result = Text.Encoding.UTF8.GetString(WEB.UploadValues("https://enlighten.enphaseenergy.com/login/login.json?", "POST", LoginData)) Catch ex As Exception result = "" End Try If (result.Length > 64) Then json_id.Text = result Dim session_id As String = json_id.Value(New String() {"session_id"}).ToText If (session_id <> "") Then WEB.Headers("Content-Type") = "application/json" Dim data As String = ("{'session_id':'" & session_id & "', 'serial_num':'" & SN & "', 'username':'" & ID & "'}").Replace("'", Chr(34)) result = WEB.UploadString("https://entrez.enphaseenergy.com/tokens", "POST", data) If result.Length < 64 Then result = "" End If End If End If Return result End Function Sub Main() Net.ServicePointManager.ServerCertificateValidationCallback = New System.Net.Security.RemoteCertificateValidationCallback(AddressOf ValidateServerCertificate) varToken = GetEnphaseToken(varEnphaseID, varEnphasePW, varSerialNumber) If (varToken <> "") Then Debug.WriteLine(varToken) Envoy_Test() End If End Sub End Module