Skip to content

Commit

Permalink
v.3.35.0
Browse files Browse the repository at this point in the history
  • Loading branch information
jemu75 committed Jul 10, 2022
1 parent 9a42144 commit 2cfe9cb
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 5 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
# Versionsinformationen
## v.3.35.0 (10.07.2022)
**Features**
- Template Chart: über den Parameter ``calc`` sind jetzt Berechnungen von Werten möglich

## v.3.34.3 (09.07.2022)
**Bugfix**
- Standard-Template: Fehler in der Konfiguration des Slider behoben
Expand Down
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -840,7 +840,7 @@ Im FHEM-Device muss im Attribut `appOptions` folgendes eingetragen werden.
### Konfiguration von Charts
Da *Chart* kein Standard-Template ist, könnt ihr nur ausgewählte Eigenschaften über den Parameter `setup` in `appOptions` anpassen. Über den Paramter `size` kann die Templatebreite [siehe](#breite-von-templates) verändert werden. Der Parameter `daysAgo` legt ihr fest, wieviele Tage das Chart beim Laden zurückschaut. Als Standard werden die Daten der letzten 7 Tage `"daysAgo": 6` geladen. Über den Parameter `chartDef` legt ihr fest, welche Daten im Chart angezeigt werden. Jede Linie entspricht dabei einer Definition.
```
"chartDef": ["logsource:reading:text:präfix:axis:color:min:max:typ:lineWidth:markers"],
"chartDef": ["logsource:reading:text:präfix:axis:color:min:max:typ:lineWidth:markers:calc"],
"setup": {
"size": "string",
"daysAgo": number
Expand All @@ -857,12 +857,20 @@ Da *Chart* kein Standard-Template ist, könnt ihr nur ausgewählte Eigenschaften
9. **typ** - mit diesem Parameter kann (optional) die Diagrammart festgelegt werden. *(Standard = line)*
10. **lineWidth** - mit diesem Parameter kann (optional) die Linienbreite festgelegt werden. *(Standard = 4)*
11. **markers** - mit diesem Parameter kann (optional) die Größe von Datenpunkten festgelegt werden. *(Standard = 0)*
12. **calc** - mit diesem Parameter können Logdaten (optional) berechnet werden.

### Diagrammarten
Es stehen folgende Arten zur Verfügung *line* (Standard), *stepline*, *column*, *area*

| Hinweis: Wenn ihr eure Daten über *DbLog* erfasst, dann habt ihr in FHEM dafür im Normalfall nur ein Device angelegt. Damit ihr verschiedene Charts in **FHEMApp** anzeigen könnt, empfielt es sich, je Chart ein *dummy* in FHEM anzulegen und hier die entsprechenden `appOptions` für das Chart zu hinterlegen. Wenn ihr eure Daten in einzelnen *FileLog-Dateien* erfasst, dann könnt ihr `appOptions` an dem jeweiligen *FileLog-Device* hinterlegen.

### Berechnung von Werten
Mit dem Parameter ``calc`` können Logdaten über bestimmte Zeiträume aggrgiert und berechnet werden. Es können Werte die Zeiträume (Jahr, Monat, Woche, Tag, Stunde) aggregiert werden. Innerhalb der Zeiträume können Werte (kleinster Wert, größter Werte, Durchschnitt, Differenz) berechnet werden. Bei Verwendung des Parameter ``calc`` wird zuerst der Zeitraum und danach die Berechnung angegeben.
|Zeitraum|Trennung|Berechnung|
|--------|--------|----------|
|year month week day hour|-|min max avg delta|
*Beispiel:* Darstellung von Durchschnittswerten pro Monat ``month-avg`` oder Darstellung der Differenz zum Vortag ``day-delta``

### Beispiel für eine Chartkonfiguration
Es wird ein Chart im Menüpunkt *Dashboard* angezeigt. Aus dem Logfile werden die Readings *humidity* (rechte Achse) und *measured-temp* (linke Achse) im Chart dargestellt.
```
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "fhemapp",
"version": "3.34.3",
"version": "3.35.0",
"private": true,
"author": "jemu75",
"scripts": {
Expand Down
5 changes: 4 additions & 1 deletion src/plugins/fhem.js
Original file line number Diff line number Diff line change
Expand Up @@ -483,6 +483,7 @@ class Fhem extends EventEmitter {
let steps = items.length > this.app.options.maxChartPoints ? parseInt(items.length / this.app.options.maxChartPoints) : 1; // important for performance
let nextStep = steps;
let sumVal = null;
let lastVal = null;
let idx = 1;
let lastTs = null;

Expand All @@ -497,7 +498,8 @@ class Fhem extends EventEmitter {
if(/-min/.test(calc) && (sumVal > value || !sumVal)) sumVal = value;
if(/-max/.test(calc) && sumVal < value) sumVal = value;
if(/-avg/.test(calc)) sumVal = (sumVal + value) / 2;
if(/-delta/.test(calc) && !sumVal) sumVal = value;
if(/-delta/.test(calc) && lastVal) sumVal += value - lastVal;
if(/-delta/.test(calc)) lastVal = value;

if(/hour-/.test(calc)) calcTs = new Date(ts.getFullYear() +'-' + (ts.getMonth() + 1) + '-' + ts.getDate()).setHours(ts.getHours());
if(/day-/.test(calc)) calcTs = new Date(ts.getFullYear() +'-' + (ts.getMonth() + 1) + '-' + ts.getDate()).setHours(12);
Expand All @@ -510,6 +512,7 @@ class Fhem extends EventEmitter {
if(calcTs > lastTs || idx === items.length) {
result.push({ timestamp: lastTs, value: sumVal });
sumVal = null;
lastVal = null;
lastTs = calcTs;
}
} else {
Expand Down
2 changes: 1 addition & 1 deletion www/fhemapp/index.html
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<!doctype html><html lang="de"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><meta name="mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-capable" content="yes"><link rel="icon" href="favicon.png"><link rel="apple-touch-icon" href="apple-touch-icon.png"><title>fhemapp</title><script defer="defer" src="js/chunk-vendors.cfc1c5a9.js"></script><script defer="defer" src="js/app.649998ea.js"></script><link href="css/chunk-vendors.34253d2a.css" rel="stylesheet"><link href="css/app.9b8c7eb5.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but fhemapp doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
<!doctype html><html lang="de"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><meta name="mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-capable" content="yes"><link rel="icon" href="favicon.png"><link rel="apple-touch-icon" href="apple-touch-icon.png"><title>fhemapp</title><script defer="defer" src="js/chunk-vendors.cfc1c5a9.js"></script><script defer="defer" src="js/app.991c4b1a.js"></script><link href="css/chunk-vendors.34253d2a.css" rel="stylesheet"><link href="css/app.9b8c7eb5.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but fhemapp doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>

Large diffs are not rendered by default.

0 comments on commit 2cfe9cb

Please sign in to comment.