Macro gestion de la consomation du fioul

La section pour partager vos scripts et demander de l'aide dans vos scénarios.

Modérateur: HoMIDoM

Macro gestion de la consomation du fioul

Messagede jptools » 13 Mar 2015, 09:44

J'ai écris deux script qui me permettent de calculer ma consommation de fioul,
le temps de fonctionnement et la dépense.

Pour cela j'ai branché un contact DI-o 54700 sur l'électrovanne du bruleur par l'intermédiaire
d'un relais (220v)

Le passage à ON lors de démarrage du bruleur me déclenche la macro "Allumage bruleur"

Lors de l'arrêt le déclenchement de la macro "Arrêt Bruleur"

La macro Allumage

'Mise en mémoire de l'heure courante
'*******************************************

Imports System
Imports System.IO
Imports System.Windows.Forms
Imports Microsoft.VisualBasic
Imports Homidom
Namespace Dynam

Public Class DynamicCode

Public Function ExecuteCode(paramarray prmParameters() as object) as object
Dim Serveur as Homidom.Homidom.server
try
Dim IdComposant as String = "d279ff81-35bb-4b91-98c0-504cab529df9" 'Bruleur Fonct
Dim IdDuServer as string = "123456789"
Dim D As string
Dim Resultat As Single

Serveur=prmParameters(0)

'log en info
Serveur.log(1, 2, "Macro VB:Allumage Chaudière", "Bruleur ON: " & " Heure: " & Serveur.GetTime)

'Convertir l'heure en nombre
D = Serveur.GetTime

Dim TB = Split(D, ":")
Resultat = (TB(0)*3600) + (TB(1) * 60) + TB(2)
' Serveur.log(8, 2, "Macro VB:'bip'", "Exception: " & Resultat)

'update another composant
Dim ComposantX as Homidom.Homidom.TemplateDevice = Serveur.ReturnDeviceById(IdDuServer,IdComposant)
' Serveur.ChangeValueOfDevice(IdDuServer,IdComposant,Resultat)
ComposantX.VariablesOfDevice("Temp")=Resultat

Catch ex As Exception
Serveur.log(8, 2, "Macro VB:Allumage Chaudière", "Exception: " & ex.message)
End Try
End Function

End Class
End Namespace



La macro "Arrêt Bruleur"

'Calcul du temps de fonctionnement
'Calcul de la consommation du fioul
'*******************************************

Imports System
Imports System.IO
Imports System.Windows.Forms
Imports Microsoft.VisualBasic
Imports Homidom
Namespace Dynam

Public Class DynamicCode

Public Function ExecuteCode(paramarray prmParameters() as object) as object
Dim Serveur as Homidom.Homidom.server
try
Dim IdComposant as String = "d279ff81-35bb-4b91-98c0-504cab529df9" 'Temp Bruleur
Dim IdComposant1 as String = "70199f13-9a9f-4d9e-a71b-9018e1609fdd" 'Temp Total Bruleur
Dim IdComposant2 as String = "bb9cecbd-604e-4461-b0d1-0c68790e5dbe" 'Consomation Fioul
Dim IdComposant3 as String = "d2427c07-126f-4e8c-b95f-baf09fe8064f" 'Depense Fioul
Dim IdDuServer as string = "123456789"
Dim D As string
Dim Resultat As Single
Serveur=prmParameters(0)

'log en info
Serveur.log(1, 2, "Macro VB;Arret Bruleur", "Bruleur OFF: " & " Heure: " & Serveur.GetTime)

'Convertir l'heure en nombre
D = Serveur.GetTime
Dim TB = Split(D, ":")
Resultat = (TB(0)*3600) + (TB(1) * 60) + TB(2)
' Serveur.log(8, 2, "Macro VB:'bip'", "Resultat 1: " & Resultat)

'update another composant
Dim ComposantX as Homidom.Homidom.TemplateDevice = Serveur.ReturnDeviceById(IdDuServer,IdComposant)

'Calculer la difference et sauver la valeur
If (Resultat > ComposantX.VariablesOfDevice("Temp")) Then
Resultat = (Resultat - ComposantX.VariablesOfDevice("Temp"))
Else
Resultat = (86400-ComposantX.VariablesOfDevice("Temp") + Resultat)
End If
Serveur.ChangeValueOfDevice(IdDuServer,IdComposant,Resultat)

''Serveur.log(8, 2, "Macro VB:'bip'", "Resultat 2: " & ComposantX.value)
'Serveur.log(8, 2, "Macro VB:'bip'", "Resultat 3: " & Resultat)

'Mise a jour du temp Total
Dim ComposantX1 as Homidom.Homidom.TemplateDevice = Serveur.ReturnDeviceById(IdDuServer,IdComposant1)
Resultat = ComposantX1.value +Resultat
Serveur.ChangeValueOfDevice(IdDuServer,IdComposant1,Resultat)

'Mise a jour consomation Fioul
Dim ComposantX2 as Homidom.Homidom.TemplateDevice = Serveur.ReturnDeviceById(IdDuServer,IdComposant2)
Resultat = Resultat * 0.0006309
Serveur.ChangeValueOfDevice(IdDuServer,IdComposant2,Resultat)

'Mise a jour Depense Fioul
Dim ComposantX3 as Homidom.Homidom.TemplateDevice = Serveur.ReturnDeviceById(IdDuServer,IdComposant3)
Serveur.ChangeValueOfDevice(IdDuServer,IdComposant3,(Resultat*0.86))


Catch ex As Exception
Serveur.log(8, 2, "Macro VB:Arret Bruleu", "Exception: " & ex.message)
End Try
End Function

End Class
End Namespace

En espérant de cela pourrai servir a quelqu'un

Cordialement
Jptools
jptools
P'tit Guru de domotique
 
Messages: 69
Inscription: 05 Fév 2015, 19:46

Re: Macro gestion de la consomation du fioul

Messagede jacques_dv » 08 Nov 2017, 22:31

Bonsoir Jptools,
Bonne idée cette macro.
Je viens d'essayer de l'utiliser mais j'ai un message d'erreur : "08/11/2017 21:20:06 ERREUR SCRIPT Macro VB:Arret Bruleur Exception: La clé donnée était absente du dictionnaire." qui semblerait provenir de la ligne "Serveur.log(8, 2, "Macro VB:Allumage Chaudière", "Exception: " & ex.message)".

Les 2 macros me donnent les infos suivantes dans les log et pas d'autres actions :
08/11/2017 22:13:49 DEBUG SERVEUR Macro:Action Lancement de la macro allumage
08/11/2017 22:13:49 INFO SCRIPT Macro VB:Allumage Chaudière Bruleur ON: Heure: 22:13:49
08/11/2017 22:16:00 INFO SCRIPT Macro VB;Arret Bruleur Bruleur OFF: Heure: 22:16:00
08/11/2017 22:16:00 ERREUR SCRIPT Macro VB:Arret Bruleur Exception: La clé donnée était absente du dictionnaire.

Une piste?
Merci d'avance.
jacques_dv
Membre Actif
 
Messages: 48
Inscription: 07 Déc 2013, 00:18


Retourner vers Scripts VB

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

Copyright © 2011 - Touteladomotique.com - Tous droits réservés
Les blogs partenaires : Abavala, Domo-Blog, Domotique34, Maison et Domotique