Hallo zusammen,
da hier der Bedarf an simplen Anleitungen für den EibPC aufkam und das Handbuch in der aktuellen Form nicht unbedingt sofort verständlich ist, mache ich hier einmal den Anfang ein Thema hoffentlich für jeden verständlich zu beschreiben.
Viele Grüße
Michael
WEBCHARTS
1. Definition der Charts im Bereich [WebServer]:
2. Zentrale Definition der IDs im Bereich [EibPC]
3. Befüllen der Charts im Bereich [EibPC]
Binäre Werte in Charts anzeigen (Schaltzustände visualisieren)
da hier der Bedarf an simplen Anleitungen für den EibPC aufkam und das Handbuch in der aktuellen Form nicht unbedingt sofort verständlich ist, mache ich hier einmal den Anfang ein Thema hoffentlich für jeden verständlich zu beschreiben.
Viele Grüße
Michael
WEBCHARTS
1. Definition der Charts im Bereich [WebServer]:
[highlight=epc]
page(PageID_Wetter)[$$,$Wetter$]
header(0)
footer(0)
design $black$
mpchart(ID_Wetters_Regen_Chart)[SINGLE,SXY]($Regen L/m²$,LINE) \\
mpchart(ID_Wetter_Wind_Chart)[SINGLE,SXY]($Wind km/h$,LINE)
[/highlight]
page(PageID_Wetter)[$$,$Wetter$]
header(0)
footer(0)
design $black$
mpchart(ID_Wetters_Regen_Chart)[SINGLE,SXY]($Regen L/m²$,LINE) \\
mpchart(ID_Wetter_Wind_Chart)[SINGLE,SXY]($Wind km/h$,LINE)
[/highlight]
Dies sind zwei nebeneinanderliegende Charts auf der Webpage "Wetter". Das eine Chart zeigt die Regenmenge in L/qm an, das andere Chart den Wind in km/h. Beide haben jeweils die Standard Größe (Single) und zeichnen eine durchgehende Kennlinie (Line).
Die IDs der Webpage und der Webelemente können direkt im Code definiert werden. Besser ist aber wie im o.g. Beispiel mit ID Variablen zu arbeiten und die IDs an einer zentralen Stelle zu definieren. Dies hat den Vorteil dass bei Änderung der Webpages bzw. Webelemente die Nummerierung der IDs an einer zentralen Stelle angepaßt werden kann.
Die IDs der Webpage und der Webelemente können direkt im Code definiert werden. Besser ist aber wie im o.g. Beispiel mit ID Variablen zu arbeiten und die IDs an einer zentralen Stelle zu definieren. Dies hat den Vorteil dass bei Änderung der Webpages bzw. Webelemente die Nummerierung der IDs an einer zentralen Stelle angepaßt werden kann.
2. Zentrale Definition der IDs im Bereich [EibPC]
[highlight=epc]
// Webserver: Webpages
PageID_Wetter = 1
// Webserver: Wetter
ID_Wetter_Regen_Chart = 1
ID_Wetter_Wind_Chart = 2
[/highlight]
// Webserver: Webpages
PageID_Wetter = 1
// Webserver: Wetter
ID_Wetter_Regen_Chart = 1
ID_Wetter_Wind_Chart = 2
[/highlight]
Die Kombination aus Webpage (hier 1) und Chart (hier 1 und 2) darf nur einmal im gesamten Code vorkommen, da sonst keine eindeutige Zuordnung von Werten möglich ist.
3. Befüllen der Charts im Bereich [EibPC]
[highlight=epc]
// Regenmenge und Wind 24h-Chart alle 30 Minuten mit Daten füllen
if mtime(00,00) or mtime(30,00) then \\
mpchart(ID_Wetter_Regen_Chart, WebZeit, Wetterbericht_Regenmenge, 0, PageID_Wetter); \\
mpchart(ID_Wetter_Wind_Chart, WebZeit, Wetterbericht_Wind, 0, PageID_Wetter) \\
endif
[/highlight]
// Regenmenge und Wind 24h-Chart alle 30 Minuten mit Daten füllen
if mtime(00,00) or mtime(30,00) then \\
mpchart(ID_Wetter_Regen_Chart, WebZeit, Wetterbericht_Regenmenge, 0, PageID_Wetter); \\
mpchart(ID_Wetter_Wind_Chart, WebZeit, Wetterbericht_Wind, 0, PageID_Wetter) \\
endif
[/highlight]
Es wird also jede halbe Stunde auf die Webpage 1 (PageID_Wetter) in die Charts 1 (ID_Wetter_Regen_Chart) und 2 (ID_Wetterbericht_Wind) ein Wert in die Kennlinie 0 (4 sind insgesamt pro Chart möglich: 0, 1, 2 und 3) geschrieben.
WebZeit ist die Umrechnung der Uhrzeit in das für Charts stets erforderliche f16-Format.
[highlight=epc]
WebZeit = convert(convert(hour(), 0f32) + convert(minute(), 0f32) / 60f32, 0.0f16)
[/highlight]
WebZeit ist die Umrechnung der Uhrzeit in das für Charts stets erforderliche f16-Format.
[highlight=epc]
WebZeit = convert(convert(hour(), 0f32) + convert(minute(), 0f32) / 60f32, 0.0f16)
[/highlight]
Binäre Werte in Charts anzeigen (Schaltzustände visualisieren)
Wenn anstatt einem f16 Wert z.B. der binäre Zustand eines Fensterkontakts in ein Chart geschrieben werden soll, mußt dieser vorher wie folgt umgewandelt werden:
[highlight=epc]
// Schaltzustände von Binär nach f16 umwandeln
Fensterkontakt_Kueche_Chart = 0.0f16
if Init == EIN \\
and Fensterkontakt_Kueche == EIN then \\
Fensterkontakt_Kueche_Chart = 1.0f16 \\
else \\
Fensterkontakt_Kueche_Chart = 0.0f16 \\
endif
// Schaltzustände bei Änderung in die Charts schreiben
if change(Fensterkontakt_Kueche) then \\
mpchart(ID_Fenster_Kueche_Chart, WebZeit, Fensterkontakt_Kueche_Chart, 0, PageID_Fenster) \\
endif
[/highlight]
Wenn binäre Werte in Charts geschrieben werden sollen, empfiehlt sich statt der Darstellung als durchgehende Kennline die Darstellung als Säule (COLUMN):
[highlight=epc]
mpchart(ID_Fenster_Kueche_Chart)[SINGLE,SXY]($Fenster Küche$,COLUMN)
[/highlight]
[highlight=epc]
// Schaltzustände von Binär nach f16 umwandeln
Fensterkontakt_Kueche_Chart = 0.0f16
if Init == EIN \\
and Fensterkontakt_Kueche == EIN then \\
Fensterkontakt_Kueche_Chart = 1.0f16 \\
else \\
Fensterkontakt_Kueche_Chart = 0.0f16 \\
endif
// Schaltzustände bei Änderung in die Charts schreiben
if change(Fensterkontakt_Kueche) then \\
mpchart(ID_Fenster_Kueche_Chart, WebZeit, Fensterkontakt_Kueche_Chart, 0, PageID_Fenster) \\
endif
[/highlight]
Wenn binäre Werte in Charts geschrieben werden sollen, empfiehlt sich statt der Darstellung als durchgehende Kennline die Darstellung als Säule (COLUMN):
[highlight=epc]
mpchart(ID_Fenster_Kueche_Chart)[SINGLE,SXY]($Fenster Küche$,COLUMN)
[/highlight]
Kommentar