NEWS
Adapter von "scheduled" auf "deamon "umbauen ..
-
Hey,
ich will gerade den Adapter für "nut" den ich gebaut habe von "scheduled" was er bisher war auf "deamon" umbauen. Wie sollte das passieren?
Reicht es io-package.json, code anzupassen und Adapter zu updaten?
Erstes Testergebnis: Nein! Er scheint immer noch zu "wissen" das der Adapter Scheduled ist und meckert - also scheinbar hat er die io-package.json nicht neu eingelesen.
Ich will heute Abend mal den iobroker komplett neu starten und hoffe das er ggf. dabei die Änderungen der io-package-json neu einliest und er dann den Adapter als Deamon startet …
Oder muss ich noch andere Dinge tun bzw was wäre der korrekte weg?
Ingo F
-
Hey,
ich will gerade den Adapter für "nut" den ich gebaut habe von "scheduled" was er bisher war auf "deamon" umbauen. Wie sollte das passieren?
Reicht es io-package.json, code anzupassen und Adapter zu updaten?
Erstes Testergebnis: Nein! Er scheint immer noch zu "wissen" das der Adapter Scheduled ist und meckert - also scheinbar hat er die io-package.json nicht neu eingelesen.
Ich will heute Abend mal den iobroker komplett neu starten und hoffe das er ggf. dabei die Änderungen der io-package-json neu einliest und er dann den Adapter als Deamon startet …
Oder muss ich noch andere Dinge tun bzw was wäre der korrekte weg?
Ingo F `
Nach dem als die io-package.json Datei geändert wurde, probiere maliobroker upload nut
Zu schreiben.
-
Das hat er automatisch gemacht (hatte per iobroker url <github-url>) das update vom aktuellen Github stand gemacht wo die Änderungen drin sind.
Er hat die laufenden Instanzen zwar nicht gestoppt und neu gestartet, aber der Upload kam direkt hinterher automatisch.
Ich starte heute Abend mal neu …
PS: Wie kann ich denn die "schedule" Einträge löschen oder beachtet er de automatisch nicht mehr wenn "deamon"?</github-url>
-
Also … neustart hat nichts gebracht.
Habe nochmal in den Adapter-Datenpunkten (also "typ" adapter) geschaut und da war noch das alte drin.
Also doch nochmal "iobroker upload nut" gemacht und dann war das korrekt.
Dennoch startet er nicht. Log sagt:
2016-09-29 21:41:56.087 - info: host.cubietruck2 "system.adapter.nut.0" enabled 2016-09-29 21:41:56.089 - info: host.cubietruck2 stopInstance system.adapter.nut.0 2016-09-29 21:41:56.091 - warn: host.cubietruck2 stopInstance system.adapter.nut.0 not scheduled 2016-09-29 21:41:58.598 - error: system.adapter.nut.0 schedule attribute missing
In den "Instance"-Datenpunkten steht auch immer noch "schedule" drin wie bisher. Das wurde also nicht aktualisiert Andere Daten da drin wurden aktualisiert.
Kann man das irgendwie auch aktualisieren oder müssen die Leute wirklich die existierenden Instanzen löschen und neu anlegen mit einem Update?
-
Also … neustart hat nichts gebracht.
Habe nochmal in den Adapter-Datenpunkten (also "typ" adapter) geschaut und da war noch das alte drin.
Also doch nochmal "iobroker upload nut" gemacht und dann war das korrekt.
Dennoch startet er nicht. Log sagt:
2016-09-29 21:41:56.087 - info: host.cubietruck2 "system.adapter.nut.0" enabled 2016-09-29 21:41:56.089 - info: host.cubietruck2 stopInstance system.adapter.nut.0 2016-09-29 21:41:56.091 - warn: host.cubietruck2 stopInstance system.adapter.nut.0 not scheduled 2016-09-29 21:41:58.598 - error: system.adapter.nut.0 schedule attribute missing
In den "Instance"-Datenpunkten steht auch immer noch "schedule" drin wie bisher. Das wurde also nicht aktualisiert Andere Daten da drin wurden aktualisiert.
Kann man das irgendwie auch aktualisieren oder müssen die Leute wirklich die existierenden Instanzen löschen und neu anlegen mit einem Update? `
Ich denke, man kann workaround machen:function main() { adapter.getForeignObject('system.adapter.' + adapter.namespace, function (err, obj) { if (obj.common.mode !== 'daemon') { obj.common.mode = 'daemon'; adapter.setForeignObject(obj._id, obj); } }); ...... }
-
Ok, danke baue ich mal so ein
Macht es sinn irgendwie eine Sonderfunktion zu haben (bzw ein "Event") was bei Install/Update getriggert wird für genau solche Fixes?
-
Ok, danke baue ich mal so ein
Macht es sinn irgendwie eine Sonderfunktion zu haben (bzw ein "Event") was bei Install/Update getriggert wird für genau solche Fixes? `
Es gibt schon.Ein Beispiel :
-
Hey,
muss zwar nochmal testen aber das oben geht nur bedingt … irgendwie wird es nicht ausgeführt weil durch die Umstellung der Adapter irgendwie nicht gestartet wird.
Also wollöte ich es beim Adapter-Update machen wie beschrieben. Da dann die nächste Frage: Wie kriege ich raus wievele Adapter es gibt? Ich müsste ja über alle Adapter Konfigs iterieren ...
getForeignObjects mit nem "*" bei der Instance-ID liefert irgendwie gar nichts
adapter.getForeignObjects('system.adapter.nut.*', function (err, objs) { console.log(JSON.stringify(objs, null, 2)); });
Und ja ich habe das Skript mit "–install --log" gestartet
Any idea?
-
Ich kann momentan keine Lösung ausdenken. Mach einfach ein mal beim Start und das war es.
-
Sollte "getForeignObjects" denn funktionieren? Oder geht das nur mit CouchDB?
Ich teste nochmal mit nem sauber "original" Installierten Adapter mit Schedule. Mal schauen … vllt tuts ja doch magisch
-
Sollte "getForeignObjects" denn funktionieren? Oder geht das nur mit CouchDB?
Ich teste nochmal mit nem sauber "original" Installierten Adapter mit Schedule. Mal schauen … vllt tuts ja doch magisch `
Api ist komplett kompatibel. Das was bei couchdb geht, geht auch mit Objekten.getForeignObjects sollte gehen.