NEWS
Verweiste Objekte/Datenpunkte in Skripten finden
-
Das wäre eventuell etwas für meinen Tidy Adapter. Ich gucke mal, ob ich da was machen kann!
@skvarel das wäre mega!
-
Sicherst du deine Javascripte und Blocklys mit Backitup und ist eine ZB = javascripts_2026_08_01-03_37_23_backupiobroker.tar.gz vorhanden ?

bei mir wurden zb 12 scripte gefunden die 0_userdata.0 enthalten und wenn ich die "deaktivierten" mit zähle sind es 38.
-
Ja mit hilfe von KI, es kann nur die javascripts_2026_08_01-03_37_23_backupiobroker.tar.gz oder darin befindlichen script.json durchsuchen und einzelen scripte (Blockly und Javascript) wieder herstellen.
-
Hallo,
ich habe sehr viele Blocklys und JavaScripte.
Manchmal ändern sich die Strukturen der Datenpunkte, sei es durch Adapterupdates oder durch eigene Änderungen unter "0_userdata.0"Gibt es eine Möglichkeit seine Skripte auf verweiste Datenpunkte zu prüfen?
Im Log wird es auch nicht unbedingt auffallen, da Trigger z.B. keinen Fehler erzeugen würden.
Hier ist ein Beispiel, was ich meine...

@stenmic [sagte]: Trigger z.B. keinen Fehler erzeugen würden.
Man kann Trigger prüfen, ob sie auf einen (nicht vorhandenen) Datenpunkt ohne Zustand triggern sollen:
const subs = getSubscriptions(); const ids = Object.keys(subs); for(const id of ids) { if(!existsState(id)) log(id + ' im Skript ' + subs[id][0].name + ' hat keinen Zustand!'); }Es werden nur aktivierte Skripte in der gleichen JS-Instanz geprüft. RegExp-Trigger werden immer "ohne Zustand" aufgelistet.
Falls ein verwaister DP in mehreren Skripten als Trigger auftauchen kann, muss man zusätzlich über subs[id] iterieren oder man wiederholt den Test nach erfolgter Korrektur. -
könnte mir mal jemand ein iobroker_xxxx_xx_xx-xx_xx_xx_backupiobroker.tar.gz mit verwaisten Datenpunkten drinen schicken ?
-
sowas in der Art ?

EDIT:
Leider kann ich nicht sagen ob das mit den verwaisten Datenpunkten funktioniert, da ich keine verwaisten Datenpunkte habe :( -
ne hab das jetzt schnell mit hilfe von Ki gemacht und ist nun als EXE vorhanden
Kann man aber auch mit PowerShell die "ioBroker-Cleaner-GUI.ps1" starten
-
@stenmic [sagte]: Trigger z.B. keinen Fehler erzeugen würden.
Man kann Trigger prüfen, ob sie auf einen (nicht vorhandenen) Datenpunkt ohne Zustand triggern sollen:
const subs = getSubscriptions(); const ids = Object.keys(subs); for(const id of ids) { if(!existsState(id)) log(id + ' im Skript ' + subs[id][0].name + ' hat keinen Zustand!'); }Es werden nur aktivierte Skripte in der gleichen JS-Instanz geprüft. RegExp-Trigger werden immer "ohne Zustand" aufgelistet.
Falls ein verwaister DP in mehreren Skripten als Trigger auftauchen kann, muss man zusätzlich über subs[id] iterieren oder man wiederholt den Test nach erfolgter Korrektur.@stenmic [sagte]: Trigger z.B. keinen Fehler erzeugen würden.
Man kann Trigger prüfen, ob sie auf einen (nicht vorhandenen) Datenpunkt ohne Zustand triggern sollen:
const subs = getSubscriptions(); const ids = Object.keys(subs); for(const id of ids) { if(!existsState(id)) log(id + ' im Skript ' + subs[id][0].name + ' hat keinen Zustand!'); }Es werden nur aktivierte Skripte in der gleichen JS-Instanz geprüft und auch RegExp-Trigger aufgelistet.
Falls ein verwaister DP in mehreren Skripten als Trigger auftauchen kann, muss man zusätzlich über subs[id] iterieren oder man wiederholt den Test nach erfolgter Korrektur.Perfekt, werde ich morgen gleich testen.
-
Gibt es da ein Github-Repository für den Code?
Schau hier für die erste Anwendung:
https://forum.iobroker.net/topic/84890/blockly-javascripte-aus-einer-script.json-extrahieren -
Gibt es da ein Github-Repository für den Code?
Schau hier für die erste Anwendung:
https://forum.iobroker.net/topic/84890/blockly-javascripte-aus-einer-script.json-extrahieren@Shadowhunter23 das ist aber für Javascripte und Blockly aus einem Backup wiederherzustellen ;)
Mittlerweile kann man auch nach Datenpunkten in allen Scripten suchen.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
