HomeMatic-Skript: Inventar



Diese Seite wurde vor mehr als 2 Jahren erstellt und vor über einem Monat zuletzt bearbeitet. Eventuell ist längst ihr Mindesthaltbarkeitsdatum überschritten!

Ein einfaches Skript zum Ablegen einiger Kenndaten in Systemvariablen, zum Erstellen von Ausgaben wie

428 Kanäle in 137 Geräten und 91 CUxD-Kanäle in 6 CUxD-Geräten

Systemvariablen

Skript

Dies ist ein Rohgerüst ohne Fehlerbehandlung. "Works for me", macht was draus.

string s_device;
object o_device;
integer i_devices = 0;
integer i_cdevices = 0;
string s_channel;
object o_channel;
integer i_channels = 0;
integer i_cchannels = 0;
string s_typelist = "";
string s_temp;

foreach(s_device, dom.GetObject(ID_DEVICES).EnumUsedIDs()) {
    var o_device = dom.GetObject(s_device);
    boolean is_cux = o_device.Address().Substr(0,3) == "CUX";
    if ((o_device.Address() != "BidCoS-Wir") && (o_device.Address() != "BidCoS-RF")) {
        if (is_cux) {
            i_cdevices = i_cdevices + 1;
            s_temp = i_cdevices.ToString();
        } else {
            i_devices = i_devices + 1;
            s_temp = i_devices.ToString();
        }
        if (i_devices < 10) { s_temp = " " # s_temp; }
        if (i_devices < 100) { s_temp = " " # s_temp; }
        if (is_cux) { s_temp = "C" # s_temp; }
        else { s_temp = " " # s_temp; }
        WriteLine(s_temp # " " # o_device.Address() # " " # o_device.HssType() # " (" # o_device.Name() # ")");
        if (is_cux) { s_typelist = s_typelist # o_device.Address().Substr(0,5) # "\t"; }
        else { s_typelist = s_typelist # o_device.HssType() # "\t"; }
        foreach(s_channel, o_device.Channels().EnumUsedIDs()) {
            if (is_cux) { i_cchannels = i_cchannels + 1; }
            else { i_channels = i_channels + 1; }
            o_channel = dom.GetObject(s_channel);
            s_temp = "               :" # o_channel.Address().StrValueByIndex(":",1);
            !WriteLine(s_temp # " " # o_channel.Name() );
        }
    }
}

Write(i_channels # " Kanäle in " # i_devices # " Geräten");
if (i_cdevices > 0) { Write(" und "#i_cchannels # " CUxD-Kanäle in " # i_cdevices # " CUxD-Geräten"); }

dom.GetObject("Anzahl_Geraete").State(i_devices);
dom.GetObject("Anzahl_Kanaele").State(i_channels);
dom.GetObject("Anzahl_CUxD_Geraete").State(i_cdevices);
dom.GetObject("Anzahl_CUxD_Kanaele").State(i_cchannels);

string s_typeidx;
string s_typeidx2;
string s_typechecked = "";
integer i_subcount;
foreach (s_typeidx, s_typelist) {
            if (s_typechecked.Find(s_typeidx # ", ") == -1) {
            i_subcount = 0;
            foreach (s_typeidx2, s_typelist) {
                if (s_typeidx2 == s_typeidx) {
                    i_subcount = i_subcount + 1; }
                }
                s_typechecked = s_typechecked # i_subcount # "x " # s_typeidx # ", ";
            }
        }

20 andere Seiten unter 'Technik & Elektronik'

Permalink CC BY-NC 4.0 DEED 4378 27.10.2023 27.10.2023