Wie kann die SysVar "DutyCycle" weitervearbeitet werden?

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

Antworten
Schattenschimmer
Beiträge: 137
Registriert: 20.03.2016, 20:49
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Wie kann die SysVar "DutyCycle" weitervearbeitet werden?

Beitrag von Schattenschimmer » 10.04.2020, 17:35

Hallo zusammen!

Ich habe jetzt eine ganze Weile gesucht, bin aber zu keinem Ergebnis gekommen.

Ich möchte die Systemvariable "DutyCycle" weiterverarbeiten, z.B. in einem Programm oder in einem Script.
Dies funktioniert jedoch nicht.

Nicht einmal dieses einfache Beispiel funktioniert:

Code: Alles auswählen

var duty = dom.GetObject("DutyCycle").Value();
WriteLine(duty);
Warum ist das so?
Alle anderen Systemvariablen kann ich auslesen und verarbeiten, nur diese nicht.... :roll: :?:

Sonnige Grüße! :)
Gerade bei Smart Home Systemen sollte die (IP-) Sicherheit immer berücksichtigt werden!

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

Re: Wie kann die SysVar "DutyCycle" weitervearbeitet werden?

Beitrag von Black » 10.04.2020, 17:47

Wenn deine Sysvar wirklich DutyCyvle heisst , dann so

Code: Alles auswählen

var duty = dom.GetObject (ID_SYSTEM_VARIABLES).Get ("DutyCycle").State ();
WriteLine(duty);
Black
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

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

Re: Wie kann die SysVar "DutyCycle" weitervearbeitet werden?

Beitrag von Baxxy » 10.04.2020, 17:53

Schattenschimmer hat geschrieben:
10.04.2020, 17:35
Dies funktioniert jedoch nicht.
Hmm, bei mir geht das problemlos.
Per Script:
DC_Script_Test.JPG
DC_Script_Test.JPG (21.9 KiB) 1103 mal betrachtet
Und ja der DC ist gerade wirklich 0% :wink:
und im Programm:
DC_Programm_Test.JPG
Grüße
Baxxy

Schattenschimmer
Beiträge: 137
Registriert: 20.03.2016, 20:49
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Wie kann die SysVar "DutyCycle" weitervearbeitet werden?

Beitrag von Schattenschimmer » 10.04.2020, 18:07

Ich danke Euch! :)

Beide Varianten funktionieren bei mir:

Code: Alles auswählen

var duty = dom.GetObject (ID_SYSTEM_VARIABLES).Get ("DutyCycle").State();
WriteLine(duty);
und

Code: Alles auswählen

var duty = dom.GetObject (ID_SYSTEM_VARIABLES).Get ("DutyCycle").Value();
WriteLine(duty);

Zwei Dinge verstehe ich noch nicht:
1. Warum klappt das mit "State"?
2. Warum kann ich alle anderen Systemvariablen mit

Code: Alles auswählen

var duty = dom.GetObject("DutyCycle").Value();
auslesen, nur diese eine nicht?
Welches ist die bessere Variante? Sollte eine von euren Varianten bei den Scipten verwendet werden?


Verwendung dieser SysVar in Programmen:
Ich habe zu Testzwecken ein Programm geschrieben, welches mir zu jeder Änderung eine Telegram-Message schicken soll.
Keine Reaktion. Wenn ich die SysVar im Programm tausche, dann klappt das.... :confused:

Programme klappen auch. :)
Gerade bei Smart Home Systemen sollte die (IP-) Sicherheit immer berücksichtigt werden!

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

Re: Wie kann die SysVar "DutyCycle" weitervearbeitet werden?

Beitrag von Black » 10.04.2020, 18:34

Benutz den vollqualifizierten Zugriff in dem Beispiel auf eine systemvariable mit ID_SYSTEM_VARIABLES. Das ist sauber.

Grund könnte sein bei dir...irgendwas heißt auch noch so. Mit dem SDV könnt man mit nem domscan gucken
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

Schattenschimmer
Beiträge: 137
Registriert: 20.03.2016, 20:49
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Wie kann die SysVar "DutyCycle" weitervearbeitet werden?

Beitrag von Schattenschimmer » 10.04.2020, 18:46

Merci!

SDV und domscan schaue ich mir später an, ich hab jetzt mit dem Duty zu tun. :)
Gerade bei Smart Home Systemen sollte die (IP-) Sicherheit immer berücksichtigt werden!

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

Re: Wie kann die SysVar "DutyCycle" weitervearbeitet werden?

Beitrag von Baxxy » 10.04.2020, 19:20

Ich halte mich an die "Regeln" und benutze grundsätzlich .Value() zum auslesen der Werte.
.State() sehe ich eher zum schreiben der Werte. Also schnell ein...

Code: Alles auswählen

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("DutyCycle").State(100);
Und schon hast du ein (kurzzeitiges optisches) DC-Problem. :wink:

Grüße
Baxxy

Antworten

Zurück zu „RaspberryMatic“