String Text aus System Variable ausdrucken

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
golpe
Beiträge: 9
Registriert: 06.09.2020, 17:33
System: CCU
Hat sich bedankt: 1 Mal

String Text aus System Variable ausdrucken

Beitrag von golpe » 19.11.2022, 20:37

Hallo

Ich verwende einen Taster HM-RC-Sec4-3 der die Systemvariable "ProgrammStatus" in eines der drei Zustände "unscharf;internScharf;externScharf" setzt. Das funktioniert soweit ok.

Nun möchte ich in einem Script den Wert der Systemvariable "ProgrammStatus" als Text verarbeiten und hier einfach ausdrucken. Das funktioniert nicht wie gewünscht.

Script:

Code: Alles auswählen

WriteLine("test program");
source = dom.GetObject("$src$");
string prog = dom.GetObject("ProgrammStatus");
string  wert = dom.GetObject(prog).Value();
WriteLine("prog ist "#prog);
WriteLine("wert ist "#wert);
Ausgabe:

Code: Alles auswählen

test program
prog ist ProgrammStatus
wert ist 0
Warum hat "wert" einen numerischen Wert (0, 1 oder 2) und nicht den Text von "ProgrammStatus" (unscharf, internScharf oder externScharf)? Wie kann ich diesen wirklich bekommen?

Vielen Dank. Golpe
Zuletzt geändert von alchy am 20.11.2022, 20:58, insgesamt 2-mal geändert.
Grund: Code in Codetags posten

MichaelN
Beiträge: 9562
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: String Text aus System Variable ausdrucken

Beitrag von MichaelN » 19.11.2022, 21:36

golpe hat geschrieben:
19.11.2022, 20:37
Wie kann ich diesen wirklich bekommen?
Siehe Signatur, undokumentierte Skript Befehle
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

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

Re: String Text aus System Variable ausdrucken

Beitrag von Black » 19.11.2022, 21:40

golpe hat geschrieben:
19.11.2022, 20:37
Warum hat "wert" einen numerischen Wert (0, 1 oder 2) und nicht den Text von "ProgrammStatus" (unscharf, internScharf oder externScharf)?
Weil eine Systemvariable "WerteListe" nunmal intern vom VaueType ivtInteger ist und somit das Ergebnis auch in Integer ist
golpe hat geschrieben:
19.11.2022, 20:37
Wie kann ich diesen wirklich bekommen?
Die Aufzhlung befindet sich unter ValueList();
und den Text zugehörig zu deinem Wert bekommst du mit

Code: Alles auswählen

string  wert = web.webGetValueFromList(prog.ValueList(),prog.Value());    
dann hast du aber ein paar Ungenauigkeiten in deimem Script:
prog als String definieren ist falsch (ok, falsch nicht, aber unschön), in deinem Beispiel wert als string auch, ergibt bei mir unter script Ausführen die Anzeige, das ein Typwechsel stattgefunden hat:

Code: Alles auswählen

------------------------------ Script Variablen -----------------------------
[prog              ](string-->object): WerteListeTest   (ID: 3451 - TYPE: VARDP)
[wert              ](string-->integer): 1
Dann ist es schöner, einen Zugriff vollqualifiziert zu schreiben
anstatt string prog = dom.GetObject("ProgrammStatus");
besser
object prog=dom.GetObject (ID_SYSTEM_VARIABLES).Get ("ProgrammStatus");

nun ist prog ja schon von Typ object, wie du auch in meinem AUsdruck meines Editores gesehen hast, dann wäre das string wert = dom.GetObject(prog).Value(); doppelt gemoppelt.

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

Tyfys
Beiträge: 531
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 26 Mal
Danksagung erhalten: 121 Mal

Re: String Text aus System Variable ausdrucken

Beitrag von Tyfys » 19.11.2022, 22:00

eine weitere Möglichkeit wäre noch :

Code: Alles auswählen

object SVrObj = dom.GetObject(ID_SYSTEM_VARIABLES).Get("ProgrammStatus");
var wert =SVrObj.ValueList().StrValueByIndex(";", SVrObj.Value());
WriteLine(wert);
Gruß
Harry

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“