Script HTML:Aff données eau froide : Différence entre versions

De MacodaWiki
Aller à : navigation, rechercher
(Page créée avec « Les onduleurs APS (modèle ?) peuvent être branchés sur le PC via le port série. Lors des coupures courants ou autres surtension, il peut prévenir le PC. Voici le sci... »)
 
 
Ligne 1 : Ligne 1 :
Les onduleurs APS (modèle ?) peuvent être branchés sur le PC via le port série.
+
=Description=
Lors des coupures courants ou autres surtension, il peut prévenir le PC.
+
Ce script ASP est exécuté sur le serveur Web [[Informatique:Homeseer|Homeseer]] et permet d'afficher les données stockées dans une base de données SQL par le [[Script:compteur_eau_froide|script compteur_eau_froide.vbs]], associé au montage [[Montage:Compteur_eau_DS2423|compteur d'eau]].
  
Voici le sciprt a installer dans Homeseer :
+
Attention, le script n'est pas tout à fait propre, mais il est opérationnel.
  
  sub main()
+
=Résultat=
  dim result
+
 
 +
[[Image:Script_Compteur_eau_tout.png|400px]] -
 +
[[Image:Script_Compteur_eau_heure.png|400px]]<br>
 +
 
 +
=Script=
 +
  <%@ LANGUAGE=VBScript %>
 +
<%
 
   
 
   
  hs.WriteLog "Info","Mise en place de la surveillance de l'onduleur"
 
  result = hs.OpenComPort(2,"2400,N,8,1",0,"Onduleur_mise_en_place_surveillance.vbs","apc_event")
 
  if result <> "" then
 
    hs.WriteLog "ONDULEUR","Error opening COM port for UPS: "&result
 
  end if
 
end sub
 
 
   
 
   
 +
'###################################
 +
' information générales sur les pages ou les tables à afficher
 +
sDonnees = "eau_froide"
 +
sZone_db = "nb_litre"
 +
'###################################
 
   
 
   
' PROCEDURE APPELE SUR LE DECLENCHEMENT DU COM
 
sub apc_event(data)
 
hs.WriteLog "ONDULEUR","  Appel à apc_event !!!"
 
 
   
 
   
if data = 1001 then
 
hs.SendEmail "domotique@macoda.com","domotique@macoda.com","[HOMESEER] ONDULEUR Data = Perte électricité","rien"
 
  hs.WriteLog "ONDULEUR","!!!!  PERTE DE L'ELECTRICITE !!!!!"
 
  else
 
hs.SendEmail "domotique@macoda.com","domotique@macoda.com","[HOMESEER] ONDULEUR Data = "&cstr(data),"rien"
 
  end if
 
 
   
 
   
  end sub
+
'***************
 
+
'Champ calculés
 
+
sTable    = "tb_"&sDonnees
* Valeurs captéee par le code
+
sNom_Page = sDonnees&"_Somme"
:*Débranche port série : Plusieurs data =5
+
:*Débranche courant data =1001 Data=1001 data =2
+
:*Perte fictive de données (homeseer le voit alors qu’il n’y a riendata =1001 data =2 data = 1001
+
:*Onduleur non branché sur le port série. Allumage du PC => Data=3
+
'***************
 +
'Pour la gestion de la résolution (adaptation de la taille des graphiques à la taille du navigateur
 +
res=Request.QueryString("res")
 +
 +
 +
'***************************************************************************
 +
'Détermine l'adresse de l'utilisateur
 +
userID = request.servervariables("REMOTE_ADDR")
 +
if (userID = "127.0.0.1") or (InStr(userID,"localhost")) then
 +
sAdrHttpSrv = "localhost"
 +
 +
elseif (instr(userID,"192.168.")) then
 +
sAdrHttpSrv = "192.168.0.1"
 +
 +
elseif (instr(userID,"192.51.560.102")) then
 +
sAdrHttpSrv = "www.macoda.com"
 +
else
 +
sAdrHttpSrv = "www.macoda.com"
 +
hs.writelog "http-aff_donnees_"&sDonnees&".asp" , "Connexion de l'ordinateur sur aff_donnees_"&sDonnees&".asp => "&userID
 +
 +
hs.writelog "http-aff_donnees_"&sDonnees&".asp" , "ATD => Faire une bibliothque de fonction HTML"
 +
  end if
 +
 +
 +
 +
'******************************************************************************************
 +
'******************************************************************************************
 +
'******************************************************************************************
 +
'Construit_Graphique
 +
' sNomImg => Nom du fichier qui sera généré pour le graphique
 +
' sMode => "Détail", "Heure", "Jour", "Mois"
 +
' "Détail" => Toutes les valeurs sont affichées (dépend échantillonnage)
 +
' "Heure" => On affiche les données heure par heure
 +
' "Jour" => On affiche les données jour par jour
 +
' "Mois" => On affiche les données mois par mois
 +
' iiJour_aff,mois,an => Date d'affichage pour le graphique
 +
' Si on est en mode "Détail" => Toutes les valeurs du jour dit
 +
' Si on est en mode "Heure" => On fait un bilan par heure => Pour le jour dit
 +
' Si on est en mode "Jour" => On fait un bilan par jour => Pour le mois en cours
 +
' Si on est en mode "Mois" => Pour l'année en cours
 +
' iMin_heure, iMax_heure => Dans le mode "Détail" ou "Heure" => Permet de ne voir qu'une portion du jour
 +
' niv_debug => Avec NIV_DEBUG_PAS ou NIV_DEBUG_AVEC
 +
 +
'
 +
Sub Construit_Graphique(sNomImg,sMode,iJour_aff,iMois_aff,iAnnee_aff,iMin_heure,iMax_heure,niv_debug)
 +
if (niv_debug = 1) then
 +
response.write "<hr>"
 +
response.write "sNomImg = "&sNomImg&"<br>"
 +
response.write "Mode = "&sMode&"<br>"
 +
response.write "iJour_aff = "&iJour_aff&"<br>"
 +
response.write "iMois_aff = "&iMois_aff&"<br>"
 +
response.write "iAnnee_aff = "&iAnnee_aff&"<br>"
 +
response.write "heure_aff_min = "&iMin_heure&" <br>"
 +
response.write "heure_aff_max = "&iMax_heure&" <br>"
 +
end if
 +
 +
 +
   
 +
    '-----------------------------
 +
    'titre du graphique
 +
    sDate = DateSerial(iAnnee_aff, iMois_aff, iJour_aff)
 +
if ( (sMode = "Détail") or (sMode = "Heure"))  then
 +
sTitre_Graph = sFctNom_Jour(sDate) & " " & sDate         
 +
elseif (sMode = "Jour")  then
 +
sTitre_Graph = sFctNom_Mois(sDate) & " " & cstr(iAnnee_aff)
 +
elseif (sMode = "Mois")  then
 +
sTitre_Graph = cstr(iAnnee_aff)
 +
end if
 +
   
 +
   
 +
 +
 +
'---------------------------------------------------------------------------------- 
 +
    J1_1 = "#" & cstr(iMois_aff) & "/01/" & cstr(iAnnee_aff) & "#"
 +
   
 +
   
 +
    J2_1 = "#" & iMois_aff & "/" & iJour_aff & "/" & iAnnee_aff & "#"  'format #7/16/2006#
 +
    J3_1 = iAnnee_aff & "," & iMois_aff & "," & iJour_aff 'format 2004,05,25
 +
 +
if (iJour_aff+1>31) then
 +
J2_2 = "#" & iMois_aff+1 & "/01/" & iAnnee_aff & "#"  'format #7/16/2006#
 +
J3_2 = iAnnee_aff & "," & iMois_aff+1 & "," & 1 'format 2004,05,25
 +
else
 +
J2_2 = "#" & iMois_aff & "/" & iJour_aff+1 & "/" & iAnnee_aff & "#"  'format #7/16/2006#
 +
J3_2 = iAnnee_aff & "," & iMois_aff & "," & iJour_aff+1 'format 2004,05,25
 +
end if
 +
 +
 +
    J1_2 = "#" & cstr(iMois_aff+1) & "/01/" & cstr(iAnnee_aff) & "#"
 +
   
 +
    '-----------------------------
 +
if (niv_debug = 1) then
 +
  response.write "J1_1 = "&J1_1&" - J1_2 = "&J1_2&" <br>"
 +
  response.write "J2_1 = "&J2_1&" - J2_2 = "&J2_2&" <br>"
 +
  response.write "J3_1 = "&J3_1&" - J3_2 = "&J3_2&" <br>"
 +
end if
 +
 +
 +
    '******************************************************************************************
 +
    'appel de chartDirector api
 +
    Set cd = CreateObject("ChartDirector.API")
 +
    'taille de l'image
 +
    Set c = cd.XYChart(lg_graph, ht_graph) 
 +
   
 +
    Call c.setBackground(&HFFFFC0, &HFFFFC0, 2)
 +
    Call c.setPlotArea(40, 30, lg_graph-55, ht_graph-80, &HFFFFFF, &HFFFFFF, &HC0C0C0, &HC0C0C0)
 +
 +
    Call c.addTitle(sTitre_Graph & " - " & sZone_db&" "&sMode, "timesbi.ttf").setBackground(&HFFFF00)
 +
 +
    ' 8 => Taille de la police de caractere pour la lgende
 +
    Call c.addLegend(55, 25, False, "", 8).setBackground(cd.Transparent)
 +
   
 +
 
 +
            ' ouverture base de donnee systeme ou sont stockees les temperatures
 +
            ' HomeSeer est cree avec odbcad32.exe : BdD systeme pointant sur un fichier
 +
            ' xxxxx.mdb
 +
            '
 +
            ' un champ  NOM : contient les temperatures (string)
 +
            '          LOCAT : nom du device 1 wire (tronqu 12 car) (string(12))
 +
            '          DATE : la date de la mesure
 +
            '
 +
            Set Base = CreateObject("ADODB.Connection")
 +
            Set rsT = CreateObject("ADODB.Recordset")
 +
   
 +
            Base.Open "HOMESEER"
 +
  Set layer = c.addBarLayer2(cd.Side, 3)
 +
 +
  if (sMode = "Détail") then  
 +
            SQL = "Select "&sZone_db&", Date_op "
 +
            SQL = SQL & "From "&sTable&" "
 +
  SQL = SQL & "where Date_op >=DateSerial("&J3_1&") AND Date_op < DateSerial("&J3_2&") "
 +
  SQL = SQL & "AND Hour([Date_op])>="&cstr(iMin_heure)&" "
 +
  SQL = SQL & "AND Hour([Date_op])<"&cstr(iMax_heure)&" ORDER BY Date_op"
 +
  else
 +
  '-------------------------------------
 +
  ' Mode Heure, Jour et Mois
 +
 
 +
  if (sMode = "Heure")  then
 +
str_date="'dd/mm/yyyy h:""00""'" ' Pour les heures
 +
elseif (sMode = "Jour")  then
 +
str_date="'dd/mm/yyyy'"    ' Pour les jours
 +
elseif (sMode = "Mois")  then
 +
str_date="'mm/yyyy'"    ' Pour les Mois
 +
end if
 +
 +
SQL = "SELECT Sum(["&sZone_db&"]) AS NBUNITE, "
 +
SQL = SQL & "CDate(Format([date_op],"&str_date&")) AS Date_reg "
 +
SQL = SQL & "FROM "&sTable&" "
 +
if (sMode = "Heure")  then
 +
  SQL = SQL & "WHERE Hour([Date_op])>="&cstr(iMin_heure)&" "
 +
  SQL = SQL & "AND Hour([Date_op])<="&cstr(iMax_heure)&" "
 +
  end if
 +
 +
SQL = SQL & "GROUP BY CDate(Format([date_op],"&str_date&")) "
 +
 +
 +
if (sMode = "Heure")  then
 +
SQL = SQL & "HAVING (((First(Date_op))>="&J2_1&" And (First(Date_op))< "&J2_2&")) "   
 +
elseif (sMode = "Jour") then
 +
' Mode Jour
 +
SQL = SQL & "HAVING (((First(Date_op))>="&J1_1&" And (First(Date_op))< "&J1_2&")) "
 +
elseif (sMode = "Mois") then
 +
' Mode Mois
 +
SQL = SQL & "HAVING (((First(Date_op))>="&J1_1&" And (First(Date_op))< "&J1_2&")) "
 +
end if
 +
SQL = SQL & "ORDER BY CDate(Format([date_op],"&str_date&"))"
 +
  end if
 +
 +
  if (niv_debug = 1) then response.write j&" : " &SQL &"<br>"    end if
 +
 +
 +
            Call rsT.Open(SQL, Base)
 +
  hs.WaitEvents         
 +
            Set dbTableT = cd.DBTable(rsT)
 +
            j = 1
 +
 
 +
 +
  Call c.xAxis().setLabels(dbTableT.getCol(1))
 +
  Call c.xAxis().setLabelFormat("{value|mm/dd}")
 +
  ' 7 = Taille police - 45 = INclinaison
 +
  Call c.xAxis().setLabelStyle("", 7, 0, 45)
 +
 +
  Call layer.addDataSet(dbTableT.getCol(0), &H33FF33, sZone_db)
 +
                     
 +
            rsT.Close()
 +
    Call c.xAxis().setWidth(2
 +
   
 +
    Call c.yAxis().setWidth(2)
 +
   
 +
    Call c.yAxis().setLabelFormat("{value}")
 +
    Call c.makeChart("\program files\HomeSeer\html\" & sNomImg)
 +
End Sub
 +
 +
 +
 +
'******************************************************************************************
 +
'******************************************************************************************
 +
'******************************************************************************************
 +
Function sFctNom_Jour(madate)
 +
    Dim t, j
 +
    t = "dimanche,lundi,mardi,mercredi,jeudi,vendredi,samedi"
 +
    Tab_Jour = Split(t, ",", -1, 1)
 +
    sFctNom_Jour = Tab_Jour(Weekday(madate) - 1)
 +
End Function
 +
 +
 +
'******************************************************************************************
 +
'******************************************************************************************
 +
'******************************************************************************************
 +
Function sFctNom_Mois(Mois)
 +
    Dim t, j
 +
    t = "Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Aout,Septembre,Octobre,Novembre,Décembre"
 +
    Tab_Mois = Split(t, ",", -1, 1)
 +
    sFctNom_Mois = Tab_Mois(Month(madate) - 1)
 +
End Function
 +
 +
 +
'***********
 +
'***********
 +
'***********
 +
'***********
 +
'***********
 +
 +
%>
 +
 +
 +
 +
 +
<html>
 +
<head>
 +
<link rel="stylesheet" type="text/css" href="style.css">
 +
<meta HTTP-EQUIV="EXPIRES" CONTENT="0">
 +
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
 +
<%
 +
  response.write "<title>"&sNom_Page&"</title>"
 +
%>
 +
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 +
</head>
 +
 +
<body>
 +
 +
 +
 +
<script language="javascript">
 +
if( typeof( window.innerWidth ) == 'number' ) {
 +
//Non-IE
 +
    myWidth = window.innerWidth;
 +
    myHeight = window.innerHeight;
 +
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
 +
    //IE 6+ in 'standards compliant mode'
 +
    myWidth = document.documentElement.clientWidth;
 +
myHeight = document.documentElement.clientHeight;
 +
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
 +
    //IE 4 compatible
 +
    myWidth = document.body.clientWidth;
 +
    myHeight = document.body.clientHeight;
 +
  } 
 +
 +
res = "res="+myWidth+"x"+myHeight
 +
</script>
 +
 +
 +
<%
 +
res=request.form("res")
 +
if res = "" then
 +
response.write "<script language='javascript'>"
 +
response.write "top.location.href='aff_donnees_"&sDonnees&".asp?'+res"
 +
response.write "</script>"
 +
end if
 +
 +
jour=request.form("jour")
 +
mois=request.form("mois")
 +
annee=request.form("annee")
 +
iMin_heure=request.form("iMin_heure")
 +
iMax_heure=request.form("iMax_heure")
 +
 +
if iMax_heure ="" then
 +
Dt = DateAdd("d", 0, Date)
 +
jour = Day(Dt)
 +
mois = month(Dt)
 +
annee = Year(Dt)
 +
iMin_heure = 00
 +
iMax_heure = 24
 +
temp_max = 6000
 +
end if
 +
%>
 +
 +
<%
 +
NIV_DEBUG_PAS = 0
 +
NIV_DEBUG_AVEC = 1
 +
iPosX=instr(1,res,"x")
 +
sLargeur = mid(res,1,iPosX-1)
 +
sHauteur = mid(res,iPosX+1,99)
 +
 +
 +
Nb_Graphique = 2
 +
ht_graph = ( Cdbl(sHauteur) / Nb_Graphique)-50
 +
lg_graph = Cdbl(sLargeur) - 50
 +
 +
if res <> "" then
 +
sNom_Graph = "hb_"&sNom_Page&"_tout.png"
 +
Construit_Graphique sNom_Graph,"Détail",jour,mois,annee,iMin_heure,iMax_heure,NIV_DEBUG_SANS
 +
response.write "<img src="&sNom_Graph&" ><br><br>"
 +
 +
sNom_Graph = "hb_"&sNom_Page&"_heure.png"
 +
Construit_Graphique sNom_Graph,"Heure",jour,mois,annee,iMin_heure,iMax_heure,NIV_DEBUG_SANS
 +
response.write "<img src="&sNom_Graph&" ><br><br>"
 +
 +
sNom_Graph = "hb_"&sNom_Page&"_jour.png"
 +
Construit_Graphique sNom_Graph,"Jour",jour,mois,annee,iMin_heure,iMax_heure,NIV_DEBUG_SANS
 +
response.write "<img src="&sNom_Graph&" ><br><br>"
 +
 +
sNom_Graph = "hb_"&sNom_Page&"_mois.png"
 +
Construit_Graphique sNom_Graph,"Mois",jour,mois,annee,iMin_heure,iMax_heure,NIV_DEBUG_SANS
 +
response.write "<img src="&sNom_Graph&" ><br><br>"
 +
 +
 +
 +
end if
 +
 +
sText ="<form method='post' name='formulaire' action='aff_donnees_"&sDonnees&".asp?res="&res&"'>"
 +
response.write sText
 +
%>
 +
 +
<br><br>Date
 +
<input type="text" name="jour" value="<%=jour%>" size = 2> /
 +
<input type="text" name="mois" value="<%=mois%>" size = 2> /
 +
<input type="text" name="annee" value="<%=annee%>" size = 4>
 +
Heure minimum <input type="text" name="iMin_heure" value="<%=iMin_heure%>" > - 
 +
Heure maximum <input type="text" name="iMax_heure" value="<%=iMax_heure%>" ><br>
 +
<%
 +
response.write "<input type='hidden' name='res' value='"&res'>"
 +
%>
 +
<input type="submit">
 +
</form>
 +
 +
</body>
 +
</html>

Version actuelle en date du 18 mars 2012 à 16:56

Description

Ce script ASP est exécuté sur le serveur Web Homeseer et permet d'afficher les données stockées dans une base de données SQL par le script compteur_eau_froide.vbs, associé au montage compteur d'eau.

Attention, le script n'est pas tout à fait propre, mais il est opérationnel.

Résultat

Script Compteur eau tout.png - Script Compteur eau heure.png

Script

<%@ LANGUAGE=VBScript %>
<%


'###################################
' information générales sur les pages ou les tables à afficher
sDonnees = "eau_froide"
sZone_db = "nb_litre"
'###################################



'***************
'Champ calculés
sTable    = "tb_"&sDonnees
sNom_Page = sDonnees&"_Somme"



'***************
'Pour la gestion de la résolution (adaptation de la taille des graphiques à la taille du navigateur
res=Request.QueryString("res")


'***************************************************************************
'Détermine l'adresse de l'utilisateur
userID = request.servervariables("REMOTE_ADDR")
if (userID = "127.0.0.1") or (InStr(userID,"localhost")) then
	sAdrHttpSrv = "localhost"
	
elseif (instr(userID,"192.168.")) then
	sAdrHttpSrv = "192.168.0.1"
	
elseif (instr(userID,"192.51.560.102")) then
	sAdrHttpSrv = "www.macoda.com"
else
	sAdrHttpSrv = "www.macoda.com"
	hs.writelog "http-aff_donnees_"&sDonnees&".asp" , "Connexion de l'ordinateur sur aff_donnees_"&sDonnees&".asp => "&userID

	hs.writelog "http-aff_donnees_"&sDonnees&".asp" , "ATD => Faire une bibliothque de fonction HTML"
end if



'******************************************************************************************
'******************************************************************************************
'******************************************************************************************
'Construit_Graphique
'	sNomImg			=> Nom du fichier qui sera généré pour le graphique
'	sMode			=> "Détail", "Heure", "Jour", "Mois"
'					"Détail" => Toutes les valeurs sont affichées (dépend échantillonnage)
'					"Heure" => On affiche les données heure par heure
'					"Jour" => On affiche les données jour par jour
'					"Mois" => On affiche les données mois par mois
'	iiJour_aff,mois,an	=> Date d'affichage pour le graphique
'					Si on est en mode "Détail" => Toutes les valeurs du jour dit
'					Si on est en mode "Heure" => On fait un bilan par heure => Pour le jour dit
'					Si on est en mode "Jour" => On fait un bilan par jour => Pour le mois en cours
'					Si on est en mode "Mois" => Pour l'année en cours
'	iMin_heure, iMax_heure	=> Dans le mode "Détail" ou "Heure" => Permet de ne voir qu'une portion du jour
'	niv_debug		=> Avec NIV_DEBUG_PAS ou NIV_DEBUG_AVEC

'
Sub Construit_Graphique(sNomImg,sMode,iJour_aff,iMois_aff,iAnnee_aff,iMin_heure,iMax_heure,niv_debug)
	if (niv_debug = 1) then
response.write "
"
		response.write "sNomImg = "&sNomImg&"
" response.write "Mode = "&sMode&"
" response.write "iJour_aff = "&iJour_aff&"
" response.write "iMois_aff = "&iMois_aff&"
" response.write "iAnnee_aff = "&iAnnee_aff&"
" response.write "heure_aff_min = "&iMin_heure&"
" response.write "heure_aff_max = "&iMax_heure&"
" end if '----------------------------- 'titre du graphique sDate = DateSerial(iAnnee_aff, iMois_aff, iJour_aff) if ( (sMode = "Détail") or (sMode = "Heure")) then sTitre_Graph = sFctNom_Jour(sDate) & " " & sDate elseif (sMode = "Jour") then sTitre_Graph = sFctNom_Mois(sDate) & " " & cstr(iAnnee_aff) elseif (sMode = "Mois") then sTitre_Graph = cstr(iAnnee_aff) end if '---------------------------------------------------------------------------------- J1_1 = "#" & cstr(iMois_aff) & "/01/" & cstr(iAnnee_aff) & "#" J2_1 = "#" & iMois_aff & "/" & iJour_aff & "/" & iAnnee_aff & "#" 'format #7/16/2006# J3_1 = iAnnee_aff & "," & iMois_aff & "," & iJour_aff 'format 2004,05,25 if (iJour_aff+1>31) then J2_2 = "#" & iMois_aff+1 & "/01/" & iAnnee_aff & "#" 'format #7/16/2006# J3_2 = iAnnee_aff & "," & iMois_aff+1 & "," & 1 'format 2004,05,25 else J2_2 = "#" & iMois_aff & "/" & iJour_aff+1 & "/" & iAnnee_aff & "#" 'format #7/16/2006# J3_2 = iAnnee_aff & "," & iMois_aff & "," & iJour_aff+1 'format 2004,05,25 end if J1_2 = "#" & cstr(iMois_aff+1) & "/01/" & cstr(iAnnee_aff) & "#" '----------------------------- if (niv_debug = 1) then response.write "J1_1 = "&J1_1&" - J1_2 = "&J1_2&"
" response.write "J2_1 = "&J2_1&" - J2_2 = "&J2_2&"
" response.write "J3_1 = "&J3_1&" - J3_2 = "&J3_2&"
" end if '****************************************************************************************** 'appel de chartDirector api Set cd = CreateObject("ChartDirector.API") 'taille de l'image Set c = cd.XYChart(lg_graph, ht_graph) Call c.setBackground(&HFFFFC0, &HFFFFC0, 2) Call c.setPlotArea(40, 30, lg_graph-55, ht_graph-80, &HFFFFFF, &HFFFFFF, &HC0C0C0, &HC0C0C0) Call c.addTitle(sTitre_Graph & " - " & sZone_db&" "&sMode, "timesbi.ttf").setBackground(&HFFFF00) ' 8 => Taille de la police de caractere pour la lgende Call c.addLegend(55, 25, False, "", 8).setBackground(cd.Transparent) ' ouverture base de donnee systeme ou sont stockees les temperatures ' HomeSeer est cree avec odbcad32.exe : BdD systeme pointant sur un fichier ' xxxxx.mdb ' ' un champ NOM : contient les temperatures (string) ' LOCAT : nom du device 1 wire (tronqu 12 car) (string(12)) ' DATE : la date de la mesure ' Set Base = CreateObject("ADODB.Connection") Set rsT = CreateObject("ADODB.Recordset") Base.Open "HOMESEER" Set layer = c.addBarLayer2(cd.Side, 3) if (sMode = "Détail") then SQL = "Select "&sZone_db&", Date_op " SQL = SQL & "From "&sTable&" " SQL = SQL & "where Date_op >=DateSerial("&J3_1&") AND Date_op < DateSerial("&J3_2&") " SQL = SQL & "AND Hour([Date_op])>="&cstr(iMin_heure)&" " SQL = SQL & "AND Hour([Date_op])<"&cstr(iMax_heure)&" ORDER BY Date_op" else '------------------------------------- ' Mode Heure, Jour et Mois if (sMode = "Heure") then str_date="'dd/mm/yyyy h:""00""'" ' Pour les heures elseif (sMode = "Jour") then str_date="'dd/mm/yyyy'" ' Pour les jours elseif (sMode = "Mois") then str_date="'mm/yyyy'" ' Pour les Mois end if SQL = "SELECT Sum(["&sZone_db&"]) AS NBUNITE, " SQL = SQL & "CDate(Format([date_op],"&str_date&")) AS Date_reg " SQL = SQL & "FROM "&sTable&" " if (sMode = "Heure") then SQL = SQL & "WHERE Hour([Date_op])>="&cstr(iMin_heure)&" " SQL = SQL & "AND Hour([Date_op])<="&cstr(iMax_heure)&" " end if SQL = SQL & "GROUP BY CDate(Format([date_op],"&str_date&")) " if (sMode = "Heure") then SQL = SQL & "HAVING (((First(Date_op))>="&J2_1&" And (First(Date_op))< "&J2_2&")) " elseif (sMode = "Jour") then ' Mode Jour SQL = SQL & "HAVING (((First(Date_op))>="&J1_1&" And (First(Date_op))< "&J1_2&")) " elseif (sMode = "Mois") then ' Mode Mois SQL = SQL & "HAVING (((First(Date_op))>="&J1_1&" And (First(Date_op))< "&J1_2&")) " end if SQL = SQL & "ORDER BY CDate(Format([date_op],"&str_date&"))" end if if (niv_debug = 1) then response.write j&" : " &SQL &"
" end if Call rsT.Open(SQL, Base) hs.WaitEvents Set dbTableT = cd.DBTable(rsT) j = 1 Call c.xAxis().setLabels(dbTableT.getCol(1)) Call c.xAxis().setLabelFormat("{value|mm/dd}") ' 7 = Taille police - 45 = INclinaison Call c.xAxis().setLabelStyle("", 7, 0, 45) Call layer.addDataSet(dbTableT.getCol(0), &H33FF33, sZone_db) rsT.Close() Call c.xAxis().setWidth(2) Call c.yAxis().setWidth(2) Call c.yAxis().setLabelFormat("{value}") Call c.makeChart("\program files\HomeSeer\html\" & sNomImg) End Sub '****************************************************************************************** '****************************************************************************************** '****************************************************************************************** Function sFctNom_Jour(madate) Dim t, j t = "dimanche,lundi,mardi,mercredi,jeudi,vendredi,samedi" Tab_Jour = Split(t, ",", -1, 1) sFctNom_Jour = Tab_Jour(Weekday(madate) - 1) End Function '****************************************************************************************** '****************************************************************************************** '****************************************************************************************** Function sFctNom_Mois(Mois) Dim t, j t = "Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Aout,Septembre,Octobre,Novembre,Décembre" Tab_Mois = Split(t, ",", -1, 1) sFctNom_Mois = Tab_Mois(Month(madate) - 1) End Function '*********** '*********** '*********** '*********** '*********** %> <html> <head> <link rel="stylesheet" type="text/css" href="style.css"> <meta HTTP-EQUIV="EXPIRES" CONTENT="0"> <meta HTTP-EQUIV="Pragma" CONTENT="no-cache"> <% response.write "<title>"&sNom_Page&"</title>" %> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <script language="javascript"> if( typeof( window.innerWidth ) == 'number' ) { //Non-IE myWidth = window.innerWidth; myHeight = window.innerHeight; } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { //IE 6+ in 'standards compliant mode' myWidth = document.documentElement.clientWidth; myHeight = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { //IE 4 compatible myWidth = document.body.clientWidth; myHeight = document.body.clientHeight; } res = "res="+myWidth+"x"+myHeight </script> <% res=request.form("res") if res = "" then response.write "<script language='javascript'>" response.write "top.location.href='aff_donnees_"&sDonnees&".asp?'+res" response.write "</script>" end if jour=request.form("jour") mois=request.form("mois") annee=request.form("annee") iMin_heure=request.form("iMin_heure") iMax_heure=request.form("iMax_heure") if iMax_heure ="" then Dt = DateAdd("d", 0, Date) jour = Day(Dt) mois = month(Dt) annee = Year(Dt) iMin_heure = 00 iMax_heure = 24 temp_max = 6000 end if %> <% NIV_DEBUG_PAS = 0 NIV_DEBUG_AVEC = 1 iPosX=instr(1,res,"x") sLargeur = mid(res,1,iPosX-1) sHauteur = mid(res,iPosX+1,99) Nb_Graphique = 2 ht_graph = ( Cdbl(sHauteur) / Nb_Graphique)-50 lg_graph = Cdbl(sLargeur) - 50 if res <> "" then sNom_Graph = "hb_"&sNom_Page&"_tout.png" Construit_Graphique sNom_Graph,"Détail",jour,mois,annee,iMin_heure,iMax_heure,NIV_DEBUG_SANS response.write "<img src="&sNom_Graph&" >

" sNom_Graph = "hb_"&sNom_Page&"_heure.png" Construit_Graphique sNom_Graph,"Heure",jour,mois,annee,iMin_heure,iMax_heure,NIV_DEBUG_SANS response.write "<img src="&sNom_Graph&" >

" sNom_Graph = "hb_"&sNom_Page&"_jour.png" Construit_Graphique sNom_Graph,"Jour",jour,mois,annee,iMin_heure,iMax_heure,NIV_DEBUG_SANS response.write "<img src="&sNom_Graph&" >

" sNom_Graph = "hb_"&sNom_Page&"_mois.png" Construit_Graphique sNom_Graph,"Mois",jour,mois,annee,iMin_heure,iMax_heure,NIV_DEBUG_SANS response.write "<img src="&sNom_Graph&" >

" end if sText ="<form method='post' name='formulaire' action='aff_donnees_"&sDonnees&".asp?res="&res&"'>" response.write sText %>

Date <input type="text" name="jour" value="<%=jour%>" size = 2> / <input type="text" name="mois" value="<%=mois%>" size = 2> / <input type="text" name="annee" value="<%=annee%>" size = 4> Heure minimum <input type="text" name="iMin_heure" value="<%=iMin_heure%>" > - Heure maximum <input type="text" name="iMax_heure" value="<%=iMax_heure%>" >
<% response.write "<input type='hidden' name='res' value='"&res'>" %> <input type="submit"> </form> </body> </html>