Kann Variable nicht ausgeben

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

Antworten
nuiler
Beiträge: 207
Registriert: 15.04.2012, 11:07
Wohnort: Ostalbkreis / Deutschland

Kann Variable nicht ausgeben

Beitrag von nuiler » 16.12.2018, 12:21

Ich möchte zum Testen meine SystemVariable Wärmepumpe Störung ausgeben. Leider funktioniert dies nicht. Sobald ich
das ! entferne wird der Skript nicht mehr ausgeführt. Was mache ich falsch, stehe momentan auf dem Schlauch.

Code: Alles auswählen

var vstoerung;
var vstoerung = dom.GetObject("HmIP-RF.00145709AED6D1:5.STATE").Value();
WriteLine(vstoerung);

if (vstoerung == true) {dom.GetObject('Wärmepumpe Störung').State(0);}
if (vstoerung == false){dom.GetObject('Wärmepumpe Störung').State(1);}

WriteLine("Hallo Welt!");

!WriteLine(Wärmepumpe Störung);
Zuletzt geändert von alchy am 17.12.2018, 09:48, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
www.nuiler.de
Raspberrymatic 3.57.4.20210320 rpi3

NickHM
Beiträge: 3729
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 65 Mal
Danksagung erhalten: 119 Mal

Re: Kann Variable nicht ausgeben

Beitrag von NickHM » 16.12.2018, 16:04

Hallo

meine bescheidenen script Kenntnisse lassen mich vermuten, das Du den Inhalt einer SysVar erst mal in eine lokale variable schreiben musst und die dann mit WriteLine ausgeben kannst.
Und ich würde das Leerzeichen im Namen ersetzen.

mhr
Beiträge: 107
Registriert: 12.02.2015, 20:08
System: CCU
Hat sich bedankt: 42 Mal
Danksagung erhalten: 1 Mal

Re: Kann Variable nicht ausgeben

Beitrag von mhr » 16.12.2018, 20:53

...und den string der ausgegeben werden soll in "Gänsebeinchen" setzen!
Gruß
mhr

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Kann Variable nicht ausgeben

Beitrag von alchy » 17.12.2018, 10:10

Wär auch ne Lösung.
Nur das er höchstwahrscheinlich nicht den String "Wärmepumpe Störung" ausgeben lassen will, sondern eher wahrscheinlich den Wert der Systemvariable Wärmepumpe Störung.

@TE
Das was du da machst, ist mit einem Programm besser erledigt, also unnötig - aber du schriebst ja zum Testen.
Als Ansatz:

Code: Alles auswählen

object vstoerung = dom.GetObject(ID_DATAPOINTS).Get("HmIP-RF.00145709AED6D1:5.STATE");
object sysvar = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Wärmepumpe Störung");
WriteLine(vstoerung.Value());

if (vstoerung.Value()) { sysvar.State(false); }else{ sysvar.State(true);}

WriteLine(sysvar.Value());
PS: Die Leerzeichen sind relativ egal, Umlaute in Objektnamen darfst du gerne lieber weglassen.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

nuiler
Beiträge: 207
Registriert: 15.04.2012, 11:07
Wohnort: Ostalbkreis / Deutschland

Re: Kann Variable nicht ausgeben

Beitrag von nuiler » 17.12.2018, 10:43

Vielen Danke für die Hilfe.
Ich habe den Script einmal erweitert, dabei stellt sich mir eine weitere Frage.
Darf ich das object sysvar mehrfach verwenden oder ist besser jeweils eine andere anzulegen.

Code: Alles auswählen

object vstoerung = dom.GetObject(ID_DATAPOINTS).Get("HmIP-RF.00145709AED6D1:5.STATE");
object sysvar = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Wärmepumpe Störung");
WriteLine(vstoerung.Value());

if (vstoerung.Value()) { sysvar.State(false); }else{ sysvar.State(true);}

WriteLine(sysvar.Value());

object vsperrung = dom.GetObject(ID_DATAPOINTS).Get("HmIP-RF.00145709AED6D1:1.STATE");
object sysvar = dom.GetObject(ID_SYSTEM_VARIABLES).Get("durch EVU");
WriteLine(vsperrung.Value());

if (vsperrung.Value()) { sysvar.State(false); }else{ sysvar.State(true);}

WriteLine(sysvar.Value());
Zuletzt geändert von alchy am 17.12.2018, 10:45, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
www.nuiler.de
Raspberrymatic 3.57.4.20210320 rpi3

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Kann Variable nicht ausgeben

Beitrag von alchy » 17.12.2018, 10:51

nuiler hat geschrieben:
17.12.2018, 10:43
Darf ich das object sysvar mehrfach verwenden oder ist besser jeweils eine andere anzulegen.
Du kannst das Objekt natürlich mehrfach verwenden.
Es macht *IMHO* immer Sinn erstmal die Objekte zu deklarieren und dann irgendetwas damit anzustellen. Außerdem, kann man einfach eine Prüfung integrieren, ob es die Objekte auch gibt usw. um Probleme zu vermeiden.
Sollte nur ein Ansatz sein und auch nur zum Spielen, denn es ist nicht nötig das was du machst mit Scripten zu machen.


Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

nuiler
Beiträge: 207
Registriert: 15.04.2012, 11:07
Wohnort: Ostalbkreis / Deutschland

Re: Kann Variable nicht ausgeben

Beitrag von nuiler » 17.12.2018, 11:16

Ich habe schon versucht dies anderst zu lösen über ein Programmy dies hat aber nicht funktioniert. Ich habe die HmIP-MOD-RC8 - Sendeplatine. Damit frage verschiedene Zustände meiner Wärmepumpe ab. Leider gibt die Gerätekonfiguration nicht das her was ich möchte. Bin aber für Ideen dankbar wie ich dies einfacher gestalten kann.
Unbenannt.JPG
www.nuiler.de
Raspberrymatic 3.57.4.20210320 rpi3

Benutzeravatar
shartelt
Beiträge: 7421
Registriert: 14.01.2015, 14:59
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 524 Mal
Danksagung erhalten: 752 Mal

Re: Kann Variable nicht ausgeben

Beitrag von shartelt » 17.12.2018, 11:21

nuiler hat geschrieben:
17.12.2018, 11:16
Leider gibt die Gerätekonfiguration nicht das her was ich möchte.
was möchtest Du denn?
Ohne diese Info, kann man Dir keine Hinweise geben.

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Kann Variable nicht ausgeben

Beitrag von alchy » 17.12.2018, 11:27

Scheinbar kann man dem nicht mitteilen, was er anzeigen soll im Zustand offen/geschlossen?

Ich hab leider kein HmIP-MOD-RC8 und wüsste auch nicht, wofür ich den einsetzen sollte (außer für Supportzwecke)
Da ist mein Willen für das Forum aber am Ende. So muss ich dich leider enttäuschen, wird sich schon wer melden.

Aber ein Programm sollte doch trotzdem gehen.
Wenn HmIP-MOD-RC8 Kanal X geschlossen, dann Systemzustand Systemvariable = blabla. Bzw. gleich noch über den weißen Notizzettel synchronisieren.


Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

nuiler
Beiträge: 207
Registriert: 15.04.2012, 11:07
Wohnort: Ostalbkreis / Deutschland

Re: Kann Variable nicht ausgeben

Beitrag von nuiler » 17.12.2018, 11:39

Ja aber ich möchte nicht für jeden Eingang ein seperates Programm, da alles zusammen in einem Programm hat bei mir nicht funktioniert.
Das eigentliche Probleme ist, dass man nicht mitteilen kann, was er anzeigen soll bei offen oder geschlossen.
www.nuiler.de
Raspberrymatic 3.57.4.20210320 rpi3

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“