ioBroker.js-controller icon indicating copy to clipboard operation
ioBroker.js-controller copied to clipboard

Restore vom Backitup: Problem mit VIS-Instanzen zeigen falsche Versionsnummern und Icons

Open SurfGargano opened this issue 4 years ago • 6 comments

nachdem ich auf einem neuen System den Restore gemacht habe, haben alle Instanzen der Adapter, die mit VIS- im Namen beginnen, die gleiche Version und das gleiche Icon wie die Instanz VIS selber.

Also z.B.: alle VIS-Material Instanzen haben das Icon von VIS und die Version 1.4.12 Auf meinem Source System, von dem ich das Backup gemacht habe, sind die Instanzen richtig. Alle Adapter und JS-Controller im latest. Interimslösung : iob upload all machen

Nach dem iobroker Install mit curl -sL https://iobroker.net/install.sh | bash -

Used repository: beta Adapter "admin" : 5.3.1 , installed 5.3.1 Adapter "backitup" : 2.3.3 , installed 2.3.3 Adapter "discovery" : 2.8.0 , installed 2.7.5 [Updatable] Controller "js-controller": 4.0.15 , installed 4.0.15 iob list adapter zeigt system.adapter.vis-material : vis-material - v0.1.3 also richtig, im objekt material steht aber 1.4.12. genauso wie der VIS Adapter

{ "_id": "system.adapter.vis-material.0", "type": "instance", "common": { "name": "vis", "version": "1.4.12", "title": "material widgets", "desc": { "en": "Graphical user interface for iobroker", "de": "Grafische Benutzeroberfläche für iobroker", "ru": "Графический пользовательский интерфейс для iobroker", "pt": "Interface gráfica do usuário para iobroker", "fr": "Interface utilisateur graphique pour iobroker", "nl": "Grafische gebruikersinterface voor iobroker", "it": "Interfaccia utente grafica per iobroker", "es": "Interfaz gráfica de usuario para iobroker", "pl": "Graficzny interfejs użytkownika dla iobroker", "zh-cn": "iobroker的图形化用户界面" }, "platform": "Javascript/Node.js", "icon": "vis.png", "enabled": false, "mode": "once", "extIcon": "https://raw.githubusercontent.com/iobroker/iobroker.vis/master/admin/vis.png", "keywords": [ "DashUI", "GUI", "graphical", "scada" ], "readme": "https://github.com/iobroker/iobroker.vis/blob/master/README.md", "authors": [ "bluefox <[email protected]>" ], "localLink": "%web_protocol%://%ip%:%web_port%/vis/edit.html", "license": "CC-BY-NC-4.0", "dependencies": [ { "web": ">=3.0.12" }, { "js-controller": ">=2.0.0" } ], "onlyWWW": true, "noConfig": false, "singleton": true, "type": "visualization", "restartAdapters": [ "vis" ], "installedFrom": "[email protected]", "installedVersion": "1.4.12", "host": "raspberrypi", "loglevel": "warn", "titleLang": { "en": "Visualisation", "de": "Visualisierung", "ru": "Визуализация", "pt": "Visualização", "nl": "Visualisatie", "fr": "Visualisation", "it": "Visualizzazione", "es": "Visualización", "pl": "Wizualizacja", "zh-cn": "可视化" }, "localLinks": { "_default": "%web_protocol%://%ip%:%web_port%/vis/edit.html" }, "serviceStates": "lib/states.js", "connectionType": "local", "dataSource": "push", "tier": 3, "adminUI": { "config": "materialize" }, "compact": true, "materialize": true, "welcomeScreen": { "link": "vis/index.html", "name": "vis runtime", "img": "vis/img/favicon.png", "color": "#ffe9c8", "order": 0 }, "welcomeScreenPro": { "link": "vis/edit.html", "name": "vis editor", "img": "vis/img/faviconEdit.png", "color": "#c8ffe1", "order": 1 } }, "native": { "dependencies": [], "defaultFileMode": 1604, "license": "", "useLicenseManager": 0 }, "from": "system.host.raspberrypi.cli", "ts": 1645877808521, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "user": "system.user.admin", "protectedNative": [], "encryptedNative": [], "notifications": [], "instanceObjects": [ { "_id": "", "type": "meta", "common": { "name": "user files and images for vis", "type": "meta.user" }, "native": {} }, { "_id": "control", "type": "channel", "common": { "name": "Control vis" }, "native": {} }, { "_id": "control.instance", "type": "state", "common": { "name": "Control vis", "type": "string", "desc": "Write here browser instance ID to control or 'FFFFFFFF' to control all instances" }, "native": {} }, { "_id": "control.command", "type": "state", "common": { "name": "Command for vis", "type": "string", "desc": "Writing this variable act as the trigger. Instance and data must be preset before 'command' will be written. 'changedView' will be signalled too", "states": { "alert": "alert", "changeView": "changeView", "refresh": "refresh", "reload": "reload", "dialog": "dialog", "popup": "popup", "playSound": "playSound", "changedView": "changedView", "tts": "tts" } }, "native": {} }, { "_id": "control.data", "type": "state", "common": { "name": "Data for control vis", "type": "string", "desc": "Used for: alert, changeView, dialog, popup, playSound, changedView" }, "native": {} } ], "objects": [] }

SurfGargano avatar Feb 26 '22 15:02 SurfGargano

Only redis is affected and the change might haves bigger side effects and need Tonne considered carefully.

Workaround is „iob upload all“

Apollon77 avatar Feb 27 '22 09:02 Apollon77

The issue is more or less, the string comparison of startkey endkey done in Lua. Lua does string comparison based on locale settings, it seems to work correctly with

sudo localectl set-locale LANG=C

However, we have to further investigate how we want to fix this.

foxriver76 avatar Feb 27 '22 21:02 foxriver76

so the solution with less impact is to configure the environment of the systemd redis-server e.g./usr/lib/systemd/system/redis-server.service and set Environment="LANG=C"

Furthermore, we can detect this by sending a small script e.g. in setup to the redis server

EVAL "return 'c-i.t' >= 'c.' and 'c-i.t' < 'c.香'" 1 1

if it returns 1, the bug is existent. Then, we will link the user a short documentation on how to fix this.

foxriver76 avatar Feb 28 '22 14:02 foxriver76

https://forum.iobroker.net/topic/52976/wichtiger-hinweis-f%C3%BCr-redis-installationen

Apollon77 avatar Feb 28 '22 21:02 Apollon77

So whats left to do, is to print out a note on iob setup run if the system is affected by this unintended behavior.

foxriver76 avatar Jun 06 '22 20:06 foxriver76

Yes

Apollon77 avatar Jun 06 '22 20:06 Apollon77

Idea from Core chat: Check on controller start and if affected add a system notification

Apollon77 avatar Nov 29 '22 21:11 Apollon77