Script für Sperrung der Raffstores

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
redford
Beiträge: 11
Registriert: 24.08.2012, 06:12

Script für Sperrung der Raffstores

Beitrag von redford » 18.09.2017, 17:49

Hallo,

ich stehe auf dem Schlauch ich habe ein Script zum Hochfahren von vielen Raffstores bei starkem Wind erstellt. Ich könnte problemlos mit der WebUI auf diese Funktion zugreifen. Aufgrund der vielen Raffstores ist das aber nicht so schön.

Script zum Hochfahren:

Code: Alles auswählen

var i = dom.GetObject("Raffstore");
string itemID;
foreach(itemID, i.EnumUsedIDs()) {
	var item = dom.GetObject(itemID);
	var device = dom.GetObject(item.Device());
	if  (device.HssType() == "HMW-LC-Bl1-DR")  { item.State(1.0);
	}
}
Jetzt würde ich das Script gerne ergänzen und gleichzeitig je Aktor die Sperrung (Inhibit) durchführen um eine Bedienung bei Sturm zu unterbinden. Per Script kann ich das mit

Code: Alles auswählen

var Sperre = dom.GetObject("BidCos-Wired.OEQ0281111:3.INHIBIT").State(1);
Da ich nicht fit im Scripten bin, gelingt mir die Ergänzung des ersten Scriptes nicht. Kann mir jemand helfen?

Viele Grüße
Redford

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

Re: Script für Sperrung der Raffstores

Beitrag von alchy » 18.09.2017, 21:14

Hinweis
Du wendest .State() auf das falsche Object an.

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.

redford
Beiträge: 11
Registriert: 24.08.2012, 06:12

Re: Script für Sperrung der Raffstores

Beitrag von redford » 19.09.2017, 10:59

Danke für den Hinweis. Das hatte ich schon vermutet, war aber ohne weiteres Einlesen und Probieren nicht in der Lage das umzusetzen. Das habe ich jetzt aber gemacht und so sieht das Ergebnis aus:

Code: Alles auswählen

object sec = dom.GetObject("Raffstore");
string itemId;
foreach(itemId, sec.EnumUsedIDs()) {
	var item = dom.GetObject(itemId);
	if (item.IsTypeOf(OT_CHANNEL)) {
		var device = dom.GetObject(item.Device());
		var hssType = device.HssType();
		if ( hssType == "HMW-LC-Bl1-DR") { item.DPByHssDP("INHIBIT").State(1); }
	}
}
VG Redford
Zuletzt geändert von alchy am 19.09.2017, 11:19, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

Antworten

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