I’ve spend quite some time now getting this to work:
But that topic alone starts off with confusing me. Right with the first line it starts with “this is gone now” in a release topic… Ok, so… Does that mean it doesn’t work? All the information is still there, the github is there as well and there don’t seem to be any other mention of that release to be “gone” anywhere else. I did my best to get that to work, but nothing i tried seemed to be working. I followed GitHub - fireboy1919/MiThings: SmartThings device & SmartApp code to integrate MiLight brand LED bulbs into the ST platform. (which again is shrouded by vagueness), i ended up installing the SmartApp milight-manager.src and the controller milight-controller.groovy. Bot nowhere it mentions anything about the hub IP (to the milight hub) i need to set or where to set it… So i took an educated guess and filled in the milight hub ip under “Device network id” when creating a new device. Obviously with providing “MiLight Controller” as type, location set to home and hub set to Home Hub (which is the SmartThings hub). No group.
First of all, i’m really curious to know if this is how i’m supposed to set it up?
I had put the MiLight hub in TCP mode, but none of the code that i installed is setting up a port while the default is port 8899 The controller code seems to completely ignore that: https://github.com/fireboy1919/MiThings/blob/master/devicetypes/fireboy1919/milight-controller.src/milight-controller.groovy#L148 but i’m not even sure if that function is being called at all as there is no call to it from anywhere. And if i’m trying to execute the httpCall method in the simulator it welcomes me with this error:
20e0acfe-7f2a-400c-86ab-d127a5e561a0 1:46:00 PM: error groovy.lang.MissingMethodException: No signature of method: script_dth_998560e8_be68_4b22_98b2_28c038e7d6e3_ver_0_4.httpCall() is applicable for argument types: () values:
Possible solutions: httpCall(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object), httpGet(), httpHead(), httpPost(), httpPut(), httpGet(java.lang.String)
Which makes me think that the method isn’t even being used.
As you probably can see by now, i\m new to this platform
I would be very grateful for some pointers here.
Am i doing this correctly, and if so can i thus conclude that the referenced milight implementation does not work? If that is correct, is there a working implementation for this?
If you look at the top of the topic, you’ll notice that the description is based upon using the homemade hub, not the one created by milight. The custom hub has a REST API, and supports basically unlimited light groups (rather than just four).
I’m using a official milight v6 hub.
I want to use the custom one though, but the parts for that are on it’s way and making that work will take a bit of time as well (soldering, flashing, etc…). So for the moment the official one will have to do.
As i said, i followed your description (the one on github that is) the best i could. It does not state anything about the official hub or the custom one!
Could you please make your github description slightly more detailed of how it should work?
I for instance completely miss where to fill in the IP and which “SmartApps” to install. The github main page tells all of them. The smartapps files (mithings.groovy and milight-light.groovy) both have in the description: “do not install directly”… That is really confusing!
As for your topic that i linked. Could you please rewrite the first post to be clear? It really is a mess of talking about both things in very vague terms. It references your github page, another page with a article about “Integration of MiLight, LimitlessLED, Easybulb, etc (2 methods)”…
Well, the post on this forum starts the paragraph with “throw away your old hub,” and I link to the other project which very clearly does not work the same way as the original hub.
You are correct that I did not explicitly write out “this does not work with the original milight hub,” and the documentation definitely isn’t at a professional manual level. It’s just enough so that if you know how to install custom integrations you can figure this one out with almost no work.
Since I’m basically doing this work for fun (and, in fact, wrote the integration primarily during a very brief period of unemployment) that’s enough for me to be happy with it - at least for the moment. If a lot of other people start mentioning the same complaint, I may do something about it.
That said, if you’d like better docs, I would be happy to accept a pull request with improved docs, or a commission for me to write better docs myself.
Not without using an external service outside Smartthings.
Unfortunately, Smartthings development is super painful compared to virtually everything else unless you want it to use a REST endpoint, and that’s not how these lights work out of the box.
I apparently didn’t mention it but i’m using Google Assistant.
So no.
Also, by now i have this working and for quite a while. The setup is a nightmare.
That is partly due to the way SmartThings works (which on it own is enough to get a thorough headache from). Then you’d need another proxy to map the signals from smartthings to your hub.
The control flow is basically like this:
(i say): Hey google, turn on the lights.
Steps in between outside my network (google -> smartthings internet -> smartthings local)
My SmartThings device receives the command
Local SmartThings talks to the (local) MiLight web proxy.
Local MiLight proxy parses it and passes it on to the MiLight hub.
Lights go on.
Also, i’m very disappointed in MiLight itself that they till this very day still have not made Google Assistant integration!
Now when i made the initial post i was just new to Google Assistant and before that was just using the MiLight app (which crashed so freaking often!). So i kinda rolled into this nightmare combination.
But if had known back then what i know now, i would’ve never bought MiLight. Even MiHome (MiLight is not related to them, MiHome is Xiaomi) has Google Assistant integration now and has far better products then MiLight at comparable prices. And now i feel quite reluctant to drop MiLight as i have quite some parts of it that i’d have to replace if i were to choose another platform.
Now some people might begin mentioning hubs or proxy hubs (like Home-Assistant) or even IFTTT. I’m going to completely ignore that. I tried. Each additional hub (specially if it goes back to the internet again) adds a significant delay. They all add up and contribute to giving a slow experience. If i tell google to turn my light on, it should do so within a second. As my setup is now, it does that (barely) but that’s only because the extra proxy i (have to) use is internal in the network and therefore adds only a couple milliseconds delays.