Messkurven auf eigener HP darstellen?

Das Langzeitarchiv für HomeMatic

Moderator: Co-Administratoren

Benutzeravatar
Black
Beiträge: 5483
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 424 Mal
Danksagung erhalten: 1074 Mal
Kontaktdaten:

Re: Messkurven auf eigener HP darstellen?

Beitrag von Black » 07.06.2019, 11:31

Beowolf hat geschrieben:
07.06.2019, 11:12
Raspimatic und iobroker zusammen auf einem pi3?
hattest du nicht für eine logamatic anbindung einen laufenden iokroker ?
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Beowolf
Beiträge: 655
Registriert: 15.07.2006, 12:50
Wohnort: Greven
Hat sich bedankt: 13 Mal
Danksagung erhalten: 18 Mal

Re: Messkurven auf eigener HP darstellen?

Beitrag von Beowolf » 07.06.2019, 11:33

Bis jetzt habe ich es so, das die aktuelle Temperatur bei Änderung an die Webseite gesendet wird. Das funktioniert auch ohne Probleme. Das einzige Problem was ich im Moment habe ist, das Joomla (darunter läuft die Seite) nicht in der Lage ist einzelne Beitrage vom Cache auszunehmen. Es wird also nicht immer der ganz aktuelle Temperaturwert angezeigt. Das hat aber nicht mit Homematik zu tun.

Da sich das alles um Pferdeboxen bzw. Reithallen handelt, soll natürlich die Hardware sehr überschaubar sein und kostengünstig sein.

Es sollte schon alles auf einem pi3+ laufen. Daher der Gedanke, das der pi3 aus den Daten ein Bild mcht, dieses an die Seite geht und fertig.

Grüße
Manfred

Beowolf
Beiträge: 655
Registriert: 15.07.2006, 12:50
Wohnort: Greven
Hat sich bedankt: 13 Mal
Danksagung erhalten: 18 Mal

Re: Messkurven auf eigener HP darstellen?

Beitrag von Beowolf » 07.06.2019, 11:40

Black hat geschrieben:
07.06.2019, 11:31
Beowolf hat geschrieben:
07.06.2019, 11:12
Raspimatic und iobroker zusammen auf einem pi3?
hattest du nicht für eine logamatic anbindung einen laufenden iokroker ?
Das läuft auch dank Deiner Hilfe alles wunderbar und ohne Probleme. Keine Abstürze mehr am Heizung-pi3 seit der letzten Kesselwartung.

Das aktuelle Projekt hat nichts mit meinen "Privaten"-pi3s zu tun. Ist alles bei uns im Reitverein.

Grüße
Manfred

Fonzo
Beiträge: 6744
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 486 Mal

Re: Messkurven auf eigener HP darstellen?

Beitrag von Fonzo » 07.06.2019, 11:41

Beowolf hat geschrieben:
07.06.2019, 11:33
Bis jetzt habe ich es so, das die aktuelle Temperatur bei Änderung an die Webseite gesendet wird. Das funktioniert auch ohne Probleme.
Wenn die Daten doch so oder so schon auf der Website vorhanden sind, dann würde ich das dann auch dort einfach lösen z.B. PHPlot, dann brauchst Du auch gar keine externen Systeme sondern löst das direkt auf dem Webserver des Hosters. Oder nimm Google Charts oder pChart.

Beowolf
Beiträge: 655
Registriert: 15.07.2006, 12:50
Wohnort: Greven
Hat sich bedankt: 13 Mal
Danksagung erhalten: 18 Mal

Re: Messkurven auf eigener HP darstellen?

Beitrag von Beowolf » 07.06.2019, 17:26

Na ja, was die Daten auf der Webseite betrifft.

Der Ablauf ist so:

1. Der Temperatursensor der mit Raspimatic verbnden ist, zeigt 23° Grad an
2. Bei Änderung sendet der pi3 diesen Wert per Skript an meine Webseite.
3. Dort liegt der Wert nun in einer Datei.
4. Diese Datei wird per PHP ausgelesen und in Joomla in einem Beitrag per Plugin Sourcerer angezeigt.
5. Ändert sich nun die Temperatur, wir der neue Wert wieder an die Seite gesendet, und der neue Wert wird aus der Datei gelesen und angezeigt.

Es ist also immer nur ein Wert auf meiner HP.

Ich bin schon stolz wie bolle das ich das hinbekommen habe. :D

Wie ich jetzt den "alten" Wert behalte und den neuen zur weiteren Anzeige und zum Aufbau eine Temperaturkurve verwende ist mir vollkommen schleierhaft. :(

Grüße

Fonzo
Beiträge: 6744
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 486 Mal

Re: Messkurven auf eigener HP darstellen?

Beitrag von Fonzo » 07.06.2019, 17:34

Beowolf hat geschrieben:
07.06.2019, 17:26
Wie ich jetzt den "alten" Wert behalte und den neuen zur weiteren Anzeige und zum Aufbau eine Temperaturkurve verwende ist mir vollkommen schleierhaft. :(
Na Du ergänzt jeden neuen Messwert mit Timestamp in einem Array. Die Daten, die Du auf dem Server liegen hast, kannst Du dann z.B. mit einem Line Chart anzeigen lassen.

Beowolf
Beiträge: 655
Registriert: 15.07.2006, 12:50
Wohnort: Greven
Hat sich bedankt: 13 Mal
Danksagung erhalten: 18 Mal

Re: Messkurven auf eigener HP darstellen?

Beitrag von Beowolf » 07.06.2019, 18:10

Vielen Dank das Du mir helfen möchtest, aber da steigen mir nur Fragezeichen aus meinem Kopf.

Dieses ist die Datei die in einem Verzeichnis auf meiner HP liegt.
<?php
if (isset($_GET["temp"])){ $temp = $_GET["temp"]; } else { $temp="x"; }
if ($temp != x){ file_put_contents("temperatur.dat", $temp); }
?>
So wie ich das deute wird aus der Datei "temperatur.dat" der Inhalt in die Variable $temp geschrieben. Verstehen was da steht tue ich leider nicht, aber es funktioniert. :?

Wie ich so etwas in ein Array bekomme - da bin ich leider raus.

Mathias
Beiträge: 1796
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 262 Mal
Kontaktdaten:

Re: Messkurven auf eigener HP darstellen?

Beitrag von Mathias » 07.06.2019, 19:10

Beowolf hat geschrieben:
06.06.2019, 23:56
Raspimatic bzw. wenn nötig CCU-Historian können ja Messkurven darstellen.

Gibt es eine Möglichkeit diese Kurven auf der eigenen Webseite zu zeigen?
Wenn eine Netzwerkverbindung zum CCU-Historian-Rechner besteht, kann über eine spezielle Adresse (s.a. Handbuch) eine Grafik vom CCU-Historian-Rechner generiert und abgerufen werden.

Falls keine direkte Netzwerkverbindung besteht, kann eine Trend-Grafik lokal auf dem Raspberry mit curl zyklisch abgerufen und temporär gespeichert werden. Mit einem weiteren curl-Befehl kann diese Datei dann auf einen Web-Server hochgeladen werden.
NickHM hat geschrieben:
07.06.2019, 10:58
Wenn Du iobroker installierst ist Historian komplett überflüssig und die Diagramme von Flot sind eindeutig schicker und flexibler in den Parametern.
Wer bereits ioBroker auch für andere Zwecke verwendet, sollte natürlich auch die dortigen Möglichkeiten des history- und flot-Adapters nutzen, wenn sie ausreichen.

Der CCU-Historian ist aber speziell für die Anforderungen einer Betriebsdatenerfassung entwickelt worden, und seine Funktionalität geht gerade bei der Verwaltung der Zeitreihen weit über die Möglichkeiten von ioBroker.history hinaus (z.B. Gerätetausch). Und es wird natürlich noch mehr kommen.

Ob eine Trend-Darstellung schicker ist als eine andere ist Geschmackssache. Die Trends vom CCU-Historian können ebenfalls vielfältig angepasst werden (z.B. die Piktogramme für die Tastendrücke). Zeichenketten-Datenpunkte werden automatisch zusammen mit den Trend-Grafiken tabellarisch angezeigt. Es können Trend-Gruppen übereinander dargestellt werden. Die Standard-Trend-Oberfläche vom CCU-Historian verfolgt eher das Konzept eines Analyse-Werkzeugs. Schnell und effektiv sollen Erkenntnisse aus den Zeitreihen gewonnen werden mit möglichst wenigen Klicks.

Auch ist er gerade für Einsteiger einfacher zu installieren und zu konfigurieren. Als CCU-AddOn wird nicht einmal separate Hardware benötigt und auch keine Kommandozeile :wink: . Bei größeren Installationen wird bei ioBroker.history eine InfluxDB empfohlen, welche die Sache nicht einfacher macht. Der CCU-Historian hat auch bessere Export-Funktionalität aus der Datenbank.

Gruß
Mathias

Beowolf
Beiträge: 655
Registriert: 15.07.2006, 12:50
Wohnort: Greven
Hat sich bedankt: 13 Mal
Danksagung erhalten: 18 Mal

Re: Messkurven auf eigener HP darstellen?

Beitrag von Beowolf » 07.06.2019, 23:21

Mathias hat geschrieben:
07.06.2019, 19:10
....

Falls keine direkte Netzwerkverbindung besteht, kann eine Trend-Grafik lokal auf dem Raspberry mit curl zyklisch abgerufen und temporär gespeichert werden. Mit einem weiteren curl-Befehl kann diese Datei dann auf einen Web-Server hochgeladen werden.

.....
Das würde mir schon vollkommen reichen. Kannst Du mir das näher erklären?

Danke
Manfred

Mathias
Beiträge: 1796
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 262 Mal
Kontaktdaten:

Re: Messkurven auf eigener HP darstellen?

Beitrag von Mathias » 08.06.2019, 19:31

Du ermittelst als erstes die benötigte Grafik-URL, indem Du Die die Trend-Grafik über die CCU-Historian-Oberfläche wie gewünscht zusammenbaust und danach einfach die Bildadresse aus dem Web-Browser kopierst. Du solltest einen relativen Zeitbereich aus dem Drop-Down "Zeitbereiche" auswählen, damit sich der Zeitbereich bei jeder Abfrage anpasst.

Mit folgendem Aufruf wird dann diese Trend-Grafik abgerufen und lokal gespeichert:

Code: Alles auswählen

curl 'http://192.168.0.11:8080/query/trend?b=-7D&e=&gh1=1&dp1=740&g1=1&dp2=733&g2=1' --output /var/tmp/tmp.png
  • Die Adresse mit Hochkommas angeben.
Mit folgendem Aufruf wird dann die Grafik per Form-Upload zu einem Server hochgeladen:

Code: Alles auswählen

curl -F 'upload_file=@/var/tmp/tmp.png' http://server.de/upload.php
  • upload_file ist der Feldname für den Formularupload.
Die zwei Kommandos werden dann in ein Shell-Skript gepackt und dann z.B. per Cron zyklisch aufgerufen.

Auf Deiner Web-Seite musst Du dann noch ein PHP-Skript (upload.php) erstellen, dass Dateiuploads entgegen nimmt und abspeichert. Der Pfad zur temporären Datei (nun auf dem Web-Server) ist in der Variablen $_FILES['upload_file']['tmp_name'] zu finden.

Gruß
Mathias

Antworten

Zurück zu „CCU-Historian“