NEWS
Objekte aufräumen
-
@liv-in-sky sagte in Objekte aufräumen:
beim script vom paul werden alles states gecheckt - das ist zuviel für mein system
Bei mir auch, System hängt sich auf.
-
ist kein großes ding - mach einfach ein neues script (javascript) und kopiere den code rein und starte das script -- anschliessend beende es wieder, damit es nicht aktiv ist - lösche vorher das log, damit du besser siehst, was da kommt
es sind einfach zwei blöcke - der zweite testet den javascript.0 ordner und der erste testet bei mir control-own.0 - den habe ich selber angelegt - du hast sicher auch einen ordner mit eigenen datenpunkten darin - ersetze einfach controll-own.0 mit deinem ordnernamen (in zeile 5)
ist ja kein script, das dauernd läuft, soindern nur ein test, um mal ein paar daten zu bekommen - bei mr waren einige falsch deklarierte datenpunkte drin - die kontrolliere ich in der nächsten zeit - siehe log-bild
bei mir sieht das log so aus:
-
Super, bei fertig fehlt das I
-
@sigi234 ich werd heut nachmittag noch etwas rum probieren und halte dich auf dem laufenden
muss jetzt zu einem bekannten, der dauernd anrufe von "microsoft mitarbeitern " bekommt - ist wohl eine betrugsmasche, die momentan umgeht
-
@liv-in-sky
Super, Danke
Ideal wäre noch eine Ausgabe als Html und oder Table.
Eine SelectorState Auswahl nach:-
Leere Werte
-
Keine Werte seit Datum vorhanden
-
Kein Raum-Funktion-State-Rolle zugeteilt
Quasi eine All Inclusive Tool/Skript für Objekte.
-
-
@sigi234 sagte:
kann man im Reiter Objekte eigentlich alte oder verweiste Einträge automatisch löschen?
Gibt es ein Skript dafür?Mit automatischem Löschen sollte man sehr vorsichtig sein, weil danach etwas nicht mehr funktionieren kann. Da man auf die von Adaptern erzeugten Datenpunkte keinen Einfluss hat, sollte man sich ohnehin nur auf eigene Datenpunkte beschränken. Deshalb habe ich das Skript dahingehend abgewandelt.
function checkTypes(select) { $(select).each(function (id, i) { var dpType = getObject(id).common.type; var valType = typeof getState(id).val; if(dpType != valType && !(dpType == 'array' && valType == 'object')) { log(id + ': Datenpunkttyp: ' + dpType + ', Wert: ' + valType); } }); } checkTypes('javascript.*'); checkTypes('meineDP.*');
Datenpunkte, die keinen Wert enthalten, erzeugen eine Warnung im Log.
-
@paul53 sagte in Objekte aufräumen:
@sigi234 sagte:
kann man im Reiter Objekte eigentlich alte oder verweiste Einträge automatisch löschen?
Gibt es ein Skript dafür?Mit automatischem Löschen sollte man sehr vorsichtig sein, weil danach etwas nicht mehr funktionieren kann. Da man auf die von Adaptern erzeugten Datenpunkte keinen Einfluss hat, sollte man sich ohnehin nur auf eigene Datenpunkte beschränken. Deshalb habe ich das Skript dahingehend abgewandelt.
function checkTypes(select) { $(select).each(function (id, i) { var dpType = getObject(id).common.type; var valType = typeof getState(id).val; if(dpType != valType && !(dpType == 'array' && valType == 'object')) { log(id + ': Datenpunkttyp: ' + dpType + ', Wert: ' + valType); } }); } checkTypes('javascript.*'); checkTypes('meineDP.*');
Datenpunkte, die keinen Wert enthalten, erzeugen eine Warnung im Log.
Danke, aber da steigt mein System aus bzw hängt.
-
@sigi234 sagte:
da steigt mein System aus bzw hängt.
Sind es so viele eigene Datenpunkte ? Dann versuche es mal nacheinander (immer nur ein Funktionsaufruf).
ErstcheckTypes('javascript.0.*');
, dann
checkTypes('javascript.1.*');
, dann
checkTypes('eigeneDatenpunkte.0.*'); // Anpassen
usw.
-
@sigi234 sagte:
Eine SelectorState Auswahl nach:
Leere WerteDatenpunkte mit leeren Werten, bei denen man sich nicht sicher ist, ob sie gelöscht werden können, kann man typgerecht auffüllen.
function fillVal(select) { $(select).each(function (id, i) { var dpType = getObject(id).common.type; if(getState(id).val === null) { if(dpType == 'boolean') setState(id, false, true); if(dpType == 'number') setState(id, 0, true); if(dpType == 'string') setState(id, '', true); } }); } fillVal('javascript.*'); fillVal('meineDP.*');
-
@paul53 die meisten warnungen kommen aus scriptenabled,, scriptproblem - den ordner lasse ich aus, da dies dort admin kram ist
- danke für die warnung - aber datenpunkte löschen hätte ich eh nicht im script angewendet
- das mit dem auffüllen ist eine gute idee - falls dies hier zu einem script führt, müßte man 2 modi einführen -. einen mit füllen und einen nur die anzeige - ich würde ja gerne erfahren und kontrollieren , warum die leer sind - vielleicht kann ich sie ja löschen, da nicht mehr gebraucht
-
Ok, verstehe ich was nicht? Das Skript sucht ja im javascript.0 Ordner.
Ich möchte ja den Objekte Ordner durchsuchen.Beispiel:
Ich weis das die Roten DP`s nicht mehr existieren bzw. ich nicht mehr brauche. Diese sollte das Skript finden.
Davon habe ich mehr als genug.
Die Grünen sind Ok. -
@sigi234 sagte in Objekte aufräumen:
@paul53 sagte in Objekte aufräumen:
@sigi234 sagte:
kann man im Reiter Objekte eigentlich alte oder verweiste Einträge automatisch löschen?
Gibt es ein Skript dafür?Mit automatischem Löschen sollte man sehr vorsichtig sein, weil danach etwas nicht mehr funktionieren kann. Da man auf die von Adaptern erzeugten Datenpunkte keinen Einfluss hat, sollte man sich ohnehin nur auf eigene Datenpunkte beschränken. Deshalb habe ich das Skript dahingehend abgewandelt.
function checkTypes(select) { $(select).each(function (id, i) { var dpType = getObject(id).common.type; var valType = typeof getState(id).val; if(dpType != valType && !(dpType == 'array' && valType == 'object')) { log(id + ': Datenpunkttyp: ' + dpType + ', Wert: ' + valType); } }); } checkTypes('javascript.*'); checkTypes('meineDP.*');
Datenpunkte, die keinen Wert enthalten, erzeugen eine Warnung im Log.
Danke, aber da steigt mein System aus bzw hängt.
bei diesem script gibt es keine anzeige mehr, ob der datenpunkt einen falschen inhalt hat
ich fand den output auch interessant - da ich dort im script nacharbeiten muss
javascript.0 2019-10-15 13:08:51.221 info (296) script.js.Armin_Schalter.ALLERLEI.ALLEDatenpunktescannen: controll-own.0.HANDY.trekstoreScreen: Datenpunkttyp: boolean, Wert: number
ich versuch mal das alles irrgendwie zusammenzubringen
-
@sigi234 das liegt daran, dasss die scripts ihre datenpunkte unter javascript.* ablegen
deshalb fragen wir javascript.* und eigeneDatenpunkte.0 ab
-
@liv-in-sky sagte:
die meisten warnungen kommen aus scriptenabled,, scriptproblem
Eigenartig, denn dort sollten nur Datenpunkte vom Typ "boolean" enthalten sein, die auch einen Wert haben. Sind vielleicht beim Löschen von Skripten die zugehörigen Objekte nicht gelöscht worden ?
@liv-in-sky sagte in Objekte aufräumen:
ich würde ja gerne erfahren und kontrollieren , warum die leer sind - vielleicht kann ich sie ja löschen, da nicht mehr gebraucht
Das Auffüllen sollte auch erst nach manuellem Löschen nicht mehr benötigter Datenpunkte erfolgen. Einen Test auf leere Datenpunkte kann man machen:
function checkEmpty(select) { $(select).each(function (id, i) { if(getState(id).val === null) { console.log(id + ': Leer !'); } }); } checkEmpty('javascript.*'); checkEmpty('meineDP.*');
-
@paul53 sagte in Objekte aufräumen:
checkTypes('javascript.0.*');
Theoretisch könnte ich da ja jeden beliebigen Adapter reinschreiben und das Skript sucht nur dort?
-
-
@paul53 sagte in Objekte aufräumen:
Eigenartig, denn dort sollten nur Datenpunkte vom Typ "boolean" enthalten sein, die auch einen Wert haben. Sind vielleicht beim Löschen von Skripten die zugehörigen Objekte nicht gelösc
genau das möchte ich ja auch herausfinden
es sind alle datenpunkte, die unter scriptproblem liegen ohne wert - ich habe mal ein paar scripte kopiert und die instanz geändert - es liegen nun lauter datenpunkte ohne werte rum
-
@paul53 sagte in Objekte aufräumen:
@sigi234 sagte:
jeden beliebigen Adapter reinschreiben und das Skript sucht nur dort?
Ja.
Ja, genau das suche ich. Wäre Super wenn man aussuchen könnte welche. Mit Copy&Paste ist es umständlich würde aber gehen.
Ich glaube wenn das Skript fertig ist kommt was feines für Alle raus. -
sowas hätte ich auch gedacht - zuerst auslesen, welche instanzen es gibt (alle ordner mit (.0, ... ) und dann auswählen, welcher gecheckt werden soll
im moment ist es aber noch ein herausfinden, was eigentlich angezeigt werden soll
nachtrag
bis jetzt interessant
- datentyp und wert sind nicht gleich
- datenwert ist nicht vorhanden
-