Read the statement by Michael Teeuw here.
MMM-NokiaHealth (Withings)
-
Description:
I have just created (based on the MMM-iFrame module) a module to show a graph of scale measurements from Withings.
Very very much alpha stage, but quite simple to setup and use, any comments, suggestions or PRs are most welcome.
The idea is that you setup a IFTTT applet that runs a webrequest when a new body measurement is made. That will show the graph on the mirror, and it will autohide again.
(It would be great to add config options to change this behavior, but that is on the todo list)
Download
[card:ecomerc/MMM-NokiaHealth]
-
hi
great, but it doesn’t work for me. I followed steps, get the ID, downloaded the module, but:- the module extracts by default to MMM-NokiaHealth-master, but from this folder it doesn’t work (in consoled I’ve seen path errors). So I renamed it to MMM-NokiaHealth
- after correcting the path, all modules in config.js before this module works, all after this not. And this module doesn’t show anything as well. In console there is a lot of errors in “main.js:143” and others…
thanks for any help
Zdeněk -
@zdenek did you run
npm installin the directory of this module? The readme doesn’t say so, but it is required as the module makes use of some dependencies. For further help it would be great if you can post the logs with the errors. -
yes, I did
Uncaught TypeError: Cannot read property 'getElementsByClassName' of null at moduleNeedsUpdate (main.js:134) at updateDom (main.js:104) at Object.updateDom (main.js:468) at Class.updateDom (module.js:295) at Object.$.getJSON [as success] (MMM-Hue.js:155) at fire (jquery.js:1037) at Object.fireWith [as resolveWith] (jquery.js:1148) at done (jquery.js:8074) at XMLHttpRequest.callback (jquery.js:8598) main.js:134 Uncaught TypeError: Cannot read property 'getElementsByClassName' of null at moduleNeedsUpdate (main.js:134) at updateDom (main.js:104) at Object.updateDom (main.js:468) at Class.updateDom (module.js:295) at Class.socketNotificationReceived (MMM-SystemStats.js:68) at module.js:183 at n. (socketclient.js:25) at n.emit (universalModuleDefinition:2) at n.onevent (universalModuleDefinition:3) at n.MMSocket.self.socket.onevent (socketclient.js:19) main.js:134 Uncaught TypeError: Cannot read property 'getElementsByClassName' of null at moduleNeedsUpdate (main.js:134) at updateDom (main.js:104) at Object.updateDom (main.js:468) at Class.updateDom (module.js:295) at Class.socketNotificationReceived (MMM-SystemStats.js:68) at module.js:183 at n. (socketclient.js:25) at n.emit (universalModuleDefinition:2) at n.onevent (universalModuleDefinition:3) at n.MMSocket.self.socket.onevent (socketclient.js:19) main.js:134 Uncaught TypeError: Cannot read property 'getElementsByClassName' of null at moduleNeedsUpdate (main.js:134) at updateDom (main.js:104) at Object.updateDom (main.js:468) at Class.updateDom (module.js:295) at Class.socketNotificationReceived (MMM-synology-ds.js:93) at module.js:183 at n. (socketclient.js:25) at n.emit (universalModuleDefinition:2) at n.onevent (universalModuleDefinition:3) at n.MMSocket.self.socket.onevent (socketclient.js:19) main.js:134 Uncaught TypeError: Cannot read property 'getElementsByClassName' of null at moduleNeedsUpdate (main.js:134) at updateDom (main.js:104) at Object.updateDom (main.js:468) at Class.updateDom (module.js:295) at Object.$.getJSON [as success] (MMM-Hue.js:155) at fire (jquery.js:1037) at Object.fireWith [as resolveWith] (jquery.js:1148) at done (jquery.js:8074) at XMLHttpRequest.callback (jquery.js:8598) moduleNeedsUpdate @ main.js:134 updateDom @ main.js:104 updateDom @ main.js:468 updateDom @ module.js:295 $.getJSON @ MMM-Hue.js:155 fire @ jquery.js:1037 fireWith @ jquery.js:1148 done @ jquery.js:8074 callback @ jquery.js:8598 XMLHttpRequest.send (async) send @ jquery.js:8526 ajax @ jquery.js:7978 jQuery.(anonymous function) @ jquery.js:7614 getJSON @ jquery.js:8108 getData @ MMM-Hue.js:153 setInterval @ MMM-Hue.js:52 main.js:134 Uncaught TypeError: Cannot read property 'getElementsByClassName' of null at moduleNeedsUpdate (main.js:134) at updateDom (main.js:104) at Object.updateDom (main.js:468) at Class.updateDom (module.js:295) at Class.socketNotificationReceived (MMM-SystemStats.js:68) at module.js:183 at n. (socketclient.js:25) at n.emit (universalModuleDefinition:2) at n.onevent (universalModuleDefinition:3) at n.MMSocket.self.socket.onevent (socketclient.js:19) moduleNeedsUpdate @ main.js:134 updateDom @ main.js:104 updateDom @ main.js:468 updateDom @ module.js:295 socketNotificationReceived @ MMM-SystemStats.js:68 (anonymous) @ module.js:183 (anonymous) @ socketclient.js:25 n.emit @ universalModuleDefinition:2 n.onevent @ universalModuleDefinition:3 MMSocket.self.socket.onevent @ socketclient.js:19 n.onpacket @ universalModuleDefinition:3 (anonymous) @ universalModuleDefinition:3 n.emit @ universalModuleDefinition:2 n.ondecoded @ universalModuleDefinition:1 (anonymous) @ universalModuleDefinition:3 r.emit @ universalModuleDefinition:1 s.add @ universalModuleDefinition:1 n.ondata @ universalModuleDefinition:1 (anonymous) @ universalModuleDefinition:3 n.emit @ universalModuleDefinition:2 n.onPacket @ universalModuleDefinition:2 (anonymous) @ universalModuleDefinition:2 n.emit @ universalModuleDefinition:2 n.onPacket @ universalModuleDefinition:2 n.onData @ universalModuleDefinition:2 ws.onmessage @ universalModuleDefinition:3 main.js:134 Uncaught TypeError: Cannot read property 'getElementsByClassName' of null at moduleNeedsUpdate (main.js:134) at updateDom (main.js:104) at Object.updateDom (main.js:468) at Class.updateDom (module.js:295) at Class.socketNotificationReceived (MMM-synology-ds.js:93) at module.js:183 at n. (socketclient.js:25) at n.emit (universalModuleDefinition:2) at n.onevent (universalModuleDefinition:3) at n.MMSocket.self.socket.onevent (socketclient.js:19)a lot of these rows
-
@zdenek the logs are all related to other modules as far as i can see, that comes probably because they are in your config after mmm-nokiahealth. can you put mmm-nokiahealth at the bottom of your configured modules and try to restart and then post the logs again so we can see the logs related to this module
-
@strawberry-3.141 done, here is the result
MMM-NokiaHealth received a system notification: ALL_MODULES_STARTED main.js:38 Uncaught TypeError: Cannot read property 'appendChild' of undefined at createDomObjects (main.js:38) at Object.modulesStarted (main.js:425) at startModules (loader.js:59) at loader.js:40 at HTMLLinkElement.stylesheet.onload (loader.js:203) -
@zdenek Pls check the region that you set in your config. I only get this error, when I am using an invalid config position.
-
@strawberry-3.141 You are right, there was typo in Position. Now there is no error, but the module is not visible at all. No Error, but in Source code of page I can see the data, so it means, ID is right, script gets data, just doesn’t display. Could be cause I’ve another iFrame on the screen?
thanks
-
Hi there is it possible to see a screenshot of how the graph looks like on the mirror, Thanks.
-
I am sorry for the really slow response time, I have been totally swamped at work.
When it shows on the screen, it is essentially a small iframe in the middle with a graph (I will at some point get a screenshot)
However I have realized that the IFTTT integration is waaaaaay to slow, it will check once every 15 minutes, and then I have usually left the mirror. I need to figure out a way to instantly get the information from the scale. I have a few ideas but simply not enough time.
-
Hmmmmm i see your predicament sir…
-
I am just airing one idea here:
Using the https://github.com/node-pcap/node_pcap I should be able to setup a listener for Withings Scales (by either destination URL or MAC address) once a device is detected show the graph.
Please feel free to share your thoughts on that? I do not know if this is too much for the MagicMirror to handle with pcap add-on. Perhaps this should be a separate plugin that can be reused for other device detections.
-
had a look at the pcap add-on to be honest i think its going to be heavy for just a listener
-
still doesn’t work for me. I’ve tried new Raspberry pi 3, clean install of NOOB, installed MM, updated everything. Installed just few modules (Simple logo and MMM-WunderGround) and Nokia. It connects to server, get the data, but just not to create the graph. as you can see,
, div is created, and in Dev console is no error and in seleted DIV are located data 
Of course I ran npm install after installation of module Nokia.thanks for help, Zdeněk
-
I know, I know, I know, the use case is convoluted and it needs work work work.
The graph will not display until a remote server flag is set. This was to avoid opening ports in the local network (which is not possible with me). The graph is supposed to only show when you have been on the scale (I am working on something that will make that user configurable, but time, ohhhh that missing time)
For now, try manually from your phone or laptop or somewhere else calling:
http://apps.ecomerc.com/nokiahealth/user.php?userid=[youruserid]&a=setThat will set a server flag that the module will check in order to show the graph. The idea was you can use IFTTT to set the server flag and show the graph, this was the model because IFTTT has a trigger for Withings new measurement. This does not work because the IFTTT trigger has a delay of up to 15 minutes.
-
@petero-dk thx, but now I’m confused even more. I did the trick with a=set and after start MM I can see the graph (there was somehting like “Values for…” but I’ve of course named ppl in the device) and small graph (need to resize, cause I can identify that the weight is between 50 and 100 kilos - this not enough to monitor the weight differences). Anyway, the graph after few secs disappeard and doesn’t start anymore. I tried restart MM (not the whole RP). So it’s not the same - in the DEV I can see values, no error, but on the screen no graph.
btw, great job - everyone, who is able own module is for me like magic-man
Zdeněk
-
@zdenek You do not need to reset MM, just call the http://apps.ecomerc.com/nokiahealth/user.php?userid=[youruserid]&a=set and the graph will display for a few seconds.
When you want to see it again, call
http://apps.ecomerc.com/nokiahealth/user.php?userid=[youruserid]&a=set(It is like a remote control for the graph) - yes I know it seems stupid but at the time it was a good idea, it will be changed completely
-
@petero-dk said in MMM-NokiaHealth (Withings):
oh, I’ve got it. So there is actually no way to display it permanently?
and is there way, how to change the scale? or zoom? I mean, to see graph from 0 to 100 kilos doesn’t give detailed info. Let imagine, your weight is 80 kilos and you know, it can be from 70 to 90 and you want to see just this range…thanky
-
@zdenek not yet, but next version for both things…
-
@petero-dk I can’t wait for…thanks
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login