Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • crunchip
      crunchip Forum Testing Most Active @Pittini last edited by

      @Pittini ok, ich hatte nun mal die zhimi.airpurifier.mb3.js getauscht und neugestartet, allerdings habe ich nun in beiden scripten den Fehler dass das Modul nicht gefunden wird

      15:18:28.521	info	javascript.0 (26884) Stop script script.js.MiHome
      15:18:28.532	info	javascript.0 (26884) Start javascript script.js.MiHome
      15:18:28.555	error	javascript.0 (26884) script.js.MiHome: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../node-mihome'
      15:18:28.555	error	javascript.0 (26884) at script.js.MiHome:3:16
      15:18:28.556	error	javascript.0 (26884) at script.js.MiHome:444:3
      15:18:28.556	info	javascript.0 (26884) script.js.MiHome: Starting AllMyMi V.0.1.7
      15:18:28.557	info	javascript.0 (26884) script.js.MiHome: Reaching init
      15:18:28.558	info	javascript.0 (26884) script.js.MiHome: registered 0 subscriptions and 0 schedules
      15:18:28.559	error	javascript.0 (26884) script.js.MiHome: TypeError: Cannot read property 'miioProtocol' of undefined
      15:18:28.559	error	javascript.0 (26884) at Init (script.js.MiHome:201:12)
      15:18:28.559	error	javascript.0 (26884) at script.js.MiHome:65:1
      15:18:28.559	error	javascript.0 (26884) at script.js.MiHome:444:3
      
      15:24:55.022	info	javascript.0 (26884) Stop script script.js.purifier3H
      15:24:55.036	info	javascript.0 (26884) Start javascript script.js.purifier3H
      15:24:55.059	error	javascript.0 (26884) script.js.purifier3H: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../node-mihome'
      15:24:55.063	error	javascript.0 (26884) at script.js.purifier3H:3:16
      15:24:55.063	error	javascript.0 (26884) at script.js.purifier3H:272:3
      15:24:55.064	info	javascript.0 (26884) script.js.purifier3H: Starting MiHome-Airpurifier3H-V0.1.6
      15:24:55.064	info	javascript.0 (26884) script.js.purifier3H: Reaching init
      15:24:55.064	info	javascript.0 (26884) script.js.purifier3H: registered 0 subscriptions and 0 schedules
      15:24:55.065	error	javascript.0 (26884) script.js.purifier3H: TypeError: Cannot read property 'miioProtocol' of undefined
      15:24:55.066	error	javascript.0 (26884) at Init (script.js.purifier3H:114:12)
      15:24:55.066	error	javascript.0 (26884) at script.js.purifier3H:29:1
      15:24:55.066	error	javascript.0 (26884) at script.js.purifier3H:272:3
      
      P 1 Reply Last reply Reply Quote 0
      • P
        Pittini Developer @crunchip last edited by

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

        @Pittini ok, ich hatte nun mal die zhimi.airpurifier.mb3.js getauscht und neugestartet, allerdings habe ich nun in beiden scripten den Fehler dass das Modul nicht gefunden wird

        Na dann hast beim ändern iwas falsch gemacht. Isses denn im JS Adapter noch drin?

        crunchip 1 Reply Last reply Reply Quote 0
        • crunchip
          crunchip Forum Testing Most Active @Pittini last edited by crunchip

          @Pittini wüsste nicht was ich da falsch machen kann.
          Hab die .js aufgerufen und mit der aus deinem Link ersetzt.

          const  Device  =  require ( '../device-miio' ) ;
          
          Modul . exportiert  =  Klasse  erweitert  Gerät  {
          
           statisches  Modell  =  'zhimi.airpurifier.mb3' ;
           statischer  Name  =  'Mi Air Purifier 3H' ;
           statisches  Bild  =  'http://static.home.mi.com/app/image/get/file/developer_1543307568u9wu6wij.png' ;
          
           Konstruktor ( opts )  {
             super ( opts ) ;
          
             das . _miotSpecType  =  'Urne: miot-spec-v2: Gerät: Luftreiniger: 0000A007: zhimi-mb3: 2' ;
             das . _propertiesToMonitor  =  [
               'Luftreiniger: Fehler' ,
               'Luftreiniger: ein' ,
               'Luftreiniger: Lüfterstand' ,
               'Luftreiniger: Modus' ,
               'Umwelt: pm2.5-Dichte' ,
               'Umwelt: relative Luftfeuchtigkeit' ,
               'Umgebung: Temperatur' ,
               'Filter: Filterlebensdauer' ,
               'filter: filter-used-time' ,
               'Alarm: Alarm' ,
               'Anzeigelampe: Helligkeit' ,
               'Anzeigelampe: an' ,
               'physische Kontrollen gesperrt: physische Kontrollen gesperrt' ] ;
           }}
          
           getFilterlife ( )  {
             gib  das zurück . Eigenschaften [ 'Filter: Filterlebensdauer' ] ;
           }}
          
           getFilterused ( )  {
             gib  das zurück . Eigenschaften [ 'Filter: Filter-Verwendete Zeit' ] ;
           }}
          
           getPower ( )  {
             gib  das zurück . Eigenschaften [ 'Luftreiniger: ein' ] ;
           }}
          
           getMode ( )  {
             const  mode  =  this . Eigenschaften [ 'Luftreiniger: Modus' ] ;
             wenn  ( Modus  ===  0 )  zurückzukehren  'auto' ;
             wenn  ( Modus  ===  1 )  zurückzukehren  'Schlaf' ;
             wenn  ( Modus  ===  2 )  return  'Favorit' ;
             wenn  ( Modus  ===  3 )  zurück  'keine' ;
             return  undefined ;
           }}
          
           getFanLevel ( )  {  // 1 - 3
             gib  das zurück . Eigenschaften [ 'Luftreiniger: Gebläsestufe' ] ;
           }}
          
           getTemperature ( )  {
             gib  das zurück . Eigenschaften [ 'Umgebung: Temperatur' ] ;
           }}
          
           getHumidity ( )  {
             gib  das zurück . Eigenschaften [ 'Umgebung: relative Luftfeuchtigkeit' ] ;
           }}
          
           // eslint-disable-next-line camelcase
           getPM2_5 ( )  {
             gib  das zurück . Eigenschaften [ 'Umgebung: pm2.5-Dichte' ] ;
           }}
          
           getFilterRemaining ( )  {
             const  filterTotal  =  this . Eigenschaften [ 'Filter: Filterlebensdauer' ] ;
             const  filterUsed  =  this . Eigenschaften [ 'Filter: Filter-Verwendete Zeit' ] ;
             if  ( filterTotal  >  0  &&  filterUsed > = 0 )  {
               // return Math.max ((1 - filterUsed / filterTotal) * 100, 0);
               Rückkehr  Math . max ( filterUsed / ( 100  -  filterTotal ) * filterTotal / 24 ,  0 ) ;
             }}
             return  undefined ;
           }}
          
           getBuzzer ( )  {
             gib  das zurück . Eigenschaften [ 'Alarm: Alarm' ] ;
           }}
          
           getLcdBrightness ( )  {
             gib  das zurück . Eigenschaften [ 'Anzeigelampe: Helligkeit' ] ;
           }}
          
           setPower ( v )  {
             gib  das zurück . miotSetProperty ( 'Luftreiniger: ein' ,  v ) ;
           }}
          
           setMode ( v )  {
             if  ( v  ===  'auto' )  v  =  0 ;
             sonst  wenn  ( v  ===  'Schlaf' )  v  =  1 ;
             sonst  wenn  ( v  ===  'Favorit' )  v  =  2 ;
             sonst  wenn  ( v  ===  'keine' )  v  =  3 ;
             gib  das zurück . miotSetProperty ( 'Luftreiniger: Modus' ,  v ) ;
           }}
          
           setFanLevel ( v )  {  // 1-3
             gib  das zurück . miotSetProperty ( 'Luftreiniger: Lüfterstufe' ,  v ) ;
           }}
          
           setBuzzer ( v )  {
             gib  das zurück . miotSetProperty ( 'alarm: alarm' ,  v ) ;
           }}
          
           setLcdBrightness ( v )  {  // 0-hellste, 1-schimmernde, 2-led_closed
             gib  das zurück . miotSetProperty ( 'Anzeigelampe: Helligkeit' ,  v ) ;
           }}
          
           setChildLock ( v )  {
             gib  das zurück . miotSetProperty ( 'physische Kontrollen gesperrt: physische Kontrollen gesperrt' ,  v ) ;
           }}
          
          } ;
          
          


          edit: jetzt weiss ich den Fehler, Browser hatte übersetzt englisch/deutsch, hatte ich nicht drauf geachtet

          Edit1:Purifier Script stimmen nun die Datenpunkte 👍
          AllmyMi aber unverändert-keine Werte

          P 1 Reply Last reply Reply Quote 1
          • P
            Pittini Developer @crunchip last edited by

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

            @Pittini wüsste nicht was ich da falsch machen kann.
            Hab die .js aufgerufen und mit der aus deinem Link ersetzt.

            const  Device  =  require ( '../device-miio' ) ;
            
            Modul . exportiert  =  Klasse  erweitert  Gerät  {
            
             statisches  Modell  =  'zhimi.airpurifier.mb3' ;
             statischer  Name  =  'Mi Air Purifier 3H' ;
             statisches  Bild  =  'http://static.home.mi.com/app/image/get/file/developer_1543307568u9wu6wij.png' ;
            
             Konstruktor ( opts )  {
               super ( opts ) ;
            
               das . _miotSpecType  =  'Urne: miot-spec-v2: Gerät: Luftreiniger: 0000A007: zhimi-mb3: 2' ;
               das . _propertiesToMonitor  =  [
                 'Luftreiniger: Fehler' ,
                 'Luftreiniger: ein' ,
                 'Luftreiniger: Lüfterstand' ,
                 'Luftreiniger: Modus' ,
                 'Umwelt: pm2.5-Dichte' ,
                 'Umwelt: relative Luftfeuchtigkeit' ,
                 'Umgebung: Temperatur' ,
                 'Filter: Filterlebensdauer' ,
                 'filter: filter-used-time' ,
                 'Alarm: Alarm' ,
                 'Anzeigelampe: Helligkeit' ,
                 'Anzeigelampe: an' ,
                 'physische Kontrollen gesperrt: physische Kontrollen gesperrt' ] ;
             }}
            
             getFilterlife ( )  {
               gib  das zurück . Eigenschaften [ 'Filter: Filterlebensdauer' ] ;
             }}
            
             getFilterused ( )  {
               gib  das zurück . Eigenschaften [ 'Filter: Filter-Verwendete Zeit' ] ;
             }}
            
             getPower ( )  {
               gib  das zurück . Eigenschaften [ 'Luftreiniger: ein' ] ;
             }}
            
             getMode ( )  {
               const  mode  =  this . Eigenschaften [ 'Luftreiniger: Modus' ] ;
               wenn  ( Modus  ===  0 )  zurückzukehren  'auto' ;
               wenn  ( Modus  ===  1 )  zurückzukehren  'Schlaf' ;
               wenn  ( Modus  ===  2 )  return  'Favorit' ;
               wenn  ( Modus  ===  3 )  zurück  'keine' ;
               return  undefined ;
             }}
            
             getFanLevel ( )  {  // 1 - 3
               gib  das zurück . Eigenschaften [ 'Luftreiniger: Gebläsestufe' ] ;
             }}
            
             getTemperature ( )  {
               gib  das zurück . Eigenschaften [ 'Umgebung: Temperatur' ] ;
             }}
            
             getHumidity ( )  {
               gib  das zurück . Eigenschaften [ 'Umgebung: relative Luftfeuchtigkeit' ] ;
             }}
            
             // eslint-disable-next-line camelcase
             getPM2_5 ( )  {
               gib  das zurück . Eigenschaften [ 'Umgebung: pm2.5-Dichte' ] ;
             }}
            
             getFilterRemaining ( )  {
               const  filterTotal  =  this . Eigenschaften [ 'Filter: Filterlebensdauer' ] ;
               const  filterUsed  =  this . Eigenschaften [ 'Filter: Filter-Verwendete Zeit' ] ;
               if  ( filterTotal  >  0  &&  filterUsed > = 0 )  {
                 // return Math.max ((1 - filterUsed / filterTotal) * 100, 0);
                 Rückkehr  Math . max ( filterUsed / ( 100  -  filterTotal ) * filterTotal / 24 ,  0 ) ;
               }}
               return  undefined ;
             }}
            
             getBuzzer ( )  {
               gib  das zurück . Eigenschaften [ 'Alarm: Alarm' ] ;
             }}
            
             getLcdBrightness ( )  {
               gib  das zurück . Eigenschaften [ 'Anzeigelampe: Helligkeit' ] ;
             }}
            
             setPower ( v )  {
               gib  das zurück . miotSetProperty ( 'Luftreiniger: ein' ,  v ) ;
             }}
            
             setMode ( v )  {
               if  ( v  ===  'auto' )  v  =  0 ;
               sonst  wenn  ( v  ===  'Schlaf' )  v  =  1 ;
               sonst  wenn  ( v  ===  'Favorit' )  v  =  2 ;
               sonst  wenn  ( v  ===  'keine' )  v  =  3 ;
               gib  das zurück . miotSetProperty ( 'Luftreiniger: Modus' ,  v ) ;
             }}
            
             setFanLevel ( v )  {  // 1-3
               gib  das zurück . miotSetProperty ( 'Luftreiniger: Lüfterstufe' ,  v ) ;
             }}
            
             setBuzzer ( v )  {
               gib  das zurück . miotSetProperty ( 'alarm: alarm' ,  v ) ;
             }}
            
             setLcdBrightness ( v )  {  // 0-hellste, 1-schimmernde, 2-led_closed
               gib  das zurück . miotSetProperty ( 'Anzeigelampe: Helligkeit' ,  v ) ;
             }}
            
             setChildLock ( v )  {
               gib  das zurück . miotSetProperty ( 'physische Kontrollen gesperrt: physische Kontrollen gesperrt' ,  v ) ;
             }}
            
            } ;
            
            


            edit: jetzt weiss ich den Fehler, Browser hatte übersetzt englisch/deutsch, hatte ich nicht drauf geachtet

            Edit1:Purifier Script stimmen nun die Datenpunkte 👍
            AllmyMi aber unverändert-keine Werte

            Nochmal, Allmymi is noch nicht zum Gebrauch, das ne Dev Version, Werte anzeigen is da noch gar nich implementiert in Deiner Version, das hab ich erst gestern Nacht gemacht. Sei einfach mit der Purifier Variante glücklich, soweit ich das verstanden hab läuft die ja jetzt. Nicht falsch verstehen, bin froh wenn ich Tester hab, aber halt erst wenns Sinn macht.

            crunchip 1 Reply Last reply Reply Quote 0
            • crunchip
              crunchip Forum Testing Most Active @Pittini last edited by

              @Pittini kein Problem, hatte ja geschrieben, installiert zum Test....alles gut

              zum Thema Purifier Script,
              ist mir aufgefallen, das der DP Filter remaining scheinbar hin und wieder seinen Wert verändert( total abweichend).
              Wie gesagt, Gerät ist neu, laut App verbleibend 144 Tage. Hatte ja anfangs geschrieben das der Wert nicht übereinstimmt(68.6868686). Nachdem ich die .js geändert hatte, wurden anschliessend die verbleibende Tage richtig angezeigt. Abends hatte ich dann nochmal nachgesehen, wieder ein total falscher Wert.
              jetzt gerade werden 108.208333333333 angezeigt.
              Das nur als Hinweis, da ich nicht weiß, wie dieser zu Stande kommt (Berechnung/Daten holen/senden) und es eventuell nennenswert ist.

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

              Sei einfach mit der Purifier Variante glücklich

              bin ich 😊 👍

              P 1 Reply Last reply Reply Quote 0
              • P
                Pittini Developer @crunchip last edited by

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

                Das nur als Hinweis, da ich nicht weiß, wie dieser zu Stande kommt (Berechnung/Daten holen/senden) und es eventuell nennenswert ist.

                In der Datei die Du ändern musstest, findest direkt die Berechnung:

                getFilterRemaining() {
                    const filterTotal = this.properties['filter:filter-life-level'];
                    const filterUsed = this.properties['filter:filter-used-time'];
                    if (filterTotal > 0 && filterUsed >= 0) {
                      //return Math.max((1 - filterUsed / filterTotal) * 100, 0);
                      return Math.max(filterUsed / (100 - filterTotal) * filterTotal/24, 0);
                    }
                    return undefined;
                  }
                

                Mehr is da nicht, die Daten kommen direkt aus der Cloud

                1 Reply Last reply Reply Quote 0
                • S
                  Spampunk @Pittini last edited by

                  @Pittini
                  Ich habe mal das Skript neu gestartet, aber das Log hat wohl nicht viel Aussagekraft:

                  javascript.0	2020-12-26 12:48:45.813	info	(28063) script.js.common.Mihome: registered 0 subscriptions and 0 schedules
                  javascript.0	2020-12-26 12:48:45.785	info	(28063) script.js.common.Mihome: Reaching init
                  javascript.0	2020-12-26 12:48:45.784	info	(28063) script.js.common.Mihome: Starting AllMyMi V.0.1.8
                  javascript.0	2020-12-26 12:48:45.741	info	(28063) Start javascript script.js.common.Mihome
                  javascript.0	2020-12-26 12:48:34.299	info	(28063) Stop script script.js.common.Mihome
                  

                  Unter https://i.mi.com/ kann ich mich mit meinen Anmeldedaten einloggen, aber ich habe den Eindruck, dass dies aus ioBroker heraus nicht funktioniert. Hast Du eventuell eine Ahnung, woran das liegen kann, oder wie ich das beseitigen kann? Alle Adapter & Node,js sind aktuell, läuft auf Debian Buster.

                  Viele Grüße,
                  Timo

                  P 1 Reply Last reply Reply Quote 0
                  • P
                    Pittini Developer @Spampunk last edited by

                    @Spampunk AllMyMi is dev die kann gar nicht gehen bei Dir weil da Axios noch verwendet wird. Nimm doch bitte einfach die Purifier Version um zu sehen ob Daten kommen.

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      Spampunk @Pittini last edited by

                      @Pittini
                      Auch hier ist nichts weiter passiert. Das Log sagt:

                      javascript.0	2020-12-26 16:53:15.789	info	(17952) script.js.common.Mihome: registered 0 subscriptions and 0 schedules
                      javascript.0	2020-12-26 16:53:15.747	info	(17952) script.js.common.Mihome: Reaching init
                      javascript.0	2020-12-26 16:53:15.746	info	(17952) script.js.common.Mihome: Starting MiHome-Airpurifier3H-V0.1.6
                      javascript.0	2020-12-26 16:53:15.478	info	(17952) Start javascript script.js.common.Mihome
                      
                      P 1 Reply Last reply Reply Quote 0
                      • P
                        Pittini Developer @Spampunk last edited by

                        @Spampunk
                        An die Anleitung gehalten? JS Adapter Version > 4.8.0? node-mihome im js Adapter eingetragen? Richtigen Server unter options eingetragen?

                        S 1 Reply Last reply Reply Quote 0
                        • crunchip
                          crunchip Forum Testing Most Active last edited by

                          @Pittini hab grad diese Meldung im log gesehen

                          2020-12-27 12:58:12.299 - warn: javascript.0 (1400) You are assigning a undefined to the state "javascript.0.MiHome.308331024.Mode" which expects a string. Please fix your code to use a string or change the state type to undefined. This warning might become an error in future versions.
                          2020-12-27 12:58:12.303 - warn: javascript.0 (1400) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1416:20)
                          2020-12-27 12:58:12.303 - warn: javascript.0 (1400) at RefreshDps (script.js.Mipurifier3H:181:9)
                          2020-12-27 12:58:12.303 - warn: javascript.0 (1400) at module.exports. (script.js.Mipurifier3H:160:9)
                          2020-12-27 12:58:12.303 - warn: javascript.0 (1400) at module.exports.emit (events.js:314:20)
                          2020-12-27 12:58:12.304 - warn: javascript.0 (1400) at module.exports.EventEmitter.emit (domain.js:483:12)
                          2020-12-27 12:58:12.304 - warn: javascript.0 (1400) at module.exports.loadProperties (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:107:12)
                          2020-12-27 12:58:12.304 - warn: javascript.0 (1400) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:73:9)
                          2020-12-27 12:58:12.304 - error: javascript.0 (1400) script.js.Mipurifier3H: setForeignState: undefined is not a valid state value
                          2020-12-27 12:58:12.304 - warn: javascript.0 (1400) You are assigning a undefined to the state "javascript.0.MiHome.308331024.FanLevel" which expects a number. Please fix your code to use a number or change the state type to undefined. This warning might become an error in future versions.
                          2020-12-27 12:58:12.305 - warn: javascript.0 (1400) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1416:20)
                          2020-12-27 12:58:12.305 - warn: javascript.0 (1400) at RefreshDps (script.js.Mipurifier3H:185:9)
                          2020-12-27 12:58:12.306 - warn: javascript.0 (1400) at module.exports. (script.js.Mipurifier3H:160:9)
                          2020-12-27 12:58:12.306 - warn: javascript.0 (1400) at module.exports.emit (events.js:314:20)
                          2020-12-27 12:58:12.306 - warn: javascript.0 (1400) at module.exports.EventEmitter.emit (domain.js:483:12)
                          2020-12-27 12:58:12.308 - warn: javascript.0 (1400) at module.exports.loadProperties (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:107:12)
                          2020-12-27 12:58:12.309 - warn: javascript.0 (1400) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:73:9)
                          2020-12-27 12:58:12.309 - error: javascript.0 (1400) script.js.Mipurifier3H: setForeignState: undefined is not a valid state value
                          2020-12-27 12:58:12.309 - warn: javascript.0 (1400) You are assigning a undefined to the state "javascript.0.MiHome.308331024.Buzzer" which expects a boolean. Please fix your code to use a boolean or change the state type to undefined. This warning might become an error in future versions.
                          2020-12-27 12:58:12.310 - warn: javascript.0 (1400) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1416:20)
                          2020-12-27 12:58:12.310 - warn: javascript.0 (1400) at RefreshDps (script.js.Mipurifier3H:189:9)
                          2020-12-27 12:58:12.310 - warn: javascript.0 (1400) at module.exports. (script.js.Mipurifier3H:160:9)
                          2020-12-27 12:58:12.310 - warn: javascript.0 (1400) at module.exports.emit (events.js:314:20)
                          2020-12-27 12:58:12.310 - warn: javascript.0 (1400) at module.exports.EventEmitter.emit (domain.js:483:12)
                          2020-12-27 12:58:12.311 - warn: javascript.0 (1400) at module.exports.loadProperties (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:107:12)
                          2020-12-27 12:58:12.311 - warn: javascript.0 (1400) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:73:9)
                          2020-12-27 12:58:12.311 - error: javascript.0 (1400) script.js.Mipurifier3H: setForeignState: undefined is not a valid state value
                          2020-12-27 12:58:12.311 - warn: javascript.0 (1400) You are assigning a undefined to the state "javascript.0.MiHome.308331024.LcdBrightness" which expects a number. Please fix your code to use a number or change the state type to undefined. This warning might become an error in future versions.
                          2020-12-27 12:58:12.312 - warn: javascript.0 (1400) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1416:20)
                          2020-12-27 12:58:12.312 - warn: javascript.0 (1400) at RefreshDps (script.js.Mipurifier3H:193:9)
                          2020-12-27 12:58:12.312 - warn: javascript.0 (1400) at module.exports. (script.js.Mipurifier3H:160:9)
                          2020-12-27 12:58:12.312 - warn: javascript.0 (1400) at module.exports.emit (events.js:314:20)
                          2020-12-27 12:58:12.313 - warn: javascript.0 (1400) at module.exports.EventEmitter.emit (domain.js:483:12)
                          2020-12-27 12:58:12.313 - warn: javascript.0 (1400) at module.exports.loadProperties (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:107:12)
                          2020-12-27 12:58:12.313 - warn: javascript.0 (1400) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:73:9)
                          2020-12-27 12:58:12.313 - error: javascript.0 (1400) script.js.Mipurifier3H: setForeignState: undefined is not a valid state value
                          2020-12-27 12:58:12.313 - warn: javascript.0 (1400) You are assigning a undefined to the state "javascript.0.MiHome.308331024.Temperature" which expects a number. Please fix your code to use a number or change the state type to undefined. This warning might become an error in future versions.
                          2020-12-27 12:58:12.314 - warn: javascript.0 (1400) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1416:20)
                          2020-12-27 12:58:12.314 - warn: javascript.0 (1400) at RefreshDps (script.js.Mipurifier3H:198:9)
                          2020-12-27 12:58:12.314 - warn: javascript.0 (1400) at module.exports. (script.js.Mipurifier3H:160:9)
                          2020-12-27 12:58:12.314 - warn: javascript.0 (1400) at module.exports.emit (events.js:314:20)
                          2020-12-27 12:58:12.315 - warn: javascript.0 (1400) at module.exports.EventEmitter.emit (domain.js:483:12)
                          2020-12-27 12:58:12.315 - warn: javascript.0 (1400) at module.exports.loadProperties (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:107:12)
                          2020-12-27 12:58:12.315 - warn: javascript.0 (1400) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:73:9)
                          2020-12-27 12:58:12.315 - error: javascript.0 (1400) script.js.Mipurifier3H: setForeignState: undefined is not a valid state value
                          2020-12-27 12:58:12.315 - warn: javascript.0 (1400) You are assigning a undefined to the state "javascript.0.MiHome.308331024.Humidity" which expects a number. Please fix your code to use a number or change the state type to undefined. This warning might become an error in future versions.
                          2020-12-27 12:58:12.316 - warn: javascript.0 (1400) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1416:20)
                          2020-12-27 12:58:12.316 - warn: javascript.0 (1400) at RefreshDps (script.js.Mipurifier3H:202:9)
                          2020-12-27 12:58:12.316 - warn: javascript.0 (1400) at module.exports. (script.js.Mipurifier3H:160:9)
                          2020-12-27 12:58:12.316 - warn: javascript.0 (1400) at module.exports.emit (events.js:314:20)
                          2020-12-27 12:58:12.317 - warn: javascript.0 (1400) at module.exports.EventEmitter.emit (domain.js:483:12)
                          2020-12-27 12:58:12.317 - warn: javascript.0 (1400) at module.exports.loadProperties (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:107:12)
                          2020-12-27 12:58:12.317 - warn: javascript.0 (1400) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:73:9)
                          2020-12-27 12:58:12.317 - error: javascript.0 (1400) script.js.Mipurifier3H: setForeignState: undefined is not a valid state value
                          2020-12-27 12:58:12.317 - warn: javascript.0 (1400) You are assigning a undefined to the state "javascript.0.MiHome.308331024.PM2_5" which expects a number. Please fix your code to use a number or change the state type to undefined. This warning might become an error in future versions.
                          2020-12-27 12:58:12.318 - warn: javascript.0 (1400) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1416:20)
                          2020-12-27 12:58:12.318 - warn: javascript.0 (1400) at RefreshDps (script.js.Mipurifier3H:206:9)
                          2020-12-27 12:58:12.318 - warn: javascript.0 (1400) at module.exports. (script.js.Mipurifier3H:160:9)
                          2020-12-27 12:58:12.318 - warn: javascript.0 (1400) at module.exports.emit (events.js:314:20)
                          2020-12-27 12:58:12.319 - warn: javascript.0 (1400) at module.exports.EventEmitter.emit (domain.js:483:12)
                          2020-12-27 12:58:12.319 - warn: javascript.0 (1400) at module.exports.loadProperties (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:107:12)
                          2020-12-27 12:58:12.319 - warn: javascript.0 (1400) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:73:9)
                          2020-12-27 12:58:12.319 - error: javascript.0 (1400) script.js.Mipurifier3H: setForeignState: undefined is not a valid state value
                          2020-12-27 12:58:12.319 - warn: javascript.0 (1400) You are assigning a undefined to the state "javascript.0.MiHome.308331024.FilterRemaining" which expects a number. Please fix your code to use a number or change the state type to undefined. This warning might become an error in future versions.
                          2020-12-27 12:58:12.320 - warn: javascript.0 (1400) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1416:20)
                          2020-12-27 12:58:12.320 - warn: javascript.0 (1400) at RefreshDps (script.js.Mipurifier3H:210:9)
                          2020-12-27 12:58:12.320 - warn: javascript.0 (1400) at module.exports. (script.js.Mipurifier3H:160:9)
                          2020-12-27 12:58:12.320 - warn: javascript.0 (1400) at module.exports.emit (events.js:314:20)
                          2020-12-27 12:58:12.321 - warn: javascript.0 (1400) at module.exports.EventEmitter.emit (domain.js:483:12)
                          2020-12-27 12:58:12.321 - warn: javascript.0 (1400) at module.exports.loadProperties (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:107:12)
                          2020-12-27 12:58:12.321 - warn: javascript.0 (1400) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:73:9)
                          2020-12-27 12:58:12.321 - error: javascript.0 (1400) script.js.Mipurifier3H: setForeignState: undefined is not a valid state value
                          

                          P 1 Reply Last reply Reply Quote 0
                          • P
                            Pittini Developer @crunchip last edited by

                            @crunchip Einmalig? Wenn nein, wie oft? Seit wann? Iwas geändert?

                            crunchip 1 Reply Last reply Reply Quote 0
                            • crunchip
                              crunchip Forum Testing Most Active @Pittini last edited by crunchip

                              @Pittini ist mir nur jetzt einmal aufgefallen durch Zufall, weil ich das log offen hatte. Nein nichts geändert und auch nichts geschaltet
                              edit: guck grad das log durch, tritt mehrmals auf
                              log von heute Nacht ab

                              • 02:54
                              • 03:56
                              • 04:09
                              • 05:42
                              • 12:58
                              P 1 Reply Last reply Reply Quote 0
                              • P
                                Pittini Developer @crunchip last edited by

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

                                @Pittini ist mir nur jetzt einmal aufgefallen durch Zufall, weil ich das log offen hatte. Nein nichts geändert und auch nichts geschaltet
                                edit: guck grad das log durch, tritt mehrmals auf
                                log von heute Nacht ab

                                • 02:54
                                • 03:56
                                • 04:09
                                • 05:42
                                • 12:58

                                Ok, danke, offenbar kommt da gelegentlich nix an von der Cloud. Werd ich abfangen in der nächsten Version. Danke für die Meldung.

                                1 Reply Last reply Reply Quote 1
                                • S
                                  Spampunk @Pittini last edited by

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

                                  @Spampunk

                                  An die Anleitung gehalten? Soweit ich sie verstanden habe, ja.

                                  JS Adapter Version > 4.8.0? Version 4.8.4

                                  node-mihome im js Adapter eingetragen? Ja, habe ich.

                                  Richtigen Server unter options eingetragen? Den Deutschen, ja (wie in der Xiaomi App).

                                  Woran kann es noch liegen? Ich habe die Standard-Firewall innerhalb der Fritzbox. Mit meinem Handy kann ich im WLAN auf Xiaomi App und FloleVac App zugreifen. Kann ich unter iobroker eventuell den Xiaomi-Server anpingen? Wie müsste ich dann wohl vorgehen?

                                  P 1 Reply Last reply Reply Quote 0
                                  • P
                                    Pittini Developer @Spampunk last edited by

                                    @Spampunk Das einzige was mir noch einfällt und zumindest in einem Fall geholfen hat, wäre mal das komplette System neuzustarten.

                                    S M 2 Replies Last reply Reply Quote 0
                                    • S
                                      Spampunk @Pittini last edited by

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

                                      @Spampunk Das einzige was mir noch einfällt und zumindest in einem Fall geholfen hat, wäre mal das komplette System neuzustarten.

                                      Eine Sache ist mir noch aufgefallen: im Skriptbereich wird mir rot unterschlängelt Cannot find module 'node-mihome' angezeigt, obwohl ich es im Javascript-Adapter eingetragen habe. Muss ich dieses Modul noch irgendwo installieren?

                                      Unbenannt.png

                                      crunchip 1 Reply Last reply Reply Quote 0
                                      • crunchip
                                        crunchip Forum Testing Most Active @Spampunk last edited by

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

                                        Muss ich dieses Modul noch irgendwo installieren

                                        wenn du es dort einträgst, wird es ja installiert, wobei mir das auch schon mal passiert ist, das ein Modul nicht korrekt funktionierte und habe es dann manuell über die Konsole installiert.
                                        letztendlich, ein Neustart, wie zuvor schon erwähnt

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          m76 @Pittini last edited by

                                          @pittini

                                          Habe versucht wie folgt das Script zu installiere:

                                          1. Javascript adapter 4.8.4
                                          2. "node-mihome" beim Javascript Adapter unter "Zusätzliche NPM-Module" eingetragen
                                          3. Das Script in raw von https://raw.githubusercontent.com/Pittini/iobroker-nodemihome/main/AllMyMi-V0.2.5.js Als neues Javascript script angelegt
                                          4. user und passw eingetragen. country auf de belassen.
                                            Bekomme aber folgenden Fehler:
                                          2021-01-20 13:12:44.977  - info: javascript.0 (15537) Start javascript script.js.VIS.Xiaomi.AllMyMi
                                          2021-01-20 13:12:45.223  - error: javascript.0 (15537) script.js.VIS.Xiaomi.AllMyMi: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../node-mihome'
                                          2021-01-20 13:12:45.224  - error: javascript.0 (15537)     at script.js.VIS.Xiaomi.AllMyMi:3:16
                                          2021-01-20 13:12:45.225  - error: javascript.0 (15537)     at Script.runInContext (vm.js:133:20)
                                          2021-01-20 13:12:45.226  - info: javascript.0 (15537) script.js.VIS.Xiaomi.AllMyMi: Starting AllMyMi V.0.2.5
                                          2021-01-20 13:12:45.227  - info: javascript.0 (15537) script.js.VIS.Xiaomi.AllMyMi: Reaching init
                                          2021-01-20 13:12:45.233  - info: javascript.0 (15537) script.js.VIS.Xiaomi.AllMyMi: registered 0 subscriptions and 0 schedules
                                          2021-01-20 13:12:45.238  - error: javascript.0 (15537) script.js.VIS.Xiaomi.AllMyMi: TypeError: Cannot read property 'miioProtocol' of undefined
                                          2021-01-20 13:12:45.239  - error: javascript.0 (15537)     at Init (script.js.VIS.Xiaomi.AllMyMi:586:12)
                                          2021-01-20 13:12:45.240  - error: javascript.0 (15537)     at script.js.VIS.Xiaomi.AllMyMi:67:1
                                          2021-01-20 13:12:45.240  - error: javascript.0 (15537)     at Script.runInContext (vm.js:133:20)
                                          

                                          inden logs habe ich gesehen, dass es so installiert wurde, läuft auch ohne Fehler wenn ich es manuell ausführe
                                          npm install node-mihome --production --prefix "/opt/iobroker/node_modules/iobroker.javascript"

                                          find . -name node-mihome
                                          ./node_modules/iobroker.javascript/node_modules/node-mihome
                                          

                                          Was habe ich übersehen?

                                          M 1 Reply Last reply Reply Quote 0
                                          • M
                                            m76 @m76 last edited by

                                            @m76

                                            wenn ich den require ändere auf:
                                            const mihome = require('iobroker.javascript/node_modules/node-mihome');

                                            bekomme ich folgenden Fehler:

                                            2021-01-20 13:59:22.353  - error: javascript.0 (22232) script.js.VIS.Xiaomi.testMii: /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/devices/deerma.humidifier.jsq.js:5
                                            2021-01-20 13:59:22.353  - error: javascript.0 (22232)     at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
                                            2021-01-20 13:59:22.353  - error: javascript.0 (22232)     at Module.load (internal/modules/cjs/loader.js:653:32)
                                            2021-01-20 13:59:22.354  - error: javascript.0 (22232)     at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
                                            2021-01-20 13:59:22.354  - error: javascript.0 (22232)     at Function.Module._load (internal/modules/cjs/loader.js:585:3)
                                            2021-01-20 13:59:22.354  - error: javascript.0 (22232)     at Module.require (internal/modules/cjs/loader.js:692:17)
                                            2021-01-20 13:59:22.354  - error: javascript.0 (22232)     at require (internal/modules/cjs/helpers.js:25:18)
                                            2021-01-20 13:59:22.354  - error: javascript.0 (22232)     at glob.sync.forEach.modelPath (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/models.js:9:23)
                                            2021-01-20 13:59:22.355  - error: javascript.0 (22232)     at Array.forEach (<anonymous>)
                                            ...
                                            
                                            W 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            748
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            49
                                            443
                                            65014
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo