Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. js-controller 3.2 jetzt im Latest!

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.5k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.7k

js-controller 3.2 jetzt im Latest!

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
575 Beiträge 70 Kommentatoren 145.8k Aufrufe 57 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • W Offline
    W Offline
    waterchill
    schrieb am zuletzt editiert von
    #560

    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?

    Thomas BraunT 1 Antwort Letzte Antwort
    0
    • W waterchill

      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?

      Thomas BraunT Online
      Thomas BraunT Online
      Thomas Braun
      Most Active
      schrieb am zuletzt editiert von
      #561

      @waterchill

      Du sollst ja auch nicht mit sudo da rummurksen.

      which iobroker
      

      Linux-Werkzeugkasten:
      https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
      NodeJS Fixer Skript:
      https://forum.iobroker.net/topic/68035/iob-node-fix-skript
      iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

      W 1 Antwort Letzte Antwort
      0
      • Thomas BraunT Thomas Braun

        @waterchill

        Du sollst ja auch nicht mit sudo da rummurksen.

        which iobroker
        
        W Offline
        W Offline
        waterchill
        schrieb am zuletzt editiert von
        #562

        @thomas-braun

        Bei dem Befehl kommt leider gar nix raus

        pi@raspberrypi:/ $ which iobroker
        pi@raspberrypi:/ $
        
        Thomas BraunT 1 Antwort Letzte Antwort
        0
        • W waterchill

          @thomas-braun

          Bei dem Befehl kommt leider gar nix raus

          pi@raspberrypi:/ $ which iobroker
          pi@raspberrypi:/ $
          
          Thomas BraunT Online
          Thomas BraunT Online
          Thomas Braun
          Most Active
          schrieb am zuletzt editiert von Thomas Braun
          #563

          @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.

          Linux-Werkzeugkasten:
          https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
          NodeJS Fixer Skript:
          https://forum.iobroker.net/topic/68035/iob-node-fix-skript
          iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

          1 Antwort Letzte Antwort
          0
          • apollon77A Offline
            apollon77A Offline
            apollon77
            schrieb am zuletzt editiert von
            #564

            ich wäre ja bei fixer ausführen mit dem manuellen curl Befehl wie im Eingangspost genannt

            Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

            • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
            • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
            W 1 Antwort Letzte Antwort
            0
            • apollon77A apollon77

              ich wäre ja bei fixer ausführen mit dem manuellen curl Befehl wie im Eingangspost genannt

              W Offline
              W Offline
              waterchill
              schrieb am zuletzt editiert von
              #565

              @apollon77

              In dem ganzen Topic hier ist von curl nichts zu finden

              ? 1 Antwort Letzte Antwort
              0
              • apollon77A apollon77

                Hallo ioBroker-Community,

                mit etwas zeitlicher Verspätung, dafür aber um so besser, kommt heute der neue js-controller 3.2 (Releasename "Grace") ins Latest Repository (sollte im laufe des Abends bei allen auftauchen). Ein großer Dank geht an alle User die bereits in den Letzten Tagen diese Version im Beta test getestet und Probleme und Fehler zur Behebung gemeldet haben!

                Node.js Versions-Anforderungen
                Die unterstützten Node.js Versionen bleiben in diesem Update gleich: 10.x, 12.x und auch 14.x werden offiziell unterstützt. Aufgrund der übergreifenden Adapter-Kompatibilität bleibt die empfohlene Node.js Version für ioBroker aktuell weiterhin auf 12.x. Falls jemand wirklich mit Node.js 15.x experimentieren will, dann bitte AUSSCHLIESSLICH mit npm 6 !! (die npm Leute haben in npm 7 wieder Dinge geändert, die wir noch untersuchen)
                Bitte beachtet weiterhin bei Node.js Updates die Anleitung im Forum unter https://forum.iobroker.net/post/266625

                Informationen zur Version
                Neben einigen Features haben wir unter der Haube weiter aufgeräumt und sehr viel modernisiert und vereinheitlicht.
                Auch daran den Wildwuchs in der Umsetzung einiger Adapter etwas einzugrenzen wurde weiter gearbeitet, was ggf. zu neuen Log-meldungen für bestimmte Fälle führt. Bitte unterstützt hier wieder und legt bei den relevanten Adaptern im GitHub Issues an, damit diese Dinge gefixt werden können.

                Besonders zu erwähnen ist die Grundlage für das neue Benachrichtigungssystem (kommt dann in einem Admin-Update) und die Reaktivierung von Let's Encrypt zur automatischen Zertifikatsaktualisierung.
                Detailliertere Informationen zu allen Änderungen und Features findet Ihr weiter unten und im Changelog. Ich hoffe auch diesmal auf Eure tatkräftige Unterstützung, sodass der Latest-Release dann genau so reibungslos verläuft wie bei den letzten Versionen.

                In Summe sind in diese Version über 650 commits eingeflossen. Dafür bedenke mich diesmal besonders bei foxriver76, AlCalzone und natürlich Bluefox und auch ein paar weiteren Entwicklern für die aktive Mitarbeit an dieser Version!

                Der js-controller 3.2 ist generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der 2.0/2.1/2.2 ist problemlos möglich. Nur die Node.js Version muss jetzt mindestens 10.x sein, wie oben bereits ausgeführt. Wer überlegt die Node.js Version anzuheben bitte weiter unten im Abschnitt "Was ist zu testen" lesen 🙂

                Es gibt aktuell keine inkompatiblem Adapter, aber einige Empfehlungen weiter unten.


                Installation


                VOR der Installation

                Wie bei jedem Test dieser Art: Bitte macht ein Backup! iobroker backup bzw kopieren des iobroker-data Verzeichnisses reichen an sich aus. Bitte nicht das node_modules Verzeichnis einfach kopieren, da sonst symbolische Links kaputt gehen können, was zu größeren Problemen danach führt. Die alte Version des js-controller kann im Notfall einfach wieder per npm install iobroker.js-controller@version installiert werden und sollte alles wieder herstellen.

                Nötige Adapter-Aktualisierungen

                Aktuell sind keine Inkompatibilitäten bekannt, damit allerdings Let's encrypt wieder funktioniert benötigt es einige Adapter in "Latest" Versionen von mindestens:

                • ioBroker.lovelace 1.4.1 oder höher
                • ioBroker.simple-api 2.5.2 oder höher
                • ioBroker.socketio 3.1.3 oder höher
                • ioBroker.telegram 1.7.0 oder höher
                • ioBroker.web 3.2.2 oder höher
                • ioBroker.admin 4.2.1 oder höher

                Es werden aber, wie oben ausgeführt, einige Adapter ggf Warnungen ins Log schreiben. Falls das Problematisch ist ist aktuell die einzige Option das Loglevel der Instanz auf "Error" zu setzen.

                Achtung: MASTER-Systeme Reihenfolgen beachten!

                Bei einem Multi-Host-System, welches auf js-controller 2.2 oder 3.1 läuft ist es beim Update auf Version 3.2 empfohlen, zuerst das Master-System zu aktualisieren. Der Master muss dann wieder gestartet werden. Die Slaves werden danach aktualisiert!

                Bei Updates von Master/Slave-Systemen mit js-controller 1.5 oder früher auf die 3.2 müssen zwingend zuerst die Slaves und der Master als letztes aktualisiert werden. Beim Slave Updat emuss der alte master aber noch laufen. Die Slaves bleiben nach dem Update offline und können sich nicht zum Master verbinden und werden erst wieder funktionieren wenn auch der Master auf die 3.2 aktualisiert wurde!

                Windows

                Auf Systemen, die mit dem neuen Windows Installer eingerichtet wurden weiss ich gerade nicht wie der aktuelle Prozess ist, da der Windows installer nicht ganz aktuell ist. Bitte hier berichten dann kann ich ergänzen.

                Für alle "alten manuellen" Installationen gilt

                • ioBroker muss gestoppt sein.
                • Vor dem Update bitte prüfen das keine Prozesse mehr laufen
                • iobroker update
                • iobroker upgrade self
                • ioBroker starten

                Linux

                • ioBroker stoppen (iobroker stop)
                • prüfen das keine Prozesse (Adapter, Backups) mehr laufen (ps auxww|grep io und auch ps auxww|grep backup ). Es passiert manchmal das trotz dem Stoppen noch Zombies zurückbleiben
                • iobroker update
                • Wie üblich wird das Update dann per iobroker upgrade self ausgeführt.
                • ioBroker starten (iobroker start)

                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.
                Falls es auch danach noch Fehler gibt, bitte die Installation erneut mittels sudo -H -u iobroker npm install iobroker.js-controller versuchen. Bitte berichtet solche Fälle hier im Thread.

                NACH der Installation

                Nach der Installation den ioBroker wieder starten (z.B. mittels iobroker start).

                Wenn alles klappt merkt Ihr ausser der höheren Versionsnummer in der Host-Ansicht im Admin keinen Unterschied. Alles funktioniert weiterhin wie vorher. Alle Adapterinstanzen starten und funktionieren. Wenn das so ist hat alles geklappt.

                Falls im Log Warn-Meldungen auftauchen mit dem Hinweis diese an den Entwickler zu senden, dann bitte schauen welcher Adapter es ist und entsprechend dort Issues bitte anlegen!

                Mit iobroker help wird eine Liste der möglichen Kommandozeilen-Kommandos angezeigt, die mit Version 2.0 um einige Befehle länger geworden ist. Es geht jetzt auch Kommandospezifisch Hilfe zu erhalten (iobroker upgrade --help)


                Was hat sich geändert, was besonders ansehen/beachten?


                Neben einiger weiterer Bugfixes gibt es folgende Änderungen und Fixes zu erwähnen:

                • generell siehe Changelog, speziell auch für Features
                • Let's Encrypt sollte wieder tun. Minimum Adapterversionen dazu siehe weiter oben!
                • Einige Adapter werden Warnungen ausgeben wenn State-Werte gesetzt werden VOR dem Anlegen von Objekten. Bitte bei den Adapter-Repos melden

                Speziell die Entwickler sollten bitte die genannten Deprecations anschauen und beachten

                Wie bereits gesagt, viele Änderungen fanden hinter den Kulissen statt. Hier für Interessierte als Spoiler eine Zusammenfassung:


                BREAKING CHANGES

                • None, Supported are nodejs 10.x, 12.x and 14.x (Node.js 15.x is also working WHEN USED WITH npm 6!! in the automated tests, but formally not supported)
                • If you have enabled Multihost Discovery please disable and enable it again if you really need it persistant running. By re-enabling it you update the used passphrase with a better encryption mechanism.

                Features

                • (raintonr) Update Let's encrypt implementation; all relevent adapters (web and such) need updates to use it! NEEDS NODE.JS 12.x+! (see DOCS LINK TODO)
                • (bluefox) Restart adapters that use Let's encrypt after certificates were updated
                • (bluefox) Provide min/max for convert alias functions
                • (foxriver76) handling major adapter upgrades more carefully (CLI on upgrade will show if it's a major upgrade and major upgrades will be skipped on upgrade all when executed by admin
                • (AlCalzone) detect and allow short github URL format when (auto-)installing adapters (iobroker url User/repo#branchorcommit)
                • (foxriber76) Add notification system (see DOCS LINK TODO)
                • (foxriver76) enhance setup (and setup first) with redis to all port configuration
                • (foxriver76) set connectionName for redis connections and simulator support (see DOCS LINK TODO)

                Optimizations and Fixes

                • (foxriver76) Detect adapter restart loops and stop restarting after 3 crashes (an adapter is considered "working" when no crash by an exception happens within 10 minutes)
                • (foxriver76) Fix failed logins if username is uppercase, be reworking user logic and caching
                • (bluefox) Set for def states the quality: QUALITY_SUBS_INITIAL
                • (AlCalzone) fix npm uninstall loglevel argument
                • (foxriver76) delete pids.txt when iobroker was stopped
                • (bluefox) Add missing attributes by multihost if Redis is used for objects/states, Remove unused settings from iobroker-dist.json, Remove pass and user from connection settings. Use options.auth_pass
                • (AlCalzone) Package-Manager: log which packages were (already) installed
                • (foxriver76) replace redis "KEYS" command by "SCAN" to optimize redis access performance
                • (foxriver76) optimize redis library usage to prevent errors on redis outages
                • (bluefox) Catch errors by plugins load. At least log will work and could be checked for errors.
                • (foxriver76) allow migration of instances to already existing host
                • (foxriver76) also allow <adapter>.<instance-nr> for install/add cli command
                • (AlCalzone) buffer streams that are piped to stdout to fix weird Windows logging cases
                • (foxriver76/AlCalzone) Optimize upgrade/downgrade logic for adapters, ask for a downgrade only if lower version is to be installed
                • (foxriver76) allow redis redis migration when changing host of redis - fix bug where process crashes when controller is running when migrating
                • (bluefox) Catch errors for subscribe on alias without target
                • (foxriver76) only perform auto scaling on alias if not null
                • (foxriver76) if repository request fails also use cached sources on updating repository
                • (foxriver76) prevent host deletion from same host - otherwise it will remove the system.host states but instances will still be on the removed host, because transfer happens to itself
                • (foxriver76) use instanceObjects from system.adapter.* object instead from io-package.json
                • (foxriver76) notify of errors on readFileCertificates to show permission problems etc.
                • (foxriver76) multihost discovery now logs ignored messages on debug and also logs the senders address
                • (foxriver76) sync up created objects on instance start and instance creation by using helper function in tools.js, e.g. .loglevel was missing on instance creation
                • (bluefox) Package-Manager: Filter empty packets out to suppress error message
                • (foxriver76) rename repository names for new installations and on updates to beta/stable
                • (foxriver76) rewrite collectDiagInfo to Promises and fix minor issue with it
                • (foxriver76) only scale aliases if target or source is represented by unit %
                • (foxriver76) create meta.user on file sync cli, if not existing (see DOCS LINK TODO)
                • (Apollon77) also create meta.user on setup first if not existing
                • (foxriver76) fix enumInstances used by CLI commands
                • (foxriver76) when missing rights to access log dir do not crash hard anymore, instead fallback to default directory
                • (bluefox) Fix error if type of native data changed in the new version from basic type e.g. 'string' to 'object'.
                • (AlCalzone) Remove hardcoded references to GitHub master branch because newer repositories use "main"
                • (Apollon77) update _design objects also on js-controller upgrade/setup first
                • (Apollon77) optimize deletion of files in ioBroker file storage
                • (foxriver76) do not return an error if object does not exist on del*Object
                • (Apollon77) optimize logs when instance is restarted
                • (foxriver76) Preserve name field on instance object creation/update
                • (foxriver76) optimize parameters and flags on CLI
                • (foxriver76) Use yargs helper instead of building our own string output to allow showing --help for a specific command instead of the whole output and allow support for auto completion (iobroker _createCompletion >> ~/.bashrc)
                • (foxriver76, Apollon77) also accept pre-release version in some semver checks for dependencies
                • (foxriver76) replace outdated encryption mechanism of multihost
                • (Apollon77, foxriver, bluefox, AlCalzone) Several fixes and refactorings to prevent potential crash cases reported by Sentry and other sources

                Developer relevant DEPRECATIONS/WARNINGS

                • (foxriver76) we warn if object not exists when setting a state via adapter.setState. Adjust your code that a state value is NOT set before the object is successfully created. If this deep check is NOT wanted for performance reasons the adapter needs to be initialized with strictObjectChecks = false!! (see DOCS LINK TODO)
                • (foxriver76) readFile should not validate meta object, we now throw on writeFile if id is no valid meta object
                • (AlCalzone) update Forbidden ID Characters: use Unicode properties to define which characters are allowed instead of blacklisting. For ASCII the allowed characters are the same as before - for other languages mainly character class of Unicode are allowed! (see DOCS LINK TODO)
                • (foxriver76) Throw on invalid setState objects; was logged as deprecated before
                • (foxriver76) remove getMessage shim, no adapter uses it anymore; was logged as deprecated before

                Developer relevant new Features

                • (foxriver76) use aes-192-cbc as encryption - backward compatible with current encryption, nothing to do for adapter-developers (see DOCS LINK TODO)
                • (bluefox) Add system view to filter for "folder" objects
                • (bluefox) add set/clearTimeout and set/clearInterval to adapter methods and check on unload that they were all cleared and clear if needed with logging, so developers are reminded to clean up!
                • (AlCalzone) Add ...Async version for getChannels - make sure to check before using or use correct js-controller version dependency!
                • (Apollon77) modularize databases into own npm packages and basically support adding new types of databases; add deprecation infos and logging to "old legacy" files in lib/states and lib/objects to not be used anymore; requires mostly updates in testing (see DOCS LINK TODO)
                • (foxriver76) allow to specify the instance for debug starts (iobroker debug adaptername.1)
                • (foxriver76) Enhance extendObject to allow to preserve specified fields (e.g. common.name)

                Developer relevant Optimizations and Fixes

                • (foxriver76) implement maybeCallback and maybeCallbackWithError and use it in adapter.js
                • (AlCalzone) use fs-extra instead of mkdirp
                • (AlCalzone) read JSON files using fs-extra's readJSONSync
                • (AlCalzone) fix callback definitions in adapter.js, We have signatures for (almost) everything in @types/iobroker and we should use them
                • (AlCalzone) move from Promises to async/await in some places, use a single readyPromise instead of an array
                • (bluefox) Added "http" and "stream" options for logs
                • (foxriver76) migrated ci tests to github actions
                • (foxriver76) resolve adapter main file as tools.js method
                • (foxriver76) optimize extendObject with def value
                • (AlCalzone) Handle existing, but undefined properties in validateSetStateObjectArgument
                • (foxriver76) also escape + char on regex, it's not forbidden
                • (bluefox) Set default state only for objects of type "state"
                • (AlCalzone) include folders in the result of getAdapterObjects
                • general dependency updates
                • code style optimizations

                Generell ist zu testen, ob alles noch so funktioniert wie vorher auch. Das ist das wichtigste!


                Wie Fehler melden?


                Wer sich unsicher ist, ob ein Fehler vorliegt, sollte am besten hier im Thread das Problem beschreiben. So können wir alle versuchen, das Problem nachzuvollziehen und ggf. einzugrenzen.

                Sobald ein Fehler auftritt der in einer Fehlermeldung oder einen Crash mit Fehlerdetails im Log oder auf Kommandozeile endet, dann dazu am besten direkt ein GitHub-Issue im js-controller Projekt öffnen und zusätzlich hier im Thread posten. Je detaillierter die Angaben im Issue sind (genaue Fehlermeldungen/Logs, Infos zur OS- und Node.js-Umgebung sowie genaue Schritte zur Reproduktion des Problems), umso schneller können wir Fehler einkreisen und beheben.

                Wir wünschen allen viel Spaß beim Testen und vielen Dank für Eure Unterstützung!

                Ingo

                LatziL Online
                LatziL Online
                Latzi
                schrieb am zuletzt editiert von
                #566

                @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.

                1 Antwort Letzte Antwort
                1
                • W waterchill

                  @apollon77

                  In dem ganzen Topic hier ist von curl nichts zu finden

                  ? Offline
                  ? Offline
                  Ein ehemaliger Benutzer
                  schrieb am zuletzt editiert von
                  #567

                  @waterchill

                  27f6b3aa-e818-4bda-ba76-3e0481816ab7-grafik.png

                  W 1 Antwort Letzte Antwort
                  1
                  • ? Ein ehemaliger Benutzer

                    @waterchill

                    27f6b3aa-e818-4bda-ba76-3e0481816ab7-grafik.png

                    W Offline
                    W Offline
                    waterchill
                    schrieb am zuletzt editiert von
                    #568

                    @ilovegym @Latzi

                    Das geht damit natürlich auch nicht, denn es muss zuerst der iobroker beendet werden. Und iobroker stop geht ja nicht

                    ? 1 Antwort Letzte Antwort
                    0
                    • W waterchill

                      @ilovegym @Latzi

                      Das geht damit natürlich auch nicht, denn es muss zuerst der iobroker beendet werden. Und iobroker stop geht ja nicht

                      ? Offline
                      ? Offline
                      Ein ehemaliger Benutzer
                      schrieb am zuletzt editiert von
                      #569

                      @waterchill Hi, also da ist anscheinend mehr faul .. bitte eigenen Thread öffnen, dann schauen wir detalliert mal weiter.
                      Dankeschön.

                      1 Antwort Letzte Antwort
                      0
                      • apollon77A apollon77

                        @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

                        H Offline
                        H Offline
                        homecineplexx
                        schrieb am zuletzt editiert von homecineplexx
                        #570

                        @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

                        1 Antwort Letzte Antwort
                        0
                        • C Offline
                          C Offline
                          ChristianS
                          schrieb am zuletzt editiert von
                          #571

                          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

                          Thomas BraunT apollon77A 2 Antworten Letzte Antwort
                          0
                          • C ChristianS

                            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

                            Thomas BraunT Online
                            Thomas BraunT Online
                            Thomas Braun
                            Most Active
                            schrieb am zuletzt editiert von Thomas Braun
                            #572

                            @christians

                            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.

                            Linux-Werkzeugkasten:
                            https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                            NodeJS Fixer Skript:
                            https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                            iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                            1 Antwort Letzte Antwort
                            1
                            • C ChristianS

                              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

                              apollon77A Offline
                              apollon77A Offline
                              apollon77
                              schrieb am zuletzt editiert von
                              #573

                              @christians sagte in js-controller 3.2 jetzt im Latest!:

                              /opt/iobroker/node_modules/.bin

                              Ja ... das nicht in dem verzeichnis machen ?! ;-)

                              /opt/iobroker

                              Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                              • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                              • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                              C 1 Antwort Letzte Antwort
                              1
                              • apollon77A apollon77

                                @christians sagte in js-controller 3.2 jetzt im Latest!:

                                /opt/iobroker/node_modules/.bin

                                Ja ... das nicht in dem verzeichnis machen ?! ;-)

                                /opt/iobroker

                                C Offline
                                C Offline
                                ChristianS
                                schrieb am zuletzt editiert von
                                #574

                                @apollon77

                                Leider ändert es nichts, wenn ich das Ganze aus dem /opt/iobroker Verzeichnis heraus mache.

                                Erstmal "normal":

                                pi@ioBroker-Pi:/opt/iobroker $ 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 --prefix "/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-26T21_24_38_839Z-debug.log
                                Starting node restart.js
                                

                                Dann fix.sh inkl. nächstem Versuch:

                                pi@ioBroker-Pi:/opt/iobroker $ curl -sL https://iobroker.net/fix.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)
                                ==========================================================================
                                
                                OK:1 http://archive.raspberrypi.org/debian stretch InRelease
                                OK:2 http://mirrordirector.raspbian.org/raspbian stretch InRelease
                                OK:3 https://deb.nodesource.com/node_10.x stretch InRelease
                                Paketlisten werden gelesen... Fertig
                                Installed gcc-c++
                                
                                ==========================================================================
                                    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 $
                                pi@ioBroker-Pi:/opt/iobroker $
                                pi@ioBroker-Pi:/opt/iobroker $
                                pi@ioBroker-Pi:/opt/iobroker $ 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 --prefix "/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-26T21_28_21_744Z-debug.log
                                Starting node restart.js
                                

                                Und dann noch "mit "sudo -H -u iobroker npm install iobroker.js-controller"

                                pi@ioBroker-Pi:/opt/iobroker $ 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-26T21_30_13_878Z-debug.log
                                
                                

                                Versuche das jetzt mal mit dem manuellen Löschen, wie @Thomas-Braun gesagt hat.

                                Viele Grüße,
                                Christian

                                C 1 Antwort Letzte Antwort
                                0
                                • C ChristianS

                                  @apollon77

                                  Leider ändert es nichts, wenn ich das Ganze aus dem /opt/iobroker Verzeichnis heraus mache.

                                  Erstmal "normal":

                                  pi@ioBroker-Pi:/opt/iobroker $ 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 --prefix "/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-26T21_24_38_839Z-debug.log
                                  Starting node restart.js
                                  

                                  Dann fix.sh inkl. nächstem Versuch:

                                  pi@ioBroker-Pi:/opt/iobroker $ curl -sL https://iobroker.net/fix.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)
                                  ==========================================================================
                                  
                                  OK:1 http://archive.raspberrypi.org/debian stretch InRelease
                                  OK:2 http://mirrordirector.raspbian.org/raspbian stretch InRelease
                                  OK:3 https://deb.nodesource.com/node_10.x stretch InRelease
                                  Paketlisten werden gelesen... Fertig
                                  Installed gcc-c++
                                  
                                  ==========================================================================
                                      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 $
                                  pi@ioBroker-Pi:/opt/iobroker $
                                  pi@ioBroker-Pi:/opt/iobroker $
                                  pi@ioBroker-Pi:/opt/iobroker $ 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 --prefix "/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-26T21_28_21_744Z-debug.log
                                  Starting node restart.js
                                  

                                  Und dann noch "mit "sudo -H -u iobroker npm install iobroker.js-controller"

                                  pi@ioBroker-Pi:/opt/iobroker $ 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-26T21_30_13_878Z-debug.log
                                  
                                  

                                  Versuche das jetzt mal mit dem manuellen Löschen, wie @Thomas-Braun gesagt hat.

                                  Viele Grüße,
                                  Christian

                                  C Offline
                                  C Offline
                                  ChristianS
                                  schrieb am zuletzt editiert von
                                  #575

                                  Aber das manuelle Löschen hat wirklich geholfen.
                                  Ich musste folgende Files aus dem Verzeichnis /opt/iobroker/node_modules/iobroker.js-controller/node_modules/.bin/ löschen:

                                  iobroker
                                  mime
                                  mkdirp
                                  semver

                                  Danach lief die Installation durch:

                                  pi@ioBroker-Pi:/opt/iobroker $ 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 --prefix "/opt/iobroker" (System call)
                                  Starting node restart.js
                                  

                                  iobroker ließ sich starten und ....

                                  pi@ioBroker-Pi:/opt/iobroker $ iobroker version
                                  3.2.16
                                  

                                  Danke Euch für die Unterstützung!

                                  Viele Grüße,
                                  Christian

                                  1 Antwort Letzte Antwort
                                  0
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate
                                  FAQ Cloud / IOT
                                  HowTo: Node.js-Update
                                  HowTo: Backup/Restore
                                  Downloads
                                  BLOG

                                  387

                                  Online

                                  32.4k

                                  Benutzer

                                  81.5k

                                  Themen

                                  1.3m

                                  Beiträge
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Anmelden

                                  • Du hast noch kein Konto? Registrieren

                                  • Anmelden oder registrieren, um zu suchen
                                  • Erster Beitrag
                                    Letzter Beitrag
                                  0
                                  • Home
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe