NEWS
Test Adapter Device-Watcher v2.x.x GitHub/Latest
-
@ciddi89 Hallo Ciddi,
habe jetzt erst bemerkt, dass die RPC's nicht aufgelistet werden:
Links aus dem bekannten Skript - rechts aus Device-Watcher
Bei den Datenpunkten wird zwar die Anzahl erkannt, aber die Tabelle wird nicht komplett aufgefüllt.
[{"Device":"Base Station","Adapter":"Ham","Battery":"100%","Status":"Online"},{"Device":"EG Bewegungsmelder WZ","Adapter":"Ham","Battery":"100%","Status":"Online"},{"Device":"Fensterkontakt","Adapter":"Ham","Battery":"100%","Status":"Online"},{"Device":"KG Fitness","Adapter":"Ham","Battery":"100%","Status":"Online"},{"Device":"Keypad","Adapter":"Ham","Battery":"100%","Status":"Online"},{"Device":"Schalt-Mess-Steckdose","Adapter":"Homematic IP","Battery":"low","Status":"Online"},{"Device":"HOME_CONTROL_ACCESS_POINT","Adapter":"Homematic IP","Battery":"low","Status":"Online"},{"Device":"roborock.vacuum.s5","Adapter":"MiHome Vacuum","Battery":"100%","Status":"Online"},{"Device":"Fibargroup FGMS001","Adapter":"Z-wave 2","Battery":"low","Status":"Online"},{"Device":"AEON Labs ZW100 Badezimmer","Adapter":"Z-wave 2","Battery":"100%","Status":"Online"},{"Device":"Fibargroup FGMS001","Adapter":"Z-wave 2","Battery":"low","Status":"Offline"},{"Device":"AEON Labs ZW100 Gartenhaus","Adapter":"Z-wave 2","Battery":"100%","Status":"Online"},{"Device":"Popp & Co 004001 Garage Rauchmelder","Adapter":"Z-wave 2","Battery":"100%","Status":"Online"}]
Liegt das evtl. daran das bei mir die RPC-Instanz die ".2" ist?
VG
Axel -
@axel-koeneke Ääähm ja das ist merkwürdig. Die Instanz Nummer ist egal. Adapter Version ist aktuell?
Das komische ist, die Anzahl basiert auf den Listen. Also theoretisch müssten die da drin stehen. Was für Geräte sind es speziell? Ältere Homematic Geräte? -
@ciddi89 Moin, es sind alles Homematic-IP Geräte an einer Rasberrymatic, also ohne cloud.
Ist halt seltsam das sie gezäklt werden, aber nicht in die Tabelle eingetragen werden. Weder in JSON noch in HTML Format.
VG
Axel
Habe das noch im LOG:device-watcher.0 2022-11-18 09:35:40.659 warn Error catched and sent to Sentry, error: [[writeDatapoints]] error: Cannot read properties of undefined (reading 'localeCompare') device-watcher.0 2022-11-18 09:35:37.397 warn Error catched and sent to Sentry, error: [[writeDatapoints]] error: Cannot read properties of undefined (reading 'localeCompare')
-
@axel-koeneke okay, kannst du im Objektbaum bei einem Hauptordner eines Gerätes auf das Stift Symbol klicken und mir die JSON mal zeigen? Es müsste dort der Name definiert sein für das Gerät
-
@ciddi89 Meinst du das hier:
{ "_id": "hm-rpc.2.000E9A498E8046", "type": "device", "common": { "name": "Hz-Regler-Bad", "icon": "/icons/147_hmip-sthd_thumb.png" }, "native": { "TYPE": "HmIP-STHD", "SUBTYPE": "STHD", "ADDRESS": "000E9A498E8046", "RF_ADDRESS": 3773934, "CHILDREN": [ "000E9A498E8046:0", "000E9A498E8046:1", "000E9A498E8046:2", "000E9A498E8046:3", "000E9A498E8046:4", "000E9A498E8046:5", "000E9A498E8046:6", "000E9A498E8046:7" ], "PARENT": "", "PARENT_TYPE": "", "INDEX": 0, "AES_ACTIVE": 1, "PARAMSETS": [ "MASTER", "SERVICE" ], "FIRMWARE": "2.8.2", "AVAILABLE_FIRMWARE": "2.8.2", "UPDATABLE": true, "FIRMWARE_UPDATE_STATE": "UP_TO_DATE", "VERSION": 5, "FLAGS": 1, "LINK_SOURCE_ROLES": "", "LINK_TARGET_ROLES": "", "DIRECTION": 0, "GROUP": "", "TEAM": "", "TEAM_TAG": "", "TEAM_CHANNELS": [], "INTERFACE": "", "ROAMING": 0, "RX_MODE": 3 }, "from": "system.adapter.hm-rega.0", "user": "system.user.admin", "ts": 1662625014918, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@axel-koeneke ja okay, ich denke das problem liegt woanders. Das kannst du aber testen indem du alle adapter deaktiviert im device-watcher deaktivierst und nur hm-rpc aktivierst.
Du hast mir aber noch nicht gesagt welche Version du nutzt?
Sagt das log noch etwas anderes?
Vielleicht kannst du, wenn du Zeit hast, mal alle ausgewählten Adapter deaktivieren im device-watcher und dann jeden Adapter für sich aktivieren. Kann leider so mit dem Fehler nichts anfangen und daher müssen wir mal suchen welches Gerät da Probleme macht. Wenn du bei Github angemeldet bist, wäre es cool da ein Issue aufzumachen damit wir das Problem dort bearbeiten, um hier nicht den Rahmen zu sprengen. Aber nur wenn du da angemeldet bist.
-
@ciddi89 sagte in Test Adapter Device-Watcher v1.x.x GitHub/Latest:
Aber nur wenn du da angemeldet bist.
das sollte da kleinste prob sein...
interessante geschichte ist das... -
@da_woody naja möchte niemanden dazu drängen. Hält die Sache aber übersichtlicher
-
@ciddi89 klar, aber wenn man mit neuen adaptern rumprobieren will, hat's sinn. auch wegen issues.
-
@da_woody das stimmt.
Naja mal bisschen zum Fehler:
diesen Fehler mit localcompare gibt es schon ewig. Betrifft aber nur 1-2 User. Ich denke da liegt irgendwo eine Geräte Leiche rum oder so. Leider haben sich diese User noch nie bei mir gemeldet geschweige denn den Adapter mal aktualisiert. Die krebsen alle noch bei 0.3 rum usw. Ich sehe es nur in sentry kann aber nicht genau ausmachen was den Fehler produziert. Und diese 1-2 User spamen mit diesen Fehler auch extrem das sentry voll so das das Kontingent immer schnell ausgeschöpft ist. Ich hoffe ich kann nun mit Hilfe von dem Axel mal heraus finden warum und eine korrekte Behandlung mit einbauen damit das nicht mehr vorkommt. -
@ciddi89 Moin, sorry habe die Version 2.0.2
Leider bin ich im Github nicht so bewandert...
Folgendes habe ich probiert und festgestellt:
Alle anderen Abfragen funktionieren fehlerfrei, außer HM-RPC. Habe jetzt LOG auf DEBUG gestellt:device-watcher.0 2022-11-19 09:51:25.841 warn Error catched and sent to Sentry, error: [[writeDatapoints]] error: Cannot read properties of undefined (reading 'localeCompare') device-watcher.0 2022-11-19 09:51:25.788 debug Start the function: writeDatapoints device-watcher.0 2022-11-19 09:51:25.323 debug Search can't be optimized because wildcard not at the end, fallback to keys!: function(doc) { if (doc.type === 'state') emit(doc._id, doc) } device-watcher.0 2022-11-19 09:51:25.259 debug Function finished: resetVars device-watcher.0 2022-11-19 09:51:25.259 debug Function started: resetVars device-watcher.0 2022-11-19 09:51:25.258 debug Function started: createDataOfAllAdapter device-watcher.0 2022-11-19 09:51:25.258 debug Created and filled data for Hmrpc device-watcher.0 2022-11-19 09:51:25.257 debug Function finished: createDataForEachAdapter device-watcher.0 2022-11-19 09:51:25.257 debug Function finished: writeDatapoints device-watcher.0 2022-11-19 09:51:25.223 warn Error catched and sent to Sentry, error: [[writeDatapoints]] error: Cannot read properties of undefined (reading 'localeCompare') device-watcher.0 2022-11-19 09:51:25.033 debug Start the function: writeDatapoints device-watcher.0 2022-11-19 09:51:24.578 debug Search can't be optimized because wildcard not at the end, fallback to keys!: function(doc) { if (doc.type === 'state') emit(doc._id, doc) } device-watcher.0 2022-11-19 09:51:24.569 debug Function finished: resetVars device-watcher.0 2022-11-19 09:51:24.569 debug Function started: resetVars device-watcher.0 2022-11-19 09:51:24.568 debug Function started: createDataForEachAdapter device-watcher.0 2022-11-19 09:51:24.567 debug Function started: main device-watcher.0 2022-11-19 09:51:24.560 debug Created datapoints for Hmrpc device-watcher.0 2022-11-19 09:51:24.479 debug Function finished: createBlacklist device-watcher.0 2022-11-19 09:51:24.478 debug Function started: createBlacklist device-watcher.0 2022-11-19 09:51:24.476 info Number of selected adapters: 1. Loading data from: Hmrpc ... device-watcher.0 2022-11-19 09:51:24.475 debug [{"Selektor":"hm-rpc.*.UNREACH","adapterID":"hmrpc","adapter":"Homematic RPC","rssiState":".RSSI_DEVICE","rssiPeerState":".RSSI_PEER","battery":".OPERATING_VOLTAGE","reach":".UNREACH","isLowBat":".LOW_BAT","isLowBat2":".LOWBAT","stateValue":".1.STATE"}] device-watcher.0 2022-11-19 09:51:24.471 debug Adapter device-watcher was started device-watcher.0 2022-11-19 09:51:24.430 info starting. Version 2.0.2 in /opt/iobroker/node_modules/iobroker.device-watcher, node: v16.15.1, js-controller: 4.0.23 device-watcher.0 2022-11-19 09:51:23.671 debug Plugin sentry Initialize Plugin (enabled=true)
Zeile 63 sieht für mich interessant aus:
"Selektor":"hm-rpc.*.UNREACH"........
Datenpunkt:
hm-rpc.2.000E9A498DFC2D.0.UNREACH
Kann es sein das hier zwei Platzhalter fehlen?
Also wenn der erste für die Instanz ist, dann müssten doch noch die Geräte ID und dann der Kanal kommen. und anschließend die Abfrage (UNREACH).
VG
Axel -
@axel-koeneke danke für deine Informationen. Werde nachher mal versuchen das zu reproduzieren. Irgendwie…
Kannst du mir evtl noch ein screenshot von allen Datenpunkte senden von einem gerät? Die json vom datenpunkt unreach wäre auch ganz gut.Nee an den Selektor liegt das nicht. Das ist schon richtig so. Ausser du hast pro gerät zweimal den Datenpunkt unreach. Dann könnte es vielleicht ein bisschen durcheinander kommen. Hast du nur eine Instanz von hm-rpc oder mehrere?
//EDIT: Ich glaube ich konnte es etwas eingrenzen. Lässt du dir auch die HTML listen erstellen?
-
@axel-koeneke ok ich denke ich habe den Fehler gefunden und habe ein Fix eingebaut. Kannst du dann bitte mal die GitHub Version testen? Aber ich denke du wirst Irgendwo im HM-RPC Adapter ein Gerät haben wo er den Namen nicht korrekt ausgibt oder eine Datenleiche versteckt ist. Vielleicht kannst du mal schauen ob da irgendwo was auffälliges zu sehen ist.
-
@ciddi89 sagte in Test Adapter Device-Watcher v1.x.x GitHub/Latest:
nicht korrekt ausgibt oder eine Datenleiche versteckt ist
möglicherweise sonderzeichen, oder sowas?
-
@da_woody Sonderzeichen kann natürlich auch sein. Wollte mal ein Filter dafür einbauen, denke mittlerweile wird es Zeit dafür 🫣 ich vergesse immer das nicht alle wissen das es nicht gesund ist bestimmte Zeichensätze in Namen zu setzen
-
@ciddi89 sagte in Test Adapter Device-Watcher v1.x.x GitHub/Latest:
ich vergesse immer das nicht alle wissen das es nicht gesund ist bestimmte Zeichensätze in Namen zu setzen
-
@ciddi89 Huhu, was auch immer du gemacht hast, es hat funtioniert !
Super !!!
VG
Axel -
@ciddi89
Super adapter, bin ich gestern per zufall drüber gestolpert und echt begeistert, spart so viel zeitKönntest du vlt. etwas implemnetieren das man z.b. auch eigene Geräte / Strukturen verwenden kann. Also z.B. hab ich ein paar mqtt Geräte, die ich gerne mit dem Adapter auch überwachen würde.
Meine Idee wäre das man z.B. über die Adapterkonfig eigene Strukturen per json anlegen kann:meineStruktur: { Selektor: 'meineStruktur.*.rssi', adapterID: 'meineStruktur', adapter: 'meineStruktur', battery: '.battery', rssiState: '.rssi', reach: 'none', isLowBat: 'none', }
Was denkst du?
-
@scrounger wow, einer der gute dev's!
vllt kenn ich mich zu wenig aus, aber würde das nicht über sonoff funzen? -
@scrounger danke für die Blumen.
Finde deine Idee sogar sehr gut, gerade für die ganzen mqtt Geräte. Habe ja auch einige am laufen aber es gibt so viele Unterschiede. Da könnte sich der User selbst seine Exoten einpflegen.
Werde das heute Abend mal mit reinnehmen und ausprobieren.