Arret d'une prise aprés mise en veille d'un appareil

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

Modérateur: HoMIDoM

Arret d'une prise aprés mise en veille d'un appareil

Messagede Paremp33 » 31 Déc 2015, 16:58

Voici un script permettant d'éteindre une prise électrique lorsque la consommation mesurée passe en dessous d'une consigne après un certain délai (appareil en veille).
Ce script est à associer à un trigger composant avec comme composant la conso instantanée de la prise et en propriété le paramètre "Value".

Code: Tout sélectionner
'Script permettant d'éteindre une prise ON/OFF avec mesure de consommation lorsque un appareil est en veille
' depuis un certain delai ex : ordinateur
' Test et mise au point réalisé avec un prise  FGWPE-101
'Conseil : mettre un delai de 10 secondes minimum avant l'execution de la macro
'Conseil : associer la macro à un trigger composant avec comme composant la conso instantanée de la prise et en propriété le paramètre "Value"

Imports System
Imports System.IO
Imports System.Windows.Forms
Imports Microsoft.VisualBasic
Imports Homidom 
Imports System.Net
Imports System.Net.Mail
Imports System.Data
Imports System.Collections.Generic
                                                               
Namespace Dynam
'Ne pas supprimer cette class
Public Class DynamicCode
   
  'Ne pas supprimer cette function
  Public Function ExecuteCode(paramarray prmParameters() as object) as object

'ID du serveur : à personnaliser
  Dim IdDuServer as string = "123456789"

Dim ServeurHomidom as Homidom.Homidom.server
        ServeurHomidom = prmParameters(0)
Dim SQLscriptStr1, SQLscriptStr2, SortieStr as string

'Composant NRJ instantane de la prise : à personnaliser
Dim IdComposant1Str as string ="60f4e980-9a51-4636-83b5-77f4c64ea2f1"
'Composant prise ON/OFF : à personnaliser
Dim IdComposant2Str as string ="e1a59af9-7689-427e-b9f2-5962e75a1afd"

'Delai minimal en minute avant arret de la prise : à personnaliser
Dim DeltaTimeInt as integer = 25
'Consommation maximal  permettant de considérer le système en veille : à personnaliser
Dim  NRJMinInt as integer= 35

Dim iInt as integer = 1
Dim NRJInt as integer=0


SQLscriptStr1="SELECT * FROM historiques WHERE ((historiques.device_id)=""" & IdComposant1Str & """) ORDER BY historiques.dateheure DESC"
Dim retourQuery1 As System.Data.DataTable =ServeurHomidom.RequeteSqLHisto(IdDuServer, SQLscriptStr1) 

  try
Dim Ddate As Long = DateDiff(DateInterval.Minute, retourQuery1.Rows(1).Item(3), retourQuery1.Rows(0).Item(3))
NRJInt= retourQuery1.Rows(iInt).Item(4)


while (NRJMinInt > NRJInt) and (Ddate < DeltaTimeInt) and (NRJInt > 0)
iInt=iInt+1
Ddate=DateDiff(DateInterval.Minute, retourQuery1.Rows(iInt).Item(3), retourQuery1.Rows(0).Item(3))
NRJInt= retourQuery1.Rows(iInt).Item(4)

end while

If (NRJMinInt > NRJInt) and (NRJInt > 0) then
Dim composant1 as  Homidom.Homidom.TemplateDevice = ServeurHomidom.ReturnDeviceById(IdDuServer,IdComposant2Str)
Dim action1 as new Homidom.Homidom.DeviceAction
                 action1.Nom="OFF"
                 ServeurHomidom.ExecuteDeviceCommand(IdDuServer,IdComposant2Str ,action1)
end if

   
    Catch ex As Exception
     ServeurHomidom.log(8, 2, "Macro VB:arret prise", "Exception: " & ex.message)
    End Try
  End Function

End Class

End Namespace
Paremp33
Membre un peu timide !
 
Messages: 7
Inscription: 25 Juil 2014, 11:27

Re: Arret d'une prise aprés mise en veille d'un appareil

Messagede Paremp33 » 31 Juil 2016, 19:00

J'ai fait une erreur sur la ligne 41 qui peut provoquer un bug de fonctionnement. Il faut remplacer Dim iInt as integer = 1 par Dim iInt as integer = 0
Paremp33
Membre un peu timide !
 
Messages: 7
Inscription: 25 Juil 2014, 11:27

Re: Arret d'une prise aprés mise en veille d'un appareil

Messagede michaeladdam » 07 Aoû 2016, 15:46

excellent travaille merci bien pour ce petit script .. très utile :)
Avatar de l’utilisateur
michaeladdam
Membre Actif
 
Messages: 13
Inscription: 01 Mai 2016, 15:57


Retourner vers Scripts VB

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

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