Fehlermeldung beim löschen von Variablen "referenzierende Objekte"

Moin,

ich bekomme seit der Version 5.2, in der Webbasierten Verwaltungskonsole immer öfters eine Fehlermeldung wenn ich Variablen löschen will.

referenzierende objekte.JPG referenzierende objekte2.JPG

Was bedeutet referenzierende Objekte?

Die Variablen haben keine Verbindung zu den referenzierenden Objekten, die zu löschenden Variablen wurden auch erst mit der Version 5.2 (+Beta) erstellt.

Es sind aber auch nicht alle Variablen wenn ich die löschen will, wo die Fehlermeldung erscheint.

Hein09

Das ist keine Fehlermeldung.
Hier zeigt dir IPS das dein zu löschendes Objekt noch woanders im System verwendet wird.

Michael

Hallo Michael,

das ist es ja, das Objekt hat keine Verbindung mit irgendwas in IPS, ausser das Script von dem es erstellt wurde.

Erst recht nicht mit den Objekten, die in der Fehlermeldung angegeben sind.

Hein09

Bist du dir da ganz sicher? Ist die Variable nicht in dem „EnOcean\Watchdog“ gelistet die du löschen willst?

paresy

Hallo Paresy,

da bin ich mir ganz sicher, da die Variable nichts mit Enocean zu tun hat, sondern die wurde durch ein Script erstellt, um OPNSense per SNMP abzufragen (erst diese Woche zum Testen).

Hein09

Warum auch immer, die angezeigten Instanzen geben an, dass sie deine Variable verwenden. Sind das immer die gleichen drei Instanzen wie in deinen Screenshots angezeigt oder sind das immer wieder andere?

Es waren bis jetzt dreimal Bild 2 und einmal Bild 1, es gibt aber keine Verbindung zu den genannten Objekten in den Bildern.

Beim ersten Bild habe ich die Variablen erst gestern erstellt und heute beim löschen trat denn der Fehler(Meldung auf).

Habe weder Links noch sonstwas benutzt, nur die Variable durch einen Script erstellen lassen.

Wie oder was heißt denn „referenzierende Objekte“, wie kann ich feststellen mit welchen anderen Objekten es eine Verbindung gibt?

Hein09

Objekte, die eine Instanz referenziert, werden durch die Instanz vorgegeben. Typischerweise sind dies die ausgewählten Objekte, es können aber auch andere Objekte sein. Kannst du mal IPS_GetConfiguration auf dem EnOcean Watchdog ausführen und uns gemeinsam mit den IDs deiner betroffenen Variablen zeigen? Vielleicht siehst du dabei ja auch schon selbst, warum die Variablen referenziert werden. Und was für ein Modul ist der EnOcean Watchdog? Ist das unser klassisches Watchdog-Modul oder ist das etwas anderes?

Der Befehl „IPS_GetConfiguration“ funktioniert nicht, da der EnOcean Watchdog nur ein Script ist, und zwar dieses hier:

https://www.symcon.de/forum/threads/17465-EnOcean-WatchDog

EnOcean Watchdog.JPG

Und die im zweiten Bild angeben Objekte sind auch nur Scripte.

Hein09

Kann es sein, dass in dem Skript zufällig eine Zahl ist, die der ID die du löschen willst gleich ist/war?

paresy

Im Script sind ausser den Enocean Modul Id’s keine Zahlen vorhanden.

Aber ob die Nummern die gleichen sind, wie die Variablen die ich gelöscht habe weiss ich leider nicht mehr.

Hein09

Ich habe heute wieder Variablen gelöscht, bekam wieder bei einer Variable die Meldung das die referenzierend sein.

Ich schaute im Watchdog Script nach, und richtig da war die ID „20108“ vorhanden:

EnOcean EEP D[b]20108[/b] = {C885AB2C-7D83-4274-9420-EFEA5B8B0908}

Paresy kann man da nicht irgendwas machen, das nur richtigen ID erkannt werden?

Hein09

Leider nicht wirklich (bzw. nur mit sehr hohen Aufwand, wenn wir PHP vollständig auswerten würden)

Man könnte in diesem Fall aber sicherlich unsere Regex Regel etwas anpassen, sodass Buchstaben vorher nicht erlaubt sind.

paresy

Hi
also ehrlich gesagt diese Funktion verwirrt viel mehr als sie nützt. Noch immer !

Hier wird eine zWave Geistervariable gelöscht. Die KANN nirgendswo auftreten, trotzdem krieg ich eine ganze Palette von Fundstellen weil eben die Ziffernfolge zufälligerweise in vielen Scripten auftritt.
Und so zufällig ist das gar nicht, alle naselang macht dir die Warnung ein schlechtes Gewissen.

Ich bekomme diese Hinweise auch immer noch, leider viel zu oft.

Hein09

Mir ist heute aufgefallen, dass die Funktion sicher löschen auch meckert, wenn eine Variablen ID in den Kommentaren eines Skripts vorkommt.

Hatte zum Beispiel eine Variable mit der ID 45678, da wurde dann ein Script angemeckert das einen Komentar ala

/*
Byte#         0 000000001111111111222222222233333333334444444444555 5
                     1 234567890123**45678**90123**45678**90123**45678**90123**45678**9012 3
*/

Wenn ich den Text innerhalb des Kommentars verändere, wird nicht mehr gemeckert. Das ist 100% reproduzierbar.

Ist das ein Bug, oder kann Symcon da einfach nicht unterscheiden?

Steht doch zwei Beiträge weiter oben …

Michael

Das hat sich nach meinen Verständnis aber nicht auf Text in Kommentaren bezogen. Ich dachte was wäre eine neue Erkenntnis.

Vielleicht könnte man in diese Liste einen Vermerk (z.B. die Icons für Script/Variable/Instanz) dazu setzen. Dann kann man deutlich einfacher erkennen wo referenziert wird und bei Scripten sich ggf. eher das Nachsehen sparen.

Bei Skripten ist das Nachsehen ja noch einfach. Es werden aber auch Module angemeckert, da ist es schon umständlicher. Ich hatte die ganze Zeit gedacht in meiner Symcon Instanz ist irgendwas korrumpiert.