Voici mais surement à améliorer

' Pince 10A la valeur devra-t’être multiplié par 0.00323
' Pince 20A la valeur devra-t’être multiplié par 0.00646
' Pince 50A la valeur devra-t’être multiplié par 0.01615
Imports System
Imports System.Xml
Imports System.IO
Imports System.Net
' Imports System.Windows.Forms
' Imports Microsoft.VisualBasic
Imports Homidom
' Imports Homidom.homidom
' Imports HoMIDom.HoMIDom.Device
' Imports HoMIDom.HoMIDom.Api
' Imports System.Threading
Namespace Dynam
'Ne pas supprimer cette class
Public Class DynamicCode
' Fonctions
' ----------
' Fonction Ecriture des valeurs dans un fichier pour historisation
' ----------------------------------------------------------------
Function EcritureFichier(NomDuComposant as string,ValeurDuComposant as string, TypeDuComposant as string)
Dim sw As StreamWriter
Dim strFile As String = "C:\Homidom\Historique\data.csv"
sw = File.AppendText(strFile)
sw.WriteLine(DateTime.Today.ToString("yyyyMMdd") & ";" & DateTime.Now.ToString("HH:mm:ss") & ";" & NomDuComposant & ";" & ValeurDuComposant & ";" & TypeDuComposant)
sw.Close()
return sw
End Function
' Fonction envoi requĂŞte http
' ---------------------------
Public Sub Sendhttp(ByVal Commande As String)
Try
Dim reader As StreamReader = Nothing
Dim str As String = ""
Dim request As WebRequest = WebRequest.Create(Commande)
Dim response As WebResponse = request.GetResponse()
reader = New StreamReader(response.GetResponseStream())
str = reader.ReadToEnd
reader.Close()
Catch ex As Exception
' _Server.Log(Server.TypeLog.ERREUR, Server.TypeSource.SCRIPT, "Sendhttp", "Erreur lors de l'envoi de la commande http: " & ex.Message)
End Try
End Sub
' --------------------------------
' --------------------------------
' --------------------------------
'Ne pas supprimer cette function
Public Function ExecuteCode(paramarray prmParameters() as object) as object
Dim Serveur as Homidom.Homidom.server
Serveur=prmParameters(0)
Dim Composant As String
Composant = "Empty"
Dim ComposantValue As String
' Dim ValeurRefresh as Integer
Dim ComposantValueTest
Dim HomidomServer = "123456789"
Dim IN1 = "9925c7e9-c7c0-435a-a38d-947414fb6155"
Dim IN2 = "0e9b396a-6cf8-4e78-8939-990d60f384a8"
Dim IN3 = "60e221eb-b890-4ff3-8d7d-810b87087404"
Dim IN4 = "25e6c121-54ed-4d36-81a4-f7127b9e547e"
Dim IN5 = "0f904982-e70a-478c-b74d-642e2bed9c7c"
Dim IN6 = "1fe2c264-822c-40e9-a824-f994a10b3a4a"
Dim IN7 = "55a090e0-b190-451b-b8df-a39c8b4f95ca"
Dim IN8 = "8e90d9dc-9330-477d-bfc1-c392b8a56cbe"
Dim OUT1 = "d8a69eb9-8ebc-4e85-851b-901ad081ca7a"
Dim OUT2 = "0af5c0c7-9bba-4e2b-a3aa-a9c1fd8eee04"
Dim OUT3 = "d941ed33-c9ac-40b5-bdb5-018e49429eaf"
Dim OUT4 = "0d6f469c-f2b8-448a-9d3f-bd0e7c8d5109"
Dim OUT5 = "92eb6dff-357c-4893-8c55-c826442d90cc"
Dim OUT6 = "b086fb02-52bb-447e-8612-67075cbef547"
Dim OUT7 = "169a4419-d7c9-4d5d-b13c-b41e9659fc6e"
Dim OUT8 = "b6d85d65-cdf2-4535-a6a0-16c429f7f37d"
Dim Analog1 = "8571b37d-f037-41cd-b6a7-4f44bf21e9b4"
Dim Analog2 = "1f450138-066d-4f5c-8119-d6b9189862d0"
Dim Analog3 = "95cf226f-675e-4990-86cf-193b42eaf1df"
Dim Analog4 = "08e758dc-4197-4498-8a2d-1b33a256a9b5"
Dim Analog5 = "81b6d096-3735-469a-a657-682425dd5e42"
Dim Analog6 = "251ed683-e8c0-4eb8-ba7a-31761e7d1e7c"
Dim Analog7 = "5dd3e41e-829e-424d-9abd-7fd9f90e68cb"
Dim Analog8 = "3333cbd0-4ae4-4aa2-8ecc-6907bb39c981"
Dim Count0 = "5cdecb20-8442-4a19-8473-c753fc5c374a"
Dim Count1 = ""
Dim TemperatureExterieure = "46b529fe-edca-421c-bd44-9bf645433852"
Dim PiscineTemperatureArrivee = "0ea6f269-8d15-44df-a498-7af02c3a3060"
Dim PiscineTemperatureDepart = "002c45e4-7b39-4a08-9e4e-a616570169a5"
Dim PiscineConsomationEau = "70c649fb-31e3-467f-b967-e7e0a7469933"
Dim PiscineEtatFiltration = "f6136f77-036f-48e4-acfa-27f077abff38"
Dim PiscineEtatPompeAChaleur = "5c579462-eade-4954-bb92-4d311fd02b0d"
Dim PiscineEtatSpotPiscine = "7aa196dc-1d2f-475c-a90e-d98246c050c3"
Dim GelExterieurEtat = "6d5e5ce0-f78e-44cb-8ab3-cdd4632856c9"
Dim ComposantIPX800AbrisDeJardinReceptionPush = "c5a38fee-df86-435f-8294-82b94ae57e38"
Dim TimerCompteur1 = "34bb7278-7507-4be9-8fcb-084791f71168"
Dim TimerCompteur2 = "3f3679b6-8eef-4beb-86a6-ebbdf09ec3d4"
Dim ConsommationElectriqueAbrisDeJardin = "31bea5d1-5cff-4976-93f4-1ab0ff824c9e"
Dim ConsommationElectriqueFiltration = "d80bf7a2-aba6-44b7-99a9-4a0a69804f9d"
Dim ConsommationElectriquePompeAChaleur = "9d951a7b-7a5b-43e9-b0a5-b6d0078f3995"
Dim EtatOut1 as Homidom.Homidom.TemplateDevice=Serveur.ReturnDeviceById(HomidomServer,PiscineEtatFiltration )
Dim EtatOut2 as Homidom.Homidom.TemplateDevice=Serveur.ReturnDeviceById(HomidomServer,PiscineEtatPompeAChaleur )
Dim EtatOut6 as Homidom.Homidom.TemplateDevice=Serveur.ReturnDeviceById(HomidomServer,PiscineEtatSpotPiscine )
Dim EtatOut8 as Homidom.Homidom.TemplateDevice=Serveur.ReturnDeviceById(HomidomServer,GelExterieurEtat )
Dim EtatOut1Value = EtatOut1.Value
Dim EtatOut2Value = EtatOut2.Value
Dim EtatOut6Value = EtatOut6.Value
Dim EtatOut8Value = EtatOut8.Value
Dim x as Homidom.Homidom.TemplateDevice=Serveur.ReturnDeviceById(HomidomServer,ComposantIPX800AbrisDeJardinReceptionPush )
Dim TimerCompteur1Value as Homidom.Homidom.TemplateDevice=Serveur.ReturnDeviceById(HomidomServer,TimerCompteur1 )
Dim TimerCompteur2Value as Homidom.Homidom.TemplateDevice=Serveur.ReturnDeviceById(HomidomServer,TimerCompteur2 )
Dim ConsommationElectriqueAbrisDeJardinValue as Homidom.Homidom.TemplateDevice=Serveur.ReturnDeviceById(HomidomServer,ConsommationElectriqueAbrisDeJardin )
Dim ConsommationElectriqueFiltrationValue as Homidom.Homidom.TemplateDevice=Serveur.ReturnDeviceById(HomidomServer,ConsommationElectriqueFiltration )
Dim ConsommationElectriquePompeAChaleurValue as Homidom.Homidom.TemplateDevice=Serveur.ReturnDeviceById(HomidomServer,ConsommationElectriquePompeAChaleur )
Dim Counter1Composant as Homidom.Homidom.TemplateDevice=Serveur.ReturnDeviceById(HomidomServer,Count0 )
' ValeurRefresh=x.VariablesOfDevice("Refresh")
' x.VariablesOfDevice("Refresh")=ValeurRefresh + 1
Dim Tensionsecteur = "245"
const URLString as String = "http://192.168.25.21/globalstatus.xml"
Dim reader As XmlTextReader = New XmlTextReader (URLString)
Do While reader.Read
Select Case reader.NodeType
Case XmlNodeType.Element
Composant = (reader.name)
Case XmlNodeType.Text
ComposantValue = (reader.value)
Select Case Composant
Case "analog0"
If ((TimerCompteur1Value.value = "30") and (ComposantValue <> "0")) then
Serveur.ChangeValueOfDevice(HomidomServer,TemperatureExterieure,(String.Format("{0:0.00}", (ComposantValue*0.323-50))) )
Serveur.ChangeValueOfDevice(HomidomServer,Analog1,ComposantValue)
EcritureFichier ("TemperatureExterieure", (String.Format("{0:0.00}", (ComposantValue*0.323-50))), "Temperature")
' x.VariablesOfDevice("Refresh") = 0
End If
Case "analog1"
If ((TimerCompteur1Value.value = "30") and (ComposantValue <> "0")) then
Serveur.ChangeValueOfDevice(HomidomServer,PiscineTemperatureArrivee,(String.Format("{0:0.00}", (ComposantValue*0.323-50))) )
Serveur.ChangeValueOfDevice(HomidomServer,Analog2,ComposantValue)
EcritureFichier ("TemperatureAbrisDeJardin", (String.Format("{0:0.00}", (ComposantValue*0.323-50))), "Temperature" )
End If
Case "analog2"
If ((TimerCompteur1Value.value = "30") and (ComposantValue <> "0")) then
Serveur.ChangeValueOfDevice(HomidomServer,PiscineTemperatureDepart,(String.Format("{0:0.00}", (ComposantValue*0.323-50))) )
Serveur.ChangeValueOfDevice(HomidomServer,Analog3,ComposantValue)
EcritureFichier ("PiscineTemperatureDepart", (String.Format("{0:0.00}", (ComposantValue*0.323-50))) , "Temperature")
End If
Case "analog3"
Case "analog4"
Serveur.ChangeValueOfDevice(HomidomServer,Analog5,ComposantValue)
If (ComposantValue > "25") then
Serveur.ChangeValueOfDevice(HomidomServer,ConsommationElectriqueAbrisDeJardin,(ComposantValue+ConsommationElectriqueAbrisDeJardinValue.Value))
End If
If (TimerCompteur1Value.value >= "30") then
EcritureFichier ("ConsommationAbrisDeJardin", (String.Format("{0:0.00}",((ComposantValue+ConsommationElectriqueAbrisDeJardinValue.Value)*0.00646/60*Tensionsecteur))) , "ConsommationElectrique" )
Serveur.ChangeValueOfDevice(HomidomServer,ConsommationElectriqueFiltration,"0")
End if
Case "analog5"
Serveur.ChangeValueOfDevice(HomidomServer,Analog6,ComposantValue)
If (ComposantValue > "25") then
Serveur.ChangeValueOfDevice(HomidomServer,ConsommationElectriqueFiltration,(ComposantValue+ConsommationElectriqueFiltrationValue.Value))
End If
If (TimerCompteur1Value.value >= "30") then
EcritureFichier ("ConsommationPiscineFiltration", (String.Format("{0:0.00}",((ComposantValue+ConsommationElectriqueFiltrationValue.Value)*0.00323/60*Tensionsecteur))) , "ConsommationElectrique")
Serveur.ChangeValueOfDevice(HomidomServer,ConsommationElectriqueFiltration,"0")
End if
Case "analog6"
Serveur.ChangeValueOfDevice(HomidomServer,Analog7,ComposantValue)
If (ComposantValue > "25") then
Serveur.ChangeValueOfDevice(HomidomServer,ConsommationElectriquePompeAChaleur,(ComposantValue+ConsommationElectriquePompeAChaleurValue.Value))
End If
If (TimerCompteur1Value.value >= "30") then
EcritureFichier ("ConsommationPiscinePompeaChaleur", (String.Format("{0:0.00}",((ComposantValue+ConsommationElectriquePompeAChaleurValue.Value)*0.00323/60*TensionSecteur))) , "ConsommationElectrique")
Serveur.ChangeValueOfDevice(HomidomServer,ConsommationElectriquePompeAChaleur,"0")
End if
Case "analog7"
Case "count0"
If (TimerCompteur1Value.value >= "30") then
'and (ComposantValue <> Counter1Composant.value)) then
Serveur.ChangeValueOfDevice(HomidomServer,PiscineConsomationEau,ComposantValue)
Serveur.ChangeValueOfDevice(HomidomServer,Count0,ComposantValue)
EcritureFichier ("ConsommationEau", ComposantValue, "ConsommationEau")
Sendhttp ("http://192.168.25.21/protect/assignio/counter1.htm?num=0&counter=0")
End If
Case "btn0"
If ComposantValue = "dn" then Serveur.ChangeValueOfDevice(HomidomServer,IN1,"true")
If ComposantValue = "up" then Serveur.ChangeValueOfDevice(HomidomServer,IN1,"false")
Case "btn1"
If ComposantValue = "dn" then Serveur.ChangeValueOfDevice(HomidomServer,IN2,"true")
If ComposantValue = "up" then Serveur.ChangeValueOfDevice(HomidomServer,IN2,"false")
Case "btn2"
If ComposantValue = "dn" then Serveur.ChangeValueOfDevice(HomidomServer,IN3,"true")
If ComposantValue = "up" then Serveur.ChangeValueOfDevice(HomidomServer,IN3,"false")
Case "btn3"
If ComposantValue = "dn" then Serveur.ChangeValueOfDevice(HomidomServer,IN4,"true")
If ComposantValue = "up" then Serveur.ChangeValueOfDevice(HomidomServer,IN4,"false")
Case "btn4"
If ComposantValue = "dn" then Serveur.ChangeValueOfDevice(HomidomServer,IN5,"true")
If ComposantValue = "up" then Serveur.ChangeValueOfDevice(HomidomServer,IN5,"false")
Case "btn5"
If ComposantValue = "dn" then Serveur.ChangeValueOfDevice(HomidomServer,IN6,"true")
If ComposantValue = "up" then Serveur.ChangeValueOfDevice(HomidomServer,IN6,"false")
Case "btn6"
If ComposantValue = "dn" then Serveur.ChangeValueOfDevice(HomidomServer,IN7,"true")
If ComposantValue = "up" then Serveur.ChangeValueOfDevice(HomidomServer,IN7,"false")
Case "btn7"
If ComposantValue = "dn" then Serveur.ChangeValueOfDevice(HomidomServer,IN8,"true")
If ComposantValue = "up" then Serveur.ChangeValueOfDevice(HomidomServer,IN8,"false")
Case "led0"
If ComposantValue = "1" then
Serveur.ChangeValueOfDevice(HomidomServer,OUT1,"true")
Serveur.ChangeValueOfDevice(HomidomServer,PiscineEtatFiltration,"true")
ComposantValueTest = "True"
End If
If ComposantValue = "0" then
Serveur.ChangeValueOfDevice(HomidomServer,OUT1,"false")
Serveur.ChangeValueOfDevice(HomidomServer,PiscineEtatFiltration,"false")
ComposantValueTest = "False"
End If
If (TimerCompteur1Value.value >= "30") then
EcritureFichier ("Filtration", ComposantValue, "Etat" )
End If
If (EtatOut1Value <> ComposantValueTest) then
EcritureFichier ("Filtration", ComposantValue, "Etat" )
End If
Case "led1"
If ComposantValue = "1" then
Serveur.ChangeValueOfDevice(HomidomServer,OUT2,"True")
Serveur.ChangeValueOfDevice(HomidomServer,PiscineEtatPompeAChaleur,"True")
ComposantValueTest = "True"
End if
If ComposantValue = "0" then
Serveur.ChangeValueOfDevice(HomidomServer,OUT2,"false")
Serveur.ChangeValueOfDevice(HomidomServer,PiscineEtatPompeAChaleur,"False")
ComposantValueTest = "False"
end if
If (TimerCompteur1Value.value >= "30") then
EcritureFichier ("Chauffage", ComposantValue, "Etat")
End If
If (EtatOut2Value <> ComposantValueTest) then
EcritureFichier ("Chauffage", ComposantValue, "Etat")
End If
Case "led2"
If ComposantValue = "1" then Serveur.ChangeValueOfDevice(HomidomServer,OUT3,"true")
If ComposantValue = "0" then Serveur.ChangeValueOfDevice(HomidomServer,OUT3,"false")
Case "led3"
If ComposantValue = "1" then Serveur.ChangeValueOfDevice(HomidomServer,OUT4,"true")
If ComposantValue = "0" then Serveur.ChangeValueOfDevice(HomidomServer,OUT4,"false")
Case "led4"
If ComposantValue = "1" then Serveur.ChangeValueOfDevice(HomidomServer,OUT5,"true")
If ComposantValue = "0" then Serveur.ChangeValueOfDevice(HomidomServer,OUT5,"false")
Case "led5"
If ComposantValue = "1" then
Serveur.ChangeValueOfDevice(HomidomServer,OUT6,"true")
Serveur.ChangeValueOfDevice(HomidomServer,PiscineEtatSpotPiscine,"true")
ComposantValueTest = "True"
End if
If ComposantValue = "0" then
Serveur.ChangeValueOfDevice(HomidomServer,OUT6,"false")
Serveur.ChangeValueOfDevice(HomidomServer,PiscineEtatSpotPiscine,"false")
ComposantValueTest = "False"
End if
If (EtatOut6Value <> ComposantValueTest) then
EcritureFichier ("SpotPiscine", ComposantValue, "Etat")
End If
Case "led6"
If ComposantValue = "1" then
Serveur.ChangeValueOfDevice(HomidomServer,OUT7,"true")
End If
If ComposantValue = "0" then
Serveur.ChangeValueOfDevice(HomidomServer,OUT7,"false")
End if
Case "led7"
If ComposantValue = "1" then
Serveur.ChangeValueOfDevice(HomidomServer,OUT8,"true")
Serveur.ChangeValueOfDevice(HomidomServer,GelExterieurEtat,"true")
ComposantValueTest = "True"
End If
If ComposantValue = "0" then
Serveur.ChangeValueOfDevice(HomidomServer,OUT8,"false")
Serveur.ChangeValueOfDevice(HomidomServer,GelExterieurEtat,"false")
ComposantValueTest = "False"
End if
If (TimerCompteur1Value.value >= "30") then
EcritureFichier ("GelExterieur", ComposantValue, "Etat")
End If
If (EtatOut8Value <> ComposantValueTest) then
EcritureFichier ("GelExterieur", ComposantValue, "Etat")
End If
End Select
End Select
Loop
' Remise à zéro du composant TimerCompteur1 pour une plage de 30min.
If (TimerCompteur1Value.value >= "30") then Serveur.ChangeValueOfDevice(HomidomServer,TimerCompteur1,"0")
If (TimerCompteur2Value.value >= "6") then Serveur.ChangeValueOfDevice(HomidomServer,TimerCompteur2,"0")
' Set Serveur = Nothing
End Function
End Class
End Namespace