Wie eine Grafik aus einer Systemvariable erstellen?

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Antworten
Benutzeravatar
Gelegenheitsbastler
Beiträge: 586
Registriert: 15.10.2017, 07:29
Hat sich bedankt: 14 Mal
Danksagung erhalten: 41 Mal

Wie eine Grafik aus einer Systemvariable erstellen?

Beitrag von Gelegenheitsbastler » 21.10.2017, 20:24

Ich habe eine Systemvariable hinzu gefügt. Diese stellt den aktuellen Inhalt meiner Zisterne in Prozent dar. Nun würde ich daraus gerne eine Grafik erzeugen. Erfolgreich habe ich das bereits mit dem Helligkeitssensor HM-Sen-LI-O gemacht. Aber wie funktioniert das mit einer Systemvariablen? Mit CUxD?
Das Komplizierteste an der Hausautomatisation ist der WAF.™ ​

Übersicht meiner Projekte


RaspberryMatic 3.47.22.20191026 auf Raspberry Pi 3B mit HomeMatic Funkmodul von ELV und RTC

Etliche selbst gebaute Aktoren und Sender

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

Re: Wie eine Grafik aus einer Systemvariable erstellen?

Beitrag von Mathias » 21.10.2017, 20:47

Seite 103 in der CUxD-Dokumentation (cuxd_1.11.pdf).

Gruß
Mathias

Benutzeravatar
Gelegenheitsbastler
Beiträge: 586
Registriert: 15.10.2017, 07:29
Hat sich bedankt: 14 Mal
Danksagung erhalten: 41 Mal

Re: Wie eine Grafik aus einer Systemvariable erstellen?

Beitrag von Gelegenheitsbastler » 23.10.2017, 07:59

Danke für den Hinweis, aber diese Zeilen sehen für mich aus, als hätte jemand willkürlich Scrabble Steine aneinander gereiht.

Die Wenn-Bedingung bekomme ich noch hin, hoffe ich. Aber die Geschichte mit dem Script verstehe ich nicht. Vielleicht könnte ja jemand, für den das nur eine Fingerübung ist, mir ein wenig auf die Sprünge helfen?

Eine alternative Idee (nicht von mir) wäre, ein CUxD Gerät anzulegen, dass den Füllstand anzeigen kann. Aber da habe ich noch kein passendes gefunden, oder nach dem falschen Begriff gesucht. Aber dann käme das nächste Problem: Wie schreibe ich die Daten dort hinein?
Dateianhänge
Bildschirmfoto vom 2017-10-23 07-55-00.png
Das Komplizierteste an der Hausautomatisation ist der WAF.™ ​

Übersicht meiner Projekte


RaspberryMatic 3.47.22.20191026 auf Raspberry Pi 3B mit HomeMatic Funkmodul von ELV und RTC

Etliche selbst gebaute Aktoren und Sender

Karl_999
Beiträge: 18
Registriert: 21.10.2017, 17:44

Re: Wie eine Grafik aus einer Systemvariable erstellen?

Beitrag von Karl_999 » 23.10.2017, 20:10

Gelegenheitsbastler hat geschrieben:Die Wenn-Bedingung bekomme ich noch hin, hoffe ich. Aber die Geschichte mit dem Script verstehe ich nicht. Vielleicht könnte ja jemand, für den das nur eine Fingerübung ist, mir ein wenig auf die Sprünge helfen?
Nachdem ich das gerade mit Hilfe des Hinweises auf das CUxD-Handbuch geschafft habe, kann ich gerne etwas mit dem Skript helfen

Code: Alles auswählen

! ===============================================
! Aufzeichnen der Systemvariablen für CUxD HighCarts
! ===============================================

var mySysVar;
var value;

! ===============================================
! DutyCycle
! ===============================================

mySysVar = dom.GetObject("Status_DutyCycle");
value = mySysVar.Variable();
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State("Duty_cycle"#";"#value);
Es muss natürlich eine Systemvariable (mit dem Namen Status_DutyCycle) angelegt sein.

Dieses Skript rufst Du im Programm Deiner Wahl zu bestimmten Zeitpunkten auf. Bei der Zisterne wird wohl eine zeitliche Triggerung (alle 2-4 Stunden) geeignet sein.
Im Dann-Zweig rufst Du die Aktivität Skript auf und kopierst das obige Skript. Ggf. Name anpassen. Speichern und dann testweise das Programm starten.

Benutzeravatar
Gelegenheitsbastler
Beiträge: 586
Registriert: 15.10.2017, 07:29
Hat sich bedankt: 14 Mal
Danksagung erhalten: 41 Mal

Re: Wie eine Grafik aus einer Systemvariable erstellen?

Beitrag von Gelegenheitsbastler » 24.10.2017, 06:40

Vielen Dank für Deine Hilfe.
Ich habe die Variable DutyCycle mit dem Variablentyp Zahl angelegt und das Script so wie es ist in das Programm aus dem obigen Screenshot kopiert. So weit, so gut. Aber ich habe immer noch das Problem, kein Gerät in CUxD gefunden zu haben, dass man dann in "Einstellungen - Diagramme - neu (Benutzerspezifisch)" als Datenquelle hinzu fügen kann. Der vorhandene Lichtsensor bleibt die einzige Datenquelle. Wie hast Du dieses Problem gelöst? Denn Du schreibst ja, dass Du es geschafft hast.
Das Komplizierteste an der Hausautomatisation ist der WAF.™ ​

Übersicht meiner Projekte


RaspberryMatic 3.47.22.20191026 auf Raspberry Pi 3B mit HomeMatic Funkmodul von ELV und RTC

Etliche selbst gebaute Aktoren und Sender

Karl_999
Beiträge: 18
Registriert: 21.10.2017, 17:44

Re: Wie eine Grafik aus einer Systemvariable erstellen?

Beitrag von Karl_999 » 24.10.2017, 21:31

Ich hatte übersehen, dass Du die normalen Grafik-Werkzeuge nutzt. Sowiet ich bislang verstanden ahbe, ist es damit nicht möglich Systemvariablen in Diagramme aufzunehmen.

Daher habe ich für diesen Zweck das Addon CUxD-Highcharts 1.4.5 viewtopic.php?f=37&t=12939 installiert. Das kann auch Systemvariablen anzeigen.
Und dafür schreibt das Skript die Systemvariable mit.

Benutzeravatar
Gelegenheitsbastler
Beiträge: 586
Registriert: 15.10.2017, 07:29
Hat sich bedankt: 14 Mal
Danksagung erhalten: 41 Mal

Re: Wie eine Grafik aus einer Systemvariable erstellen?

Beitrag von Gelegenheitsbastler » 25.10.2017, 13:43

Das hatte ich übersehen. Danke für die Info. Ich werde das ausprobieren, sobald ich wieder daheim bin und einen normalen Rechner habe.
Das Komplizierteste an der Hausautomatisation ist der WAF.™ ​

Übersicht meiner Projekte


RaspberryMatic 3.47.22.20191026 auf Raspberry Pi 3B mit HomeMatic Funkmodul von ELV und RTC

Etliche selbst gebaute Aktoren und Sender

Benutzeravatar
Gelegenheitsbastler
Beiträge: 586
Registriert: 15.10.2017, 07:29
Hat sich bedankt: 14 Mal
Danksagung erhalten: 41 Mal

Re: Wie eine Grafik aus einer Systemvariable erstellen?

Beitrag von Gelegenheitsbastler » 17.11.2017, 12:24

Nachdem ich etliche andere Baustellen an der HM abgearbeitet habe, möchte ich mich nun wieder diesem Thema widmen. Inzwischen habe ich CUxD HighCharts installiert und kann damit Grafiken anderer Sensoren erzeugen. Diese sind aber immer als CUxD Gerät angelegt. Der Wert der Zisterne ist weiterhin nur als Systemvariable vorhanden.

Folgendes Script (nicht auf meinem Mist gewachsen) habe ich im Programm hinterlegt, dass während der Testphase alle 20 Sekunden aufgerufen wird:

Code: Alles auswählen

! ===============================================
! Aufzeichnen der Systemvariablen für CUxD HighCarts
! ===============================================

var mySysVar;
var value;

! ===============================================
! DutyCycle
! ===============================================

mySysVar = dom.GetObject("Zisterne");
value = mySysVar.Variable();
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State("Zisterne_Fuellstand"#";"#value);
Im Setup von CUxD habe ich folgende Zeile hinzu gefügt (das CUxD Gerät war bereits angelegt):

Code: Alles auswählen

LOGIT=CUX2801001:1 LOGIT T1
Dann habe ich noch eine Systemvariable "Zisterne_Fuellstand" angelegt mit dem Inhalt "Zahl 0 - 100", Maßeinheit "%", weil ich dachte, dass dies die Beschriftung der Y-Achse darstellt.
Zu meiner Verwunderung funktioniert das. Es wird der Wert als Graph dargestellt.

Nun hätte ich dazu die Bitte, dass mir mal jemand erklärt, was "Zisterne_Fuellstand" in der letzten Zeile macht und wozu das gut ist.
Dateianhänge
Bildschirmfoto vom 2017-11-17 17-21-20.png
Das Komplizierteste an der Hausautomatisation ist der WAF.™ ​

Übersicht meiner Projekte


RaspberryMatic 3.47.22.20191026 auf Raspberry Pi 3B mit HomeMatic Funkmodul von ELV und RTC

Etliche selbst gebaute Aktoren und Sender

Benutzeravatar
Gelegenheitsbastler
Beiträge: 586
Registriert: 15.10.2017, 07:29
Hat sich bedankt: 14 Mal
Danksagung erhalten: 41 Mal

Re: Wie eine Grafik aus einer Systemvariable erstellen?

Beitrag von Gelegenheitsbastler » 17.11.2017, 21:16

Eine weitere Frage habe ich noch:

Wie kann man den Wert nur dann aufzeichnen, wenn er sich verändert? Aktuell läuft das Script über die Zeitsteuerung, die es alle 15 Minuten aufruft. Sinnvoller wäre es aber doch, dass das Script nur nur dann aufgerufen wird, wenn sich der Wert in der Systemvariable verändert.
Das Komplizierteste an der Hausautomatisation ist der WAF.™ ​

Übersicht meiner Projekte


RaspberryMatic 3.47.22.20191026 auf Raspberry Pi 3B mit HomeMatic Funkmodul von ELV und RTC

Etliche selbst gebaute Aktoren und Sender

Benutzeravatar
uwe111
Beiträge: 4819
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 245 Mal
Kontaktdaten:

Re: Wie eine Grafik aus einer Systemvariable erstellen?

Beitrag von uwe111 » 18.11.2017, 15:00

Gelegenheitsbastler hat geschrieben:Wie kann man den Wert nur dann aufzeichnen, wenn er sich verändert? Aktuell läuft das Script über die Zeitsteuerung, die es alle 15 Minuten aufruft
Indem Du die Programmverknüpfung nur bei Aktualisierung der Systemvariable aufrufst und dann vor dem Schreiben ggf. den aktuellen mit dem letzten Wert vergleichst.

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

Antworten

Zurück zu „CUxD“