NEWS
js-controller 3.2 jetzt im Latest!
-
@amg_666 nach dem Update zeigt bei mir der Plenticore adapter auch warnungen im log, und nicht wenig
plenticore.0 2021-03-02 16:00:38.072 warn (362561) State "plenticore.0.forecast.day1.power.9h.generated" has no existing object, this might lead to an error in future versions plenticore.0 2021-03-02 16:00:36.563 warn (362561) State "plenticore.0.forecast.day1.power.9h.generated" has no existing object, this might lead to an error in future versions plenticore.0 2021-03-02 16:00:36.562 warn (362561) State "plenticore.0.forecast.day1.power.9h.generated" has no existing object, this might lead to an error in future versions plenticore.0 2021-03-02 16:00:36.561 warn (362561) State "plenticore.0.forecast.day1.power.9h.generated" has no existing object, this might lead to an error in future versions plenticore.0 2021-03-02 16:00:34.798 warn (362561) State "plenticore.0.forecast.day1.power.9h.generated" has no existing object, this might lead to an error in future versions plenticore.0 2021-03-02 16:00:34.797 warn (362561) State "plenticore.0.forecast.day1.power.9h.generated" has no existing object, this might lead to an error in future versions plenticore.0 2021-03-02 16:00:34.797 warn (362561) State "plenticore.0.forecast.day1.power.9h.generated" has no existing object, this might lead to an error in future versions plenticore.0 2021-03-02 16:00:33.176 warn (362561) State "plenticore.0.forecast.day1.power.9h.generated" has no existing object, this might lead to an error in future versions plenticore.0 2021-03-02 16:00:33.174 warn (362561) State "plenticore.0.forecast.day1.power.9h.generated" has no existing object, this might lead to an error in future versions plenticore.0 2021-03-02 16:00:33.174 warn (362561) State "plenticore.0.forecast.day1.power.9h.generated" has no existing object, this might lead to an error in future versions plenticore.0 2021-03-02 16:00:31.450 warn (362561) State "plenticore.0.forecast.day1.power.9h.generated" has no existing object, this might lead to an error in future versions plenticore.0 2021-03-02 16:00:31.449 warn (362561) State "plenticore.0.forecast.day1.power.9h.generated" has no existing object, this might lead to an error in future versions plenticore.0 2021-03-02 16:00:31.449 warn (362561) State "plenticore.0.forecast.day1.power.9h.generated" has no existing object, this might lead to an error in future versions plenticore.0 2021-03-02 16:00:29.783 warn (362561) State "plenticore.0.forecast.day1.power.9h.generated" has no existing object, this might lead to an error in future versions plenticore.0 2021-03-02 16:00:29.783 warn (362561) State "plenticore.0.forecast.day1.power.9h.generated" has no existing object, this might lead to an error in future versions plenticore.0 2021-03-02 16:00:29.781 warn (362561) State "plenticore.0.forecast.day1.power.9h.generated" has no existing object, this might lead to an error in future versions
-
@man10to Bitte Issue beim Adapter eröffnen.
-
@man10to hmm, ich habe eben auf die 2.1.8 upgedatet, keine Probleme:
plenticore.0 2021-03-02 16:14:35.183 info (32361) Using forecast of day 2 for MinSoC calculation. plenticore.0 2021-03-02 16:14:35.182 info (32361) calcMinSoC for day 2. plenticore.0 2021-03-02 16:14:34.579 info (32361) calcMinSoC for day 1. plenticore.0 2021-03-02 16:14:32.806 info (32361) Read forecast data before calcMinSoC. plenticore.0 2021-03-02 16:14:32.796 info (32361) Using daswetter.0 in weather forcast. plenticore.0 2021-03-02 16:14:32.794 info (32361) Still 1 adapters to check. plenticore.0 2021-03-02 16:14:32.567 info (32361) Still 2 adapters to check. plenticore.0 2021-03-02 16:14:32.564 info (32361) Enabling MinSoC forecast data. plenticore.0 2021-03-02 16:14:32.539 info (32361) Enabling forecast data. plenticore.0 2021-03-02 16:14:29.178 info (32361) [INFO] Configured polling interval: 20000 plenticore.0 2021-03-02 16:14:29.175 info (32361) Configured Wp of panel(s) is 7296 plenticore.0 2021-03-02 16:14:29.171 info (32361) Got all internal forecast data and made it available to main process. plenticore.0 2021-03-02 16:14:29.075 info (32361) Requested alternative weather data from kachelmannwetter.com plenticore.0 2021-03-02 16:14:28.928 info (32361) Requested weather data from kachelmannwetter.com plenticore.0 2021-03-02 16:14:28.821 info (32361) City id for coordinates 8.771570193429486/50.28758620000001 is 2862709 plenticore.0 2021-03-02 16:14:28.098 info (32361) got weather data from met.no with 90 elements. plenticore.0 2021-03-02 16:14:27.075 info (32361) [START] Starting adapter plenticore v2.1.8r232 plenticore.0 2021-03-02 16:14:26.999 info (32361) starting. Version 2.1.8 in /opt/iobroker/node_modules/iobroker.plenticore, node: v12.20.1, js-controller: 3.2.16 host.iostrom 2021-03-02 16:14:20.178 info instance system.adapter.plenticore.0 started with pid 32361 host.iostrom 2021-03-02 16:14:15.650 info iobroker exit 0 host.iostrom 2021-03-02 16:14:15.308 info instance system.adapter.plenticore.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION) host.iostrom 2021-03-02 16:14:14.586 info iobroker Adapter "plenticore" updated host.iostrom 2021-03-02 16:14:14.513 info iobroker upload [0] plenticore.admin /opt/iobroker/node_modules/iobroker.plenticore/admin/index_m.html index_m.html text/html host.iostrom 2021-03-02 16:14:14.445 info iobroker upload [1] plenticore.admin /opt/iobroker/node_modules/iobroker.plenticore/admin/plenticore.png plenticore.png image/png plenticore.0 2021-03-02 16:14:14.389 info (13190) Logged out from API host.iostrom 2021-03-02 16:14:14.377 info iobroker upload [2] plenticore.admin /opt/iobroker/node_modules/iobroker.plenticore/admin/style.css style.css text/css plenticore.0 2021-03-02 16:14:14.286 info (13190) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason plenticore.0 2021-03-02 16:14:14.284 info (13190) terminating plenticore.0 2021-03-02 16:14:14.282 info (13190) [END] Stopping plenticore adapter...
-
@amg_666 irgendwie kommt beim Neustart mal ein Wert rein aber nicht mehr so wie vorher immer
ich habs mal auf 605 Sekunden gestellt..
Hier meine Versionen: (oder was meinst du mit 2.1.8
iobroker Platform linux Betriebssystem linux Architektur x64 CPUs 6 Geschwindigkeit 1799 MHz Modell Intel(R) Xeon(R) CPU E5-2630L v3 @ 1.80GHz RAM 4.7 GB System Betriebszeit 5 T. 21:16:30 Node.js v14.16.0 (Empfohlene Version v12.21.0) NPM 6.14.11 Festplatte Größe 195.86 GB Festplatte frei 185.27 GB Anzahl der Adapter 332 Betriebszeit 5 T. 21:16:09 Aktive Instanzen 25 Hostname iobroker
-
-
@thomas-braun was heisst OT ? Off Topic? Ok, aber @man10to hat angefangen
@man10to mach mal einen getrennten Post auf, das hat hier wirklich nix zu suchen, ich kann dann da ausführlich antworten...
-
Hallo,
ich bekomme den controller gar nicht upgedated. Es kommt die Meldung:
pi@raspberrypi:~ $ cd /opt/iobroker pi@raspberrypi:/opt/iobroker $ sudo iobroker stop sudo: iobroker: Befehl nicht gefunden
Scheinbar befindet sich iobroker nicht da wo er sein sollte. Wie finde ich das raus wo iobroker installiert ist?
-
-
Bei dem Befehl kommt leider gar nix raus
pi@raspberrypi:/ $ which iobroker pi@raspberrypi:/ $
-
@waterchill
Du stehst ohnehin in 'komischen' Verzeichnissen.cd ~
Kann es sein, dass du den iobroker als root direkt in das Wurzelverzeichnis / oder in /root geballert hast?
Ist aber auch Off Topic, bitte eigenen Thread eröffnen.
-
ich wäre ja bei fixer ausführen mit dem manuellen curl Befehl wie im Eingangspost genannt
-
In dem ganzen Topic hier ist von curl nichts zu finden
-
@apollon77 sagte in js-controller 3.2 jetzt im Latest!:
Bei Fehlern:
Wenn bei der Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer (iobroker fix wer schon einen js-controller 2.x oder höher hat, alternativ weiterhin manuell via curl -sL https://iobroker.net/fix.sh | bash -) nutzen und die Installation wiederholen. -
-
-
@waterchill Hi, also da ist anscheinend mehr faul .. bitte eigenen Thread öffnen, dann schauen wir detalliert mal weiter.
Dankeschön. -
@apollon77 said in js-controller 3.2 jetzt im Latest!:
@homecineplexx Falls du globale Scripts hast werden die ja davorgehängt. du versuchst auf irgendetwas zuzugreifen was falsch ist. von solchen Javascripts hab ich auch einiges im Sentry wo versucht wird ein state zuzugreifen mit nem "." am ende - das ist jetzt verboten. Muss im javascript adapter wohl noch abgefangen werden
ich hab den fehler jetzt gefunden.
ich verwende scripts die mir quasi virtuelle Devices anlegt (ähnlich wie alias) sieht code und ich bekomme zb den Error für Calculation.JahresVerbrauch_7 also immer wenn ein Datenpunkt angelegt weden soll, wo ein "." dazwischen ist (sprich ein anderes "Verzeichnis"). kann ich das irgendwie umgehen?//generic virtual device function VirtualDevice(config) { //sanity check if (typeof config !== 'object' || typeof config.namespace !== 'string' || typeof config.name !== 'string' || typeof config.states !== 'object') { log('sanity check failed, no device created', 'warn'); return; } this.config = config; this.namespace = 'VirtualDevice.0.' + config.namespace + '.' + config.name; this.name = config.name; //create virtual device log('creating virtual device ' + this.namespace); this.createDevice(function () { this.createStates(function () { log('created virtual device ' + this.namespace); }.bind(this)); }.bind(this)); } VirtualDevice.prototype.createDevice = function (callback) { log('creating object for device ' + this.namespace, 'debug'); //create device object var obj = this.config.copy ? getObject(this.config.copy) : {common: {}, native: {}}; delete obj.common.custom; if (typeof this.config.common === 'object') { obj.common = Object.assign(obj.common, this.config.common); } if (typeof this.config.native === 'object') { obj.native = Object.assign(obj.native, this.config.native); } extendObject(this.namespace, { //type: 'device', type: 'channel', common: obj.common, native: obj.native }, function (err) { if (err) { log('could not create virtual device: ' + this.namespace, 'warn'); return; } log('created object for device ' + this.namespace, 'debug'); if (typeof this.config.onCreate === 'function') { this.config.onCreate(this, callback); } else { callback(); } }.bind(this)); }; VirtualDevice.prototype.createStates = function (callback) { 'use strict'; log('creating states for device ' + this.namespace, 'debug'); var stateIds = Object.keys(this.config.states); log('creating states ' + JSON.stringify(stateIds), 'debug'); var countCreated = 0; for (var i = 0; i < stateIds.length; i++) { let stateId = stateIds[i]; this.normalizeState(stateId); var id = this.namespace + '.' + stateId; log('creating state ' + id, 'debug'); var obj = this.config.states[stateId].copy ? getObject(this.config.states[stateId].copy) : { type: 'state', common: {}, native: {} }; delete obj.common.custom; if (typeof this.config.states[stateId].common === 'object') { obj.common = Object.assign(obj.common, this.config.states[stateId].common); } if (typeof this.config.states[stateId].native === 'object') { obj.native = Object.assign(obj.native, this.config.states[stateId].native); } // var checkObj = getObject(id); //if (!checkObj) { setObject(id, obj, function(err, checkObj) { if (err) { log('skipping creation of state ' + id, 'debug'); } else { log('created state ' + id, 'debug'); } if (!err && checkObj) { //setTimeout(function(){ this.connectState(stateId); countCreated++; if (countCreated >= stateIds.length) { log('created ' + countCreated + ' states for device ' + this.namespace, 'debug'); callback(); } var newId = checkObj.id; var helper = newId.substr(newId.lastIndexOf('.') + 1, newId.length); var stateValueNew = this.config.states[helper].stateValue; if (stateValueNew !== undefined) { setStateDelayed(newId, stateValueNew, 1000); log('set default: ' + stateValueNew + ' for ' + newId); } //}.bind(this), 500); } }.bind(this)); //} } }; VirtualDevice.prototype.normalizeState = function (state) { log('normalizing state ' + state, 'debug'); if (typeof this.config.states[state].read !== 'object') { this.config.states[state].read = {}; } if (typeof this.config.states[state].write !== 'object') { this.config.states[state].write = {}; } var readIds = Object.keys(this.config.states[state].read); for (var i = 0; i < readIds.length; i++) { var readId = this.config.states[state].read[readIds[i]]; if (typeof readId.before !== 'function') { this.config.states[state].read[readIds[i]].before = function (device, value, callback) { callback(); }; } if (typeof readId.after !== 'function') { this.config.states[state].read[readIds[i]].after = function (device, value) { }; } } var writeIds = Object.keys(this.config.states[state].write); for (i = 0; i < writeIds.length; i++) { var writeId = this.config.states[state].write[writeIds[i]]; if (typeof writeId.before !== 'function') { this.config.states[state].write[writeIds[i]].before = function (device, value, callback) { callback() }; } if (typeof writeId.after !== 'function') { this.config.states[state].write[writeIds[i]].after = function (device, value) { }; } } log('normalized state ' + state, 'debug'); }; VirtualDevice.prototype.connectState = function (state) { setTimeout(function(){ log('connecting state ' + state, 'debug'); var id = this.namespace + '.' + state; //subscribe to read ids var readIds = Object.keys(this.config.states[state].read); for (var i = 0; i < readIds.length; i++) { if (readIds[i] === null || readIds[i] === undefined || readIds[i] === '') { continue; } if (getState(readIds[i]).notExist === true) { //check if state exists log('cannot connect to not existing state: ' + readIds[i], 'warn'); continue; } var readObj = this.config.states[state].read[readIds[i]]; var trigger = readObj.trigger || {change: 'any'}; trigger.ack = true; trigger.id = readIds[i]; this.subRead(trigger, readObj, state); log('connected ' + readIds[i] + ' to ' + id, 'debug'); } //subscribe to this state and write to write ids var writeIds = Object.keys(this.config.states[state].write); var trigger = {id: this.namespace + '.' + state, change: 'any', ack: false}; //original var trigger = {id: 'javascript.' + instance + '.' + this.namespace + '.' + state, change: 'any', ack: false}; on(trigger, function (obj) { 'use strict'; log('detected change of ' + state, 'debug'); for (var i = 0; i < writeIds.length; i++) { let writeObj = this.config.states[state].write[writeIds[i]]; let val = this.convertValue(obj.state.val, writeObj.convert); let writeId = writeIds[i]; log('executing function before for ' + writeId, 'debug'); writeObj.before(this, val, function (newVal, newDelay) { if (newVal !== undefined && newVal !== null) val = newVal; var delay = writeObj.delay; if (newDelay !== undefined && newDelay !== null) delay = newDelay; log(newVal + 'writing value ' + val + ' to ' + writeId + ' with delay ' + delay, 'debug'); setStateDelayed(writeId, val, false, delay || 0, true, function () { log('executing function after for ' + writeId, 'debug'); writeObj.after(this, val); }.bind(this)); }.bind(this)); } }.bind(this)); log('connected ' + state + ' to ' + JSON.stringify(writeIds), 'debug'); }.bind(this), 500); }; VirtualDevice.prototype.subRead = function (trigger, readObj, state) { var func = function (obj) { var val = this.convertValue(obj.state.val, readObj.convert); //@todo aggregations log('executing function before for ' + trigger.id, 'debug'); readObj.before(this, val, function (newVal, newDelay) { if (newVal !== undefined && newVal !== null) val = newVal; if (newDelay !== undefined && newDelay !== null) writeObj.delay = newDelay; log('reading value ' + val + ' to ' + this.namespace + '.' + state, 'debug'); setStateDelayed(this.namespace + '.' + state, val, true, readObj.delay || 0, true, function () { log('executing function after for ' + trigger.id, 'debug'); readObj.after(this, val); }.bind(this)); }.bind(this)); }.bind(this); func({state: getState(trigger.id)}); on(trigger, func); }; VirtualDevice.prototype.convertValue = function (val, func) { if (typeof func !== 'function') { return val; } return func(val); }; var deviceId = 'watermeter'; new VirtualDevice({ namespace: 'ESP', name: deviceId, states: { 'isTelegramInfo': { common: {name: 'TelegramInfo wird durch JavaScript gesetzt', role: 'state', type: 'boolean', desc: 'TelegramInfo', read: true, write: true, def: true}, stateValue: true }, 'name': { common: {name: 'VirtualDevice.0.ESP.' + deviceId, role: 'text', type: 'string', desc: 'name', read: true, write: false, def: 'Keller Waschraum - Wasserzähler'}, stateValue: 'Keller Waschraum - Wasserzähler' }, 'Zaehlerstand': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Zaehlerstand', role: 'variable', type: 'number', desc: 'Zaehlerstand', read: true, write: false, def: '0', 'unit': 'm³', custom: { 'influxdb.0': { 'enabled': true, 'changesOnly': true, 'debounce': 0, 'maxLength': 10, 'retention': 0, 'changesRelogInterval': 0, 'changesMinDelta': 0, 'storageType': '', 'aliasId': '' } } }, read: { 'mqtt.0.wasserzaehler.zaehlerstand': { convert: function (val) { return Number(val); }, }, }, }, 'online': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.online', role: 'variable', type: 'boolean', desc: 'online', read: true, write: false, def: false, custom: { 'influxdb.0': { 'enabled': true, 'changesOnly': true, 'debounce': 0, 'maxLength': 10, 'retention': 0, 'changesRelogInterval': 30, 'changesMinDelta': 0, 'storageType': '', 'aliasId': '' } } }, read: { 'mqtt.0.wasserzaehler.error': { convert: function (val) { return val != 'connection lost'; }, trigger: setTimeout(function(){ on({id:'VirtualDevice.0.ESP.' + deviceId + '.online', change: 'ne'}, function (obj) { var value = obj.state.val; if (getState('VirtualDevice.0.ESP.' + deviceId + '.isTelegramInfo').val === true) { var name = getState('VirtualDevice.0.ESP.' + deviceId + '.name').val; _sendLogToTelegram(_findCorrectEmoji('OnlineStatus: ' + name + ' ist ' + (value === true ? 'wieder' : 'nicht') + ' erreichbar.')); } }) }, 500) }, }, write: {} }, 'error': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.error', role: 'text', type: 'string', desc: 'error', read: true, write: false, def: ''}, read: { 'mqtt.0.wasserzaehler.error': { }, }, write: {} }, 'Calculation.TageszaehlStand': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.TageszaehlStand', role: 'variable', type: 'number', desc: 'TageszaehlStand', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.aktuellerTagesVerbrauch': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.aktuellerTagesVerbrauch', role: 'variable', type: 'number', desc: 'aktuellerTagesVerbrauch', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.TagesVerbrauch_1': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.TagesVerbrauch_1', role: 'variable', type: 'number', desc: 'TagesVerbrauch_1', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.TagesVerbrauch_2': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.TagesVerbrauch_2', role: 'variable', type: 'number', desc: 'TagesVerbrauch_2', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.TagesVerbrauch_3': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.TagesVerbrauch_3', role: 'variable', type: 'number', desc: 'TagesVerbrauch_3', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.TagesVerbrauch_4': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.TagesVerbrauch_4', role: 'variable', type: 'number', desc: 'TagesVerbrauch_4', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.TagesVerbrauch_5': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.TagesVerbrauch_5', role: 'variable', type: 'number', desc: 'TagesVerbrauch_5', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.TagesVerbrauch_6': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.TagesVerbrauch_6', role: 'variable', type: 'number', desc: 'TagesVerbrauch_6', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.TagesVerbrauch_7': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.TagesVerbrauch_7', role: 'variable', type: 'number', desc: 'TagesVerbrauch_7', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.WochenzaehlStand': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.WochenzaehlStand', role: 'variable', type: 'number', desc: 'WochenzaehlStand', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.aktuellerWochenVerbrauch': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.aktuellerWochenVerbrauch', role: 'variable', type: 'number', desc: 'aktuellerWochenVerbrauch', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.WochenVerbrauch_1': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.WochenVerbrauch_1', role: 'variable', type: 'number', desc: 'WochenVerbrauch_1', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.WochenVerbrauch_2': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.WochenVerbrauch_2', role: 'variable', type: 'number', desc: 'WochenVerbrauch_2', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.WochenVerbrauch_3': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.WochenVerbrauch_3', role: 'variable', type: 'number', desc: 'WochenVerbrauch_3', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.WochenVerbrauch_4': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.WochenVerbrauch_4', role: 'variable', type: 'number', desc: 'WochenVerbrauch_4', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.WochenVerbrauch_5': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.WochenVerbrauch_5', role: 'variable', type: 'number', desc: 'WochenVerbrauch_5', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.WochenVerbrauch_6': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.WochenVerbrauch_6', role: 'variable', type: 'number', desc: 'WochenVerbrauch_6', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.WochenVerbrauch_7': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.WochenVerbrauch_7', role: 'variable', type: 'number', desc: 'WochenVerbrauch_7', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.MonatzaehlStand': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.MonatzaehlStand', role: 'variable', type: 'number', desc: 'MonatzaehlStand', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.aktuellerMonatVerbrauch': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.aktuellerMonatVerbrauch', role: 'variable', type: 'number', desc: 'aktuellerMonatVerbrauch', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.MonatVerbrauch_1': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.MonatVerbrauch_1', role: 'variable', type: 'number', desc: 'MonatVerbrauch_1', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.MonatVerbrauch_2': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.MonatVerbrauch_2', role: 'variable', type: 'number', desc: 'MonatVerbrauch_2', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.MonatVerbrauch_3': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.MonatVerbrauch_3', role: 'variable', type: 'number', desc: 'MonatVerbrauch_3', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.MonatVerbrauch_4': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.MonatVerbrauch_4', role: 'variable', type: 'number', desc: 'MonatVerbrauch_4', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.MonatVerbrauch_5': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.MonatVerbrauch_5', role: 'variable', type: 'number', desc: 'MonatVerbrauch_5', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.MonatVerbrauch_6': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.MonatVerbrauch_6', role: 'variable', type: 'number', desc: 'MonatVerbrauch_6', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.MonatVerbrauch_7': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.MonatVerbrauch_7', role: 'variable', type: 'number', desc: 'MonatVerbrauch_7', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.MonatVerbrauch_8': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.MonatVerbrauch_8', role: 'variable', type: 'number', desc: 'MonatVerbrauch_8', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.MonatVerbrauch_9': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.MonatVerbrauch_9', role: 'variable', type: 'number', desc: 'MonatVerbrauch_9', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.MonatVerbrauch_10': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.MonatVerbrauch_10', role: 'variable', type: 'number', desc: 'MonatVerbrauch_10', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.MonatVerbrauch_11': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.MonatVerbrauch_11', role: 'variable', type: 'number', desc: 'MonatVerbrauch_11', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.MonatVerbrauch_12': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.MonatVerbrauch_12', role: 'variable', type: 'number', desc: 'MonatVerbrauch_12', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.JahreszaehlStand': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.JahreszaehlStand', role: 'variable', type: 'number', desc: 'JahreszaehlStand', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.aktuellerJahresVerbrauch': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.aktuellerJahresVerbrauch', role: 'variable', type: 'number', desc: 'aktuellerJahresVerbrauch', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.JahresVerbrauch_1': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.JahresVerbrauch_1', role: 'variable', type: 'number', desc: 'JahresVerbrauch_1', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.JahresVerbrauch_2': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.JahresVerbrauch_2', role: 'variable', type: 'number', desc: 'JahresVerbrauch_2', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.JahresVerbrauch_3': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.JahresVerbrauch_3', role: 'variable', type: 'number', desc: 'JahresVerbrauch_3', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.JahresVerbrauch_4': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.JahresVerbrauch_4', role: 'variable', type: 'number', desc: 'JahresVerbrauch_4', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.JahresVerbrauch_5': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.JahresVerbrauch_5', role: 'variable', type: 'number', desc: 'JahresVerbrauch_5', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.JahresVerbrauch_6': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.JahresVerbrauch_6', role: 'variable', type: 'number', desc: 'JahresVerbrauch_6', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, 'Calculation.JahresVerbrauch_7': { common: {name: 'VirtualDevice.0.ESP.' + deviceId + '.Calculation.JahresVerbrauch_7', role: 'variable', type: 'number', desc: 'JahresVerbrauch_7', read: true, write: true, def: 0, min: 0, max: 999999, 'unit': 'm³'}, }, } });
Könnte mir da bitte jemand weiterhelfen, wäre sehr dankbar.
lg -
Hallo zusammen,
leider klappt mein Update von 3.1.6 auf 3.2.16 nicht.
Hab´s ausprobiert, wie beschrieben, aber auch nach dem fix funktioniert es genaus wenig wie mit "sudo -H -u iobroker npm install iobroker.js-controller":pi@ioBroker-Pi:/opt/iobroker/node_modules/.bin $ curl -sL https://iobroker.net/f ix.sh | bash - library: loaded Library version=2021-01-23 ========================================================================== Welcome to the ioBroker installation fixer! Script version: 2020-12-07 You might need to enter your password a couple of times. ========================================================================== ========================================================================== Installing prerequisites (1/3) ========================================================================== Holen:1 http://archive.raspberrypi.org/debian stretch InRelease [25,3 kB] Holen:2 http://mirrordirector.raspbian.org/raspbian stretch InRelease [15,0 kB] Holen:3 http://archive.raspberrypi.org/debian stretch/main armhf Packages [192 k B] Holen:4 http://archive.raspberrypi.org/debian stretch/ui armhf Packages [44,6 kB ] Holen:5 https://deb.nodesource.com/node_10.x stretch InRelease [4.585 B] Holen:6 http://mirrordirector.raspbian.org/raspbian stretch/main armhf Packages [11,7 MB] Holen:7 https://deb.nodesource.com/node_10.x stretch/main armhf Packages [765 B] Holen:8 http://mirrordirector.raspbian.org/raspbian stretch/non-free armhf Packa ges [98,9 kB] Es wurden 12,0 MB in 15 s geholt (766 kB/s). Paketlisten werden gelesen... Fertig Installed gcc-c++ Installed libcairo2-dev Installed libpango1.0-dev Installed libjpeg-dev Installed libgif-dev Installed librsvg2-dev ========================================================================== Checking ioBroker user and directory permissions (2/3) ========================================================================== Created /etc/sudoers.d/iobroker Fixing directory permissions... ========================================================================== Checking autostart (3/3) ========================================================================== Enabling autostart... Autostart enabled! ========================================================================== Your installation was fixed successfully Run iobroker start to start ioBroker again! ========================================================================== pi@ioBroker-Pi:/opt/iobroker/node_modules/.bin $ pi@ioBroker-Pi:/opt/iobroker/node_modules/.bin $ pi@ioBroker-Pi:/opt/iobroker/node_modules/.bin $ iobroker upgrade self Update js-controller from @3.1.6 to @3.2.16 NPM version: 6.14.4 npm install iobroker.js-controller@3.2.16 --loglevel error --unsafe-perm --prefi x "/opt/iobroker" (System call) npm ERR! code EEXIST npm ERR! path /opt/iobroker/node_modules/.bin/iobroker npm ERR! Refusing to delete /opt/iobroker/node_modules/.bin/iobroker: is outside /opt/iobroker/node_modules/iobroker.js-controller and not a link npm ERR! File exists: /opt/iobroker/node_modules/.bin/iobroker npm ERR! Remove the existing file and try again, or run npm npm ERR! with --force to overwrite files recklessly. npm ERR! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2021-03-25T19_56_16_277Z-debug.log Starting node restart.js pi@ioBroker-Pi:/opt/iobroker/node_modules/.bin $ sudo -H -u iobroker npm install iobroker.js-controller npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.1 (node_modules/chokidar/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"}) npm ERR! code EEXIST npm ERR! path /opt/iobroker/node_modules/.bin/iobroker npm ERR! Refusing to delete /opt/iobroker/node_modules/.bin/iobroker: is outside /opt/iobroker/node_modules/iobroker.js-controller and not a link npm ERR! File exists: /opt/iobroker/node_modules/.bin/iobroker npm ERR! Remove the existing file and try again, or run npm npm ERR! with --force to overwrite files recklessly. npm ERR! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2021-03-25T19_58_22_934Z-debug.log pi@ioBroker-Pi:/opt/iobroker/node_modules/.bin $
"Lösche" ich /opt/iobroker/node_modules/.bin/iobroker, kommt dann die Fehlermeldung:
pi@ioBroker-Pi:/opt/iobroker/node_modules/.bin $ sudo -H -u iobroker npm install iobroker.js-controller npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.1 (node_modules/chokidar/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"}) npm ERR! code EEXIST npm ERR! path /opt/iobroker/node_modules/iobroker.js-controller/node_modules/.bin/semver npm ERR! Refusing to delete /opt/iobroker/node_modules/iobroker.js-controller/node_modules/.bin/semver: is outside /opt/iobroker/node_modules/iobroker.js-controller/node_modules/semver and not a link npm ERR! File exists: /opt/iobroker/node_modules/iobroker.js-controller/node_modules/.bin/semver npm ERR! Remove the existing file and try again, or run npm npm ERR! with --force to overwrite files recklessly. npm ERR! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2021-03-25T20_09_00_166Z-debug.log
Hat jemand eine Idee? Was kann ich ausprobieren?
Viele Grüße und danke im Voraus,
Christian -
stretch EOL: 2020-07-06
Vermutlich solltest du die angemeckerten Dateien manuell löschen.
Und du solltest nicht in dem Verzeichnis stehen. Stell dich in dein /home. -
@christians sagte in js-controller 3.2 jetzt im Latest!:
/opt/iobroker/node_modules/.bin
Ja ... das nicht in dem verzeichnis machen ?!
/opt/iobroker