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 195.9k 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 mirko3000

      Ok at least some progress. So first to enable your manual token just update the configuration:

      config: {
      	 interval: 30,
      	 gatewayIP: '192.168.13.1',
      	 gatewayToken: '6eea5ac1eb475bfedbfff98aab7c2bc7',
      	 devices : [{
      	     id: '158d00015736a8',
      	     name: 'MyRoom1'
      	 }]
      }
      

      You only need the IDs from your sensors, not the gateway.

      About the Mi Home App and your lost token, I would try once this works to reconfigure your gateway with the Mi Home app, and then try to fetch the auto-token again (in your first sample it seems to provide auto-token).

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

        I did the steps again to get the (new) Token. Now, I have a new Token and the Gateway again in my Mi Home app. I didn’t updated the Token on the different machine this time.

        I’ve tried out your new config. I still don’t see more than before on the MM, but I don’t have an error log as well, which make it a bit more harder.

        I have checked the IP address of the Gateway, its still the same. Dev is still enabled.

        My config with the new Token.

        		{
        		module: 'MMM-xiaomi',
        		position: 'bottom_left',
        		header: 'Temperatur / Feuchtigkeit',  // This is optional
        		config: {
        			interval: 30,
        			gatewayIP: '192.168.2.107',
        			gatewayToken: '050591e66a82f7adc92bfa6b03058cdb',
        			devices: [{ id: '158d00015736a8', name: 'Wohnzimmer' }]
        			// See 'Configuration options' for more information.
        				}
        		},
        

        Edit:

        I get a error when I try to discover with miio:

        pi@MagicMirror:~/MagicMirror/modules/MMM-xiaomi/node_modules/miio $ miio --discover
         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:3626) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Call to device timed out
        
        
        1 Reply Last reply Reply Quote 0
        • A Offline
          Albert2002
          last edited by

          Where did miio stored the Token?
          The Token Miio used “Token: 6eea5ac1eb475bfedbfff98aab7c2bc7 via stored token”
          is the old one! the new one is 050591e66a82f7adc92bfa6b03058cdb

          1 Reply Last reply Reply Quote 0
          • 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
                        • 1
                        • 2
                        • 3
                        • 4
                        • 5
                        • 14
                        • 15
                        • 1 / 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