Application : Arrêter automatiquement les chauffages électriques lorsque le poêle est allumé, et de redémarrer les chauffages électriques lorsque le poêle s’éteint.
Il faut :
- créer un composant matériel de type Température ,donnant l’information de température autour du point de chauffage.(temperature)
- créer un composant virtuel de type Consigne associé au driver virtuel ,dans lequel vous saisirez la consigne de température autour du point de chauffage.(consigne)
- créer un composant virtuel de type GenericInteger associé au driver virtuel ,il permet de mémoriser les températures.(memtemperature)
- créer un composant virtuel de type GenericBooleen associé au driver virtuel ,il récupère l’état de marche du poêle.(poeleallume)
Voici le script à mettre dans une action VB d'une macro (à éxecuter par trigger timer toutes les 15 minutes) :
- Code: Tout sélectionner
Imports System
Imports System.IO
Imports System.Windows.Forms
Imports Microsoft.VisualBasic
Imports Homidom
Namespace Dynam
'Ne pas supprimer cette class
Public Class DynamicCode
'Ne pas supprimer cette function
Public Function ExecuteCode(paramarray prmParameters() as object) as object
Dim Serveur as Homidom.Homidom.server
Serveur=prmParameters(0)
Dim memtemperature as Homidom.Homidom.TemplateDevice = Serveur.ReturnDeviceById("123456789","cb94133c-6194-47a4-b1a1-cfbdec997f36")
Dim temperature as Homidom.Homidom.TemplateDevice = Serveur.ReturnDeviceById("123456789","77ebe507-453f-4164-aef6-99b30f239a83")
Dim consigne as Homidom.Homidom.TemplateDevice = Serveur.ReturnDeviceById("123456789","429586fd-80c5-4789-af89-3805b1b69652")
Dim poeleallume as Boolean
If (memtemperature.value+0.5<temperature.value) and ((consigne.value+2)<temperature.value) Then
poeleallume = true
memtemperature.value=temperature.value
Serveur.ChangeValueOfDevice("123456789","ad1f0bde-27e9-4446-9848-533dba097b11",poeleallume)
Serveur.ChangeValueOfDevice("123456789","cb94133c-6194-47a4-b1a1-cfbdec997f36",memtemperature.value)
End If
If ((memtemperature.value-0.5)>temperature.value) and ((consigne.value+2)>temperature.value) Then
poeleallume = false
memtemperature.value=temperature.value
Serveur.ChangeValueOfDevice("123456789","ad1f0bde-27e9-4446-9848-533dba097b11",poeleallume)
Serveur.ChangeValueOfDevice("123456789","cb94133c-6194-47a4-b1a1-cfbdec997f36",memtemperature.value)
End If
End Function
End Class
End Namespace