Systemvariable per Script ändern

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

Moderator: Co-Administratoren

Antworten
Christmas
Beiträge: 44
Registriert: 12.10.2012, 17:35

Systemvariable per Script ändern

Beitrag von Christmas » 06.11.2012, 00:31

Hallo

Per Script wird eine Systemvariable je nach Bedingung auf wahr oder falsch geändert.

Ist der Wert true ist alles OK
Ist der Wert jedoch false müsste in einer anderen Systemvariable der Wert auf true gesetzt werden.

Lösen würde ich das in dem ich besagtes Script nach dem Script laufen lasse welches die 1. Variable auf true oder false ändert. Muss das aus verschiedenen Gründen leider getrennt laufen lassen und kann die 2. Variable nicht direkt ändern.

Kann mir da jemand helfen und mir sagen wie ich ein kleines Script dafür erstelle?


mfg
Christmas
Zuletzt geändert von Christmas am 06.11.2012, 01:02, insgesamt 1-mal geändert.

Goglo
Beiträge: 610
Registriert: 14.04.2012, 18:34
Danksagung erhalten: 1 Mal

Re: Systemvariable per Script ändern

Beitrag von Goglo » 06.11.2012, 00:48

Du klickst auf "skript" in der webUI-Programmierung und tippst da dann das Skript ein.

War das die Frage?
83 Kanäle in 50 Geräten:
3x HM-LC-Sw1-Pl, 1x HM-WDS10-TH-O, 5x HM-PB-4-WM, 3x HM-PB-2-WM, 3x HM-LC-Dim1T-FM, 2x HM-Sec-SC, 4x HM-Sec-RHS, 5x HM-CC-VD, 4x HM-CC-TC, 5x HM-LC-Sw1-FM, 2x HM-Sec-MDIR, 1x HM-WDS30-T-O, 1x HM-LC-Sw1-Pl-2, 2x HM-PB-2-WM55, 1x HM-LC-Dim1L-CV, 1x HM-CCU-1, 1x HM-PBI-4-FM, 1x HM-LC-Dim1L-Pl-2, 1x HM-LC-Dim1T-CV, 1x HM-LC-Dim1L-Pl, 1x HM-LC-Sw2-FM, 1x HM-LC-Sw1-SM, 1x HM-Sec-WDS

82 Kanäle in 43 Geräten:
1x HM-PB-2-WM, 2x HM-LC-Bl1-FM, 3x HM-LC-Bl1PBU-FM, 3x HM-PB-2-WM55, 2x HM-PB-4-WM, 9x HM-CC-VD, 8x HM-CC-TC, 2x HM-LC-Sw2-FM, 1x HM-WDS10-TH-O, 1x HM-CCU-1, 1x HM-Sen-MDIR-O, 4x HM-LC-Sw1-FM, 2x HM-SwI-3-FM, 1x HM-LC-Sw4-SM, 1x HM-LC-Sw1-Pl-2, 1x HM-PBI-4-FM, 1x HM-WDS30-T-O

Christmas
Beiträge: 44
Registriert: 12.10.2012, 17:35

Re: Systemvariable per Script ändern

Beitrag von Christmas » 06.11.2012, 00:49

nein...

ich brauche das script das dies macht. ich komm da einfach nicht weiter...
sind ja nur 2-3 zeilen aber irgendwas mache ich falsch.
das hier habe ich mir zusammengeschrieben bisher... aber es geht nicht...

Code: Alles auswählen

var x = dom.GetObject("Systemvariable2");
var y = dom.GetObject("Systemvariable1");


if ( y.Variable() == true ) 
{
x.Variable(false);
} 
else 
{
if ( y.Variable() == false )
{
x.Variable(true);
} 
}

kleiner nachtrag noch... Wenn die Systemvariable1 false ist und ich das script laufen lasse dann setzt er die systemvariable2 auf true. das ist soweit richtig. Aber wenn Systemvariable1 true ist ändert er Systemvariable2 nicht auf false, wenn sie vorher auf true war

DrTob
Beiträge: 3426
Registriert: 29.10.2010, 08:24
Danksagung erhalten: 5 Mal

Re: Systemvariable per Script ändern

Beitrag von DrTob » 06.11.2012, 09:12

Warum so kompliziert ;)


Code: Alles auswählen

var x = dom.GetObject("Systemvariable2");
var y = dom.GetObject("Systemvariable1");

if ( y.Variable()) 
{
x.Variable(false);
} 
else 
{
x.Variable(true);
}
Wenn's auch so nicht geht, probier folgendes Script mal unter Script testen

Code: Alles auswählen

var x = dom.GetObject("Systemvariable2");
var y = dom.GetObject("Systemvariable1");
WriteLine("y: "# y.Variable());
WriteLine("x: "# y.Variable());
if ( y.Variable()) 
{
WriteLine("If");
x.Variable(false);
} 
else 
{
WriteLine("Else");
x.Variable(true);
}
WriteLine("y: "# y.Variable());
WriteLine("x: "# y.Variable());
Was wird ausgegeben?

Christmas
Beiträge: 44
Registriert: 12.10.2012, 17:35

Re: Systemvariable per Script ändern

Beitrag von Christmas » 06.11.2012, 12:25

Danke Drtob...

Ich habe es aber anders gelöst. Ich glaube ich hatte einen ziemlichen dreher in meinen Gedanken.

Warum per Script Variable x setzten und Varibale y dann mit einem anderen Script davon abhängig machen.

Ich habe nun im ursprünglichen Script Variable x durch y getauscht. Nun werden direkt die Werte geschrieben wie sie sein müssen.
War wohl doch etwas spät heute nacht.

matheversum
Beiträge: 287
Registriert: 27.04.2009, 13:46

Re: Systemvariable per Script ändern

Beitrag von matheversum » 06.11.2012, 12:54

A pro pos kompliziert:
eigentlich sollte auch

Code: Alles auswählen

var x = dom.GetObject("Systemvariable2");
var y = dom.GetObject("Systemvariable1");

x.Variable(! y.Variable()false);
tun, falls man die Variablen nochmal braucht.

Oder noch kürzer:

Code: Alles auswählen

var var y = dom.GetObject("Systemvariable1");
dom.GetObject("Systemvariable2").State(! y.Variable());
Obs auch ein Einzeiler tut, würde ich vorher mal probieren, kann nur gerade nicht auf die CCU;

Übrigens verwende ich State zum setzten; bei Variable wird nämlich der Timestamp nicht aktualisiert und ich weiß nicht, ob dann ein Event (Ändern/Aktualisieren) ausgelöst wird.

Benutzeravatar
mirochen
Beiträge: 43
Registriert: 25.01.2019, 18:13

Re: Systemvariable per Script ändern

Beitrag von mirochen » 27.01.2019, 20:15

Hm... eher so, oder?

Code: Alles auswählen

var x = dom.GetObject("Systemvariable2");
var y = dom.GetObject("Systemvariable1");
x.State(! y.Variable());
Ups, hattest du ja so ergänzt :D
Signatur hat Urlaub

Antworten

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