"Has anyone integrated Smart Home Energy Monitor with 16 50A Circuit Level Sensors" into HS for energy monitoring? I can only find some information about the Emporia Energy Vue. Smart Home Energy Monitor with 16 50A Circuit Level Sensors | Vue - Real Time Electricity Monitor/Meter | Solar/Net Metering: Amazon.com: Tools & Home Improvement
Announcement
Collapse
No announcement yet.
Emporia Smart Home Energy Monitor with 16 50A Circuit Level Sensors
Collapse
X
-
Ah, mcsMQTT. It's just a steep learning curve which is why I went with the JowiHue PI for my zigbee devices. But mcsMQTT seems to be doing about everything and has actually very extensive documentation. I guess I have to give it another try. Two questions:- I saw that mcsMQTT supports an Emporia device but it was a different one, i.e. the Emporia Vue. Will mcsMQTT also work with that other Emporia device I linked above?
- Based on your comment it seems you like the Emporia devices and would recommend that 16 channel energy monitor?
Comment
-
I have an Emporia Vue, 16 channel unit. The only issue I have is that the jacks where the sensors plug in is not very strong of a grip so they can pop out. Rubber bands have helped. As of a year ago Emporia is aware of the issue and claimed they were planning to resolve this.
I will need 2 more (1 for the main bax as I have more than 16 breakers, another for a sub-panel) and intend to get them once I have the excess funds. (Meaning: I stop getting and playing with other things.)
Karl S
HS4Pro on Windows 10
1070 Devices
56 Z-Wave Nodes
104 Events
HSTouch Clients: 3 Android, 1 iOS
Google Home: 3 Mini units, 1 Pair Audios, 2 Displays
Comment
-
Ah, mcsMQTT. It's just a steep learning curve
Unfortunately, the API is reverse-engineered. Their support forums indicated that Emporia would make it public. It uses an AWS flavor of oAuth2 login authentication. I was not successful implementing it directly in the plugin so was going to wait until they documented the login procedure. In the interim I found a Python implementation that had the login coded so I just ran the Python program to do this part. Unfortunately, it means this is the most complex install of all the mcsMQTT integrations because there is a Python component that needs to be installed. The step by step from mcsMQTT.pdf for this is below. Once completed the HS devices are created and updated automatically.
The step-by-step setup of the pieces described above is itemized below.- Install PyEmVue from command line with “pip install pyemvue” in command/terminal window. Note possible variation between Windows and Linux described above to have success with the install.
- Download AWSlogin and place in Python packages folder
- Download AWSKeys, unzip into \data\mcsMQTT folder and edit for login credentials
- Edit \config\mcsMQTT.ini if the path to python.exe is not C:\Python37-32\python.exe. Note again a variation in Winows vs. Linux where Linux may require use of an additional bash script and change to haow PythonPath is specified.
- On Cloud Page, URL tab enter URL https://api.emporiaenergy.com, GET radio for protocol, oAuth2 as authorization
- On HS Devices page URL Room and Floor api.emporiaenergy.com:Control feature text box enter /customers/devices
- On MQTT Page, Association Tab, look for the deviceGid in Payload column and write it down
- On MQTT Page, General Tab, Obsolete Row textbox enter URL/api.emporiaenergy.com.GET:#
- On Cloud Page, URL tab enter the following after updating the deviceGids number and scale if desired /AppAPI?apiMethod=getDeviceListUsages&deviceGids={123456}&instant=$$UTCYEAR:-$$UTCMONTH:-$$UTCDAY:T$$UTCHOUR::$$UTCMINUTE::$$UTCSECOND:.0Z&scale=1MIN &energyUnit=KilowattHours
- On Cloud Page, URL tab enter polling rate that should be consistent with the scale parameter. For example, if scale=1D then no need to poll every second, but perhaps 1 hour would be appropriate.
Comment
-
Michael McSharry I followed the documentation up to setting the Python path which in my case is c:\Python39\python.exe.
1. Installed PyEmVue
2. Downloaded AWSlogin so I have C:\Python39\Lib\site-packages\AWSlogin\__main__.py
3. Downloaded key file into C:\Program Files (x86)\HomeSeer HS4\Data\mcsMQTT\keys.json I updated the json file with my email and password that I use to log into the Emporia web portal (https://web.emporiaenergy.com/#/)
4. Python path was updated in C:\Program Files (x86)\HomeSeer HS4\Config\mcsMQTT.ini.
5. On http://192.168.1.200/mcsMQTT/Cloud.html I entered as described
I am stuck at 6. Am I going to http://192.168.1.200/devices.html? I don't understand those instructions. I also don't see deviceGid on http://192.168.1.200/mcsMQTT/MQTT.html but I guess that's because I didn't do step 6 yet.
Comment
-
The referenced step applies to the text box left of the SUBMIT button in the screenshot below. It is on the URL Floor of the HS Devices page. Enter, without quotes "/customers/devices"
The next step is to find the deviceGid of your unit. To make it easy to find use the T1 and J3 filter on the MQTT Page, Association Tab as shown below. The payload column will have the number that you need to use. In my case I have two units. One on the main circuit panel and one smart outlet. You will likely have only one. You likely will need to use the Rebuild Filters button on the Topic/Filter selectors since this will be a newly discovered item. You may also then need to refresh the browser page to have it redrawn correctly.
In lieu of using the filters you can scroll with the Next button looking for the row of interest. I forget how many rows are delivered on the initial query. It may be sufficiently small that scrolling will work without too much effort.
Emporia was one of the first HTTP type integration done in the plugin and I was still learning how to put it all together. In essence I was taking notes of the steps as I went along. I never went back and automated those steps. New integrations have all of these steps automated in the plugin so nothing else is needed from the user other than entering account credentials to the cloud account.
Comment
-
Michael McSharry got it. Maybe rephrase it to something like "click on the button FLOOR and select the floor URL".
I only see the device URL-api.emporiaenergy.com, though, i.e. none of the other devices. See here:
I did enter "/customers/devices" (without quotes) and hit Submit. I also entered the cloud setting in the plugin configuration page. I can't really enter the polling endpoint yet as I need the DeviceGids but that doesn't show up in the plugin configuration page yet. Your screenshot also shows something to the right of OAuth2 but it's not clear what needs to be entered there, if anything (maybe it is auto-populated).
I checked the keys.json file. It still has my email address under "username" but the password was replaced with access_token, id_token, refresh_token and token_type. So it seems the login worked.
Comment
-
I did enter "/customers/devices" (without quotes) and hit Submit. I also entered the cloud setting in the plugin configuration page. I can't really enter the polling endpoint yet as I need the DeviceGids but that doesn't show up in the plugin configuration page yet. Your screenshot also shows something to the right of OAuth2 but it's not clear what needs to be entered there, if anything (maybe it is auto-populated).
I checked the keys.json file. It still has my email address under "username" but the password was replaced with access_token, id_token, refresh_token and token_type. So it seems the login worked.
On the MQTT Page, General Tab there is a debug checkbox. Enabled it. The file will be created in \data\mcsMQTT\mcsMQTT Debug.txt. Try the submit customer/devices again and post the debug file. It would also be a good idea to click the Start Polling button. There may be a lockout when stopped.
Comment
-
Michael McSharry I enabled logging and about every 10s I see the entries below. Looks like I might have something misconfigured.
3/31/2023 2:40:47 PM 1966799 | SendCommandGet https://api.emporiaenergy.com/
3/31/2023 2:40:47 PM 1966992 | HTTP Get Response Error https://api.emporiaenergy.com/ at System.Net.HttpWebRequest.GetResponse()
at MCSMQTTHS4_2020.HttpURL.SubmitGet(String sCommandIn, String sHeader, Int32 iAuth, String sToken) in C:\Users\Public\Documents\TFVC\HS\MQTT\MCSMQTTHS4_2020\Netwo rk.vb:line 845
Line 0 The remote server returned an error: (403) Forbidden. 0 The remote server returned an error: (403) Forbidden.
3/31/2023 2:40:47 PM 1966992 | HTTP Get Finally no Response
3/31/2023 2:40:47 PM 1966992 | ProcessMessage URL/api.emporiaenergy.com/.GET.Error
3/31/2023 2:40:47 PM 1966993 | ActOnMessageForTrigger QueueSize=0 ,Topic URL/api.emporiaenergy.com/.GET.Error,Payload The remote server returned an error: (403) Forbidden.
Btw, I just finished installing my second Vue 2. Will see if it recognizes it.
Comment
-
Michael McSharry I set the polling rate to 0. No devices appeared. I did shut down HS4, deleted the plugin log files and restarted the HS4. I don't see any "SetIOMulti". Looks like it can't connect to the server. The log file is attached. These are the current cloud settings
Comment
-
Your Feature Ref 1120 is the one that should have the submit textbox with /customers/devices. Each time a user activates a control for the Feature should result in a call to the plugin at the method SetIOMulti. This will include the Start Poll button and the Submit textbox. If this is not happening, then mcsMQTT has no means to act upon the request.
I do see other debug output that looks normal for zigbee and plugin/resource management. I also see you are using version 5 of the plugin. It is pretty old so I think the first step is to update to version 6. One approach is via HS Updater to get you to 6.0.x.x. A better choice is to use the updater override process to move to 6.3.1.0 which is the one that matches my current source code. I will be submitting it to Updater very soon but it is available at mcsMQTT Change Log (HS4 & HS3) - HomeSeer Message Board at the bottom of the first post and includes some guidance on how to use the Updater Override process. You will need the full install since you are at version 5.x.x.x.
Your Cloud Page screenshot looks correct. oAuth2 is handled by the Python program so no other entries needed. I suspect I capture my document's screenshot when I was trying to login to AWS and eventually gave up and went with the Python approach until an official Emporia integration is documented.
Comment
Comment