MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    MMM-xiaomi - Temperature and Humidity from your smarthome

    Scheduled Pinned Locked Moved Utilities
    141 Posts 27 Posters 196.0k Views 27 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M Offline
      mirko3000
      last edited by

      Hmm not sure about miio details, I just know that you can sync the tokens via

      miio --discover --sync
      

      Else I would try manually setting to the correct (new) token.
      For the MM: try to uncomment line 51 in node_helper.js, this logs all found devices. You could also add some more logs here to see where the program fails.

      1 Reply Last reply Reply Quote 0
      • A Offline
        Albert2002
        last edited by

        Hi Mirko! Thanks for your reply!

        Before and after I uncommented the line 51 and restartet MM.
        Still with the old Token

        pi@MagicMirror:~ $ miio --discover --sync
         INFO  Discovering devices. Press Ctrl+C to stop.
        
        Device ID: 52238776
        Model info: Unknown 
        Address: 192.168.2.107 
        Token: 6eea5ac1eb475bfedbfff98aab7c2bc7 via stored token
        Support: Unknown
        
        (node:25652) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Call to device timed out
        
        

        But right now after uncommenting the line the error log is different. In the log i can already see the Temperature and humidity (_properties: { temperature: 19.51, humidity: 62.44 },)!! The next step!

        
        > magicmirror@2.1.3 start /home/pi/MagicMirror
        > sh run-start.sh
        
        Starting MagicMirror: v2.1.3
        Loading config ...
        Loading module helpers ...
        No helper found for module: alert.
        No helper found for module: clock.
        Initializing new module helper ...
        Module helper loaded: calendar
        No helper found for module: currentweather.
        No helper found for module: weatherforecast.
        Initializing new module helper ...
        Module helper loaded: MMM-DWD-WarnWeather
        Initializing new module helper ...
        Module helper loaded: MMM-PNews
        Initializing new module helper ...
        Module helper loaded: newsfeed
        Initializing new module helper ...
        Module helper loaded: MMM-Remote-Control
        No helper found for module: MMM-Remote-Control-Repository.
        Initializing new module helper ...
        Module helper loaded: internet-monitor
        Initializing new module helper ...
        Module helper loaded: MMM-MovieListings
        Initializing new module helper ...
        Module helper loaded: MMM-Fuel
        Initializing new module helper ...
        Module helper loaded: MMM-NetworkScanner
        Initializing new module helper ...
        Module helper loaded: MMM-nasaastropic
        Initializing new module helper ...
        Module helper loaded: MMM-SystemStats
        Initializing new module helper ...
        Module helper loaded: MMM-Departures
        No helper found for module: MMM-Carousel.
        Initializing new module helper ...
        Module helper loaded: MMM-Events
        Initializing new module helper ...
        Module helper loaded: MMM-xiaomi
        All module helpers loaded.
        Starting server on port 8080 ... 
        You're using a full whitelist configuration to allow for all IPs
        Server started ...
        Connecting socket for: calendar
        Starting node helper for: calendar
        Connecting socket for: MMM-DWD-WarnWeather
        MMM-DWD-WarnWeather helper started...
        Connecting socket for: MMM-PNews
        Starting module: MMM-PNews
        Connecting socket for: newsfeed
        Starting module: newsfeed
        Connecting socket for: MMM-Remote-Control
        Starting node helper for: MMM-Remote-Control
        Connecting socket for: internet-monitor
        internet-monitor helper started ...
        Connecting socket for: MMM-MovieListings
        MMM-MovieListing helper started...
        Connecting socket for: MMM-Fuel
        Starting module helper: MMM-Fuel
        Connecting socket for: MMM-NetworkScanner
        Starting module: MMM-NetworkScanner
        Connecting socket for: MMM-nasaastropic
        Starting node helper: MMM-nasaastropic
        Connecting socket for: MMM-SystemStats
        Connecting socket for: MMM-Departures
        Connecting socket for: MMM-Events
        Starting node_helper for: MMM-Events
        Connecting socket for: MMM-xiaomi
        Starting xiaomi helper
        Sockets connected & modules started ...
        Launching application.
        Create new calendar fetcher for url: https://calendar.google.com/calendar/ical/htc.one.m2304%40gmail.com/private-;-)/basic.ics - Interval: 300000
        Create new news fetcher for url: http://www.haz.de/rss/feed/haz_schlagzeilen - Interval: 300000
        Create new news fetcher for url: http://www.spiegel.de/schlagzeilen/index.rss - Interval: 300000
        starting internet monitor node helper
        MMM-NetworkScanner received CONFIG
        astro helper: config received
        retrieveAndUpdate()
        Triggering Xiaomi Gateway upate
        MMM-Departures error: Error: getaddrinfo ENOTFOUND transportrest-sbiermann.rhcloud.com transportrest-sbiermann.rhcloud.com:80
        NASA Astro Pic of the Day URL: https://apod.nasa.gov/apod/image/1711/m5_hubblesmessier1024c.jpg
        Magnet {
          domain: null,
          _events: {},
          _eventsCount: 0,
          _maxListeners: undefined,
          model: 'lumi.magnet',
          id: '158d000119fcb2',
          type: 'magnet',
          capabilities: [],
          _properties: {},
          _propertiesToMonitor: [],
          _propertyDefinitions: {},
          _parent: 
           Gateway {
             domain: null,
             _events: {},
             _eventsCount: 0,
             _maxListeners: undefined,
             id: undefined,
             type: 'gateway',
             model: 'lumi.gateway.v3',
             capabilities: [ 'color:rgb', 'brightness', 'sensor', 'illuminance' ],
             address: '192.168.2.107',
             port: 54321,
             writeOnly: false,
             packet: 
              Packet {
                header: ,
                _serverStampTime: 1509842296639,
                _token: ,
                _tokenKey: ,
                _tokenIV: ,
                data: ,
                _serverStamp: 48587 },
             socket: 
              Socket {
                domain: null,
                _events: [Object],
                _eventsCount: 1,
                _maxListeners: undefined,
                _handle: [Object],
                _receiving: true,
                _bindState: 2,
                type: 'udp4',
                fd: -42,
                _reuseAddr: undefined,
                _queue: undefined },
             _id: 4,
             _promises: {},
             _hasFailedToken: false,
             _properties: { illuminance: 307, rgb: [Object], brightness: 0 },
             _propertiesToMonitor: [ 'illumination', 'rgb' ],
             _propertyDefinitions: { illumination: [Object], rgb: [Object] },
             _reversePropertyDefinitions: { illuminance: 'illumination' },
             _loadProperties: [Function: bound _loadProperties],
             management: DeviceManagement { device: [Circular] },
             debug: 
              { [Function: debug]
                namespace: 'miio.device.[192.168.2.107]',
                enabled: false,
                useColors: false,
                color: 1,
                inspectOpts: {} },
             _devices: 
              { '158d000119fcb2': [Object],
                '158d00013e28ee': [Object],
                '158d00015aa973': [Object],
                '158d00015736a8': [Object] },
             _monitorInterval: 60000,
             _propertyMonitor: 
              Timeout {
                _called: false,
                _idleTimeout: 60000,
                _idlePrev: [Object],
                _idleNext: [Object],
                _idleStart: 69767,
                _onTimeout: [Function: bound _loadProperties],
                _timerArgs: undefined,
                _repeat: 60000 },
             _lastToken: 1509842294044,
             _developerKey: 'xqbs1fvtsq6x4oby',
             devApi: 
              DeveloperApi {
                domain: null,
                _events: [Object],
                _eventsCount: 2,
                _maxListeners: undefined,
                address: '192.168.2.107',
                debug: [Object],
                socket: [Object],
                devices: [],
                ready: false },
             setRGB: [Function],
             setBrightness: [Function],
             _deviceListTimer: 
              Timeout {
                _called: false,
                _idleTimeout: 1800000,
                _idlePrev: [Object],
                _idleNext: [Object],
                _idleStart: 72417,
                _onTimeout: [Function: bound _updateDeviceList],
                _timerArgs: undefined,
                _repeat: 1800000 } },
          management: SubDeviceManagement { _device: [Circular] },
          debug: 
           { [Function: debug]
             namespace: 'miio.device.[192.168.2.107].158d000119fcb2',
             enabled: false,
             useColors: false,
             color: 1,
             inspectOpts: {} } }
        Switch {
          domain: null,
          _events: {},
          _eventsCount: 0,
          _maxListeners: undefined,
          model: 'lumi.switch',
          id: '158d00015aa973',
          type: 'controller',
          capabilities: [],
          _properties: {},
          _propertiesToMonitor: [],
          _propertyDefinitions: {},
          _parent: 
           Gateway {
             domain: null,
             _events: {},
             _eventsCount: 0,
             _maxListeners: undefined,
             id: undefined,
             type: 'gateway',
             model: 'lumi.gateway.v3',
             capabilities: [ 'color:rgb', 'brightness', 'sensor', 'illuminance' ],
             address: '192.168.2.107',
             port: 54321,
             writeOnly: false,
             packet: 
              Packet {
                header: ,
                _serverStampTime: 1509842296639,
                _token: ,
                _tokenKey: ,
                _tokenIV: ,
                data: ,
                _serverStamp: 48587 },
             socket: 
              Socket {
                domain: null,
                _events: [Object],
                _eventsCount: 1,
                _maxListeners: undefined,
                _handle: [Object],
                _receiving: true,
                _bindState: 2,
                type: 'udp4',
                fd: -42,
                _reuseAddr: undefined,
                _queue: undefined },
             _id: 4,
             _promises: {},
             _hasFailedToken: false,
             _properties: { illuminance: 307, rgb: [Object], brightness: 0 },
             _propertiesToMonitor: [ 'illumination', 'rgb' ],
             _propertyDefinitions: { illumination: [Object], rgb: [Object] },
             _reversePropertyDefinitions: { illuminance: 'illumination' },
             _loadProperties: [Function: bound _loadProperties],
             management: DeviceManagement { device: [Circular] },
             debug: 
              { [Function: debug]
                namespace: 'miio.device.[192.168.2.107]',
                enabled: false,
                useColors: false,
                color: 1,
                inspectOpts: {} },
             _devices: 
              { '158d000119fcb2': [Object],
                '158d00013e28ee': [Object],
                '158d00015aa973': [Object],
                '158d00015736a8': [Object] },
             _monitorInterval: 60000,
             _propertyMonitor: 
              Timeout {
                _called: false,
                _idleTimeout: 60000,
                _idlePrev: [Object],
                _idleNext: [Object],
                _idleStart: 69767,
                _onTimeout: [Function: bound _loadProperties],
                _timerArgs: undefined,
                _repeat: 60000 },
             _lastToken: 1509842294044,
             _developerKey: 'xqbs1fvtsq6x4oby',
             devApi: 
              DeveloperApi {
                domain: null,
                _events: [Object],
                _eventsCount: 2,
                _maxListeners: undefined,
                address: '192.168.2.107',
                debug: [Object],
                socket: [Object],
                devices: [],
                ready: false },
             setRGB: [Function],
             setBrightness: [Function],
             _deviceListTimer: 
              Timeout {
                _called: false,
                _idleTimeout: 1800000,
                _idlePrev: [Object],
                _idleNext: [Object],
                _idleStart: 72417,
                _onTimeout: [Function: bound _updateDeviceList],
                _timerArgs: undefined,
                _repeat: 1800000 } },
          management: SubDeviceManagement { _device: [Circular] },
          debug: 
           { [Function: debug]
             namespace: 'miio.device.[192.168.2.107].158d00015aa973',
             enabled: false,
             useColors: false,
             color: 3,
             inspectOpts: {} } }
        SensorHT {
          domain: null,
          _events: {},
          _eventsCount: 0,
          _maxListeners: undefined,
          model: 'lumi.sensor_ht',
          id: '158d00015736a8',
          type: 'sensor',
          capabilities: [ 'sensor', 'temperature', 'humidity' ],
          _properties: { temperature: 19.51, humidity: 62.44 },
          _propertiesToMonitor: [ 'temperature', 'humidity' ],
          _propertyDefinitions: 
           { temperature: { mapper: [Function] },
             humidity: { mapper: [Function] } },
          _parent: 
           Gateway {
             domain: null,
             _events: {},
             _eventsCount: 0,
             _maxListeners: undefined,
             id: undefined,
             type: 'gateway',
             model: 'lumi.gateway.v3',
             capabilities: [ 'color:rgb', 'brightness', 'sensor', 'illuminance' ],
             address: '192.168.2.107',
             port: 54321,
             writeOnly: false,
             packet: 
              Packet {
                header: ,
                _serverStampTime: 1509842296639,
                _token: ,
                _tokenKey: ,
                _tokenIV: ,
                data: ,
                _serverStamp: 48587 },
             socket: 
              Socket {
                domain: null,
                _events: [Object],
                _eventsCount: 1,
                _maxListeners: undefined,
                _handle: [Object],
                _receiving: true,
                _bindState: 2,
                type: 'udp4',
                fd: -42,
                _reuseAddr: undefined,
                _queue: undefined },
             _id: 4,
             _promises: {},
             _hasFailedToken: false,
             _properties: { illuminance: 307, rgb: [Object], brightness: 0 },
             _propertiesToMonitor: [ 'illumination', 'rgb' ],
             _propertyDefinitions: { illumination: [Object], rgb: [Object] },
             _reversePropertyDefinitions: { illuminance: 'illumination' },
             _loadProperties: [Function: bound _loadProperties],
             management: DeviceManagement { device: [Circular] },
             debug: 
              { [Function: debug]
                namespace: 'miio.device.[192.168.2.107]',
                enabled: false,
                useColors: false,
                color: 1,
                inspectOpts: {} },
             _devices: 
              { '158d000119fcb2': [Object],
                '158d00013e28ee': [Object],
                '158d00015aa973': [Object],
                '158d00015736a8': [Object] },
             _monitorInterval: 60000,
             _propertyMonitor: 
              Timeout {
                _called: false,
                _idleTimeout: 60000,
                _idlePrev: [Object],
                _idleNext: [Object],
                _idleStart: 69767,
                _onTimeout: [Function: bound _loadProperties],
                _timerArgs: undefined,
                _repeat: 60000 },
             _lastToken: 1509842294044,
             _developerKey: 'xqbs1fvtsq6x4oby',
             devApi: 
              DeveloperApi {
                domain: null,
                _events: [Object],
                _eventsCount: 2,
                _maxListeners: undefined,
                address: '192.168.2.107',
                debug: [Object],
                socket: [Object],
                devices: [],
                ready: false },
             setRGB: [Function],
             setBrightness: [Function],
             _deviceListTimer: 
              Timeout {
                _called: false,
                _idleTimeout: 1800000,
                _idlePrev: [Object],
                _idleNext: [Object],
                _idleStart: 72417,
                _onTimeout: [Function: bound _updateDeviceList],
                _timerArgs: undefined,
                _repeat: 1800000 } },
          management: SubDeviceManagement { _device: [Circular] },
          debug: 
           { [Function: debug]
             namespace: 'miio.device.[192.168.2.107].158d00015736a8',
             enabled: false,
             useColors: false,
             color: 6,
             inspectOpts: {} } }
        
        
        1 Reply Last reply Reply Quote 0
        • A Offline
          Albert2002
          last edited by

          One more. When I run the MM as standalone server (node serveronly) I get this in the Browser console:

          MMM-xiaomi.js:28 received XIAOMI_DATA
          MMM-xiaomi.js:212 Uncaught TypeError: Cannot read property 'id' of null
              at Class. (MMM-xiaomi.js:212)
              at Function.each (jquery-2.2.3.min.js:2)
              at Class.renderText (MMM-xiaomi.js:210)
              at Class.render (MMM-xiaomi.js:100)
              at Class.socketNotificationReceived (MMM-xiaomi.js:29)
              at module.js:183
              at r. (socketclient.js:25)
              at r.emit (index.js:133)
              at r.onevent (socket.js:270)
              at r.MMSocket.self.socket.onevent (socketclient.js:19)
          (anonymous) @ MMM-xiaomi.js:212
          each @ jquery-2.2.3.min.js:2
          renderText @ MMM-xiaomi.js:210
          render @ MMM-xiaomi.js:100
          socketNotificationReceived @ MMM-xiaomi.js:29
          (anonymous) @ module.js:183
          (anonymous) @ socketclient.js:25
          r.emit @ index.js:133
          r.onevent @ socket.js:270
          MMSocket.self.socket.onevent @ socketclient.js:19
          r.onpacket @ socket.js:228
          (anonymous) @ index.js:21
          r.emit @ index.js:133
          r.ondecoded @ manager.js:345
          (anonymous) @ index.js:21
          r.emit @ index.js:133
          s.add @ index.js:241
          r.ondata @ manager.js:335
          (anonymous) @ index.js:21
          r.emit @ index.js:133
          r.onPacket @ socket.js:457
          (anonymous) @ socket.js:274
          r.emit @ index.js:133
          r.onPacket @ transport.js:145
          r.onData @ transport.js:137
          ws.onmessage @ websocket.js:147
          
          1 Reply Last reply Reply Quote 0
          • M Offline
            mirko3000
            last edited by

            Try the latest update (git pull), I just checked for null items - even i that should not happen.

            1 Reply Last reply Reply Quote 0
            • A Offline
              Albert2002
              last edited by

              I did so. Restarted MM.
              No errors in the logs.

              mm out:

              Triggering Xiaomi Gateway upate
              Found device with ID 158d000119fcb2 of type magnet
              Found device with ID 158d00015aa973 of type controller
              Found device with ID 158d00015736a8 of type sensor
              

              This I got from the Browser Debug:

              main.js:404 Initializing MagicMirror.
              translator.js:197 Loading core translation file: translations/de.json
              translator.js:219 Loading core translation fallback file: translations/en.json
              loader.js:182 Load script: modules/MMM-xiaomi//MMM-xiaomi.js
              module.js:406 Check MagicMirror version for module 'MMM-xiaomi' - Minimum version:  2.0.0 - Current version: 2.1.3
              module.js:408 Version is ok!
              module.js:414 Module registered: MMM-xiaomi
              loader.js:152 Bootstrapping module: MMM-xiaomi
              loader.js:182 Load script: modules/MMM-xiaomi/String.format.js
              String.format.js Failed to load resource: the server responded with a status of 404 (Not Found)
              loader.js:190 Error on loading script: modules/MMM-xiaomi/String.format.js
              script.onerror @ loader.js:190
              loader.js:182 Load script: https://code.jquery.com/jquery-2.2.3.min.js
              loader.js:157 Scripts loaded for: MMM-xiaomi
              loader.js:197 Load stylesheet: modules/MMM-xiaomi/MMM-xiaomi.css
              loader.js:159 Styles loaded for: MMM-xiaomi
              loader.js:161 Translations loaded for: MMM-xiaomi
              loader.js:197 Load stylesheet: css/custom.css
              MMM-xiaomi.js:35 Starting module: MMM-xiaomi
              main.js:422 All modules started!
              module.js:117 MMM-xiaomi received a system notification: ALL_MODULES_STARTED
              module.js:117 MMM-xiaomi received a system notification: DOM_OBJECTS_CREATED
              MMM-xiaomi.js:28 received XIAOMI_DATA
              MMM-xiaomi.js:242 Uncaught TypeError: this.html.col.format is not a function
                  at Class. (MMM-xiaomi.js:242)
                  at Function.each (jquery-2.2.3.min.js:2)
                  at Class.renderText (MMM-xiaomi.js:210)
                  at Class.render (MMM-xiaomi.js:100)
                  at Class.socketNotificationReceived (MMM-xiaomi.js:29)
                  at module.js:183
                  at r. (socketclient.js:25)
                  at r.emit (index.js:133)
                  at r.onevent (socket.js:270)
                  at r.MMSocket.self.socket.onevent (socketclient.js:19)
              
              1 Reply Last reply Reply Quote 0
              • M Offline
                mirko3000
                last edited by

                Ok, now another try :) Forgot to add utility class which was already present from other modules on my instance. Please update from GIT.

                1 Reply Last reply Reply Quote 1
                • A Offline
                  Albert2002
                  last edited by

                  Sometimes a pictures tells you more than words…

                  You did it!

                  You did it! Great job! Thank you! :-)

                  Next step are to integrate te Yeelights ;-)

                  1 Reply Last reply Reply Quote 1
                  • M Offline
                    mirko3000
                    last edited by

                    Good to hear! :)

                    Suggestions welcome, I have just added ventilation recommendation(see latest update), will also add window sensors - but still unsure how to visualize all that information. Suggestions welcome!

                    1 Reply Last reply Reply Quote 1
                    • A Offline
                      Albert2002
                      last edited by

                      Looking forward to see the window sensors! I would like to see the current state & the last change of it. Are you planing something like this?

                      Name     State     Last change 
                      Kitchen  closed   1.Nov. 18:01
                      

                      What I would like to see on my mirror as well are the sate of the Yeelights ( on / off)

                      1 Reply Last reply Reply Quote 0
                      • B Offline
                        barnosch
                        last edited by

                        So, sadly the german customs took my whole order from China.
                        :(
                        No CE sign, no german manual, wirless connection needs to be tested…
                        i could puke.

                        Can someone recommend a company i can order from germany, without getting to the customs (EU-Warenlager) ?

                        ? 1 Reply Last reply Reply Quote 0
                        • 1
                        • 2
                        • 3
                        • 4
                        • 5
                        • 14
                        • 15
                        • 3 / 15
                        • First post
                          Last post
                        Enjoying MagicMirror? Please consider a donation!
                        MagicMirror created by Michael Teeuw.
                        Forum managed by Sam, technical setup by Karsten.
                        This forum is using NodeBB as its core | Contributors
                        Contact | Privacy Policy