[gelöst]Mein erstes Script, brauche Hilfe!

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
Torsten_MG
Beiträge: 87
Registriert: 05.07.2019, 16:14
Hat sich bedankt: 2 Mal
Danksagung erhalten: 4 Mal

[gelöst]Mein erstes Script, brauche Hilfe!

Beitrag von Torsten_MG » 08.10.2019, 15:26

Hallo Leute,

ich versuche mich gerade an meinem ersten Script und stoße gerade auf ein kleines Problem.

Ich habe eine If/Elseif abfrage und leider stimmen die Bedinnungen irgendwie nicht :?

Code: Alles auswählen

var restmuell = dom.GetObject("RestmuellTage").Value();
var verpackungen = dom.GetObject("GelberSackTage").Value();
var papier = dom.GetObject("PapierTage").Value();
var biotonne = dom.GetObject("BiotonneTage").Value();
WriteLine(restmuell);
WriteLine(verpackungen);
WriteLine(papier);
WriteLine(biotonne);
if (restmuell.Value()=="3")
	{string stdout;
	string stderr;
	system.Exec("wget -O /dev/null -q http://192.168.178.103/cm?cmnd=Led1%2040,0,0",&stdout, &stderr); }
elseif (restmuell.Value()=="2")
    {string stdout;
	string stderr;
	system.Exec("wget -O /dev/null -q http://192.168.178.103/cm?cmnd=Led1%200,40,0",&stdout, &stderr); }
elseif (restmuell.Value()=="1")
    {string stdout;
	string stderr;
	system.Exec("wget -O /dev/null -q http://192.168.178.103/cm?cmnd=Led1%200,0,40",&stdout, &stderr); }
else
    {string stdout;
	string stderr;
	system.Exec("wget -O /dev/null -q http://192.168.178.103/cm?cmnd=Led1%200,0,0",&stdout, &stderr); }
Ich habe das Script in "Script Testen" eingetragen, im unteren Fenster kommen 4 verschiedene Zahlen (2,13,6,3)

restmuell ist =2

aber auf meinem Statusboard (NodeMCU und WS2812b LEDstreifen) wird die LED aber mit dem Farbton aus der IF Zeile

Code: Alles auswählen

if (restmuell.Value()=="3")
	{string stdout;
	string stderr;
	system.Exec("wget -O /dev/null -q http://192.168.178.103/cm?cmnd=Led1%2040,0,0",&stdout, &stderr); }


angesteuert, und nicht mit

Code: Alles auswählen

elseif (restmuell.Value()=="2")
    {string stdout;
	string stderr;
	system.Exec("wget -O /dev/null -q http://192.168.178.103/cm?cmnd=Led1%200,40,0",&stdout, &stderr); }
Kann mir bitte jemand sagen, was ich hier Falsch mache?
Zuletzt geändert von Torsten_MG am 08.10.2019, 16:38, insgesamt 1-mal geändert.

cmjay
Beiträge: 2391
Registriert: 19.09.2012, 10:53
System: CCU
Wohnort: Jottweedee
Hat sich bedankt: 251 Mal
Danksagung erhalten: 351 Mal

Re: Mein erstes Script, brauche Hilfe!

Beitrag von cmjay » 08.10.2019, 15:35

Vorab: ich bin wahrlich kein Skript-Experte nur ein blutiger Skript-Laie! Aber eine Sache in deinem Skript kommt mir seltsam vor.
Zuerst aber mal zwei Fragen:
1.) Von welchem Typ sind denn die Systemvariablen "RestmuellTage", etc.?
2.) Was wird denn bei

Code: Alles auswählen

WriteLine(restmuell);
WriteLine(verpackungen);
WriteLine(papier);
WriteLine(biotonne);
im Editor ausgeworfen?
Es kann leider nicht ganz ausgeschlossen werden, dass ich mich irre.
HmIP muss leider draussen bleiben. in Ausnahmefällen erlaubt
ACHTUNG! Per Portweiterleitung aus dem Internet erreichbare CCU-WebUI ist unsicher! AUCH MIT PASSWORTSCHUTZ! Daher: Portweiterleitung deaktivieren!

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Mein erstes Script, brauche Hilfe!

Beitrag von dtp » 08.10.2019, 16:16

Zunächst mal brauchst du den Wert einer lokalen Variablen nicht mit ".Value()" abzufragen. Das geht direkt. Dann könnte es sein, dass deine Systemvariablen keine Strings sondern Integer liefern. Daher versuch's doch mal mit:

Code: Alles auswählen

if(restmuell == 3){...}
und wenn das nicht geht, mit:

Code: Alles auswählen

if(restmuell == "3"){...}
"2040" ist wirklich richtig?
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Torsten_MG
Beiträge: 87
Registriert: 05.07.2019, 16:14
Hat sich bedankt: 2 Mal
Danksagung erhalten: 4 Mal

Re: Mein erstes Script, brauche Hilfe!

Beitrag von Torsten_MG » 08.10.2019, 16:29

dtp hat geschrieben:
08.10.2019, 16:16
...Daher versuch's doch mal mit:

Code: Alles auswählen

if(restmuell == 3){...}
Danke, klappt jetzt!

Code: Alles auswählen

"2040" ist wirklich richtig?
ja! %20 bedeutet Leerzeichen, 40 ist Farbton grün

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Mein erstes Script, brauche Hilfe!

Beitrag von dtp » 08.10.2019, 16:32

Torsten_MG hat geschrieben:
08.10.2019, 16:29
ja! %20 bedeutet Leerzeichen, 40 ist Farbton grün
Ach so, hätte ich ja auch selbst drauf kommen können. ;)
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Antworten

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