Scriptbibliothek

Hier stelle ich in loser Reihenfolge ein Paar Scripte zur Verfügung, welche ich auf unserer Homematic laufen habe.
Hierbei ist zu beachten, dass CUXD installiert sein muss.

Hochladen einer Datei auf einen FTP Server

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd/ /usr/local/addons/cuxd/curl -T /media/sd-mmcblk0/Dateiname.XXX ftp://Servername/ --user Username:Passwort");


Daten vom OC3 Sensor in eine Systemvariable schreiben
(Der Sensorname KEQ0241591:1 bzw.MEQ0204074:1 muss individuell angepasst werden)

var a = dom.GetObject("BidCos-RF.KEQ0241591:1.TEMPERATURE").Value();
var b = dom.GetObject("BidCos-RF.KEQ0241591:1.HUMIDITY").Value();
var c = dom.GetObject("BidCos-RF.KEQ0241591:1.WIND_SPEED").Value();
var d = dom.GetObject("BidCos-RF.KEQ0241591:1.WIND_DIRECTION").Value();
var e = dom.GetObject("BidCos-RF.MEQ0204074:1.TEMPERATURE").Value();
dom.GetObject("Temperatur").State(a);
dom.GetObject("Luftfeuchtigkeit").State(b);
dom.GetObject("Windgeschwindigkeit").State(c);
dom.GetObject("Windrichtung").State(d);
dom.GetObject("Temperatur Ecke").State(e);


E-Mail Addon aus Programm ansteuern

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 04");


Auslösenden Rauchmelder finden wenn diese alle miteinander verknüpft sind
- Gewerk mit dem Namen Sicherheit anlegen
- Alle Rauchmelder diesem Gewerk zuweisen
- Eine Systemvariable mit dem Namen Brandmelder anlegen (Typ Zeichenkette)

- Ein Programm anlegen
- Wenn-> Rauchmelder Team-> Bei Rauch erkannt-> sofort
- Dann-> Programm sofort ausführen

var sec=dom.GetObject("Sicherheit");
string i;
string list;
list="";
foreach(i,sec.EnumUsedIDs())
{
var item=dom.GetObject(i);
if(item.IsTypeOf(OT_CHANNEL))
{
var dev=dom.GetObject(item.Device());
if(dev.HssType()=="HM-Sec-SD")
{
var state=item.DPByHssDP("STATE");
if(state.Value())
{
list = list+dev.Name();
}
}
}
}
dom.GetObject('Brandmelder').State(list);

- Mit zwei Sekunden Verzögerung das nachfolgende Script ausführen lassen

var sec=dom.GetObject("Sicherheit");
string i;
string list;
list="";
foreach(i,sec.EnumUsedIDs())
{
var item=dom.GetObject(i);
if(item.IsTypeOf(OT_CHANNEL))
{
var dev=dom.GetObject(item.Device());
if(dev.HssType()=="HM-Sec-SD")
{
var state=item.DPByHssDP("STATE");
if(state.Value())
{
list=list+dev.Name();
}
}
}
}
if(list!="")
{
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 05");
}