Seite 2 von 3

Re: Inventur

Verfasst: 29.04.2013, 14:16
von uwe111
Hallo,

ich habe das Script noch einmal etwas angepasst und dabei die CUxD-Geräte getrennt von den HM-Geräten aufgeführt.
Dadurch wird das ganze beim Einsatz vom CUxD etwas übersichtlicher.

Code: Alles auswählen

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() );
    }
  }
}

WriteLine("--------------------------------------------");

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"); }
WriteLine(":");

string s_typeidx;
string s_typeidx2;
string s_typechecked = "";
integer i_subcount;
foreach (s_typeidx, s_typelist) {
! EnergyStar 13.10.2010 vvv
! den Suchstring um ein Komma und ein Leerzeichen erweitern um kein Teilstringproblem zu bekommen
      if (s_typechecked.Find(s_typeidx # ", ") == -1) {
! EnergyStar 13.10.2010 ^^^
      i_subcount = 0;
      foreach (s_typeidx2, s_typelist) {
        if (s_typeidx2 == s_typeidx) {
          i_subcount = i_subcount + 1; }
        }
! EnergyStar 13.10.2010 vvv
! immer ein Komma und ein Leerzeichen anfügen
        s_typechecked = s_typechecked # i_subcount # "x " # s_typeidx # ", ";
! EnergyStar 13.10.2010 ^^^
      }
    }

! EnergyStar 13.10.2010 vvv
! überflüssiges Komma und Leerzeichen am Ende entfernen
    WriteLine(s_typechecked.Substr(0, s_typechecked.Length() - 2));
! EnergyStar 13.10.2010 ^^^

    WriteLine("--------------------------------------------");
Viele Grüße,

Uwe.

Re: Inventur-Skript

Verfasst: 08.07.2013, 17:56
von raschl
Hallo Uwe,


habe seit ein paar Tagen eine CCU2 im Einsatz, die noch nicht gelistet wird.

Kannst Du die vielleicht noch mit aufnehmen.

Gruß

RaSchl

Re: Inventur-Skript

Verfasst: 08.07.2013, 18:19
von uwe111
Hallo RaSchl,

ich denke das ist so, weil die CCU2 im Gegensatz zur CCU1 keine eigenen Geräte bereitstellt.

Viele Grüße,

Uwe.

Re: Inventur-Skript

Verfasst: 08.02.2016, 11:36
von Slice
Super Idee, hab das Skript bei mir mal laufen lassen, siehe Signatur! :D

Danke und Grüße,
Slice

Re: Inventur-Skript

Verfasst: 15.09.2018, 13:10
von dixy
Wenn ich mir die aktuelle Inventurliste regelmäßig über das E-Mail Add-on senden lassen möchte, wie stelle ich das an?

Konkret: Zeitgesteuert Inventurskript laufen lassen und das Ergebnis per E-Mail versenden.

Funktioniert es überhaupt? Statische Meldungen versende ich bereits seit langem.

Gruß
dixy

Re: Inventur-Skript

Verfasst: 16.09.2018, 11:04
von Xel66
Warum soll das nicht funktionieren. Ergebnis in eine Systemvariable schreiben und versenden. Als Referenz kannst Du den Versand des Systemprotokolls benutzen.

Nur der Sinn erschließt sich nicht so richtig. Wenn Du neue Hardware anlernst, kannst Du das Script laufen lassen und hast das Ergebnis. Das Scrip listet die angelernten Geräte aus der internen Datenbank auf, unabhängig davon, ob diese auch aktiv sind. Somit lässt sich darüber nicht überwachen, ob ein Gerät abhanden gekommen ist. Insofern der Nutzen eines regelmäßig laufenden Scripts eher zweifelhaft. Man lernt ja im Normalfall nicht ständig Geräte an und ab.

Gruß Xel66

Re: Inventur-Skript

Verfasst: 01.02.2019, 18:46
von Pahan
Hallo zusammen,

wie stellt man das an, dass dieses Script übernommen wird?
Wenn ich eine Wenn...Dann Verknüpung einbaue und dieses Script unter "dann" einfüge, wieder dieses nicht übernommen,
anders ausgedrückt: die drei Punkte bleiben stehen.

Wie verwendet ihr dieses? Oder noch besser: wie schreibt man die jeweilige Anzahl der Ausgabe in eine Datei?

Klar, nice to have, aber dennoch

Danke

Re: Inventur-Skript

Verfasst: 12.02.2019, 20:33
von Franzens
Pahan hat geschrieben:
01.02.2019, 18:46
Hallo zusammen,

wie stellt man das an, dass dieses Script übernommen wird?
Wenn ich eine Wenn...Dann Verknüpung einbaue und dieses Script unter "dann" einfüge, wieder dieses nicht übernommen,
anders ausgedrückt: die drei Punkte bleiben stehen.

Wie verwendet ihr dieses? Oder noch besser: wie schreibt man die jeweilige Anzahl der Ausgabe in eine Datei?
...genau diese Frage stelle ich mir auch seit geraumer Zeit - ich kann dieses Verhalten bei mir eins zu eins auch beobachten.
Wäre nett, wenn uns jemand aufklären könnte.

Danke

Re: Inventur-Skript

Verfasst: 12.02.2019, 21:08
von Sammy
Hab es ewig nicht benutzt, aber einfach unter "Skript testen" eingefügt. Dauert aber ein wenig, bis die Ausgabe kommt.
Was für 3 Punkte? Arbeitest Du etwa am Handy? Ich mach sowas nur am PC.

Re: Inventur-Skript

Verfasst: 12.02.2019, 22:00
von Franzens
Ja, mit Skript testen läuft es einmal durch,
Das Problem ergibt sich, wenn man es innerhalb eines Programms (wenn, dann, Skript...) als Skript dauerhaft speichern möchte.
Dabei bleibt es nicht gespeichert, sondern die drei Punkte hinter Skript bleiben stehen und wenn man wieder drauf geht, ist das Inventurskript eben nicht gespeichert.