NEWS
Verwendungsstellen von Datenpunkten anzeigen
-
Hallo,
ich weiß nicht in welchen Bereich meine Frage gehört, daher poste ich sie mal im Off-Topic Bereich.
Ich komme aus der SPS-Programmierung und da gibt es eine Funktion um sich alle Verwendungsstellen von Variablen anzeigen zu lassen.
Diese Funktion wäre meiner Meinung auch für den IO Broker sehr hilfreich. Mit der Zeit wächst so ein System natürlich sehr weit an und es wäre eine gute Hilfe sich im Objekt-Menü die Verwendungsstellen von Datenpunkten anzeigen zu lassen, also z.B. ob der Datenpunkt in einem Skript oder der VIS oder sonst wo verwendet wird.
Das würde das Pflegen/ Aufräumen eines Systems sehr erleichtern.
Kann mir aber auch vorstellen, dass das mit den ganzen Adaptern nicht einfach ist. -
@danny_v1 du kannst danach suchen.. zumindes im javascript..
in der vis ist es problematischer aber geht auch..ein export der vis und dann kannst du auch hier nach der variabel suchen
-
@arteck Ok, vielen Dank für die Info, wie funktioniert das mit der Suche im Javascript?
-
@danny_v1 sagte in Verwendungsstellen von Datenpunkten anzeigen:
wie funktioniert das mit der Suche im Javascript
na ganz einfach - die Lupe links oben anklicken und dann nach dem DP suchen
-
@djmarc75 sagte in Verwendungsstellen von Datenpunkten anzeigen:
die Lupe links oben anklicken und dann nach dem DP suchen
und da ist sie ganz rechts
im Skripte ExplorerEDIT:
alter Editeur
-
Super danke!
Aber global also im Objektbaum vom iobroker gibts sowas nicht oder?
-
@danny_v1 nein, leider nicht. Aber das wäre ein Traum
-
Dafür kann man ja filtern, wozu bräuchte man da eine Suche?
-
@danny_v1 sagte in Verwendungsstellen von Datenpunkten anzeigen:
Aber global also im Objektbaum vom iobroker gibts sowas nicht oder?
???
was willst du da nach Datenpunkten suchen?
Die ID ist doch unique. -
@ofbeqnpolkkl6mby5e13 ich fände es schon sehr komfortabel, wenn man einem Datenpunkt "ansehen" könnte, an welchen Stellen (Skripte/Szenen/Visualisierungen/Adaptern usw.) dieser Verwendung findet. Natürlich bekommt man das alles irgendwie raus, aber komfortabel und übersichtlich sind die Möglichkeiten in meinen Augen nicht...
-
Das ist natürlich noch mal eine andere Aufgabenstellung. Dazu müsste jeder Adapter bei der Verwendung eines Datenpunktes außerhalb seines eigenen Namensraums im Datenpunkt vermerken, dass er diesen verwendet und an welcher Stelle. Vielleicht könnte man auch eine Art Index erstellen. Aber dazu müsste vermutlich ein (Core)Entwickler ( @foxriver76 @apollon77 ) was sagen, welche Möglichkeiten es da gäbe.
Edit:
Der Javaskript-Adapter abonniert doch alle States. Somit sollte er doch auch die Quelle für den Zugriff auf einen Datenpunkt kennen.Edit2:
Aber der bekommt das ja auch nur mit, wenn der State zumindest aktualisiert wird. Lesenden Zugriff wohl eher nicht. -
@dodi666 sagte in Verwendungsstellen von Datenpunkten anzeigen:
wenn man einem Datenpunkt "ansehen" könnte, an welchen Stellen (Skripte/Szenen/Visualisierungen/Adaptern usw.) dieser Verwendung findet.
Selbst wenn das technisch machbar sein würde, ergäbe das IMHO keinen Sinn.
Die Objektansicht würde dermaßen aufgebläht, dass die Übersicht verloren ginge und -viel schlimmer- wahrscheinlich die Ansicht einfrieren würde, wie es jetzt schon der Fall ist, wenn zu viele Knoten geöffnet sind.Ich skripte nicht wirklich viel, aber alle verwendeten (auch mehrfach) States noch in den Objekten aufzulisten würde gefühlt mehrere Seiten benötigen
-
@homoran also der "Sinn" ist meiner Meinung nach schon gegeben. Das man damit ganzheitlich vielleicht an technische Grenzen stößt ist in meinen Augen etwas ganz anderes. Vorstellbar wäre ja auch ein Prozess, der einem die Möglichkeit gibt, auf Anforderung alle Verwendungen eines Datenpunktes auszulesen und in ein Textfile zu schreiben. Nur so eine Idee...
-
@dodi666 sagte in Verwendungsstellen von Datenpunkten anzeigen:
Das man damit ganzheitlich vielleicht an technische Grenzen stößt
das ist ein ganz anderes Thema (s.u.)
@dodi666 sagte in Verwendungsstellen von Datenpunkten anzeigen:
der "Sinn"
des Admin ist es übersichtlich zu bleiben.
zu jedem State noch alle Stellen in Skripten und Konfigurationen anzuzeigen ist dazu kontraproduktiv.Wenn ich alleine shuttercontrol ansehe, wo für die Steuerung von nur 7 Rollläden jeweils der zugehörige Innen- und Außentemperatur sensor, der Türsensor, Drehgriffsensor und Helligkeitssensor dowie Azimut und Elevation angegeben wird, so sind das alleine 49 zusätzliche Zeilen.
Fundstellen in Skripten übersteigen dies um ein Vielfaches.
Technisch gesehen müsste jetzt auch noch beim State "Außentemperatur vorne" angegeben werden, bei welchem Rollladen in der Konfiguration dieser State verwendet wird.
-
@homoran deswegen ja der Vorschlag, das Ergebnis der Abfrage eines Datenpunktes in eine externe Datei zu schreiben. Der Admin bleibt doch dann davon komplett unberührt.
-
Der Sinn ist finde ich schon gegeben, manchmal baut man eben mal was um oder ein Sensor wird ausgetauscht, entfällt oder sonst was, oder irgendwelche Hilfsdatenpunkte die man sich erstellt hat wo man nicht mehr genau weiß wer greift alles darauf zu. So könnte man überprüfen wo werden die Datenpunkte verwendet bevor man sie löscht. Einfach um das System sauber zu halten.
Die schönste Lösung wäre das über die Eigenschaften im Objektbaum zu machen aber sicher auch die aufwendigste. Ich könnte mir auch vorstellen das es vielleicht über einen Adapter geht, wo man den Datenpunkt oder Ordner prüfen lassen kann. -
Die Frage ist da zuerst mal was unter "Verwendung eines States" zu verstehen ist.
Wenn die Id im javascript Adapter in einem Skript verwendet wird, dann ist das via Textsuche schon jetzt (halbwegs) eruierbar. Zentral wäre eine gesicherte Suche (- die Id kann ja auch nur in einem Kommentar oder log text stehen - aufwändig. Wenn der Text zur Laufzeit dynamisch zusammengesetzt wird nutzt eine Testsuche nichts - da müsste dann bei alle Zugriffe getracked werden ...
ABER die Verwendung in einem Adapter lässt sich nicht trivial tracken. Der Adapter kann einen State gezielt durch Angabe der Id lesen - das wäre prinzipiell trackbar aber erst nach dem ersten Zugriff. Der Adapter kann aber auch States subscriben und wird dann über Änderungen informiert. Je nach Anzahl subscribed ein Adapter einzelne States (- wäre trackbar -) oder auch eine Auswahl durch eine Wildcard. Da dabei der core nicht weiß welche konkreten States der Adapter dann beachtet und welche er ignoriert ist das nicht (sinnvoll) trackbar.
Insgesammt steht meiner Ansicht nach der Aufwand - sofern er überhaupt sinnvoll machbar ist - in keiner Relation zu Erfolg.
Du kannst aber jederzeit einen Feature Issue erstellen. Ich möchte einer allfälligen Diskussion hier keinesfalls final vorgreifen.
Bezüglich Gerätetausch verweise ich auf das Thema ALIAS.
-
@mcm1957 sagte in Verwendungsstellen von Datenpunkten anzeigen:
in keiner Relation
Bei 90.000 Usern kommt diese Frage zum allerersten Mal auf.
Wenn es ein sooo wichtiges Feature wäre, hätte sich bestimmt schon mal der ein odere andere dies gewünscht.Natürlich wäre es nice to have, jetzt wo darüber gesprochen wird.
-
@homoran Ich glaube die Frage ist immer, welche Erfahrungen man mit ähnlich gearteten Systemen hat. Im Bereich der Industrieautomatisierung gibt es solche Funktionen besispielsweise bei Prozeßleitsystemen oder SPSen durchaus. Bei der Benutzung des iobrokers im Bereich der Heimautomatisierung habe ich mir die Frage schon relativ früh gestellt bzw. die Funktion gewünscht, allerdings benutzt man dann halt die bekannten "workarounds" und kann damit auch leben... Sinvoll ist eine solche Funktion in meinen Augen definitiv, ob aber die Machbarkeit bzw. das Aufwand/Nutzen Verhältnis okay sind, das kann ich überhaupt nicht bewerten.
-
@dodi666 sagte in Verwendungsstellen von Datenpunkten anzeigen:
Im Bereich der Industrieautomatisierung gibt es solche Funktionen besispielsweise bei Prozeßleitsystemen oder SPSen durchaus
das glaube ich dir, aber das sind auch keine offenen Systeme mit 500 möglichen Zusatzmodulen.
und eben keine
@dodi666 sagte in Verwendungsstellen von Datenpunkten anzeigen:die Frage ist immer, welche Erfahrungen man mit ähnlich gearteten Systemen hat
ich kenne das auch bei geschlossenen Systemen, deren Struktur anders aufgebaut ist, als die von iobroker.
Und wie viele User von SPSen hier aufschlagen sieht man schön an der anderen Denkweise als bei Javascript.
Die eventbasierte Aktion ist dort weitestgehend unbekannt.