Variablen Verketten

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

Moderator: Co-Administratoren

Antworten
GoPro
Beiträge: 25
Registriert: 24.09.2017, 14:20

Variablen Verketten

Beitrag von GoPro » 26.12.2018, 12:06

Hallo,

ich will auf meinen Homematic Display verschiedene Statis anzeigen, wie verkette ich diese?
Ich bekomm das nicht hin das ich FensterOffenBad, FensterOffenPano, FensterOffenSchlaf Usw in fenster1 schreibe.

danke

Code: Alles auswählen

string zeile2 = dom.GetObject("HmIP-RF.000ED8A9909914:1.ACTUAL_TEMPERATURE").Value().ToString(1) # "c/" # dom.GetObject("HmIP-RF.000ED8A9909914:1.HUMIDITY").Value().ToString(1) #"p";
string zeile3 = (web.webGetValueFromList((dom.GetObject(ID_SYSTEM_VARIABLES).Get("V-Rollo1")).ValueList(), (dom.GetObject(ID_SYSTEM_VARIABLES).Get("V-Rollo1")).Value())) # "/"#(web.webGetValueFromList((dom.GetObject(ID_SYSTEM_VARIABLES).Get("V-Rollo2")).ValueList(), (dom.GetObject(ID_SYSTEM_VARIABLES).Get("V-Rollo2")).Value())); 
string icon3 = "0x86";
string fenster1 = (web.webGetValueFromList((dom.GetObject(ID_SYSTEM_VARIABLES).Get("FensterOffenBad")).ValueList(), (dom.GetObject(ID_SYSTEM_VARIABLES).Get("FensterOffenBad")).Value())) #(web.webGetValueFromList((dom.GetObject(ID_SYSTEM_VARIABLES).Get("FensterOffenPano")).ValueList(), (dom.GetObject(ID_SYSTEM_VARIABLES).Get("FensterOffenPano")).Value())) #(web.webGetValueFromList((dom.GetObject(ID_SYSTEM_VARIABLES).Get("FensterOffenSchlaf")).ValueList(), (dom.GetObject(ID_SYSTEM_VARIABLES).Get("FensterOffenSchlaf")).Value())) #(web.webGetValueFromList((dom.GetObject(ID_SYSTEM_VARIABLES).Get("FensterOffenWHZ")).ValueList(), (dom.GetObject(ID_SYSTEM_VARIABLES).Get("FensterOffenWHZ")).Value())) #(web.webGetValueFromList((dom.GetObject(ID_SYSTEM_VARIABLES).Get("FensterOffenKueche")).ValueList(), (dom.GetObject(ID_SYSTEM_VARIABLES).Get("FensterOffenKueche")).Value())) #(web.webGetValueFromList((dom.GetObject(ID_SYSTEM_VARIABLES).Get("FensterOffenOffice")).ValueList(), (dom.GetObject(ID_SYSTEM_VARIABLES).Get("FensterOffenOffice")).Value()));    

var zuhause = dom.GetObject("Anwesenheit").State(); 
    if (zuhause == "true")
    { 
    string zeile4 =  "anwesend!".fenster1;
    string icon4 = "0x85";
    }
    else
    { 
    string zeile4 = "AB-wesend!".fenster1;
    string icon4 = "0x84";
    };


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

Re: Variablen Verketten

Beitrag von alchy » 04.01.2019, 09:19

GoPro hat geschrieben:
26.12.2018, 12:06
Ich bekomm das nicht hin das ich FensterOffenBad, FensterOffenPano, FensterOffenSchlaf Usw in fenster1 schreibe.
Sofern es alle deine Objecte gibt und den richtigen Typ haben usw. ist das nicht das Problem. fenster1 wird dann korrekt (wenn auch hässlich) befüllt mit den Werten der Wertelistenvariablen.

Das Problem ist dein Konstrukt wo du den String "anwesend!" mit dem Inhalt der Scriptvariablen fenster1 zusammensetzt.

Code: Alles auswählen

  string zeile4 =  "anwesend!".fenster1;
und weiter unten dann noch mal für abwesend.

Code: Alles auswählen

    string zeile4 = "AB-wesend!".fenster1;
Zur string concatenation gehört ein # hin, also

Code: Alles auswählen

string zeile4 =  "anwesend!"#fenster1;
Insgesamt muss ich sagen, ist das schon ein ziemliches Konstrukt, was du dir da zusammenbaust. :shock:
Das geht sicherlich "einfacher", aber es gibt immer verschiedene Wege.

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.

Antworten

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