Können nicht benötigte Homematic Variablen (Datenpunkte) gelöscht werden?

Hallo zusammen,

Ich habe letztens die neue Firmwareversion (1.507) auf meine Homematic CCU gespielt. Das war wohl die Ursache, dass automatisch die Variable „DIRECTION“ bei zahlreichen Homematic Instanzen angelegt wurden. Da ich damit über das Lizenzlimit von 1000 Variablen gekommen bin, frage ich mich nun ob ich die (und andere) wirklich brauche.

Bei näherer Betrachtung vermute ich, dass ich die folgenden Homematic Variablen auch in Zukunft nicht benötige

  • DIRECTION
  • INHIBIT
  • CONFIG_PENDING
  • DUTYCYCLE
  • STICKY_UNREACH
  • INSTALL_TEST

Würde ich die alle löschen, hätte ich auf einen Schlag 251 Variablen weniger und hätte vielleicht auch IPS etwas entlastet.

Was ist Eure Meinung? Sollte ich das tun, oder handele ich mir vielleicht zukünftige Probleme ein?

Viele Grüße

Burkhard

Sie werden eh automatisch wieder erstellt :slight_smile:

paresy

Hallo,

das würde mich auch mal interessieren. Prinzipiell arbeiten IPS auch ohne diese, weil das hatte ich eine Zeit lang. Die ganzen Maintenance-Variablen hab ich erst später eingepflegt, da ich den Batteriestatus haben wollen.

Schade, denn vermutlich sind sie doch unnötig.

Hier würde ich mir eine Option wünschen …

Aber sei’s drum, ich werde mir dann mal die Professional Lizenz bestellen. Das System wird - auch dank Eurer Hilfe! - sicherlich weiter wachsen.

Viele Grüße

Burkhard

eben, mit dem Löschen von Variablen (in diesem Kontext, wenn es den funktionieren würde) baust du nur einen Kredit. Und sowas lässt einen beim weiteren Ausbau von IPS schnell verkrampfen und faule Kompromisse machen. Glaub mir: hinterher (nach dem Lizenzerwerb) fühlst Du Dich viel freier :smiley: Zumindest ging es mir so.

Wenn im Konfigurator die Instanzen nicht erstellt werden, gibt es auch keine Variablen.

Sehe ich genauso, die werden doch erst angelegt, wenn man über den HM-Konfigurator die Teile erstellt.

Ich hab mal testweise gestern abend von einem Thermostat, Stellantrieb und Schaltaktor die überflüssigen Variablen gelöscht, funktioniert alles wunderbar.
Da hat sich z.b. die Frage gestellt, warum ein HM-Schaltaktor eine Batteriekontrolle hat - für welche Batterie …
15 Variablen weniger alleine dadurch.

Alleine bei einem Raum spare ich rund 25 Variablen ein mal 6 Räume, da kommt was zusammen…das spart mir derzeit eine Unlimited-License, da ich derzeit eh keine grossen Ausbaupläne habe.

EDIT: habe mal regoros gelöscht, sind knapp 180 Variablen frei geworden, das hat sich gelohnt. Alle bekommt man nicht raus, z.b. „Error“ wird alleine wieder angelegt.

Nun bin ich auch frei! :slight_smile: An die Freiheit werde ich mich bestimmt schnell gewöhnen …

Viele Grüße

Burkhard

Hallo zusammen,

gibt es schon Neuigkeiten zu dem obigem Thema ?? :thinking:
Kann mann nun die nichtbenötigten Variablen löschen ?
So das diese nach einem Neustart nicht wieder kommen ??

Danke…

Gruß
Robert

Nein, du kannst nur nicht benötigte instanzen löschen aber nicht einzelne variablen unter den instanzen

@rodo ich hab’s über ein Start-Skript gelöst

<?php
$InstanceIDs = IPS_GetInstanceList();
$r = Array();
foreach ($InstanceIDs as $IID) {
    if (IPS_GetInstance($IID) ['ModuleInfo']['ModuleName'] == 'HomeMatic Device') {
        # Alle Variablen IDs der HomeMatice Device Variablen
        $ChildIDs = IPS_GetChildrenIDs(IPS_GetObject(IPS_GetInstance($IID) ['InstanceID']) ['ObjectID']);
        foreach ($ChildIDs as $CID) {
            # Fuer jedes Child Object Ident
            $o = IPS_GetObject($CID);
            $coit = $o['ObjectIdent'];
            # LOESCHEN
            if ($coit == "AES_KEY" ||
                $coit == "UNREACH" ||
                $coit == "CONFIG_PENDING" ||
                $coit == "DEVICE_IN_BOOTLOADER" ||
                $coit == "DUTYCYCLE" ||
                $coit == "RSSI_DEVICE" ||
                $coit == "STICKY_UNREACH" ||
                $coit == "PRESS_LONG_RELEASE" ||
                $coit == "WORKING" ||
                $coit == "RSSI_PEER" ||
                $coit == "INSTALL_TEST" ||
                $coit == "INHIBIT" ||
                $coit == "UPDATE_PENDING") {
                IPS_DeleteVariable($o['ObjectID']);
            }
            # UMBENENNEN
            if ($coit == "STATE"){
                IPS_SetName($o['ObjectID'], "Status");
            }
            if ($coit == "LOWBAT"){
                IPS_SetName($o['ObjectID'], "Batterie");
            }
            if ($coit == "MOTION"){
                IPS_SetName($o['ObjectID'], "Bewegung");
            }
            if ($coit == "BRIGHTNESS"){
                IPS_SetName($o['ObjectID'], "Helligkeit");
            }
            if ($coit == "TEMPERATURE"){
                IPS_SetName($o['ObjectID'], "Temperatur");
            }
        }
    }
}

Kann man so machen. Aber Vorsicht: Die Statusvariablen gehören zur Hoheit der Instanzen, die sich darauf verlassen könnten, dass sie vorhanden sind.

Ein Löschen kann ungewollte Nebeneffekte haben. Bis zum Ablehnen eines Supports …

Man sollte sich absolut sicher sein, was man da tut :slight_smile:

Absolut richtig :slight_smile:

ok…

danke für euere Infos…
aber das ist mir noch etwas zu hoch…

Bin neu hier und leider noch keine Erfahrungen mit Scripts und wie und wo man einbindet…

Werde erst mal Erfahrungen sammeln und dann hier nochmal zurückkehren…
Ich dachte es geht einfacher…
Gibt es Script Infos für Anfänger ??

Trotzdem schönes WE…

Da mache am besten einen neuen Thread auf, wenn du genauer weißt, was du machen möchtest.

Es gibt auch mehrere Automationsmöglichkeiten:

  • Ablaufplan (für jedermann)
  • Logikplan (für diejenigen, die aus der Welt der Schaltungen kommen)
  • Skripte (für PHP Kundige, oder die, die es werden wollen)