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. Skripten / Logik
  4. JavaScript
  5. [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    492

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

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

[Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.

Geplant Angeheftet Gesperrt Verschoben JavaScript
474 Beiträge 50 Kommentatoren 102.1k Aufrufe 41 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.
  • A ahzurdan

    Hallo Gemeinde,
    ich versuche das Skript auf meinem Pi4 laufen zu lassen (JS 4.8.4, node-mihome da drin eingetragen, user/pass im Skript)

    Ich bekomme aber nur Fehler beim Skriptstart. Was habe ich vergessen?

    vg
    Sven

    javascript.0 2021-01-28 15:17:41.974 error (2380) at Script.runInContext (vm.js:133:20)
    javascript.0 2021-01-28 15:17:41.974 error (2380) at script.js.skripte.Allgemein.Purify:3:16
    javascript.0 2021-01-28 15:17:41.974 error (2380) at require (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:389:36)
    javascript.0 2021-01-28 15:17:41.973 error (2380) at require (internal/modules/cjs/helpers.js:25:18)
    javascript.0 2021-01-28 15:17:41.973 error (2380) at Module.require (internal/modules/cjs/loader.js:692:17)
    javascript.0 2021-01-28 15:17:41.973 error (2380) at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    javascript.0 2021-01-28 15:17:41.973 error (2380) at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    javascript.0 2021-01-28 15:17:41.973 error (2380) at Module.load (internal/modules/cjs/loader.js:653:32)
    javascript.0 2021-01-28 15:17:41.973 error (2380) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    javascript.0 2021-01-28 15:17:41.972 error (2380) at Module._compile (internal/modules/cjs/loader.js:778:30)
    javascript.0 2021-01-28 15:17:41.972 error (2380) at Object.<anonymous> (/opt/iobroker/node_modules/node-mihome/lib/index.js:5:16)
    javascript.0 2021-01-28 15:17:41.972 error (2380) at require (internal/modules/cjs/helpers.js:25:18)
    javascript.0 2021-01-28 15:17:41.972 error (2380) at Module.require (internal/modules/cjs/loader.js:692:17)
    javascript.0 2021-01-28 15:17:41.972 error (2380) at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    javascript.0 2021-01-28 15:17:41.972 error (2380) at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    javascript.0 2021-01-28 15:17:41.972 error (2380) at Module.load (internal/modules/cjs/loader.js:653:32)
    javascript.0 2021-01-28 15:17:41.971 error (2380) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    javascript.0 2021-01-28 15:17:41.971 error (2380) at Module._compile (internal/modules/cjs/loader.js:778:30)
    javascript.0 2021-01-28 15:17:41.971 error (2380) at Object.<anonymous> (/opt/iobroker/node_modules/node-mihome/lib/device.js:1:16)
    javascript.0 2021-01-28 15:17:41.971 error (2380) at require (internal/modules/cjs/helpers.js:25:18)
    javascript.0 2021-01-28 15:17:41.971 error (2380) at Module.require (internal/modules/cjs/loader.js:692:17)
    javascript.0 2021-01-28 15:17:41.971 error (2380) at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    javascript.0 2021-01-28 15:17:41.970 error (2380) at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    javascript.0 2021-01-28 15:17:41.970 error (2380) at Module.load (internal/modules/cjs/loader.js:653:32)
    javascript.0 2021-01-28 15:17:41.970 error (2380) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    javascript.0 2021-01-28 15:17:41.970 error (2380) at Module._compile (internal/modules/cjs/loader.js:778:30)
    javascript.0 2021-01-28 15:17:41.970 error (2380) at Object.<anonymous> (/opt/iobroker/node_modules/node-mihome/lib/models.js:6:54)
    javascript.0 2021-01-28 15:17:41.970 error (2380) at Array.forEach (<anonymous>:null:null)
    javascript.0 2021-01-28 15:17:41.969 error (2380) at glob.sync.forEach.modelPath (/opt/iobroker/node_modules/node-mihome/lib/models.js:9:23)
    javascript.0 2021-01-28 15:17:41.969 error (2380) at require (internal/modules/cjs/helpers.js:25:18)
    javascript.0 2021-01-28 15:17:41.969 error (2380) at Module.require (internal/modules/cjs/loader.js:692:17)
    javascript.0 2021-01-28 15:17:41.969 error (2380) at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    javascript.0 2021-01-28 15:17:41.969 error (2380) at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    javascript.0 2021-01-28 15:17:41.968 error (2380) at Module.load (internal/modules/cjs/loader.js:653:32)
    javascript.0 2021-01-28 15:17:41.968 error (2380) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    javascript.0 2021-01-28 15:17:41.968 error (2380) script.js.skripte.Allgemein.Purify: /opt/iobroker/node_modules/node-mihome/lib/devices/imibar.cooker.mbihr3.js:26

    P Offline
    P Offline
    Pittini
    Developer
    schrieb am zuletzt editiert von
    #43

    @ahzurdan Wie ich grad auf Git schon schrieb:
    (2380) at script.js.skripte.Allgemein.Purify:3:16 is das Problem, was danach kommt sind folgefehler würd ich sagen. Zeile 3 is das

    const mihome = require('node-mihome');
    

    Also passt iwas mit node-mihome nicht. Auch seltsam ist der Pfad den ich im letzten Logeintrag seh, bei mir sieht der so aus,
    /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/devices/
    aber evtl. is das wegen pi. Jedenfalls, das Problem is nicht das Skript, sondern die Einbindung von node-mihome

    H 1 Antwort Letzte Antwort
    0
    • P Pittini

      @ahzurdan Wie ich grad auf Git schon schrieb:
      (2380) at script.js.skripte.Allgemein.Purify:3:16 is das Problem, was danach kommt sind folgefehler würd ich sagen. Zeile 3 is das

      const mihome = require('node-mihome');
      

      Also passt iwas mit node-mihome nicht. Auch seltsam ist der Pfad den ich im letzten Logeintrag seh, bei mir sieht der so aus,
      /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/devices/
      aber evtl. is das wegen pi. Jedenfalls, das Problem is nicht das Skript, sondern die Einbindung von node-mihome

      H Offline
      H Offline
      hilde0407
      schrieb am zuletzt editiert von
      #44

      @pittini Habe beim Skript folgenden Fehler,,, Das hängt wohl mit dem Yeelight Bulp 2 (farbige Lampe) zusammen...

      20:53:11.425	error	javascript.0 (11255) script.js.common.Wohnung_Anja_und_Volker.Heizungssteuerung.Schlafzimmer.Ventilator_4: Error: Model yeelink.light.color2 is not supported
      20:53:11.427	error	javascript.0 (11255) at CreateDevices (script.js.common.Wohnung_Anja_und_Volker.Heizungssteuerung.Schlafzimmer.Ventilator_4:598:36)
      20:53:11.428	error	javascript.0 (11255) at main (script.js.common.Wohnung_Anja_und_Volker.Heizungssteuerung.Schlafzimmer.Ventilator_4:530:5)
      
      P 1 Antwort Letzte Antwort
      0
      • H hilde0407

        @pittini Habe beim Skript folgenden Fehler,,, Das hängt wohl mit dem Yeelight Bulp 2 (farbige Lampe) zusammen...

        20:53:11.425	error	javascript.0 (11255) script.js.common.Wohnung_Anja_und_Volker.Heizungssteuerung.Schlafzimmer.Ventilator_4: Error: Model yeelink.light.color2 is not supported
        20:53:11.427	error	javascript.0 (11255) at CreateDevices (script.js.common.Wohnung_Anja_und_Volker.Heizungssteuerung.Schlafzimmer.Ventilator_4:598:36)
        20:53:11.428	error	javascript.0 (11255) at main (script.js.common.Wohnung_Anja_und_Volker.Heizungssteuerung.Schlafzimmer.Ventilator_4:530:5)
        
        P Offline
        P Offline
        Pittini
        Developer
        schrieb am zuletzt editiert von
        #45

        @hilde0407 Hm ja, das ist weil der node-mihome Entwickler nach kurzem röcheln wieder in Winterschlaf verfallen ist und weder Issue noch prs bearbeitet. Schnellste Lösung: Das hier unter dem Namen yeelink.light.color2.js ins Verzeichnis /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/devices/
        Dann Js Controller neustarten, dann sollte die funktionieren mit Ausnahme Farbe einstellen, das hab ich noch ned rausgefunden was da erwartet wird.

        const Device = require('../device-miio');
        const { withLightEffect } = require('../utils');
        
        module.exports = class extends Device {
        
          static model = 'yeelink.light.color2';
          static name = 'Yeelight LED Bulb (Color)';
          static image = 'http://static.home.mi.com/app/image/get/file/developer_15233531497uxs6o06.png';
        
          constructor(opts) {
            super(opts);
        
           // this._miotSpecType = 'urn:miot-spec-v2:device:light:0000A001:yeelink-color2:1';
            this._propertiesToMonitor = [
              'power',
              'bright',
              'rgb',
              'color_mode',
              'ct'];
          }
        
          getPower() {
            const { power } = this.properties;
            if (power === 'on') return true;
            if (power === 'off') return false;
            return undefined;
          }
        
          getBrightness() {
            const brightness = parseInt(this.properties.bright, 10);
            if (brightness >= 0) return brightness;
            return undefined;
          }
        
          getColorRgb() {
            const colorRgb = parseInt(this.properties.rgb, 10);
            if (colorRgb >= 1) return colorRgb;
            return undefined;
          }
        
          getMode() {
            const mode = parseInt(this.properties.color_mode, 10);
            if (mode >= 1) return mode;
            return undefined;
          }
        
          getCt() {
            const ct = parseInt(this.properties['color-temperature'], 10);
            if (ct >= 1700) return ct;
            return undefined;
          }
        
        
          setPower(v) {
            return this.miioCall('set_power', withLightEffect(v ? 'on' : 'off'));
          }
        
          setBrightness(v) {
            return this.miioCall('set_bright', withLightEffect(v));
          }
        
          setColorRgb(v) {
            this._miioCall('set_rgb', withLightEffect(v.rgb));
          }
        
          setMode(v) {
            return this.miioCall('set_color_mode', withLightEffect(v));
          }
          setCt(v) {
            return this.miioCall('set_color-temperature', withLightEffect(v));
          }
        
        };
        
        H 2 Antworten Letzte Antwort
        1
        • P Pittini

          @hilde0407 Hm ja, das ist weil der node-mihome Entwickler nach kurzem röcheln wieder in Winterschlaf verfallen ist und weder Issue noch prs bearbeitet. Schnellste Lösung: Das hier unter dem Namen yeelink.light.color2.js ins Verzeichnis /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/devices/
          Dann Js Controller neustarten, dann sollte die funktionieren mit Ausnahme Farbe einstellen, das hab ich noch ned rausgefunden was da erwartet wird.

          const Device = require('../device-miio');
          const { withLightEffect } = require('../utils');
          
          module.exports = class extends Device {
          
            static model = 'yeelink.light.color2';
            static name = 'Yeelight LED Bulb (Color)';
            static image = 'http://static.home.mi.com/app/image/get/file/developer_15233531497uxs6o06.png';
          
            constructor(opts) {
              super(opts);
          
             // this._miotSpecType = 'urn:miot-spec-v2:device:light:0000A001:yeelink-color2:1';
              this._propertiesToMonitor = [
                'power',
                'bright',
                'rgb',
                'color_mode',
                'ct'];
            }
          
            getPower() {
              const { power } = this.properties;
              if (power === 'on') return true;
              if (power === 'off') return false;
              return undefined;
            }
          
            getBrightness() {
              const brightness = parseInt(this.properties.bright, 10);
              if (brightness >= 0) return brightness;
              return undefined;
            }
          
            getColorRgb() {
              const colorRgb = parseInt(this.properties.rgb, 10);
              if (colorRgb >= 1) return colorRgb;
              return undefined;
            }
          
            getMode() {
              const mode = parseInt(this.properties.color_mode, 10);
              if (mode >= 1) return mode;
              return undefined;
            }
          
            getCt() {
              const ct = parseInt(this.properties['color-temperature'], 10);
              if (ct >= 1700) return ct;
              return undefined;
            }
          
          
            setPower(v) {
              return this.miioCall('set_power', withLightEffect(v ? 'on' : 'off'));
            }
          
            setBrightness(v) {
              return this.miioCall('set_bright', withLightEffect(v));
            }
          
            setColorRgb(v) {
              this._miioCall('set_rgb', withLightEffect(v.rgb));
            }
          
            setMode(v) {
              return this.miioCall('set_color_mode', withLightEffect(v));
            }
            setCt(v) {
              return this.miioCall('set_color-temperature', withLightEffect(v));
            }
          
          };
          
          H Offline
          H Offline
          hilde0407
          schrieb am zuletzt editiert von
          #46

          @pittini Vielen Dank!

          1 Antwort Letzte Antwort
          0
          • P Pittini

            @hilde0407 Hm ja, das ist weil der node-mihome Entwickler nach kurzem röcheln wieder in Winterschlaf verfallen ist und weder Issue noch prs bearbeitet. Schnellste Lösung: Das hier unter dem Namen yeelink.light.color2.js ins Verzeichnis /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/devices/
            Dann Js Controller neustarten, dann sollte die funktionieren mit Ausnahme Farbe einstellen, das hab ich noch ned rausgefunden was da erwartet wird.

            const Device = require('../device-miio');
            const { withLightEffect } = require('../utils');
            
            module.exports = class extends Device {
            
              static model = 'yeelink.light.color2';
              static name = 'Yeelight LED Bulb (Color)';
              static image = 'http://static.home.mi.com/app/image/get/file/developer_15233531497uxs6o06.png';
            
              constructor(opts) {
                super(opts);
            
               // this._miotSpecType = 'urn:miot-spec-v2:device:light:0000A001:yeelink-color2:1';
                this._propertiesToMonitor = [
                  'power',
                  'bright',
                  'rgb',
                  'color_mode',
                  'ct'];
              }
            
              getPower() {
                const { power } = this.properties;
                if (power === 'on') return true;
                if (power === 'off') return false;
                return undefined;
              }
            
              getBrightness() {
                const brightness = parseInt(this.properties.bright, 10);
                if (brightness >= 0) return brightness;
                return undefined;
              }
            
              getColorRgb() {
                const colorRgb = parseInt(this.properties.rgb, 10);
                if (colorRgb >= 1) return colorRgb;
                return undefined;
              }
            
              getMode() {
                const mode = parseInt(this.properties.color_mode, 10);
                if (mode >= 1) return mode;
                return undefined;
              }
            
              getCt() {
                const ct = parseInt(this.properties['color-temperature'], 10);
                if (ct >= 1700) return ct;
                return undefined;
              }
            
            
              setPower(v) {
                return this.miioCall('set_power', withLightEffect(v ? 'on' : 'off'));
              }
            
              setBrightness(v) {
                return this.miioCall('set_bright', withLightEffect(v));
              }
            
              setColorRgb(v) {
                this._miioCall('set_rgb', withLightEffect(v.rgb));
              }
            
              setMode(v) {
                return this.miioCall('set_color_mode', withLightEffect(v));
              }
              setCt(v) {
                return this.miioCall('set_color-temperature', withLightEffect(v));
              }
            
            };
            
            H Offline
            H Offline
            hilde0407
            schrieb am zuletzt editiert von
            #47

            @pittini Deine Anleitung hat funktioniert! Mein Problem, nicht nur bei den Lampen (auch beim Ventilator) ist, dass die aktuellen Zustände nicht auf die Datenpunkte übertragen werden. Gibt es da auch eine Lösung?

            P 1 Antwort Letzte Antwort
            0
            • H hilde0407

              @pittini Deine Anleitung hat funktioniert! Mein Problem, nicht nur bei den Lampen (auch beim Ventilator) ist, dass die aktuellen Zustände nicht auf die Datenpunkte übertragen werden. Gibt es da auch eine Lösung?

              P Offline
              P Offline
              Pittini
              Developer
              schrieb am zuletzt editiert von
              #48

              @hilde0407 sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:

              Gibt es da auch eine Lösung?

              Bestimmt. Aber bestimmt nicht ohne Log und etwas genauerer Erklärung was passiert und was nicht.

              1 Antwort Letzte Antwort
              0
              • E Offline
                E Offline
                esche
                schrieb am zuletzt editiert von
                #49

                Hallo zusammen,

                erstmal vielen Dank für das Script @Pittini . Ich habe es mal mit meinem 3H getestet und funktioniert soweit echt gut.

                Was mir aber sofort aufgefallen ist, ist die Verwendung von "setObject" im Script.
                Dies hatte ich bisher im JS-Adapter nicht aktiviert, da dies ja auch aus "Sicherheitsgründen" standardmäßig deaktiviert ist.

                Wäre es vielleicht sinnvoll/möglich dies in der Form nicht zu verwenden?
                Wenn ich die Object-Schemabeschreibung richtig verstehe, ist diese Funktion auch nicht für solche Scripte gedacht und "eigentlich" den Adaptern vorbehalten.
                https://www.iobroker.net/#de/documentation/dev/objectsschema.md#Objekttypen

                Gibt es ggf. einen techn. Grund, warum diese Funktion verwendet werden muss?
                Wenn ja, wäre es nicht etwas "sicherer" die Funktion "extendObject" zu verwenden?
                https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#extendObject

                Falls es sich wirklich nicht vermeiden lässt, sollte dies vielleicht auch in die Installationsanleitung mit aufgenommen werden.

                Gruß
                Esche

                P 1 Antwort Letzte Antwort
                0
                • E esche

                  Hallo zusammen,

                  erstmal vielen Dank für das Script @Pittini . Ich habe es mal mit meinem 3H getestet und funktioniert soweit echt gut.

                  Was mir aber sofort aufgefallen ist, ist die Verwendung von "setObject" im Script.
                  Dies hatte ich bisher im JS-Adapter nicht aktiviert, da dies ja auch aus "Sicherheitsgründen" standardmäßig deaktiviert ist.

                  Wäre es vielleicht sinnvoll/möglich dies in der Form nicht zu verwenden?
                  Wenn ich die Object-Schemabeschreibung richtig verstehe, ist diese Funktion auch nicht für solche Scripte gedacht und "eigentlich" den Adaptern vorbehalten.
                  https://www.iobroker.net/#de/documentation/dev/objectsschema.md#Objekttypen

                  Gibt es ggf. einen techn. Grund, warum diese Funktion verwendet werden muss?
                  Wenn ja, wäre es nicht etwas "sicherer" die Funktion "extendObject" zu verwenden?
                  https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#extendObject

                  Falls es sich wirklich nicht vermeiden lässt, sollte dies vielleicht auch in die Installationsanleitung mit aufgenommen werden.

                  Gruß
                  Esche

                  P Offline
                  P Offline
                  Pittini
                  Developer
                  schrieb am zuletzt editiert von
                  #50

                  @esche sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:

                  Hallo zusammen,

                  erstmal vielen Dank für das Script @Pittini . Ich habe es mal mit meinem 3H getestet und funktioniert soweit echt gut.

                  Was mir aber sofort aufgefallen ist, ist die Verwendung von "setObject" im Script.
                  Dies hatte ich bisher im JS-Adapter nicht aktiviert, da dies ja auch aus "Sicherheitsgründen" standardmäßig deaktiviert ist.

                  Ja, das sollte ich evtl. mal in der Doku dazu schreiben.

                  Wäre es vielleicht sinnvoll/möglich dies in der Form nicht zu verwenden?
                  Wenn Du einen anderen/besseren Weg kennst aus einem Ordner der beim Datenpunktanlegen miterstellt wird, einen Channel oder Device zu machen und nen Namen zu geben....bitte ich höre.

                  Wenn ich die Object-Schemabeschreibung richtig verstehe, ist diese Funktion auch nicht für solche Scripte gedacht und "eigentlich" den Adaptern vorbehalten.
                  https://www.iobroker.net/#de/documentation/dev/objectsschema.md#Objekttypen

                  Es gibt tatsächlich Funktionen welche Adaptern vorbehalten sind. Diese sind auch nur in Adaptern zugänglich. setObjekt is zugänglich also legitim zu verwenden und auch nötig einzusetzen.

                  E 1 Antwort Letzte Antwort
                  0
                  • P Pittini

                    @esche sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:

                    Hallo zusammen,

                    erstmal vielen Dank für das Script @Pittini . Ich habe es mal mit meinem 3H getestet und funktioniert soweit echt gut.

                    Was mir aber sofort aufgefallen ist, ist die Verwendung von "setObject" im Script.
                    Dies hatte ich bisher im JS-Adapter nicht aktiviert, da dies ja auch aus "Sicherheitsgründen" standardmäßig deaktiviert ist.

                    Ja, das sollte ich evtl. mal in der Doku dazu schreiben.

                    Wäre es vielleicht sinnvoll/möglich dies in der Form nicht zu verwenden?
                    Wenn Du einen anderen/besseren Weg kennst aus einem Ordner der beim Datenpunktanlegen miterstellt wird, einen Channel oder Device zu machen und nen Namen zu geben....bitte ich höre.

                    Wenn ich die Object-Schemabeschreibung richtig verstehe, ist diese Funktion auch nicht für solche Scripte gedacht und "eigentlich" den Adaptern vorbehalten.
                    https://www.iobroker.net/#de/documentation/dev/objectsschema.md#Objekttypen

                    Es gibt tatsächlich Funktionen welche Adaptern vorbehalten sind. Diese sind auch nur in Adaptern zugänglich. setObjekt is zugänglich also legitim zu verwenden und auch nötig einzusetzen.

                    E Offline
                    E Offline
                    esche
                    schrieb am zuletzt editiert von
                    #51

                    @pittini said in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:

                    ….auch nötig einzusetzen.

                    Darf ich fragen warum es unbedingt nötig ist? Warum muss das Objekt unbedingt ein Channel/Device sein und kein State?

                    P 1 Antwort Letzte Antwort
                    0
                    • E esche

                      @pittini said in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:

                      ….auch nötig einzusetzen.

                      Darf ich fragen warum es unbedingt nötig ist? Warum muss das Objekt unbedingt ein Channel/Device sein und kein State?

                      P Offline
                      P Offline
                      Pittini
                      Developer
                      schrieb am zuletzt editiert von
                      #52

                      @esche Die Antwort steht in dem von Dir propagierten Link https://www.iobroker.net/#de/documentation/dev/objectsschema.md#Objekttypen

                      Objekttypen

                      state - Datenpunkt. Eltern sollten vom Typ Kanal, Gerät, Instanz oder Host sein
                      channel - Objekt zum Gruppieren eines oder mehrerer Datenpunkte. Eltern sollten Gerät sein.
                      device - Objekt zum Gruppieren eines oder mehrerer Kanäle oder Datenpunkte. Sollte außer dem Adapterinstanz-Namespace kein übergeordnetes Element haben.

                      1 Antwort Letzte Antwort
                      0
                      • M Offline
                        M Offline
                        MrLee
                        schrieb am zuletzt editiert von
                        #53

                        Moin!

                        Habe leider auch das Problem auf meinem Hauptsystem mi-home zum laufen zu bekommen...

                        • mi-home im JavaScript Adapter eingefügt, Script gestartet

                        -> Fehler im Log:

                        javascript.0	2021-02-15 10:20:24.169	error	(179) script.js._Testing.mihome: Error: Cannot find module '/usr/local/iobroker/node_modules/iobroker.javascript/lib/../../node-mihome'
                        

                        mi-home liegt bei mir allerdings unter:
                        '/usr/local/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome

                        Kann man den Pfad umbiegen?

                        Danke Euch!
                        Mr.Lee

                        M Thomas BraunT 2 Antworten Letzte Antwort
                        0
                        • M MrLee

                          Moin!

                          Habe leider auch das Problem auf meinem Hauptsystem mi-home zum laufen zu bekommen...

                          • mi-home im JavaScript Adapter eingefügt, Script gestartet

                          -> Fehler im Log:

                          javascript.0	2021-02-15 10:20:24.169	error	(179) script.js._Testing.mihome: Error: Cannot find module '/usr/local/iobroker/node_modules/iobroker.javascript/lib/../../node-mihome'
                          

                          mi-home liegt bei mir allerdings unter:
                          '/usr/local/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome

                          Kann man den Pfad umbiegen?

                          Danke Euch!
                          Mr.Lee

                          M Offline
                          M Offline
                          MrLee
                          schrieb am zuletzt editiert von
                          #54

                          Nachtrag:

                          Wenn ich den pfad im require auf:

                          const mihome = require('iobroker.javascript/node_modules/node-mihome/');
                          
                          

                          dann kommt im log:

                          javascript.2	2021-02-15 10:40:12.688	error	(7570) at Object.<anonymous> (/usr/local/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/models.js:6:54)
                          javascript.2	2021-02-15 10:40:12.688	error	(7570) at Array.forEach (<anonymous>:null:null)
                          javascript.2	2021-02-15 10:40:12.688	error	(7570) at glob.sync.forEach.modelPath (/usr/local/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/models.js:9:23)
                          javascript.2	2021-02-15 10:40:12.687	error	(7570) at require (internal/modules/cjs/helpers.js:25:18)
                          javascript.2	2021-02-15 10:40:12.687	error	(7570) at Module.require (internal/modules/cjs/loader.js:692:17)
                          javascript.2	2021-02-15 10:40:12.687	error	(7570) at Function.Module._load (internal/modules/cjs/loader.js:585:3)
                          javascript.2	2021-02-15 10:40:12.686	error	(7570) at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
                          javascript.2	2021-02-15 10:40:12.686	error	(7570) at Module.load (internal/modules/cjs/loader.js:653:32)
                          javascript.2	2021-02-15 10:40:12.686	error	(7570) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
                          javascript.2	2021-02-15 10:40:12.685	error	(7570) script.js._Testing.mihome: /usr/local/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/devices/deerma.humidifier.jsq.js:5```
                          Christian MaurerC 1 Antwort Letzte Antwort
                          0
                          • M MrLee

                            Nachtrag:

                            Wenn ich den pfad im require auf:

                            const mihome = require('iobroker.javascript/node_modules/node-mihome/');
                            
                            

                            dann kommt im log:

                            javascript.2	2021-02-15 10:40:12.688	error	(7570) at Object.<anonymous> (/usr/local/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/models.js:6:54)
                            javascript.2	2021-02-15 10:40:12.688	error	(7570) at Array.forEach (<anonymous>:null:null)
                            javascript.2	2021-02-15 10:40:12.688	error	(7570) at glob.sync.forEach.modelPath (/usr/local/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/models.js:9:23)
                            javascript.2	2021-02-15 10:40:12.687	error	(7570) at require (internal/modules/cjs/helpers.js:25:18)
                            javascript.2	2021-02-15 10:40:12.687	error	(7570) at Module.require (internal/modules/cjs/loader.js:692:17)
                            javascript.2	2021-02-15 10:40:12.687	error	(7570) at Function.Module._load (internal/modules/cjs/loader.js:585:3)
                            javascript.2	2021-02-15 10:40:12.686	error	(7570) at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
                            javascript.2	2021-02-15 10:40:12.686	error	(7570) at Module.load (internal/modules/cjs/loader.js:653:32)
                            javascript.2	2021-02-15 10:40:12.686	error	(7570) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
                            javascript.2	2021-02-15 10:40:12.685	error	(7570) script.js._Testing.mihome: /usr/local/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/devices/deerma.humidifier.jsq.js:5```
                            Christian MaurerC Offline
                            Christian MaurerC Offline
                            Christian Maurer
                            schrieb am zuletzt editiert von
                            #55

                            @mrlee
                            Habe leider das gleiche Problem. Testweise habe ich eine neue VM aufgesetzt und iobroker frisch installiert, dann gehts ohne Probleme. Meine Installation hat schon einige Zeit auf dem Buckel, kann es vielleicht ein das durch die ganzen Updates irgend wo mal was "hängen" geblieben ist?

                            Vielleicht kommt ja hier noch eine Lösung, ich denke ich werd aber jetzt mal versuchen wie es sich verhält wenn man ein Backup vom nicht funktionierenden System in die VM einspielt.

                            P 1 Antwort Letzte Antwort
                            0
                            • Christian MaurerC Christian Maurer

                              @mrlee
                              Habe leider das gleiche Problem. Testweise habe ich eine neue VM aufgesetzt und iobroker frisch installiert, dann gehts ohne Probleme. Meine Installation hat schon einige Zeit auf dem Buckel, kann es vielleicht ein das durch die ganzen Updates irgend wo mal was "hängen" geblieben ist?

                              Vielleicht kommt ja hier noch eine Lösung, ich denke ich werd aber jetzt mal versuchen wie es sich verhält wenn man ein Backup vom nicht funktionierenden System in die VM einspielt.

                              P Offline
                              P Offline
                              Pittini
                              Developer
                              schrieb am zuletzt editiert von
                              #56

                              @christian-maurer Wie schon erwähnt, weder kann ichs reproduzieren noch isses ein Skriptfehler an sich. Ich hab absolut keine Ahnung warum das bei einigen vollkommen problemlos geht und bei anderen son Gedöns ist, evtl. hat @apollon77 oder @Dutchman ne spontane Idee dazu?
                              Aber wir können ja derweil mal ne blöde Idee ausprobieren, was passiert denn wenn Du meine Fork, statt der orig. node-mihome im Adapteradmin angibst?
                              108407301-dbae7f00-7223-11eb-9754-f4be9d077eed.png

                              W 2 Antworten Letzte Antwort
                              0
                              • P Pittini

                                @christian-maurer Wie schon erwähnt, weder kann ichs reproduzieren noch isses ein Skriptfehler an sich. Ich hab absolut keine Ahnung warum das bei einigen vollkommen problemlos geht und bei anderen son Gedöns ist, evtl. hat @apollon77 oder @Dutchman ne spontane Idee dazu?
                                Aber wir können ja derweil mal ne blöde Idee ausprobieren, was passiert denn wenn Du meine Fork, statt der orig. node-mihome im Adapteradmin angibst?
                                108407301-dbae7f00-7223-11eb-9754-f4be9d077eed.png

                                W Online
                                W Online
                                Wildbill
                                schrieb am zuletzt editiert von
                                #57

                                @pittini Ich habe es eben mal getestet, weil es mich genervt hat, immer wieder die devices von hand zu kopieren. in Deinem fork sind sie ja drin. Wusste gar nicht, dass das geht. ich habe im JS-Adapter dann aber den kompletten Pfad zu Github eintragen müssen.

                                Es funktioniert, er holt sich beim Starten des JS-Adapters sauber alle devices. Allerdings habe ich dann jedesmal uch einen Error im log:

                                javascript.0	2021-02-22 14:31:24.034	info	(6240) received all states
                                javascript.0	2021-02-22 14:31:23.801	info	(6240) received all objects
                                javascript.0	2021-02-22 14:31:21.471	info	(6240) requesting all objects
                                javascript.0	2021-02-22 14:31:21.470	info	(6240) requesting all states
                                javascript.0	2021-02-22 14:31:21.433	error	(6240) Cannot install npm packet: https://github.com/Pittini/node-mihome
                                javascript.0	2021-02-22 14:31:21.378	info	(6240) found 0 vulnerabilities
                                javascript.0	2021-02-22 14:31:21.298	info	(6240) + node-mihome@0.0.32 updated 1 package and audited 43 packages in 5.238s
                                javascript.0	2021-02-22 14:31:15.284	info	(6240) npm install https://github.com/Pittini/node-mihome --production --prefix "/opt/iobroker/node_modules/iobroker.javascript" (System call)
                                javascript.0	2021-02-22 14:31:15.257	info	(6240) found 0 vulnerabilities
                                javascript.0	2021-02-22 14:31:15.183	info	(6240) + node-mihome@0.0.32 updated 1 package and audited 43 packages in 5.396s
                                javascript.0	2021-02-22 14:31:09.171	info	(6240) npm install https://github.com/Pittini/node-mihome --production --prefix "/opt/iobroker/node_modules/iobroker.javascript" (System call)
                                javascript.0	2021-02-22 14:31:09.144	info	(6240) found 0 vulnerabilities
                                javascript.0	2021-02-22 14:31:09.055	info	(6240) + node-mihome@0.0.32 updated 1 package and audited 43 packages in 5.941s
                                javascript.0	2021-02-22 14:31:02.479	info	(6240) npm install https://github.com/Pittini/node-mihome --production --prefix "/opt/iobroker/node_modules/iobroker.javascript" (System call)
                                javascript.0	2021-02-22 14:31:02.458	info	(6240) starting. Version 4.8.4 in /opt/iobroker/node_modules/iobroker.javascript, node: v12.20.2, js-controller: 3.2.16
                                host.iobroker-vlan100	2021-02-22 14:31:00.878	info	instance system.adapter.javascript.0 started with pid 6240
                                

                                Keine Ahnung, warum die meldung kommt, das npm packet könne nicht installiert werden. Die devices habe ich drin (bis auf die 3 airpurifier nutze ich nichts anderes aus node-mihome) und alles in Javascript scheint korrekt zu laufen. Auch das Script für Xiaomi. Steuern und auslesen problemlos.
                                Hast Du einen Tipp wegen des error?

                                Gruss, Jürgen

                                P 1 Antwort Letzte Antwort
                                0
                                • W Wildbill

                                  @pittini Ich habe es eben mal getestet, weil es mich genervt hat, immer wieder die devices von hand zu kopieren. in Deinem fork sind sie ja drin. Wusste gar nicht, dass das geht. ich habe im JS-Adapter dann aber den kompletten Pfad zu Github eintragen müssen.

                                  Es funktioniert, er holt sich beim Starten des JS-Adapters sauber alle devices. Allerdings habe ich dann jedesmal uch einen Error im log:

                                  javascript.0	2021-02-22 14:31:24.034	info	(6240) received all states
                                  javascript.0	2021-02-22 14:31:23.801	info	(6240) received all objects
                                  javascript.0	2021-02-22 14:31:21.471	info	(6240) requesting all objects
                                  javascript.0	2021-02-22 14:31:21.470	info	(6240) requesting all states
                                  javascript.0	2021-02-22 14:31:21.433	error	(6240) Cannot install npm packet: https://github.com/Pittini/node-mihome
                                  javascript.0	2021-02-22 14:31:21.378	info	(6240) found 0 vulnerabilities
                                  javascript.0	2021-02-22 14:31:21.298	info	(6240) + node-mihome@0.0.32 updated 1 package and audited 43 packages in 5.238s
                                  javascript.0	2021-02-22 14:31:15.284	info	(6240) npm install https://github.com/Pittini/node-mihome --production --prefix "/opt/iobroker/node_modules/iobroker.javascript" (System call)
                                  javascript.0	2021-02-22 14:31:15.257	info	(6240) found 0 vulnerabilities
                                  javascript.0	2021-02-22 14:31:15.183	info	(6240) + node-mihome@0.0.32 updated 1 package and audited 43 packages in 5.396s
                                  javascript.0	2021-02-22 14:31:09.171	info	(6240) npm install https://github.com/Pittini/node-mihome --production --prefix "/opt/iobroker/node_modules/iobroker.javascript" (System call)
                                  javascript.0	2021-02-22 14:31:09.144	info	(6240) found 0 vulnerabilities
                                  javascript.0	2021-02-22 14:31:09.055	info	(6240) + node-mihome@0.0.32 updated 1 package and audited 43 packages in 5.941s
                                  javascript.0	2021-02-22 14:31:02.479	info	(6240) npm install https://github.com/Pittini/node-mihome --production --prefix "/opt/iobroker/node_modules/iobroker.javascript" (System call)
                                  javascript.0	2021-02-22 14:31:02.458	info	(6240) starting. Version 4.8.4 in /opt/iobroker/node_modules/iobroker.javascript, node: v12.20.2, js-controller: 3.2.16
                                  host.iobroker-vlan100	2021-02-22 14:31:00.878	info	instance system.adapter.javascript.0 started with pid 6240
                                  

                                  Keine Ahnung, warum die meldung kommt, das npm packet könne nicht installiert werden. Die devices habe ich drin (bis auf die 3 airpurifier nutze ich nichts anderes aus node-mihome) und alles in Javascript scheint korrekt zu laufen. Auch das Script für Xiaomi. Steuern und auslesen problemlos.
                                  Hast Du einen Tipp wegen des error?

                                  Gruss, Jürgen

                                  P Offline
                                  P Offline
                                  Pittini
                                  Developer
                                  schrieb am zuletzt editiert von Pittini
                                  #58

                                  @wildbill sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:

                                  Hast Du einen Tipp wegen des error?

                                  Leider nein. Das is Systemebene, da hab ich wenig Ahnung von. Evtl. hat @apollon77 oder @Dutchman nen Tipp oder ne Idee?

                                  1 Antwort Letzte Antwort
                                  1
                                  • M MrLee

                                    Moin!

                                    Habe leider auch das Problem auf meinem Hauptsystem mi-home zum laufen zu bekommen...

                                    • mi-home im JavaScript Adapter eingefügt, Script gestartet

                                    -> Fehler im Log:

                                    javascript.0	2021-02-15 10:20:24.169	error	(179) script.js._Testing.mihome: Error: Cannot find module '/usr/local/iobroker/node_modules/iobroker.javascript/lib/../../node-mihome'
                                    

                                    mi-home liegt bei mir allerdings unter:
                                    '/usr/local/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome

                                    Kann man den Pfad umbiegen?

                                    Danke Euch!
                                    Mr.Lee

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

                                    @mrlee sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:

                                    mi-home liegt bei mir allerdings unter:
                                    '/usr/local/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome

                                    Das riecht wieder nach einer 'krummen' node-Installation.

                                    which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs
                                    

                                    anschauen.
                                    Oder bei der Installation im falschen Verzeichnis gestanden.

                                    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

                                    Christian MaurerC 1 Antwort Letzte Antwort
                                    0
                                    • Thomas BraunT Thomas Braun

                                      @mrlee sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:

                                      mi-home liegt bei mir allerdings unter:
                                      '/usr/local/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome

                                      Das riecht wieder nach einer 'krummen' node-Installation.

                                      which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs
                                      

                                      anschauen.
                                      Oder bei der Installation im falschen Verzeichnis gestanden.

                                      Christian MaurerC Offline
                                      Christian MaurerC Offline
                                      Christian Maurer
                                      schrieb am zuletzt editiert von
                                      #60

                                      @pittini hat leider nix gebracht, gleicher Fehler, aber der tipp von @thomas-braun wars, ich weis nicht warum, aber apt hat anscheinend mein nodejs nicht aktualisiert (ist bei version 10 stehen geblieben).
                                      =>
                                      iobroker gestoppt, nodejs mit apt purge runter geschmissen und anschließend neu installiert, dann iobroker wieder gestartet = funktioniert einwandfrei.

                                      DANKE, vielleicht hilfts anderen ja auch.

                                      Thomas BraunT 1 Antwort Letzte Antwort
                                      0
                                      • Christian MaurerC Christian Maurer

                                        @pittini hat leider nix gebracht, gleicher Fehler, aber der tipp von @thomas-braun wars, ich weis nicht warum, aber apt hat anscheinend mein nodejs nicht aktualisiert (ist bei version 10 stehen geblieben).
                                        =>
                                        iobroker gestoppt, nodejs mit apt purge runter geschmissen und anschließend neu installiert, dann iobroker wieder gestartet = funktioniert einwandfrei.

                                        DANKE, vielleicht hilfts anderen ja auch.

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

                                        @christian-maurer sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:

                                        apt hat anscheinend mein nodejs nicht aktualisiert

                                        Dann ist dein Quellen-Verzeichnis nicht richtig.
                                        Das Update von node via Paketmanager ist eigentlich absolut narrensicher.

                                        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

                                        Christian MaurerC 1 Antwort Letzte Antwort
                                        0
                                        • Thomas BraunT Thomas Braun

                                          @christian-maurer sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:

                                          apt hat anscheinend mein nodejs nicht aktualisiert

                                          Dann ist dein Quellen-Verzeichnis nicht richtig.
                                          Das Update von node via Paketmanager ist eigentlich absolut narrensicher.

                                          Christian MaurerC Offline
                                          Christian MaurerC Offline
                                          Christian Maurer
                                          schrieb am zuletzt editiert von
                                          #62

                                          @thomas-braun said in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:

                                          @christian-maurer sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:

                                          apt hat anscheinend mein nodejs nicht aktualisiert

                                          Dann ist dein Quellen-Verzeichnis nicht richtig.
                                          Das Update von node via Paketmanager ist eigentlich absolut narrensicher.

                                          dachte ich bis jetzt auch, wie oben mal erwähnt ist es ein uraltes system das schon über zig debian versionen geupdatet wurde, ich kann mir nur vorstellen das da irgend wo mal was "hängen" geblieben ist. Habs grad nochmal kontroliert und das nodejs installscript hat die Dateien sauber bereinigt/neu angelegt.

                                          Thomas BraunT 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

                                          385

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          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