NEWS
Test Adapter ds18b20 v2.0.x
-
Aktuelle Test Version 2.0.4 Veröffentlichungsdatum 20.08.2023 Github Link https://github.com/crycode-de/ioBroker.ds18b20 Changelog
- Node.js 16.4+, js-controller 4+ und admin 6+ sind erforderlich
- Konfiguration der Sensoren wird nun anders gespeichert
- Neue Admin UI mit JsonConfig
- Wenn Remote-Sensoren verwendet werden, muss im Admin ein neuer Schlüssel dafür festgelegt werden
-
read
undreadNow
Aktionen zusammengefasst - Neuer State
info.remotesConnected
mit einer Liste der verbundenen Remote-Systeme (wenn aktiviert) - Icons für den Sensorstatus zu den Sensorobjekten hinzugefügt
- Markierung von Objekten von deaktivierten Sensoren
- Löschen von Objekten von unkonfigurierten/gelöschten Sensoren
- Aktualisierte Übersetzungen
- Codeoptimierungen und Upgrades auf aktuelle Standards
- Aktualisierte Abhängigkeiten
- Kompatibilität mit js-controller 5 ab v2.0.4
Wichtig
Ab Version 2.0.0 wird die Konfiguration der einzelnen Sensoren anders gespeichert und die Sensor-Objekte werden anders angelegt.
Beim ersten Start mit Version >=2.0.0 wird die alte Konfiguration zum neuen Schema migriert und der Adapter startet anschließend neu. Dabei sollten alle Sensor-spezifischen Einstellungen erhalten bleiben.Wenn Remote-Sensoren verwendet werden, muss im Admin ein neuer Schlüssel dafür festgelegt werden!
Dieser Schlüssel muss natürlich dann auch in der Config der Remote-Systeme eingetragen werden.Was ist besonders zu testen?
- Beim Upgrade von v1.x auf 2.x sollte eine Meldung im Admin angezeigt werden
- Klappt die Migration der Konfiguration?
- Werden die Sensor-Objekte korrekt angelegt?
- Admin UI:
- Funktionieren alle Eingaben etc. und ist alles leicht verständlich?
- Nutzung in Scripten:
- Die Aktionen
read
undreadNow
wurden zusammengefasst und erweitert. Alte Scripte sollten weiterhin problemlos mit beiden funktionieren. Neue Scripte können mehr Infos erhalten. Details in der Doku.
- Die Aktionen
-
Beim aktualisieren kam diese Meldung. Admin ist auf 6.3.5
Vielleicht hat es damit zu tun, das dein Adapter auf einem Slave ohne Admin läuft?
Außerdem kam nach upgrade:
ds18b20.0 2023-07-19 18:09:17.145 warn No sensors configured or enabled!
Ich musste den Adapter noch einmal neu starten, dann war alles ok.
Bis auf:Dabei sollten alle Sensor-spezifischen Einstellungen erhalten bleiben.
Das hat bei einem von drei Sensoren nicht geklappt. Es stand statt dem Namen die Adresse des Sensors drin.
Skripte zum Auslesen verwende ich nicht.
Für mich passt die UI und auch die Doku.
-
@fredf Danke fürs Testen und dein Feedback!
Die Anzeige vom fehlenden Admin hängt mit dem Slave zusammen. Da Admin >=6.0 als globale Abhängigkeit definiert ist, sollte die Installation aber trotzdem problemlos klappen, sobald irgendwo im System Admin installiert ist.
Das klingt so, als wenn die Migration irgendwo hängen geblieben ist. Normalerweise sollte der Adapter nach der Migration selbst neu starten und damit dann laufen wie vorher.
Hast du noch das gesamte Log vom Update und der Migration?
Dazu evtl. auch einen Export deiner alten Adapterconfig vor dem Update?
Dann könnte ich versuchen das nachzuvollziehen. -
@crycode Da komme ich aber erst Sonntag dazu
-
@crycode sagte in Test Adapter ds18b20 v2.0.x:
Hast du noch das gesamte Log vom Update und der Migration?
Dazu evtl. auch einen Export deiner alten Adapterconfig vor dem Update?So bitte schön:
-
@fredf Super, danke dir!
Schau ich mir nachher genauer an und versuche dann das Problem nachzustellen. -
@fredf Denke ich habe den Fehler gefunden und das sollte mit v2.0.2 (ab sofort auf NPM) behoben sein.
Zudem habe ich einen weiteren Bug gefunden und behoben.
Wenn Remote-Sensoren verwendet werden, muss nun im Admin einmalig nach der Migration ein neuer Schlüssel dafür festgelegt werden.
-
Läuft der Adapter eigentlich auf dem neuen js-controller 5?
Habe gerade mal ein Update auf V5 gefahren und der DS18B20-Adapter wirft Fehler und bleibt rot.
host.ioBroker-Slave-KG 2023-08-13 20:20:17.686 warn instance system.adapter.ds18b20.0 terminated due to SIGTERM host.ioBroker-Slave-KG 2023-08-13 20:19:43.702 error instance system.adapter.ds18b20.0 terminated with code 6 (UNCAUGHT_EXCEPTION) host.ioBroker-Slave-KG 2023-08-13 20:19:43.700 error Caught by controller[1]: at Ds18b20Adapter.onReady (/opt/iobroker/node_modules/iobroker.ds18b20/src/main.ts:269:41) host.ioBroker-Slave-KG 2023-08-13 20:19:43.698 error Caught by controller[1]: at new Sensor (/opt/iobroker/node_modules/iobroker.ds18b20/src/sensor.ts:122:33) host.ioBroker-Slave-KG 2023-08-13 20:19:43.697 error Caught by controller[1]: at Ds18b20Adapter.setInterval (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:2603:19) host.ioBroker-Slave-KG 2023-08-13 20:19:43.695 error Caught by controller[1]: at Function.assertNumber (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/validator.ts:288:19) host.ioBroker-Slave-KG 2023-08-13 20:19:43.694 error Caught by controller[1]: Error: Parameter "timeout" needs to be of type "number" but type "string" has been passed host.ioBroker-Slave-KG 2023-08-13 20:19:43.682 error Caught by controller[0]: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: ds18b20.0 2023-08-13 20:19:42.572 info terminating ds18b20.0 2023-08-13 20:19:42.542 warn Terminated (UNCAUGHT_EXCEPTION): Without reason ds18b20.0 2023-08-13 20:19:42.536 info terminating ds18b20.0 2023-08-13 20:19:41.406 error Parameter "timeout" needs to be of type "number" but type "string" has been passed ds18b20.0 2023-08-13 20:19:41.402 error Error: Parameter "timeout" needs to be of type "number" but type "string" has been passed at Function.assertNumber (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/validator.ts:288:19) at Ds18b20Adapter.setInterval (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:2603:19) at new Sensor (/opt/iobroker/node_modules/iobroker.ds18b20/src/sensor.ts:122:33) at Ds18b20Adapter.onReady (/opt/iobroker/node_modules/iobroker.ds18b20/src/main.ts:269:41) ds18b20.0 2023-08-13 20:19:40.003 error unhandled promise rejection: Parameter "timeout" needs to be of type "number" but type "string" has been passed ds18b20.0 2023-08-13 20:19:39.984 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). ds18b20.0 2023-08-13 20:19:39.764 info starting. Version 2.0.2 in /opt/iobroker/node_modules/iobroker.ds18b20, node: v18.17.1, js-controller: 5.0.11
-
@josh Sollte eigentlich laufen, aber schau ich mir noch mal genau an.
Wird aber erst nächste Woche, da ich aktuell im Urlaub bin. -
@josh Ich habe soeben die v2.0.3 auf NPM veröffentlicht. Ab morgen sollte die Version dann auch im im latest-Repo sein.
Kannst du die bitte mal zusammen mit dem aktueller js-controller 5.0.12 testen? Da sollte das dann laufen. -
@crycode Habe den Adapter auf dem neusten js-controller getestet. Bleibt leider noch immer rot. Hier der Log mit Warnstufe Debug.
2023-08-20 18:05:40.563 - debug: ds18b20.0 (19143) Redis Objects: Use Redis connection: 192.168.178.194:9001 2023-08-20 18:05:40.686 - debug: ds18b20.0 (19143) Objects client ready ... initialize now 2023-08-20 18:05:40.693 - debug: ds18b20.0 (19143) Objects create System PubSub Client 2023-08-20 18:05:40.699 - debug: ds18b20.0 (19143) Objects create User PubSub Client 2023-08-20 18:05:40.800 - debug: ds18b20.0 (19143) Objects client initialize lua scripts 2023-08-20 18:05:40.829 - debug: ds18b20.0 (19143) Objects connected to redis: 192.168.178.194:9001 2023-08-20 18:05:40.922 - debug: ds18b20.0 (19143) Redis States: Use Redis connection: 192.168.178.194:6379 2023-08-20 18:05:40.949 - debug: ds18b20.0 (19143) States create System PubSub Client 2023-08-20 18:05:40.955 - debug: ds18b20.0 (19143) States create User PubSub Client 2023-08-20 18:05:40.995 - debug: ds18b20.0 (19143) States connected to redis: 192.168.178.194:6379 2023-08-20 18:05:41.168 - debug: ds18b20.0 (19143) Plugin sentry Initialize Plugin (enabled=true) 2023-08-20 18:05:42.545 - info: ds18b20.0 (19143) starting. Version 2.0.3 in /opt/iobroker/node_modules/iobroker.ds18b20, node: v18.17.1, js-controller: 5.0.12 2023-08-20 18:05:42.758 - error: ds18b20.0 (19143) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). 2023-08-20 18:05:42.776 - error: ds18b20.0 (19143) unhandled promise rejection: Parameter "timeout" needs to be of type "number" but type "string" has been passed 2023-08-20 18:05:44.453 - error: ds18b20.0 (19143) Error: Parameter "timeout" needs to be of type "number" but type "string" has been passed at Function.assertNumber (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/validator.ts:288:19) at Ds18b20Adapter.setInterval (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:2655:19) at new Sensor (/opt/iobroker/node_modules/iobroker.ds18b20/src/sensor.ts:122:33) at Ds18b20Adapter.onReady (/opt/iobroker/node_modules/iobroker.ds18b20/src/main.ts:268:41) 2023-08-20 18:05:44.456 - error: ds18b20.0 (19143) Parameter "timeout" needs to be of type "number" but type "string" has been passed 2023-08-20 18:05:45.493 - info: ds18b20.0 (19143) terminating 2023-08-20 18:05:45.497 - debug: ds18b20.0 (19143) Plugin sentry destroyed 2023-08-20 18:05:45.500 - warn: ds18b20.0 (19143) Terminated (UNCAUGHT_EXCEPTION): Without reason 2023-08-20 18:05:45.523 - info: ds18b20.0 (19143) terminating 2023-08-20 18:05:46.614 - error: host.ioBroker-Slave-KG Caught by controller[0]: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: 2023-08-20 18:05:46.626 - error: host.ioBroker-Slave-KG Caught by controller[1]: Error: Parameter "timeout" needs to be of type "number" but type "string" has been passed 2023-08-20 18:05:46.628 - error: host.ioBroker-Slave-KG Caught by controller[1]: at Function.assertNumber (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/validator.ts:288:19) 2023-08-20 18:05:46.629 - error: host.ioBroker-Slave-KG Caught by controller[1]: at Ds18b20Adapter.setInterval (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:2655:19) 2023-08-20 18:05:46.630 - error: host.ioBroker-Slave-KG Caught by controller[1]: at new Sensor (/opt/iobroker/node_modules/iobroker.ds18b20/src/sensor.ts:122:33) 2023-08-20 18:05:46.632 - error: host.ioBroker-Slave-KG Caught by controller[1]: at Ds18b20Adapter.onReady (/opt/iobroker/node_modules/iobroker.ds18b20/src/main.ts:268:41) 2023-08-20 18:05:46.634 - error: host.ioBroker-Slave-KG instance system.adapter.ds18b20.0 terminated with code 6 (UNCAUGHT_EXCEPTION) 2023-08-20 18:06:22.995 - debug: ds18b20.0 (19206) Redis Objects: Use Redis connection: 192.168.178.194:9001 2023-08-20 18:06:23.118 - debug: ds18b20.0 (19206) Objects client ready ... initialize now 2023-08-20 18:06:23.125 - debug: ds18b20.0 (19206) Objects create System PubSub Client 2023-08-20 18:06:23.131 - debug: ds18b20.0 (19206) Objects create User PubSub Client 2023-08-20 18:06:23.237 - debug: ds18b20.0 (19206) Objects client initialize lua scripts 2023-08-20 18:06:23.271 - debug: ds18b20.0 (19206) Objects connected to redis: 192.168.178.194:9001 2023-08-20 18:06:23.364 - debug: ds18b20.0 (19206) Redis States: Use Redis connection: 192.168.178.194:6379 2023-08-20 18:06:23.397 - debug: ds18b20.0 (19206) States create System PubSub Client 2023-08-20 18:06:23.402 - debug: ds18b20.0 (19206) States create User PubSub Client 2023-08-20 18:06:23.472 - debug: ds18b20.0 (19206) States connected to redis: 192.168.178.194:6379 2023-08-20 18:06:23.587 - debug: ds18b20.0 (19206) Plugin sentry Initialize Plugin (enabled=true) 2023-08-20 18:06:24.608 - error: ds18b20.0 (19206) adapter disabled 2023-08-20 18:06:24.655 - debug: ds18b20.0 (19206) Plugin sentry destroyed 2023-08-20 18:06:24.659 - warn: ds18b20.0 (19206) Terminated (NO_ADAPTER_CONFIG_FOUND): Without reason 2023-08-20 18:06:25.884 - error: host.ioBroker-Slave-KG instance system.adapter.ds18b20.0 terminated with code 3 (NO_ADAPTER_CONFIG_FOUND)
EDIT: neuen Log mit veränderter Warnstufe eingestellt.
-
@josh Danke dir.
Kannst du mal deine Adapter-Config exportieren und posten bitte? Ich hab da eine Vermutung... -
@crycode Gerne. Hier bitte:
-
@josh Nicht als Bild, sondern als json-Datei über den Export-Button oben rechts.
-
@crycode Hups... kannte ich noch nicht. Aber hier bitte schön. IDs habe ich aus 'Datenschutzgründen' verändert.
-
@josh Danke dir! Das bestätigt meine Vermutung. Der
defaultInterval
wird als String und nicht als Zahl gespeichert.
Dem js-controller 4 war das wohl egal (Node.js macht in solchen Fällen automatisch eine Konvertierung der Datentypen), wobei der js-controller 5 da extra prüft.Ich werde versuchen zeitnah einen Fix dafür mit einer neuen Version zu veröffentlichen.
Danke fürs Finden und Melden des Fehlers!
-
@Josh Version 2.0.4 ist ab sofort über NPM und ab morgen dann im latest-Repo verfügbar. Damit sollte das Problem behoben sein.
-
@crycode Adapter wird und bleibt grün. Werte werden ausgelesen. Funktioniert also wieder.
Vielen Dank!
-
Hardwaresystem: Pi3
Arbeitsspeicher: 1GB
Festplattenart: SD-Karte
Betriebssystem: Linux
Node-Version: 18.18.0
Nodejs-Version: 18.18.0
NPM-Version: 9.8.1Servus,
Nach Update auf JS 5.0.12 läuft meine DS18B20 V2.0.4 Instanz nicht mehr richtig.
Der Adapter wechselt immer wieder mal zwischen grün und gelb.
Ich habe drei Sensoren am laufen, vor dem Update liefen sie ohne Probleme
Jetzt fällt immer wieder mal einer oder mehrere mit folgendem Fehlermeldung aus:ds18b20.0 2023-10-27 10:37:41.029 warn Error reading sensor 10-00080289****: Error: Read error
Es ist nicht immer der selbe Sensor.
Hab dann mal alles neu installiert, hat aber nichts gebracht
Direkt nach der erfolgreichen Installation bekam ich aber folgende Adapter Warnung vom der Instanz admin.02023-10-27 08:09:46.811 - warn: admin.0 (3322310) ds18b20 has an invalid jsonConfig: [{"instancePath":"/items/sensorsTab/items/sensors/items/1","schemaPath":"#/patternProperties/%5E.%2B/allOf/22/then/properties/items/items/allOf/20/then/additionalProperties","keyword":"additionalProperties","params":{"additionalProperty":"hide"},"message":"must NOT have additional properties"},{"instancePath":"/items/sensorsTab","schemaPath":"#/properties/items/patternProperties/%5E.%2B/allOf/8/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"}]
Wer kann mir helfen.
-
@chinaboy sagte in Test Adapter ds18b20 v2.0.x:
2023-10-27 10:37:41.029 warn Error reading sensor 10-00080289****: Error: Read error
Das deutet eher auf ein Hardwareproblem hin und heißt eigentlich, dass der Sensor keine brauchbaren Daten geliefert hat bzw. vom System gar nicht erkannt wurde.
Werden vom System unter/sys/bus/w1/devices/
alle Sensoren richtig aufgelistet?@chinaboy sagte in Test Adapter ds18b20 v2.0.x:
2023-10-27 08:09:46.811 - warn: admin.0 (3322310) ds18b20 has an invalid jsonConfig: [...]
Demnach hast du wohl die latest-Version vom Admin-Adapter installiert. Die Warnung ist aber falsch und kann einfach ignoriert werden.