Seite 1 von 5

Problem: HUE virtuelles Gerät nicht löschbar

Verfasst: 14.05.2018, 11:12
von srunschke
Hallo zusammen,

in der Analyse meines "Alle Programme werden nicht mehr ausgeführt" Problems habe ich einfach mal alle meine HUE Geräte gelöscht.
Alle?
Fast alle.
Eine kleine gallische Lampe lässt sich partout nicht löschen...

Ich glaube ich bin hier auch auf eine Abart des "Leerzeichen am Ende"-Problems gestoßen, doch leider lässt sich das Gerät trotzdem nicht löschen - oder ich mache etwas falsch.

Lösche ich es über die GUI, bekomme ich in der hmserver.log:
Gerät kann nicht gelöscht werden, weil es nicht existiert: HU-Wohnzimmer (ist jetzt nur aus dem Kopf - aber ihr kennt die Fehlermeldung sicher...)

Nach etwas suchen kam ich auf das alte Problem "Leerzeichen am Ende" und löschen über Script.
Gesagt, getan - ich habe es dann gleich doppelt mit der Seriennummer und dem Namen versucht:

Code: Alles auswählen

dom.DeleteObject(dom.GetObject('HU-Wohnzimmer '));
dom.DeleteObject(dom.GetObject('VIR-LG-RGB-DIM HU-LOESCHMICH'));
Leider führt das Ausführen des Scriptes zu genau _garkeinem_ Ergebnis. Es gibt nicht mal einen Eintrag im hmserver.log?!

Hat jemand hier eine Idee?

Re: Problem: HUE virtuelles Gerät nicht löschbar

Verfasst: 14.05.2018, 13:15
von tubozz
Falscher Aufruf?

Code: Alles auswählen

object obj = dom.GetObject("HU-Wohnzimmer ");
if(obj){
WriteLine("Object vorhanden");
dom.DeleteObject(obj.ID());
WriteLine("Object gelöscht");
! system.Save()
! WriteLine("Regadom gespeichert");
}else{WriteLine("Object ist nicht vorhanden");}

Re: Problem: HUE virtuelles Gerät nicht löschbar

Verfasst: 16.05.2018, 11:22
von srunschke
tubozz hat geschrieben:Falscher Aufruf?
Danke!
Offensichtlich falscher Aufruf, denn ich hatte das .ID() nicht drin. Ich wusste nicht, dass .DeleteObject() die ID und nicht das Objekt selber benutzt - irgendwie unintuitiv ;) Für sowas gibt es doch eigentlich Funktionsüberladungen - kann die darunterliegende Scriptsprache das nicht?

Ich habe jetzt mal dein Script benutzt und es gibt eine gute und eine schlechte Nachricht.

1. Zumindest in PocketControl sehe ich die Lampe nicht mehr - allerdings weiß ich ehrlich gesagt auch nicht, ob er sie vorher überhaupt angezeigt hat.
2. Ich kann nämlich in der WebUI nicht mehr nachschauen, da diese mit Ausführung des Scriptes instant gestorben ist...

Ich gehe davon aus, dass der ReGaHss komplett abgeschmiert ist. Leider habe ich das Script remote über Cloudmatic gestartet, so dass ich jetzt nicht auf die Konsole gehen kann, um nachzuschauen, was passiert ist. Das werde ich dann heute Abend nachholen - stay tuned.

S

Re: Problem: HUE virtuelles Gerät nicht löschbar

Verfasst: 16.05.2018, 11:55
von tubozz
Der Aufruf von dom.GetObject("HU-Wohnzimmer "); gibt für das Object den Namen des Objectes als String zurück.

vs.:

.DeleteObject() verlangt die ISE_ID des Objectes.

also ganz normales Prozedere.

Du hättest dir auch die ISE_ID des betreffenden Objectes raussuchen können und mit dom.DeleteObject(1234); dieses löschen können.
Um dir das zu ersparen habe ich das eben so geschrieben, macht es für die normalen User eben leichter mit Namen zu hantieren.

Ich habe das automatische Speichern der Regadom mittels system.Save() aus dem Script auskommentiert auf Grund deiner Meldung.
Da das Speichern der Rega natürlich bis zu mehreren Minuten dauern kann, kommt es vielleicht dadurch zu Problemen, wenn die Abarbeitung des Aufrufes zu lange dauert. :?:
Vielleicht gibt es da je nach rega ein Problem. Normalerweise sollte das zwar nicht passieren, aber gerade bei der Rega ist man ja nie sicher.

Das setzt nun aber voraus, das nach Löschen eines Objectes die Regadom auch gesichert wird, z.B. durch Abmelden von der WebGui.

Re: Problem: HUE virtuelles Gerät nicht löschbar

Verfasst: 16.05.2018, 22:05
von srunschke
So, kleines Update nachdem ich heute Abend mal auf die Konsole geguckt habe.

Der Absturz lag nicht an deinem Script direkt.
Vielmehr habe ich heute morgen - unbemerkt - wieder den Bug gehabt, dass die Ausführung aller Programme eingefroren ist wegen eines festhängenden ReGaHss Forks. Ich nehme an, dass dann höchstwahrscheinlich das system.Save() die Rega komplett zum Einfrieren gebracht hat.

Nachdem ich heute Abend dann den festhängenden Rega mit seinem sh Zombie Child gekillt habe, wachte die erste Rega wie gehabt wieder auf und einige angetriggerte Programme liefen noch durch.

Danach habe ich dann dein Script noch mal gestartet - aber leider auch mit einem "Gerät existiert nicht". Laut Geräteliste existiert es aber sehr wohl...

Hast du noch eine andere Idee, wie ich dem Problem auf die Spur kommen könnte?
Ich bin schon kurz davor den RM platt zu machen und komplett neu aufzusetzen - wobei das mehrere Tage Arbeit wären wahrscheinlich.
Aber wir fahren nächste Woche für 3 Wochen in den Urlaub und ich kann meiner Schwiegermutter keine Hausautomation "hinterlassen", die plötzlich nicht mehr geht und sie dann im Dunkeln steht...

S

Re: Problem: HUE virtuelles Gerät nicht löschbar

Verfasst: 17.05.2018, 04:45
von alchy
Wenn das von Tubozz geposteten Script ausgibt, daß es das Object mit dem Namen nicht gibt, dann gibt es das Object auch so nicht.

Du kannst dir natürlich mittels geeigneter Methode die Geräteliste oder ausgeben lassen inklusive der Namen usw. und dann checkst du den Namen


Alchy

Re: Problem: HUE virtuelles Gerät nicht löschbar

Verfasst: 17.05.2018, 12:45
von srunschke
alchy hat geschrieben:Wenn das von Tubozz geposteten Script ausgibt, daß es das Object mit dem Namen nicht gibt, dann gibt es das Object auch so nicht.

Du kannst dir natürlich mittels geeigneter Methode die Geräteliste oder ausgeben lassen inklusive der Namen usw. und dann checkst du den Namen
Ok, ketzerische Gegenfrage ;)
Wenn es das Gerät nicht gibt - warum wird es mir dann in der Geräte-Übersicht angezeigt? Kann es "Leichen" geben?

Ich habe mal ein bisschen im Forum gesucht und mir mittels eines Scriptes die Geräteliste ausgeben lassen:

DevNr,Adresse,HssType,Name
1,XXXXXXXXXXXXXX,HmIP-BROLL,Badezimmerrollo
2,XXXXXXXXXXXXXX,HmIP-KRCA,Fernbedienung Annika
3,XXXXXXXXXXXXXX,HmIP-KRCA,Fernbedienung Sascha
4,XXXXXXXXXXXXXX,HM-Dis-WM55,HM-Dis-WM55 OEQ0104191
5,XXXXXXXXXXXXXX,HmIP-BSM,HmIP-BSM 000858A98A46B8
6,XXXXXXXXXXXXXX,HmIP-ASIR,Innensirene
7,XXXXXXXXXXXXXX,HmIP-SWDO-I,K_Arbeitszimmer
8,XXXXXXXXXXXXXX,HmIP-SWDO-I,K_Badezimmer
9,XXXXXXXXXXXXXX,HmIP-SWDO-I,K_EsszimmerLinks
10,XXXXXXXXXXXXXX,HmIP-SWDO-I,K_EsszimmerRechts
11,XXXXXXXXXXXXXX,HmIP-SWDO-I,K_Küche
12,XXXXXXXXXXXXXX,HmIP-SWDO-I,K_Schlafzimmer
13,XXXXXXXXXXXXXX,HmIP-SWDO-I,K_Terassentür
14,XXXXXXXXXXXXXX,HMIP-SWDO,K_Wohnungstür
15,XXXXXXXXXXXXXX,HmIP-BROLL,Schlafzimmerrollo
16,HU-Wohnzimmer ,,VIR-LG-RGBW-DIM HU-Delete
17,XXXXXXXXXXXXXX,HmIP-BROLL,Wohnzimmerrollo

Wie man sieht - das Gerät existiert in der Liste. Der lustige Name kommt von mir, damit ich weiß, dass ich das Gerät löschen will.

Meine Konfiguration ist ja für eure Belange wahrscheinlich eher sehr "übersichtlich", da ich erst vor einigen Monaten damit in der neuen Wohnung damit angefangen habe. Also an der übermäßigen Komplexität meiner Umgebung kann es ja nicht liegen...

Ich versuche jetzt mal das Gerät einfach direkt mit der ID zu löschen, denn wenn ich ein GetObject() mache, dann behauptet er dass es "HU-Wohnzimmer " nicht gibt.

Ich habe jetzt mal folgendes gemacht:

Code: Alles auswählen

if (dom.DeleteObject("16")) {
 WriteLine("Object gelöscht");
 system.Save()
 WriteLine("Regadom gespeichert");
}else{WriteLine("Object konnte nicht gelöscht werden");}
Ausgabe: "Object gelöscht"

Schaue ich in die Geräteliste:
2018-05-17 12_43_54-HomeMatic WebUI.png
2018-05-17 12_43_54-HomeMatic WebUI.png (7.35 KiB) 6522 mal betrachtet
Verarscht... :evil:

Irgendwelche weiteren Ideen?

Re: Problem: HUE virtuelles Gerät nicht löschbar

Verfasst: 17.05.2018, 14:24
von alchy
srunschke hat geschrieben:Ok, ketzerische Gegenfrage
Ich habe keinen Platz mehr auf der Blacklist.
Dein Script (in Zukunft mit posten !!! :twisted: )
ergibt also:

Code: Alles auswählen

DevNr,Adresse,HssType,Name
16,HU-Wohnzimmer ,,VIR-LG-RGBW-DIM HU-Delete
Also ist die Adresse: HU-Wohnzimmer
und
der Name des Objectes wäre: VIR-LG-RGBW-DIM HU-Delete

Was dann beweisst, das es das Object mit dem Namen "HU-Wohnzimmer " nicht gibt und daher auch das Script folgerichtig die Wahrheit ausgibt.
Auch dein Bildausschnitt zeigt den Namen ja als VIR-LG-RGBW-DIM HU-Delete

Und da das Script augenscheinlich alle Geräte zählt und durchnummeriert ist das Gerät einfach mal dein 16. Gerät.
Die ISE_ID ist dabei etwas ganz anderes.
srunschke hat geschrieben:Verarscht...
Aber Gratulation, das Object mit der ISE_ID 16 zu löschen war ein sehr, sehr großer Fehler.
Damit solltest du dir das nächste Problem eingehamstert haben.
Es gab sehr wohl das Object mit der ISE_ID 16 auf deiner CCU - aus dem Gedächnis würde ich sagen, gibt es auf jeder CCU und sollte was mit den history data points zu tun haben, kann aber nicht nachschauen im Moment.
Vielleicht schreibt tubozz noch irgendwas hier ode rein anderer schaut mal nach.


Die Idee war bestimmt nicht (gehe ich zumindest auch im Fall tubozz von aus) hier einfach mal wild die geposteten Scripte umzubasteln wie man sich es gerade denkt.

Wer nicht weiß, was er da macht kann sehr viel Schaden anrichten. Fragt bitte vorher nach ! Und das gilt für alle Mitleser :!: )

Alchy

Re: Problem: HUE virtuelles Gerät nicht löschbar

Verfasst: 18.05.2018, 07:42
von srunschke
alchy hat geschrieben:
srunschke hat geschrieben:Ok, ketzerische Gegenfrage
Ich habe keinen Platz mehr auf der Blacklist.
Dein Script (in Zukunft mit posten !!! :twisted: )
War das ernst gemeint? :roll:
Nur weil ich vielleicht mal etwas voreilig etwas nicht ganz so schlaues gemacht habe? :shock:
Was dann beweisst, das es das Object mit dem Namen "HU-Wohnzimmer " nicht gibt und daher auch das Script folgerichtig die Wahrheit ausgibt.
Auch dein Bildausschnitt zeigt den Namen ja als VIR-LG-RGBW-DIM HU-Delete
Ja, das hat ja auch hmserver.log ebenfalls ausgegeben, wenn ich versucht habe das Gerät über die GUI zu löschen. Was mir ja dann eigentlich suggerieren würde: Die Seriennummer ist die Referenz über die man löscht - habe ich mich wohl getäuscht.
Aber wie bereits auch weiter oben geschrieben: ich habe sowohl den Namen, als auch die Seriennummer ausprobiert - beides hat zu keinem Ergebnis geführt.
Und da das Script augenscheinlich alle Geräte zählt und durchnummeriert ist das Gerät einfach mal dein 16. Gerät.
Die ISE_ID ist dabei etwas ganz anderes.

Aber Gratulation, das Object mit der ISE_ID 16 zu löschen war sehr ein großer Fehler.
Damit solltest du dir das nächste Problem eingehamstert haben.
Es gab sehr wohl das Object mit der ISE_ID 16 auf deiner CCU - aus dem Gedächnis würde ich sagen, gibt es auf jeder CCU und sollte was mit den history data points zu tun haben, kann aber nicht nachschauen im Moment.
Vielleicht schreibt tubozz noch irgendwas hier ode rein anderer schaut mal nach.
Habe ich jetzt auch gemerkt. ;)

ID 16 waren übrigens die Root History Data Points - habe mal im Backup nachgeschaut.
Wer nicht weiß, was er da macht kann sehr viel Schaden anrichten. Fragt bitte vorher nach ! Und das gilt für alle Mitleser :!: )
Ich hake das unter "Lernen durch Schmerzen" ab.
So sehr ich deine Hilfe ich schätze, es ist nicht notwendig mich so oberlehrerhaft zu belehren. Ich denke ich bin alt genug mit meinen Fehlern umzugehen.

Da ich eh nicht mehr weiter weiß mit meinem "Alle Programme werden irgendwann nicht mehr ausgeführt" - Problem, werde ich einfach Tabula Rasa machen und den RM neu installieren. Schade, ich hatte eigentlich gehofft irgendwer interessiert sich vielleicht dafür und möchte dem Bug ebenfalls auf die Spur kommen.

Wenn du mir noch eine letzte Frage beantworten würdest:
Welche Schritte sind notwendig, wenn ich den RM mit einer frischen Installation betanken möchte. Muss ich die Geräte vorher alle ablernen, oder sind die nach einer Neuinstallation sofort wieder da, weil sie zB mit der Hardware des Funkmoduls gekoppelt sind?

Danke
S

Re: Problem: HUE virtuelles Gerät nicht löschbar

Verfasst: 18.05.2018, 08:11
von Black
hat mit deinem funkmodul nix zu tun.. fragestellung ist, hast du sicherheitsschlüssel gesetzt ? wenn ja, musst du jedes gerät ablernen mit werksreset.

ansonsten geräte nur ablernen con ccu. dabei bleiben auch die DV in den Geräten gespeichert. beim Neuanlegen werden dann die DV von den Geräten zurückgelesen und in der CCU angelegt.

den Rest halt neumachen. Programme über Programmedrucken ausdrucken.

Einmal ein schnitt mit Arbeit, dafür hast dann wieder ein sauberes System.


Gruss, Black