Inventur-Skript

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Benutzeravatar
uwe111
Beiträge: 4821
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 246 Mal
Kontaktdaten:

Re: Inventur

Beitrag von uwe111 » 29.04.2013, 14:16

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.
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

raschl
Beiträge: 34
Registriert: 23.03.2013, 12:26
System: Alternative CCU (auf Basis OCCU)

Re: Inventur-Skript

Beitrag von raschl » 08.07.2013, 17:56

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
Gruß

RaSchl

Seit 2011 dabei mit 170 Geräten (RasperryMatic als CCU und Lan Gateway, Wetterstation, Heizung mit Fenster, Bewässerung im Garten, Licht, Rolläden/Markisen, Rauchmelder, Energieverbrauchsablesung und alles per Funk und ohne Fremdgeräte)

Benutzeravatar
uwe111
Beiträge: 4821
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 246 Mal
Kontaktdaten:

Re: Inventur-Skript

Beitrag von uwe111 » 08.07.2013, 18:19

Hallo RaSchl,

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

Viele Grüße,

Uwe.
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

Slice
Beiträge: 1203
Registriert: 03.02.2016, 14:44
System: Alternative CCU (auf Basis OCCU)
Wohnort: irgendwo aus Süd BaWü
Hat sich bedankt: 141 Mal
Danksagung erhalten: 85 Mal

Re: Inventur-Skript

Beitrag von Slice » 08.02.2016, 11:36

Super Idee, hab das Skript bei mir mal laufen lassen, siehe Signatur! :D

Danke und Grüße,
Slice
----------------------------------------------------------------------------------------
Raspi3B+ Bullseye mit HB-RF-ETH und RPI-RF-MOD auf piVCCU-FW 3.75.7 / Addons: CuxD v2.11 - E-Mail v1.7.6 - Patcher v1.0.0 - Philips Hue v3.2.5 - Programme drucken v2.6 - Scriptparser v1.11 - XML-API v2.3
Geräte: 141 / Kanäle: 791 / Datenpunkte: 6080 / SysVars: 275 / Programme: 161 / Regadom IDs: 14010 / 48 CUxD-Kanäle in 3 CUxD-Geräten
Intel NUC i3-5010U @ 2,1 GHz mit 16 GB RAM & 512 GB SSD für Proxmox mit ioBroker VM und CCU-Historian/InfluxDB/Grafana VM
----------------------------------------------------------------------------------------
Projekte im Forum: HomeHub v4.1 / Fritzbox-Anruferliste für HomeHub
----------------------------------------------------------------------------------------

dixy
Beiträge: 28
Registriert: 17.04.2013, 20:50
Wohnort: HH
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Inventur-Skript

Beitrag von dixy » 15.09.2018, 13:10

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
RaspberryMatic auf PI3 und neuer Senderplatine RPI-RF-MOD und angeschlossener Philips Hue Bridge

Xel66
Beiträge: 14172
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 588 Mal
Danksagung erhalten: 1501 Mal

Re: Inventur-Skript

Beitrag von Xel66 » 16.09.2018, 11:04

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
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Pahan
Beiträge: 124
Registriert: 16.07.2014, 12:29
Hat sich bedankt: 7 Mal

Re: Inventur-Skript

Beitrag von Pahan » 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?

Klar, nice to have, aber dennoch

Danke

Franzens
Beiträge: 147
Registriert: 18.04.2014, 17:11
Hat sich bedankt: 15 Mal

Re: Inventur-Skript

Beitrag von Franzens » 12.02.2019, 20:33

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
RasberryMatic auf Synology-VM - Sonos - pocket Control HM - CuL V2 868mHz & Somfy RTS Anbindung - Pushover - hm-pdetect - homebridge - homeassistant - Alexa - Netatmo - Shelly - hue...; 373 Kanäle in 100 Geräten und 209 CUxD-Kanäle in 18 CUxD-Geräten

Benutzeravatar
Sammy
Beiträge: 9172
Registriert: 09.09.2008, 20:47
Hat sich bedankt: 15 Mal
Danksagung erhalten: 174 Mal

Re: Inventur-Skript

Beitrag von Sammy » 12.02.2019, 21:08

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.
Links: CCU-Logik, Tipps für Anfänger, WebUI-Doku, Expertenparameter, virtuelle Aktorkanäle
Inventur vom 22.01.14: 516 Kanäle in 165 Geräten, 132 Programme, 270 Direkte Verknüpfungen
Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

Franzens
Beiträge: 147
Registriert: 18.04.2014, 17:11
Hat sich bedankt: 15 Mal

Re: Inventur-Skript

Beitrag von Franzens » 12.02.2019, 22:00

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.
RasberryMatic auf Synology-VM - Sonos - pocket Control HM - CuL V2 868mHz & Somfy RTS Anbindung - Pushover - hm-pdetect - homebridge - homeassistant - Alexa - Netatmo - Shelly - hue...; 373 Kanäle in 100 Geräten und 209 CUxD-Kanäle in 18 CUxD-Geräten

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“