Skript Anfänger - Verständnisfrage

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
Benutzeravatar
Tecky80
Beiträge: 61
Registriert: 28.04.2016, 07:10
Danksagung erhalten: 1 Mal

Skript Anfänger - Verständnisfrage

Beitrag von Tecky80 » 05.06.2018, 12:35

Hallo Zusammen,

ich würde gerne mit dem Programieren von kleinen Skripten anfangen.
Ich verstehe nur nicht soganz die Logik, wie ich gewisse Sachen schalten kann.

Zum Anfang würde ich gerne eine Rollade schalten.
Bedingung:
Wenn Rollade Level größer 90% ist
Dann fahre Rollade auf 50%

Nun die Frage. Ist dieser Code so richtig, oder komplett Falsch?

Code: Alles auswählen

var myChannel = dom.GetObject("OG_Buero_Rollade:1");
var myDp = myChannel.DPByHssDP("LEVEL").Value();

if ( myDp > "0.9" )
	{
	myChannel.DPByHssDP("LEVEL").State(0.5);
	}
Rollade.PNG
Vielen Dank und schönen Gruß
Tecky80
"Habe Angst, dass der Elektriker ein Terrorist ist. Er sprach irgendwas von ,Kosten vor Anschlag‘"

paul53
Beiträge: 2554
Registriert: 26.04.2012, 20:42
Wohnort: Berlin
Danksagung erhalten: 15 Mal

Re: Skript Anfänger - Verständnisfrage

Beitrag von paul53 » 05.06.2018, 13:07

Tecky80 hat geschrieben:Ist dieser Code so richtig, oder komplett Falsch?
Weder noch.
Falsch ist der Vergleich mit einem String

Code: Alles auswählen

if ( myDp > "0.9" )
Der Rest funktioniert, verwirrt aber durch die Variablenbezeichner. Bei myDp würde ich ein Datenpunktobjekt erwarten; tatsächlich enthält myDp aber den Level-Wert. Besser:

Code: Alles auswählen

var myChannel = dom.GetObject("OG_Buero_Rollade:1");
var myDp = myChannel.DPByHssDP("LEVEL");

if (myDp.Value() > 0.9)
{
   myDp.State(0.5);
}
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)

Benutzeravatar
Tecky80
Beiträge: 61
Registriert: 28.04.2016, 07:10
Danksagung erhalten: 1 Mal

Re: Skript Anfänger - Verständnisfrage

Beitrag von Tecky80 » 08.06.2018, 08:10

Hallo,

danke für die Hilfe, aber es funktioniert leider nicht. Die Rolladen bewegen sich nicht.
ich finde aber leider nicht herraus, wo der Fehler ist.

Jemand eine Idee?

VG
Tecky80
Zuletzt geändert von alchy am 08.06.2018, 18:13, insgesamt 1-mal geändert.
Grund: sinnloses Fullquote entfernt
"Habe Angst, dass der Elektriker ein Terrorist ist. Er sprach irgendwas von ,Kosten vor Anschlag‘"

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

Re: Skript Anfänger - Verständnisfrage

Beitrag von alchy » 08.06.2018, 18:40

Sofern der Kanalname richtig und einzigartig ist und der Kanal dort auch einen Datenpunkt LEVEL aufweist, ist das Script korrekt.
Einfache Prüfungen einbauen und schon weißt du wo es klemmt.

Code: Alles auswählen

! Schalten Rollo wenn Wert - mit Prüfung auf Vorhandensein
! v 0.1 by Alchy
object myChannel = channels.Get("OG_Buero_Rollade:1");
if(myChannel){WriteLine("Kanal da");
var myDp = myChannel.DPByHssDP("LEVEL");
if(myDp){WriteLine("Datenpunkt da");
var myValue = myDp.Value(); 
WriteLine("Wert steht auf " #myValue #" Prozent");
if (myValue > 0.9){ WriteLine("Aktion starten");
myDp.State(0.5);
}else{WriteLine("Keine Aktion starten");}
}else{WriteLine("DP NICHT da");}
}else{WriteLine("Kanal NICHT da");}
Alchy
Zuletzt geändert von alchy am 08.06.2018, 18:49, insgesamt 1-mal geändert.
Grund: Script

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.

Benutzeravatar
Tecky80
Beiträge: 61
Registriert: 28.04.2016, 07:10
Danksagung erhalten: 1 Mal

Re: Skript Anfänger - Verständnisfrage

Beitrag von Tecky80 » 11.06.2018, 10:15

alchy hat geschrieben:Sofern der Kanalname richtig und einzigartig ist und der Kanal dort auch einen Datenpunkt LEVEL aufweist, ist das Script korrekt.
Einfache Prüfungen einbauen und schon weißt du wo es klemmt.

Alchy
Hallo Alchy

danke, das mit den Ausgaben war mal eine gute Idee.
Der Kanal soll zwar OG_Buero_Rollade:1 heißen, aber ich habe ihn in der CCU: "EG_Buero...." genannt.
Ein Buchstabe = große Wirkung.

Das ist mir bisher nie aufgefallen :(

Vielen Dank noch mal
Tecky80
"Habe Angst, dass der Elektriker ein Terrorist ist. Er sprach irgendwas von ,Kosten vor Anschlag‘"

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

Re: Skript Anfänger - Verständnisfrage

Beitrag von dtp » 11.06.2018, 12:29

@TO: Darf man mal fragen, wie du das Skript triggerst?

Das, was du da als Skirpt programmiert hast, kann man doch direkt mit einem WebUI-Programm umsetzen.
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.

Benutzeravatar
Tecky80
Beiträge: 61
Registriert: 28.04.2016, 07:10
Danksagung erhalten: 1 Mal

Re: Skript Anfänger - Verständnisfrage

Beitrag von Tecky80 » 11.06.2018, 12:53

dtp hat geschrieben:@TO: Darf man mal fragen, wie du das Skript triggerst?

Das, was du da als Skirpt programmiert hast, kann man doch direkt mit einem WebUI-Programm umsetzen.
Hi,
das Skript wird über eine Astro-Funktion getriggert. Und ja du hast recht, das kann man in der Webui umsetzen.
Jedoch ist das nur ein Teil des Skriptes.
Dort kommen noch andere Rolladen mit entsprechend anderen Vorraussetzungen bzw. Bedingungen rein.
So müsste ich in der WebUI mehrere "Sonst-wenn" Pfade machen.
Und das scheint mir im Skript einfacher und übersichtlicher. Nur muss ich mich etwas in die Skriptsprachen einarbeiten.

Das einzige was mir aufgefallen ist, ist das man anscheint keine Verzögerung programieren kann. Also "Rollade runter um 5 Minuten verzögert".

VG
Tecky80
"Habe Angst, dass der Elektriker ein Terrorist ist. Er sprach irgendwas von ,Kosten vor Anschlag‘"

Antworten

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