NEWS
Devices Adapter verändert bestehende Alias-DPs
-
Hallo zusammen,
ich habe den Devices-Adapter ("Geräte") mal probehalber installiert und wollte mit ein paar kleinen Änderungen ausprobieren, wie dieser sich benutzt.
Dabei habe ich Wasser-Sensoren ("floodalarm") mal einem Raum zugeordnet, weil sie bisher keinen hatten.
Das Ergebnis war aber leider nicht nur eine Raumzuordnung sondern ein völlig kaputt geänderter und unbrauchbarer Alias: neue DPs, bestehende Alias-DPs umgebogen auf andere Quell-DP, Alias-DPs verschwunden....Soll das so sein?
Wenn ja, warum?Viele Grüße
Christoph -
@chris299 sagte in Devices Adapter verändert bestehende Alias-DPs:
Soll das so sein?
nein soll nicht...
aber ohne weiteres (Adapter Version) lässt sich das nicht nachvollziehen.. also..
screenshot wie du was gemacht hast . ich nutze den Adapter auch und dein Fehler kann ich nicht nachvollziehen
-
@arteck Adapter Version ist 1.1.5 auch sonst alles aktuell aus dem stable....
screenshots habe ich leider keine gemacht, und alles direkt manuell korrigiert als ich dasbemerkt habe....so sehen die Aquaras eigentlich aus:
aber nachdem ich bei einem den Raum ergänzt habe, war "voltage" auf einmal auf "available" verlinkt und änliche seltsamkeiten, wie z.b. Rollen verändert.
Ich werde das mal weiter beobachten und evtl nochmal testen.
Gibt es ein Log in dem man Alias-änderungen nachvollziehen kann?Wie ist denn das geplante Verhalten de Adapters bei Änderungen an Devices bzw. deren Aliases, deren definierte Rolle er nicht versteht?
(das scheint für "floodalarm" meiner Aquara sensoren so zu sein. diese Rolle kennt der Devices-Adapter anscheinend nicht und hält die Dinger für Temperatursensoren)
(Was bedeuten eigentlich die Icons? Ein Tooltip wäre hier hilfreich....)
hier verstehe ich nicht, warum der Typ als "Temperature" erkannt wird. ich vermute, das hängt mit
https://github.com/ioBroker/ioBroker.type-detector/blob/master/DEVICES.md#flood-alarm-sensor-floodalarm zusammen, aber auch wenn ich manuell einen solchen ACTUAL für flood-alarm einrichte ändert sich das im Devices Adapter nicht mehr. kann man da eine erneute Erkennung anwerfen?IMHO insgesamt eine interessante Zusammenstellung möglicher Funktions-typen.... aber vermutlich habe ich den Zusammenhang mit den selbst definierten Aufzählungen und Funktionen und den system-defaults nicht verstanden....
gibt es eine Liste dere Zusammenhänge, welche DPs der Adapter für welche Rolle/Typ annimmt und dann im Alias ergänzt? "ON" scheint so einer zu sein....
-
@chris299 said in Devices Adapter verändert bestehende Alias-DPs:
screenshots habe ich leider keine gemacht, und alles direkt manuell korrigiert als ich dasbemerkt habe....
Mir ist noch nicht ganz klar, wo du geklickt hast, damit änderungen an den States raus kommen... das wäre schon gut, wenn du das sagen / zeigen kannst.
@chris299 said in Devices Adapter verändert bestehende Alias-DPs:
so sehen die Aquaras eigentlich aus:
Da ist auch der Grund, warum es als Temperatur erkannt wird.
Brauchst du die states wirklich alle? In einer Visualisierung oder in Skripten? Sonst würde ich vorschlagen da welche rauszunehmen. Die "device_temperature" ist halt für den type-detector ganz klar ein Temperaturgerät.@chris299 said in Devices Adapter verändert bestehende Alias-DPs:
aber auch wenn ich manuell einen solchen ACTUAL für flood-alarm einrichte ändert sich das im Devices Adapter nicht mehr
Die erste Spalte in der Tabelle kannst du mehr oder weniger ignorieren. So heißt der State "intern" bzw. wenn der device Adapter ein Alias-Gerät selber anlegt (und auf der Editierseite taucht der auch auf...) aber bei der Erkennung ist es egal, wie der state heißt. Das wichtigste ist die "Role" (bzw. hinten der Regex) und da sieht man, dass es bei dir auch nicht passt, sondern da die Role
indicator.leakage
ist. Insofern kann der type-detector da keinen Wassersensor entdecken.Mein Vorschlag wäre, du machst mal unter einem neuen Namen ein Alias zu einem Wassersensor von Hand an. Da wählst du dann als "ACTUAL" den "detected" state. Dann legt der Geräte-Adapter dir einen Alias an, wie er / type-detector den gerne hätte. UNREACH und LOWBAT könntest du auch noch füllen, müsstest da aber mit Funktionen arbeiten (UNREACH halt !val und available und LOWBAT irgendwie val < 20% oder so, wo man halt ne Warnung haben möchte, die Batterie zu wechseln). Dann kann am Ende auch eine Visualisierung was mit dem Gerät anfangen.
Wenn du die restlichen states wirklich brauchst, kannst du die auch noch als zusätzliche States darein linken. Aber auf die rolle vom Temperatur-Dingsie achten.Das bringt mich zu deiner nächsten Frage:
@chris299 said in Devices Adapter verändert bestehende Alias-DPs:
kann man da eine erneute Erkennung anwerfen?
Kurze antwort: Ja, durch neuladen der Seite. Hintergrund: es wird aktuell nirgendwo gespeichert, was für ein Gerät das ist, sondern immer neu gescannt und nach gefundenen States mit Rollen und Type entschieden, was das nun ist. Insofern: solange da der falsche Gerätetyp steht, stimmt auch was mit dem Gerät nicht.
Es gab mal eine Überlegung das fix zu machen, ist aber nicht implementiert / im Designstatium geblieben (sofern ich weiß).
@chris299 said in Devices Adapter verändert bestehende Alias-DPs:
IMHO insgesamt eine interessante Zusammenstellung möglicher Funktions-typen.... aber vermutlich habe ich den Zusammenhang mit den selbst definierten Aufzählungen und Funktionen und den system-defaults nicht verstanden....
Es gibt vordefinierte Funktionen, du kannst aber frei zusätzliche definieren. Die sollten in der Liste auch auftauchen. Wenn Rolle und Typ usw. der states passen, dann ist die Funktion auch egal und eher für dich als User gedacht oder in Skripten zum Selektieren usw.
@chris299 said in Devices Adapter verändert bestehende Alias-DPs:
gibt es eine Liste dere Zusammenhänge, welche DPs der Adapter für welche Rolle/Typ annimmt und dann im Alias ergänzt? "ON" scheint so einer zu sein....
Was du auf dem Bild siehst, ist, dass der type-detector einen Temperatursensor gefunden hat. Der hat den state "ACTUAL" wo er den Temperaturleser rein erkannt hat. Passt also. Die anderen states konnte er bei dem Gerät (richtigerweise) nicht zuordnen, weil sie nicht unterstützt werden.
Der Name des states ist dabei egal, wie du siehst / oben schon geschrieben: hier ist "device_temperature" "ACTUAL" zugeordnet worden. Das "ACTUAL" ist halt für eine Visualisierung interessant. Wie die heißen, kannst du in der Devices.md nachgucken.Eine wirkliche Liste dazu gibt es nicht. Bei Sensoren ist normalerweise "ACTUAL" der aktuell gelesene Wert. Manchmal gibt es noch "SECONDARY" (z.B. Feuchitgkeit bei Temperatursensor). Bei Sachen, die geschaltet werden, gibt es oft "ON" und Optional "ACTUAL" für Rückmeldung des Wertes vom Gerät. Für Sachen, die eingestellt werden können (also z.B. Dimmer oder Zieltemperatur) gibt es "SET".
@chris299 said in Devices Adapter verändert bestehende Alias-DPs:
(Was bedeuten eigentlich die Icons? Ein Tooltip wäre hier hilfreich....)
Ja, der Tooltip ist irgendwie abhandengekommen. So richtig warum, konnte ich bisher nicht nachvollziehen. Die Icons sagen, welche anderen Adapter das Gerät unterstützen, z.B. hier Materialize Visualisierung (das blaue hinten), Google und Alisa für Sprachsteuerung (über iot Adapter).
-
@garfonso vielen Dank für die ausführliche Erklärung.
Darauf basierend habe ich gerade mal die Rollen und die DPs eines Wassersensors manuell angepasst:
das führt aber nun zu einem etwas seltsamen Ergebnis, wenn ich die Devices Ansicht aufrufe:
zwar nun kein Temperatur-sensor mehr, aber auch nicht das richtige....
Übersehe ich da was?
und im Detail ziemlich merkwürdig, wenn ich nun den Stift klicke:
-
@chris299 said in Devices Adapter verändert bestehende Alias-DPs:
Darauf basierend habe ich gerade mal die Rollen und die DPs eines Wassersensors manuell angepasst:
Hm.. warum hast du jetzt zweimal einen alias auf detected? Es würde reichen beim alten die rolle anzupassen (der Name vom state ist egal).
Aber es scheint noch etwas anderes nicht zu passen. Der Type muss Boolean sein (das scheint zu stimmen) und write muss "false" sein, read sollte true sein. Stimmt das?
-
@garfonso ich habe den zweiten alias-DP auf "detected" ergänzt, weil ich den ursprünglichen noch in scripts verwende und daher noch nicht ändern wollte.
und ansonsten sieht es so aus: (ich verwende den alias-manager)
auch wenn ich einen mit "flood" (für diese Regex des devices modul "/^state(.alarm)?.flood$|^sensor(.alarm)?.flood/") ergänze klappt es nicht
und ich habe noch weiter probiert:
so sieht das aus, wenn der devices-adapter den alias anlegt:
was dabei auffällt ist, dass typ und icon nicht zusammenpassen...
der alias selber ist auch leicht anders:
und anscheinend hat die role des channels was damit zu tun:
sieht für mich aus wie mehrere Bugs....
Nachtrag:
wenn man sich Zeile 572 von https://github.com/ioBroker/ioBroker.type-detector/blob/master/index.js ansieht wird das klar.
@Bluefox warum wird denn für den Feuer- und Wasser-Alarm der Channel zusätzlich geprüft, und dann noch auf "sensor.alarm.flood" statt auf "floodalarm"?siehe: https://github.com/ioBroker/ioBroker.type-detector/issues/38
warum das Icon nicht richtig ist und ich so viele ACTUALS sehe, wären dann wohl zwei andere Bugs...