CuxD Highchart und Systemvariablen

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

thfrank
Beiträge: 248
Registriert: 16.05.2020, 12:54
System: CCU
Hat sich bedankt: 48 Mal
Danksagung erhalten: 1 Mal

CuxD Highchart und Systemvariablen

Beitrag von thfrank » 04.07.2021, 14:40

Ich nutze u.a. Programm zum Loggen von Systemvariablen in CuxD.

Script ist wie folgt:

Code: Alles auswählen

object dp = dom.GetObject("$src$");
if (dp) { dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(dp.Name()#" "#dp.Value().ToInteger() );}
Das Programm wird ausgelöst und ich sehe die aktualisierten Werte auch im Device-Log von CuxD, allerdings erscheinen sie nicht im Highchart. Aufgefallen ist mir, dass die Zahlenwerte im Device-Log immer mit Unterstrich an die Variabele angehängt sind (z.B. 2021-07-04T14:20:01 sonne_azimut_209).

Funktionieren tut es mit folgendem Script, das ich bislang immer alle zehn Minuten aufgerufen habe, da funktionierten nur die Boolean-Variablen nicht.

Code: Alles auswählen

object o = dom.GetObject("sonne_azimut");dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(o.Name()#";"#o.Value());
Da erscheinen die Werte im Device-Log immer ohne Unterstrich (z.B. 2021-07-04T00:10:00 sonne_azimut 343.800000)

Was mach ich falsch bzw. wie erreiche ich in einem Programm, dass sowohl Zahlen-, als auch Boolean-Variablen geloggt werden?

Thomas
Dateianhänge
Unbenannt.JPG


Benutzeravatar
Baxxy
Beiträge: 10766
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 602 Mal
Danksagung erhalten: 2201 Mal

Re: CuxD Highchart und Systemvariablen

Beitrag von Baxxy » 04.07.2021, 14:50

SysVars Typ Logik geben true/false zurück. Das musst du wandeln zu integer.
Grüße
Baxxy

thfrank
Beiträge: 248
Registriert: 16.05.2020, 12:54
System: CCU
Hat sich bedankt: 48 Mal
Danksagung erhalten: 1 Mal

Re: CuxD Highchart und Systemvariablen

Beitrag von thfrank » 04.07.2021, 15:01

Baxxy hat geschrieben:
04.07.2021, 14:50
SysVars Typ Logik geben true/false zurück. Das musst du wandeln zu integer.
macht das nicht das erste Skript?

Benutzeravatar
Baxxy
Beiträge: 10766
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 602 Mal
Danksagung erhalten: 2201 Mal

Re: CuxD Highchart und Systemvariablen

Beitrag von Baxxy » 04.07.2021, 15:08

Stimmt, übersehen. Ich gucke mir das später mal an.
Grüße
Baxxy

thfrank
Beiträge: 248
Registriert: 16.05.2020, 12:54
System: CCU
Hat sich bedankt: 48 Mal
Danksagung erhalten: 1 Mal

Re: CuxD Highchart und Systemvariablen

Beitrag von thfrank » 04.07.2021, 15:17

Baxxy hat geschrieben:
04.07.2021, 14:47
Fehlt da nicht einfach ein ; zwischen den " " im ersten Script?
ups, ja stimmt. Hatte das irgendwoher kopiert. Jetzt scheints zu gehen :-)

Vielen Dank!

thfrank
Beiträge: 248
Registriert: 16.05.2020, 12:54
System: CCU
Hat sich bedankt: 48 Mal
Danksagung erhalten: 1 Mal

Re: CuxD Highchart und Systemvariablen

Beitrag von thfrank » 05.07.2021, 16:50

Doch noch ne Frage zu dem Programm:

Muss ich bei den Boolean-SV jeweils beide Werte abfragen (wahr / falsch), wenn ich die Änderung registrieren will? Jede Änderung wird ja das Programm auslösen, aber bei nicht zutreffender Abfrage würde das DANN nicht ausgeführt, wenn nicht eine der anderen Variablen zutreffen, oder?

Thomas

Benutzeravatar
Baxxy
Beiträge: 10766
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 602 Mal
Danksagung erhalten: 2201 Mal

Re: CuxD Highchart und Systemvariablen

Beitrag von Baxxy » 05.07.2021, 17:01

Du bekommst natürlich nur das was du programmiert hast. :wink:
Also legst du entweder beide Zustände ins WENN oder legst das Script auch noch ins SONST.

Grüße
Baxxy

thfrank
Beiträge: 248
Registriert: 16.05.2020, 12:54
System: CCU
Hat sich bedankt: 48 Mal
Danksagung erhalten: 1 Mal

Re: CuxD Highchart und Systemvariablen

Beitrag von thfrank » 05.07.2021, 17:32

Baxxy hat geschrieben:
05.07.2021, 17:01
Du bekommst natürlich nur das was du programmiert hast. :wink:
Also legst du entweder beide Zustände ins WENN oder legst das Script auch noch ins SONST.
ok. Welche Variable gibt dann das Programm-Auslöser Script aus, die, die die Änderung erfahren hat (aber ggf. falsch ist) oder die, die nicht geändert wurde (bzw. nicht aktualisiert), aber das DANN letztlich gestartet hat?

Thomas

Xel66
Beiträge: 14148
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 583 Mal
Danksagung erhalten: 1497 Mal

Re: CuxD Highchart und Systemvariablen

Beitrag von Xel66 » 05.07.2021, 17:48

thfrank hat geschrieben:
05.07.2021, 17:32
Welche Variable gibt dann das Programm-Auslöser Script aus
Die die die Bedingungsprüfung des Programms getriggert hat, wenn sie per $src$ abgefragt wird. Ob sie sich geändert hat, bekommst Du aber so nicht heraus, denn wenn die Variable im WENN und im SONST WENN enthalten ist und nur aktualisiert wurde, ergibt die Prüfung jeweils ein WAHR. Für ein Überwachung auf "bei Änderung" musst Du auch separate Programme anlegen und diese eben auf "bei Änderung" triggern.

Baut man sich entsprechende Testprogramme, kommt man zu dem Schluss, dass die Prüfung auf "bei Änderung" ein Teil der Prüfroutine des Programms ist und nicht (wir im Handbuch beschrieben) im Vorfeld geprüft wird, ob sich der Inhalt der Variable geändert hat und erst dann in die Bedingungsprüfung des Programms verzweigt wird. Programme, die den gleichen Trigger mit verschiedenen Prüfstand enthalten, verhalten sich dann wie "bei Aktualisierung". Dagegen hilft nur die Aufteilung in mehrere Programme.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Antworten

Zurück zu „HomeMatic allgemein“