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.
    • P
      Pittini Developer @hilde0407 last edited by

      @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 Reply Last reply Reply Quote 0
      • E
        esche last edited by

        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 Reply Last reply Reply Quote 0
        • P
          Pittini Developer @esche last edited by

          @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 Reply Last reply Reply Quote 0
          • E
            esche @Pittini last edited by

            @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 Reply Last reply Reply Quote 0
            • P
              Pittini Developer @esche last edited by

              @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 Reply Last reply Reply Quote 0
              • M
                MrLee last edited by

                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 Braun 2 Replies Last reply Reply Quote 0
                • M
                  MrLee @MrLee last edited by

                  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 Maurer 1 Reply Last reply Reply Quote 0
                  • Christian Maurer
                    Christian Maurer @MrLee last edited by

                    @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 Reply Last reply Reply Quote 0
                    • P
                      Pittini Developer @Christian Maurer last edited by

                      @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 Replies Last reply Reply Quote 0
                      • W
                        Wildbill @Pittini last edited by

                        @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 Reply Last reply Reply Quote 0
                        • P
                          Pittini Developer @Wildbill last edited by Pittini

                          @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 Reply Last reply Reply Quote 1
                          • Thomas Braun
                            Thomas Braun Most Active @MrLee last edited by

                            @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 Maurer 1 Reply Last reply Reply Quote 0
                            • Christian Maurer
                              Christian Maurer @Thomas Braun last edited by

                              @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 Braun 1 Reply Last reply Reply Quote 0
                              • Thomas Braun
                                Thomas Braun Most Active @Christian Maurer last edited by

                                @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 Maurer 1 Reply Last reply Reply Quote 0
                                • Christian Maurer
                                  Christian Maurer @Thomas Braun last edited by

                                  @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 Braun 1 Reply Last reply Reply Quote 0
                                  • Thomas Braun
                                    Thomas Braun Most Active @Christian Maurer last edited by

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

                                    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 gra

                                    Wie schaut denn das nun da aus bei dir?

                                    sudo apt update
                                    
                                    Christian Maurer 1 Reply Last reply Reply Quote 0
                                    • Christian Maurer
                                      Christian Maurer @Thomas Braun last edited by

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

                                      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 gra

                                      Wie schaut denn das nun da aus bei dir?

                                      sudo apt update
                                      

                                      denke so wies sein sollte

                                      OK:1 http://security.debian.org/debian-security stretch/updates InRelease
                                      Ign:2 http://deb.debian.org/debian stretch InRelease
                                      OK:3 http://deb.debian.org/debian stretch-updates InRelease
                                      OK:4 http://deb.debian.org/debian stretch Release
                                      OK:5 https://repos.influxdata.com/debian stretch InRelease
                                      OK:6 https://deb.nodesource.com/node_12.x stretch InRelease
                                      Paketlisten werden gelesen... Fertig
                                      Abhängigkeitsbaum wird aufgebaut.
                                      Statusinformationen werden eingelesen.... Fertig
                                      Alle Pakete sind aktuell.
                                      
                                      
                                      Thomas Braun 1 Reply Last reply Reply Quote 0
                                      • Thomas Braun
                                        Thomas Braun Most Active @Christian Maurer last edited by

                                        @christian-maurer
                                        Ja, sollte passen.
                                        Überleg dir aber in Kürze den Sprung weg von Stretch zu Buster zu tun.
                                        Stretch lebt nicht mehr ewig lange.

                                        Christian Maurer 1 Reply Last reply Reply Quote 0
                                        • Christian Maurer
                                          Christian Maurer @Thomas Braun last edited by

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

                                          @christian-maurer
                                          Ja, sollte passen.
                                          Überleg dir aber in Kürze den Sprung weg von Stretch zu Buster zu tun.
                                          Stretch lebt nicht mehr ewig lange.

                                          schon erledigt, das ist halt das "Problem" mit solch stabilen systemen, so lange es läuft schaut man nicht nach ...
                                          bin jetzt aber echt gespannt ob den anderen mit dem gleichen problem auch eine neuinstallation von nodejs hilft

                                          Thomas Braun W 2 Replies Last reply Reply Quote 0
                                          • Thomas Braun
                                            Thomas Braun Most Active @Christian Maurer last edited by Thomas Braun

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

                                            bin jetzt aber echt gespannt ob den anderen mit dem gleichen problem auch eine neuinstallation von nodejs hilft

                                            Beim @MrLee bin ich fast 100% sicher, dass da bei nodeJS was krumm ist.
                                            Ich hab das node-mihome nämlich bei mir auch laufen. Das liegt aber keines falls in /usr/local/ herum sondern das Ding wohnt schön sauber in /opt/iobroker/node_modules/node-mihome

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            474
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            50
                                            454
                                            65612
                                            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