Hallo,
da die Suche/Doku nicht wirklich ergiebig war - vielleicht hab ich’s auch nur nicht gefunden…
Wie kann ich eine ganz simple Tabelle mit xSpalten und xZeilen aufbauen und darstellen???
Hintergrund, ich hab mir jetzt einige Parameter für meine Wärmepumpe durch IPS aufbereitet, z.B. Arbeitszahl, Stromverbrauch, erzeugte Wärmemengen, Kompressorstarts…für Heizen/Warmwasser/gesamt über die unterschiedlichen Zeitebenen(Tag/Woche/Monat/Jahr) - das schreit für einen Gesamtüberblick förmlich nach einer Tabelle…da vernüftige (Multi-)Balkendarstellung von Nicht-Zählervariablen ja nicht funktioniert…
Wie geht das in IPS?
Vielen Dank für Unterstützung, MfG, kabo63.
hat IPS direkt nicht onboard, indirekt kannst Du dir ne String-Variable anlegen, ~HTML-Profil drauf und per Script ne HTML-Seite mit Tabelle und Variablen reinschreiben.
Hallo,
vielen Dank Ihr Beiden…könnte man mit den von Euch beschriebenen Möglichkeiten so etwas wie im Anhang nachbauen - wenn ja wie?
Das IPS nicht Excel ist ist mir schon klar, aber selbst aus Access-Datenbanken kann man sich über Pivot-Tabellen Abfragen erstellen…geht das mit der IPS-DB nicht so easy?
Aus meiner Sicht gehört eine Tabellendarstellung zu den Basics von Visualisierungsmöglichkeiten…
Gruß, kabo63.
Du scheinst es noch nicht so wirklich verstanden zu haben.
Es geht hier nicht um IPS. Wir reden von HTML.
Alles Wichtige findest Du hier.
Wenn du an die Werte kommst bzw. sie in Variablen hast, kannst du dir den HTML-Code selber zusammenbauen.
Den dann in eine Variable schreiben und die anzeigen.
…doch hab ich schon mal unabhängig davon, dass ich zugegebenermaßen von HTML nicht wirklich eine Ahnung habe(ist vielleicht das Problem gerade)…gilt für mich die Formel: IPS + Webfront = IPS oder ist Webfront kein Bestandteil von IPS…??? grübel oder warum öffne/konfiguriere ich Webfront mit/über IPS???
hm!
…na gut…irgendwie ist das unbefriedigend…„innen hui…außen pfui“…
Gruß, kabo63.
Hä,
was hat den IPS / Webfront mit Deinem Wunsch nach sehr erweiterter Visualisierung zu tun ?
Alles kann man ja nun wirklich nicht im Standard abfangen und wenn Du diese Visu bauen möchtest kannst Du es mit HTML erreichen.
Kostet ein bisschen Geduld und Spucke, aber auch diese Basics sind hier im Forum mehr als verfügbar.
Also „innen hui…aussen pfui“ finde ich jetzt hier echt nicht passend.
Gruss
B71
Ich habe so einen Stundenplan für meine Kinder „gestrickt“, der wirklich gut ankam. Zusätzlich lasse ich noch Termine aus Laufschrift einblenden und… und… vielleicht hilft dir das Beispiel.
@bernado…ohne jetzt weiter das Thema zu vertiefen…klassische Fehlinterpretation von Dir bzw. zu flapsige Ausdrucksweise meinerseits…meine Sichtweise ist halt eben bissel anders…
@nancilla…Danke für den Hinweis - ist mir bei der Suche hier auch schon aufgefallen…ist zumindest ein Ansatz, werd mich wohl doch mehr mit HTML beschäftigen müssen :rolleyes:…öhm kann man in die Datenfelder anstatt der Fächer direkt auch IPS-Variablen(Float/Integer) einspielen??
…ist halt alles ne Zeitfrage…PHP, Highcharts, GoogleGraph, HTML…
MfG, kabo63.
Sicher, dann musst du die Variablen in den „Content-Zeilen“ eben entsprechend ändern.
Das andere darüber ist ja nur die Abfrage von Textdateien.
Hallo Nancilla,
vielen Dank für die Info, häättest Du evtl. ein Bsp. für die Umsetzung mit dynam. Variablen unter IPS 2.4???
Da müßte ich nicht in ganz so „kaltem Wasser“ schwimmen…
Gruß, kabo63.
Du musst das Script auf Variablenänderung triggern.
Obwohl das „Script“ eben nur ein Beispiel für eine HTML-Tabelle sein sollte und für deine Bedürfnisse angepasst werden muss. Da musst du spielen und testen, wenn du dir mit HTML nicht so sicher bist. Aber aus einschlägigen HTML-Hilfen im Internet wirst du schlauer und lernst dazu… wenn sich der erste Erfolg in die Richtung einstellt, wohin es gehen soll, dann kommen noch mehr Ideen;)
…Danke nancilla,
da ich in dem Bereich noch nicht so viel Erfahrung habe…prinzipielles Vorgehen wäre also:
- Anlegen eine String-Variable mit dem HTML-Profil
- Zuordnung eines passenden Aktionsscriptes
- ggfs. Variablentriggerung
- Einbindung der String-Variable in die gewünschte WF-Position
-…???
Gruß, kabo63.
Hallo kabo63,
nehme doch dein Excel-Beispiel und speicher diese Datei als HTML ab (geht doch in Excel). Dann kannst du alle Werte, die variabel sind mir entsprechenden Variablen ersetzen und dann das ganze in ein IPS-String mit Profil ~html abspeichern.
Gruß, Peter
Hallo Peter,
sollte das wirklich so banal sein…?? Ich war mal so frei und hab mal die Codierung direkt hier eingefügt…ich hoffe, dass nimmt mir niemand übel…Ich hab den Eindruck, das ist eine ganze Menge von MS Office(2003) mit dabei…
Wie bekomme ich denn den richtigen Inhalt ind die String-Variable…per Script, oder lade ich irgendwie den/einen Dateiinhalt dorthinein…ich wäre für hilfreiche Tips dankbar…da das erste Durchlesen von selfhtml mich noch nicht wirklich erhellt hat…
MfG, kabo63.
<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Excel.Sheet>
<meta name=Generator content="Microsoft Excel 11">
<link rel=File-List href="Test-Dateien/filelist.xml">
<link rel=Edit-Time-Data href="Test-Dateien/editdata.mso">
<link rel=OLE-Object-Data href="Test-Dateien/oledata.mso">
<style>
<!--table
{mso-displayed-decimal-separator:"\,";
mso-displayed-thousand-separator:"\.";}
@page
{margin:.98in .79in .98in .79in;
mso-header-margin:.49in;
mso-footer-margin:.49in;}
tr
{mso-height-source:auto;}
col
{mso-width-source:auto;}
br
{mso-data-placement:same-cell;}
.style0
{mso-number-format:General;
text-align:general;
vertical-align:bottom;
white-space:nowrap;
mso-rotate:0;
mso-background-source:auto;
mso-pattern:auto;
color:windowtext;
font-size:10.0pt;
font-weight:400;
font-style:normal;
text-decoration:none;
font-family:Arial;
mso-generic-font-family:auto;
mso-font-charset:0;
border:none;
mso-protection:locked visible;
mso-style-name:Standard;
mso-style-id:0;}
td
{mso-style-parent:style0;
padding-top:1px;
padding-right:1px;
padding-left:1px;
mso-ignore:padding;
color:windowtext;
font-size:10.0pt;
font-weight:400;
font-style:normal;
text-decoration:none;
font-family:Arial;
mso-generic-font-family:auto;
mso-font-charset:0;
mso-number-format:General;
text-align:general;
vertical-align:bottom;
border:none;
mso-background-source:auto;
mso-pattern:auto;
mso-protection:locked visible;
white-space:nowrap;
mso-rotate:0;}
.xl24
{mso-style-parent:style0;
font-size:14.0pt;
font-weight:700;
font-family:Arial, sans-serif;
mso-font-charset:0;
text-align:center;
border-top:1.0pt solid windowtext;
border-right:none;
border-bottom:1.0pt solid windowtext;
border-left:1.0pt solid windowtext;
background:#FFFF99;
mso-pattern:auto none;}
.xl25
{mso-style-parent:style0;
font-size:14.0pt;
font-weight:700;
font-family:Arial, sans-serif;
mso-font-charset:0;
text-align:center;
border-top:1.0pt solid windowtext;
border-right:none;
border-bottom:1.0pt solid windowtext;
border-left:none;
background:#FFFF99;
mso-pattern:auto none;}
.xl26
{mso-style-parent:style0;
font-size:14.0pt;
font-weight:700;
font-family:Arial, sans-serif;
mso-font-charset:0;
text-align:center;
border-top:1.0pt solid windowtext;
border-right:1.0pt solid black;
border-bottom:1.0pt solid windowtext;
border-left:none;
background:#FFFF99;
mso-pattern:auto none;}
.xl27
{mso-style-parent:style0;
font-size:14.0pt;
font-weight:700;
font-family:Arial, sans-serif;
mso-font-charset:0;
border:1.0pt solid windowtext;
background:#33CCCC;
mso-pattern:auto none;}
.xl28
{mso-style-parent:style0;
font-size:14.0pt;
font-weight:700;
font-family:Arial, sans-serif;
mso-font-charset:0;
border-top:1.0pt solid windowtext;
border-right:.5pt solid windowtext;
border-bottom:1.0pt solid windowtext;
border-left:none;
background:#33CCCC;
mso-pattern:auto none;}
.xl29
{mso-style-parent:style0;
font-size:14.0pt;
font-weight:700;
font-family:Arial, sans-serif;
mso-font-charset:0;
border-top:1.0pt solid windowtext;
border-right:.5pt solid windowtext;
border-bottom:1.0pt solid windowtext;
border-left:none;
background:#33CCCC;
mso-pattern:auto none;
white-space:normal;}
.xl30
{mso-style-parent:style0;
font-size:14.0pt;
font-weight:700;
font-family:Arial, sans-serif;
mso-font-charset:0;
border-top:1.0pt solid windowtext;
border-right:1.0pt solid windowtext;
border-bottom:1.0pt solid windowtext;
border-left:none;
background:#33CCCC;
mso-pattern:auto none;}
.xl31
{mso-style-parent:style0;
font-size:14.0pt;
font-weight:700;
font-family:Arial, sans-serif;
mso-font-charset:0;
border-top:none;
border-right:1.0pt solid windowtext;
border-bottom:.5pt solid windowtext;
border-left:1.0pt solid windowtext;
background:#33CCCC;
mso-pattern:auto none;}
.xl32
{mso-style-parent:style0;
font-size:14.0pt;
font-family:Arial, sans-serif;
mso-font-charset:0;
text-align:center;
border-top:none;
border-right:.5pt solid windowtext;
border-bottom:.5pt solid windowtext;
border-left:none;
background:#FFFF99;
mso-pattern:auto none;}
.xl33
{mso-style-parent:style0;
font-size:14.0pt;
font-weight:700;
font-family:Arial, sans-serif;
mso-font-charset:0;
border-top:none;
border-right:1.0pt solid windowtext;
border-bottom:1.0pt solid windowtext;
border-left:1.0pt solid windowtext;
background:#33CCCC;
mso-pattern:auto none;}
.xl34
{mso-style-parent:style0;
font-size:14.0pt;
font-family:Arial, sans-serif;
mso-font-charset:0;
text-align:center;
border-top:none;
border-right:.5pt solid windowtext;
border-bottom:1.0pt solid windowtext;
border-left:none;
background:#FFFF99;
mso-pattern:auto none;}
.xl35
{mso-style-parent:style0;
font-size:14.0pt;
font-family:Arial, sans-serif;
mso-font-charset:0;
mso-number-format:Fixed;
text-align:center;
border-top:none;
border-right:.5pt solid windowtext;
border-bottom:.5pt solid windowtext;
border-left:none;
background:#FFFF99;
mso-pattern:auto none;}
.xl36
{mso-style-parent:style0;
font-size:14.0pt;
font-family:Arial, sans-serif;
mso-font-charset:0;
mso-number-format:Fixed;
text-align:center;
border-top:none;
border-right:.5pt solid windowtext;
border-bottom:1.0pt solid windowtext;
border-left:none;
background:#FFFF99;
mso-pattern:auto none;}
.xl37
{mso-style-parent:style0;
font-size:14.0pt;
font-family:Arial, sans-serif;
mso-font-charset:0;
mso-number-format:"\#\,\#\#0\.00\\ \0022€\0022";
text-align:center;
border-top:none;
border-right:1.0pt solid windowtext;
border-bottom:.5pt solid windowtext;
border-left:none;
background:#FFFF99;
mso-pattern:auto none;}
.xl38
{mso-style-parent:style0;
font-size:14.0pt;
font-family:Arial, sans-serif;
mso-font-charset:0;
mso-number-format:"\#\,\#\#0\.00\\ \0022€\0022";
text-align:center;
border-top:none;
border-right:1.0pt solid windowtext;
border-bottom:1.0pt solid windowtext;
border-left:none;
background:#FFFF99;
mso-pattern:auto none;}
-->
</style>
<!--[if gte mso 9]><xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name>Tabelle1</x:Name>
<x:WorksheetOptions>
<x:DefaultRowHeight>264</x:DefaultRowHeight>
<x:DefaultColWidth>10</x:DefaultColWidth>
<x:Print>
<x:ValidPrinterInfo/>
<x:PaperSizeIndex>9</x:PaperSizeIndex>
<x:HorizontalResolution>600</x:HorizontalResolution>
<x:VerticalResolution>0</x:VerticalResolution>
</x:Print>
<x:Selected/>
<x:Panes>
<x:Pane>
<x:Number>3</x:Number>
<x:RangeSelection>$A$1:$F$1</x:RangeSelection>
</x:Pane>
</x:Panes>
<x:ProtectContents>False</x:ProtectContents>
<x:ProtectObjects>False</x:ProtectObjects>
<x:ProtectScenarios>False</x:ProtectScenarios>
</x:WorksheetOptions>
</x:ExcelWorksheet>
<x:ExcelWorksheet>
<x:Name>Tabelle2</x:Name>
<x:WorksheetOptions>
<x:DefaultRowHeight>264</x:DefaultRowHeight>
<x:DefaultColWidth>10</x:DefaultColWidth>
<x:ProtectContents>False</x:ProtectContents>
<x:ProtectObjects>False</x:ProtectObjects>
<x:ProtectScenarios>False</x:ProtectScenarios>
</x:WorksheetOptions>
</x:ExcelWorksheet>
<x:ExcelWorksheet>
<x:Name>Tabelle3</x:Name>
<x:WorksheetOptions>
<x:DefaultRowHeight>264</x:DefaultRowHeight>
<x:DefaultColWidth>10</x:DefaultColWidth>
<x:ProtectContents>False</x:ProtectContents>
<x:ProtectObjects>False</x:ProtectObjects>
<x:ProtectScenarios>False</x:ProtectScenarios>
</x:WorksheetOptions>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
<x:WindowHeight>10584</x:WindowHeight>
<x:WindowWidth>19620</x:WindowWidth>
<x:WindowTopX>192</x:WindowTopX>
<x:WindowTopY>60</x:WindowTopY>
<x:ProtectStructure>False</x:ProtectStructure>
<x:ProtectWindows>False</x:ProtectWindows>
</x:ExcelWorkbook>
</xml><![endif]-->
</head>
<body link=blue vlink=purple>
<table x:str border=0 cellpadding=0 cellspacing=0 width=692 style='border-collapse:
collapse;table-layout:fixed;width:519pt'>
<col width=83 style='width:62pt'>
<col width=111 style='mso-width-source:userset;mso-width-alt:3953;width:83pt'>
<col width=132 style='mso-width-source:userset;mso-width-alt:4693;width:99pt'>
<col width=153 style='mso-width-source:userset;mso-width-alt:5432;width:115pt'>
<col width=130 style='mso-width-source:userset;mso-width-alt:4636;width:98pt'>
<col width=83 style='width:62pt'>
<tr height=22 style='mso-height-source:userset;height:16.8pt'>
<td colspan=6 height=22 class=xl24 width=692 style='border-right:1.0pt solid black;
height:16.8pt;width:519pt'>Heizen</td>
</tr>
<tr height=50 style='mso-height-source:userset;height:37.8pt'>
<td height=50 class=xl27 style='height:37.8pt;border-top:none'> </td>
<td class=xl28 style='border-top:none'>Arbeitszahl</td>
<td class=xl28 style='border-top:none'>Kompr.-Starts</td>
<td class=xl28 style='border-top:none'>Stromverbrauch</td>
<td class=xl29 width=130 style='border-top:none;width:98pt'>erzeugte
Wärmemenge</td>
<td class=xl30 style='border-top:none'>Kosten</td>
</tr>
<tr height=23 style='height:17.4pt'>
<td height=23 class=xl31 style='height:17.4pt'>Tag</td>
<td class=xl35 x:num="5">5,00</td>
<td class=xl32 x:num>8</td>
<td class=xl35>10 kwh</td>
<td class=xl35>15 kwh</td>
<td class=xl37 x:num="2">2,00 €</td>
</tr>
<tr height=23 style='height:17.4pt'>
<td height=23 class=xl31 style='height:17.4pt'>Woche</td>
<td class=xl35 x:num="7">7,00</td>
<td class=xl32 x:num>16</td>
<td class=xl35>20 kwh</td>
<td class=xl35>30 kwh</td>
<td class=xl37 x:num="4">4,00 €</td>
</tr>
<tr height=23 style='height:17.4pt'>
<td height=23 class=xl31 style='height:17.4pt'>Monat</td>
<td class=xl35 x:num="4">4,00</td>
<td class=xl32 x:num>32</td>
<td class=xl35>30 kwh</td>
<td class=xl35>60 kwh</td>
<td class=xl37 x:num="6">6,00 €</td>
</tr>
<tr height=24 style='height:18.0pt'>
<td height=24 class=xl33 style='height:18.0pt'>Jahr</td>
<td class=xl36 x:num="4.42">4,42</td>
<td class=xl34 x:num>64</td>
<td class=xl36>40 kwh</td>
<td class=xl36>120 kwh</td>
<td class=xl38 x:num="8">8,00 €</td>
</tr>
<![if supportMisalignedColumns]>
<tr height=0 style='display:none'>
<td width=83 style='width:62pt'></td>
<td width=111 style='width:83pt'></td>
<td width=132 style='width:99pt'></td>
<td width=153 style='width:115pt'></td>
<td width=130 style='width:98pt'></td>
<td width=83 style='width:62pt'></td>
</tr>
<![endif]>
</table>
</body>
</html>
Coole Sache, welchen hersteller der Wärmepumpe hast Du und musstest Di ein spezielles Modul kaufen um die Werte geliefert zu bekomen?
Wir wollen uns nämlich auch so ein Ding anschaffen und ich würde mich auch für diese Infos interessieren.
mws
Es ist noch banaler, da du den ganzen MS Mist nicht benötigst, was den Code und die Darstellung im Webfront deutlich vereinfacht ;).
Und in der hier bereits erwähnten anderen Diskussion findest du auch das Beispiel im Beitrag 22.
Damit du nicht weiter suchen und selber lesen musst, mal ein kleines Beispiel mit deinen Wünschen. Wie heißt das immer in der Schule, da fehlt noch Transferwissen :).
// Deine Daten aus deinen Variablen holen
$Arbeitszahl = GetValue(28905);
$Stromverbrauch = GetValue(34783);
$Waermemengen = GetValue(59265);
$Kompressorstarts = GetValue(56926);
// Den Anfang der Tabelle definieren
$content = "<table>";
// Die erste Zeile
$content .= "<tr>";
$content .= "<td> </td>";
$content .= "<td>Werte</td>";
$content .= "</tr>";
// Die nächsten Zeilen mit deinen Werten
$content .= "<tr>";
$content .= "<td>Arbeitszahl</td>";
$content .= "<td>$Arbeitszahl</td>";
$content .= "</tr>";
$content .= "<tr>";
$content .= "<td>Stromverbrauch</td>";
$content .= "<td>$Stromverbrauch</td>";
$content .= "</tr>";
$content .= "<tr>";
$content .= "<td>Wärmemengen</td>";
$content .= "<td>$Waermemengen</td>";
$content .= "</tr>";
$content .= "<tr>";
$content .= "<td>Kompressorstarts</td>";
$content .= "<td>$Kompressorstarts</td>";
$content .= "</tr>";
// Und das Ende der Tabelle definieren
$content .= "</table>";
SetValueString(18594,$content);
Und die Variable 18594 per Link in deine Webfront einbinden ;).
Das ganze lässt sich natürlich mit PHP und HTML Kenntnissen über Schleifen organisieren. Oder mit etwas mehr IPS Kenntnissen könntest du alle Werte unterhalb des Scripts automatisch auslesen und in einer Schleife den Code aufbauen.
Aber nach zwei Tagen fragen, hoffe ich, dass das Prinzip so verständlich wird .
Der Code ist „nur so hingeschrieben“, also nicht getestet.
@Ralf
…supi, vielen Dank - damit als Rohgerüst kann ich viel mehr anfangen als mit allen anderen Codes bisher…und läßt genügend Raum, mich weiter mit HTML auseinanderzusetzen, was ich auch vorhabe
Nach einer kleinen Überarbeitung konnte ich sogar schon Echtdaten einbinden…jetzt geht’s ans formatieren *fg
@mws
Ich hab eine Weider SW70 im Einsatz, ohne besondere Zusatzmodule kann man die WP-Daten über die RS232 in IPS einbinden…war aber bissel Tricky…Für die Perpherie benötigt man allerdings 1 oder mehrere Wärmemengenzähler(m-bus fähig) + 1 entsprechenden Stromzähler(So oder m-bus fähig) - die sind in IPS ganz einfach einzubinden, weil es da fertige Instanzen gibt. Sobald man das alles eingerichtet hat, macht man den „Rest“ mit den IPS-Möglichkeiten und PHP…
MFG, kabo63.
// Deine Daten aus deinen Variablen holen
$Arbeitszahl = sprintf("%4.2f",GetValue(53752 /*[Heizraum\WP Stromzähler\Stromverbrauch Wärmepumpe gesamt\Arbeitszahlen\1AZ_Gesamt Tag]*/));
$Stromverbrauch = sprintf("%4.2f",GetValue(58714 /*[Heizraum\WP Stromzähler\Stromverbrauch Wärmepumpe gesamt\Arbeitszahlen\1AZ_Gesamt Tag]*/));
$Waermemengen = sprintf("%4.2f",GetValue(22635 /*[Heizraum\WMZ WP gesamt\erzeugte Wärmemengen gesamt\1Wärmemenge Tag]*/));
$Kompressorstarts = GetValue(44592 /*[Heizraum\Wärmepumpe\Einschaltzyklen\Heizen\1SZ Tag]*/);
// Den Anfang der Tabelle definieren
$content = "<table>";
// Die erste Zeile
$content .= "<tr>";
$content .= "<td> </td>";
$content .= "<td>Werte</td>";
$content .= "</tr>";
// Die nächsten Zeilen mit deinen Werten
$content .= "<tr>";
$content .= "<td>Arbeitszahl</td>";
$content .= "<td>$Arbeitszahl</td>";
$content .= "</tr>";
$content .= "<tr>";
$content .= "<td>Stromverbrauch</td>";
$content .= "<td>$Stromverbrauch</td>";
$content .= "</tr>";
$content .= "<tr>";
$content .= "<td>Wärmemengen</td>";
$content .= "<td>$Waermemengen</td>";
$content .= "</tr>";
$content .= "<tr>";
$content .= "<td>Kompressorstarts</td>";
$content .= "<td>$Kompressorstarts</td>";
$content .= "</tr>";
// Und das Ende der Tabelle definieren
$content .= "</table>";
SetValueString("18736" , $content);
Ich hätte auch noch einen Vorschlag, ist für die statistische Betrachtung einer Zählervariable gedacht, angepasst müssen nur die beiden ersten Variablen im Script
Installation:
- Contend-Variable anlegen (String, Profil: ~HTML)
2, Script anlegen und Inhalt aus diesem Posting reinkopieren - Variablen anpassen
- Link von der Contend-Variable ins WFE legen
- Script ausführen
<?
// +++++++++++++++ Konfig ++++++++++++++++++++++++++++++++++++++++++++++++++++++
$objectID = 12130 /*[Smart Metering\IPS EKM-868\EKM-868 I Hausverteilung\EKM-868 #01 Zentraleinspeisung\Energieverbrauch]*/ ; // Variablen-ID der Zähler-Variable
$contend_var_id = 55821 /*[Smart Metering\berechnete Werte\gleitender Durchschnitt\HTML Tabelle Jahresübersicht]*/;
// ab hier nichts mehr ändern
$archiveID = IPS_GetInstanceIDByName("Archive Handler", 0); // Archive-Handler-ID
$verbrauch_akt=getvalue($objectID);
$year_startdate = mktime(0, 0, 0, date("m")-12, 1, date("Y")); //Startzeit am 1. des Monats vor einem Jahr
$year_enddate = time(); //Endzeit heute
$end_month_format = date("H:i:s d.m.Y",$year_enddate);
// +++++++++++++++ Konfig Ende +++++++++++++++++++++++++++++++++++++++++++++++++
// Ermitteln der Spaltenüberschriften (Monate)
$M_00 = date("M",time());
$M_01 = date("M",mktime(0, 0, 0, date("m")-1, 1, date("Y")));
$M_02 = date("M",mktime(0, 0, 0, date("m")-2, 1, date("Y")));
$M_03 = date("M",mktime(0, 0, 0, date("m")-3, 1, date("Y")));
$M_04 = date("M",mktime(0, 0, 0, date("m")-4, 1, date("Y")));
$M_05 = date("M",mktime(0, 0, 0, date("m")-5, 1, date("Y")));
$M_06 = date("M",mktime(0, 0, 0, date("m")-6, 1, date("Y")));
$M_07 = date("M",mktime(0, 0, 0, date("m")-7, 1, date("Y")));
$M_08 = date("M",mktime(0, 0, 0, date("m")-8, 1, date("Y")));
$M_09 = date("M",mktime(0, 0, 0, date("m")-9, 1, date("Y")));
$M_10 = date("M",mktime(0, 0, 0, date("m")-10, 1, date("Y")));
$M_11 = date("M",mktime(0, 0, 0, date("m")-11, 1, date("Y")));
// Ermitteln der Anzahl Tage pro Monat
$M_Anzahl_00 = date("d");
$M_Anzahl_01 = date("t",mktime(0, 0, 0, date("m")-1, 1, date("Y")));
$M_Anzahl_02 = date("t",mktime(0, 0, 0, date("m")-2, 1, date("Y")));
$M_Anzahl_03 = date("t",mktime(0, 0, 0, date("m")-3, 1, date("Y")));
$M_Anzahl_04 = date("t",mktime(0, 0, 0, date("m")-4, 1, date("Y")));
$M_Anzahl_05 = date("t",mktime(0, 0, 0, date("m")-5, 1, date("Y")));
$M_Anzahl_06 = date("t",mktime(0, 0, 0, date("m")-6, 1, date("Y")));
$M_Anzahl_07 = date("t",mktime(0, 0, 0, date("m")-7, 1, date("Y")));
$M_Anzahl_08 = date("t",mktime(0, 0, 0, date("m")-8, 1, date("Y")));
$M_Anzahl_09 = date("t",mktime(0, 0, 0, date("m")-9, 1, date("Y")));
$M_Anzahl_10 = date("t",mktime(0, 0, 0, date("m")-10, 1, date("Y")));
$M_Anzahl_11 = date("t",mktime(0, 0, 0, date("m")-11, 1, date("Y")));
echo "Anzahl tage: $M_Anzahl_00
";
// Abfrage Monatswerte der letzten 12 Monate
$month_values = AC_GetAggregatedValues($archiveID, $objectID, 3, $year_startdate, $year_enddate, 15);
@$c_zentral_00 = round($month_values[11]['Avg'], 1);
@$c_zentral_01 = round($month_values[10]['Avg'] + $c_zentral_00, 1);
@$c_zentral_02 = round($month_values[9]['Avg'] + $c_zentral_01, 1);
@$c_zentral_03 = round($month_values[8]['Avg'] + $c_zentral_02, 1);
@$c_zentral_04 = round($month_values[7]['Avg'] + $c_zentral_03, 1);
@$c_zentral_05 = round($month_values[6]['Avg'] + $c_zentral_04, 1);
@$c_zentral_06 = round($month_values[5]['Avg'] + $c_zentral_05, 1);
@$c_zentral_07 = round($month_values[4]['Avg'] + $c_zentral_06, 1);
@$c_zentral_08 = round($month_values[3]['Avg'] + $c_zentral_07, 1);
@$c_zentral_09 = round($month_values[2]['Avg'] + $c_zentral_08, 1);
@$c_zentral_10 = round($month_values[1]['Avg'] + $c_zentral_09, 1);
@$c_zentral_11 = round($month_values[0]['Avg'] + $c_zentral_10, 1);
// Abfrage Monatswerte (Summe pro Monat) der letzten 12 Monate
@$s_zentral_00 = round($month_values[0]['Avg'], 1);
@$s_zentral_01 = round($month_values[1]['Avg'], 1);
@$s_zentral_02 = round($month_values[2]['Avg'], 1);
@$s_zentral_03 = round($month_values[3]['Avg'], 1);
@$s_zentral_04 = round($month_values[4]['Avg'], 1);
@$s_zentral_05 = round($month_values[5]['Avg'], 1);
@$s_zentral_06 = round($month_values[6]['Avg'], 1);
@$s_zentral_07 = round($month_values[7]['Avg'], 1);
@$s_zentral_08 = round($month_values[8]['Avg'], 1);
@$s_zentral_09 = round($month_values[9]['Avg'], 1);
@$s_zentral_10 = round($month_values[10]['Avg'], 1);
@$s_zentral_11 = round($month_values[11]['Avg'], 1);
// Abfrage Durchschnittswerte der letzten 12 Monate
@$d_zentral_00 = round($month_values[0]['Avg']/$M_Anzahl_00, 1);
@$d_zentral_01 = round($month_values[1]['Avg']/$M_Anzahl_01, 1);
@$d_zentral_02 = round($month_values[2]['Avg']/$M_Anzahl_02, 1);
@$d_zentral_03 = round($month_values[3]['Avg']/$M_Anzahl_03, 1);
@$d_zentral_04 = round($month_values[4]['Avg']/$M_Anzahl_04, 1);
@$d_zentral_05 = round($month_values[5]['Avg']/$M_Anzahl_05, 1);
@$d_zentral_06 = round($month_values[6]['Avg']/$M_Anzahl_06, 1);
@$d_zentral_07 = round($month_values[7]['Avg']/$M_Anzahl_07, 1);
@$d_zentral_08 = round($month_values[8]['Avg']/$M_Anzahl_08, 1);
@$d_zentral_09 = round($month_values[9]['Avg']/$M_Anzahl_09, 1);
@$d_zentral_10 = round($month_values[10]['Avg']/$M_Anzahl_10, 1);
@$d_zentral_11 = round($month_values[11]['Avg']/$M_Anzahl_11, 1);
// Ermitteln der Spaltenüberschriften (Monate)
// ++++++++++++++++ Table-Factory ++++++++++++++++++++++++++++++++++++++++++++++
// Den Anfang der Tabelle definieren
$content = '<table style="text-align: left; background-color: rgb(32, 49, 67); width: 888px; height: 172px;" border="0" cellpadding="2" cellspacing="2">
<tbody>';
// Die erste Zeile (Überschriften)
$content .= '<tr>
<th style="text-align: left;" colspan="2" rowspan="1">Verbrauch in kWh</th>
<td style="text-align: center; font-weight: bold;">'.$M_11.'</td>
<td style="text-align: center; font-weight: bold;">'.$M_10.'</td>
<td style="text-align: center; font-weight: bold;">'.$M_09.'</td>
<td style="text-align: center; font-weight: bold;">'.$M_08.'</td>
<td style="text-align: center; font-weight: bold;">'.$M_07.'</td>
<td style="text-align: center; font-weight: bold;">'.$M_06.'</td>
<td style="text-align: center; font-weight: bold;">'.$M_05.'</td>
<td style="text-align: center; font-weight: bold;">'.$M_04.'</td>
<td style="text-align: center; font-weight: bold;">'.$M_03.'</td>
<td style="text-align: center; font-weight: bold;">'.$M_02.'</td>
<td style="text-align: center; font-weight: bold;">'.$M_01.'</td>
<td style="text-align: center; font-weight: bold;">'.$M_00.'</td>
</tr>';
// Zeile 3: Zentral, cumulativ Power Consumption
$content .= '<tr>
<td style="background-color: rgb(20, 32, 43); font-weight: bold;" colspan="2" rowspan="1"></small>Zentral</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43); font-weight: bold;"><small>'.$c_zentral_00.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43); font-weight: bold;"><small>'.$c_zentral_01.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43); font-weight: bold;"><small>'.$c_zentral_02.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43); font-weight: bold;"><small>'.$c_zentral_03.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43); font-weight: bold;"><small>'.$c_zentral_04.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43); font-weight: bold;"><small>'.$c_zentral_05.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43); font-weight: bold;"><small>'.$c_zentral_06.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43); font-weight: bold;"><small>'.$c_zentral_07.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43); font-weight: bold;"><small>'.$c_zentral_08.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43); font-weight: bold;"><small>'.$c_zentral_09.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43); font-weight: bold;"><small>'.$c_zentral_10.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43); font-weight: bold;"><small>'.$c_zentral_11.'</small></td>
</tr>';
// Zeile 3: Zentral, Monatsverbrauch
$content .= '<tr>
<td></td>
<td style="text-align: center; background-color: rgb(13, 23, 36);">Ø Monat</td>
<td style="text-align: center; background-color: rgb(13, 23, 36);"><small>'.$s_zentral_11.'</small></td>
<td style="text-align: center; background-color: rgb(13, 23, 36);"><small>'.$s_zentral_10.'</small></td>
<td style="text-align: center; background-color: rgb(13, 23, 36);"><small>'.$s_zentral_09.'</small></td>
<td style="text-align: center; background-color: rgb(13, 23, 36);"><small>'.$s_zentral_08.'</small></td>
<td style="text-align: center; background-color: rgb(13, 23, 36);"><small>'.$s_zentral_07.'</small></td>
<td style="text-align: center; background-color: rgb(13, 23, 36);"><small>'.$s_zentral_06.'</small></td>
<td style="text-align: center; background-color: rgb(13, 23, 36);"><small>'.$s_zentral_05.'</small></td>
<td style="text-align: center; background-color: rgb(13, 23, 36);"><small>'.$s_zentral_04.'</small></td>
<td style="text-align: center; background-color: rgb(13, 23, 36);"><small>'.$s_zentral_03.'</small></td>
<td style="text-align: center; background-color: rgb(13, 23, 36);"><small>'.$s_zentral_02.'</small></td>
<td style="text-align: center; background-color: rgb(13, 23, 36);"><small>'.$s_zentral_01.'</small></td>
<td style="text-align: center; background-color: rgb(13, 23, 36);"><small>'.$s_zentral_00.'</small></td>
</tr>';
// Zeile 4: Zentral, Tagesdurchschnitt
$content .= '<tr>
<td></td>
<td style="text-align: center; background-color: rgb(20, 32, 43);"><small>Ø Tag</td>
<td style="text-align: center; background-color: rgb(20, 32, 43);"><small>'.$d_zentral_11.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43);"><small>'.$d_zentral_10.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43);"><small>'.$d_zentral_09.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43);"><small>'.$d_zentral_08.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43);"><small>'.$d_zentral_07.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43);"><small>'.$d_zentral_06.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43);"><small>'.$d_zentral_05.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43);"><small>'.$d_zentral_04.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43);"><small>'.$d_zentral_03.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43);"><small>'.$d_zentral_02.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43);"><small>'.$d_zentral_01.'</small></td>
<td style="text-align: center; background-color: rgb(20, 32, 43);"><small>'.$d_zentral_00.'</small></td>
</tr>';
// Tabellenende
$content .= "</table>";
SetValueString($contend_var_id,$content);
?>