Read the statement by Michael Teeuw here.
MMM-Hoymiles-Wifi
-
Hi there,
I made some major changes to the code and hopefully did all the GitHub stuff correct in order to allow persons interested to give it a (new) try.
https://github.com/schris88/MMM-Hoymiles-Wifi
There is still a lot to do (see ‘TODO’ in the README file), but I think the basis provided by Christian (@schris88) has been strengthened.
Best regards,
E.J.
-
Christian,
This is on the TODO list:
change pv_data to dtu date for combined output of inverterBut I do not really understand what you mean by it.
Do you mean combined output of 2 panels iso just 1 ?Please elaborate.
E.J.
-
@evroom Hi there, maybe you can confirm, if the inverter has multiple inputs there seems to be an array of pv_data objects in the json (as seen in the test.json you pushed)
so the meter should combine all pv data power to have the total, right.
But we dont need to do that by hand because the combined value should be in dtu_power already, you can get rid of all the try except.I just didnt change it in the beginning because for inverters with only one input it makes no difference because its pv_data power and dtu_power is always the same value.
-
First of all, those are details I need to have a look at now that the basis is there.
Perhaps there are other values and queries that make sense and that I can use. Like dtu_power and dtu_daily_energy.
Also saving some data to not have counters showing 0 when the invertor is inactive needs to be implemented.
During testing I found out that the pv_data for port 1 and 2 were different sometimes and that is why I needed to add those checks.
And they can never hurt. Better to be safe than sorry.
Furthermore, when you have only 1 panel connected, it is needed anyway. -
Just FYI, I declare(d) more parameters than really necessary and actually used, in order to allow for more counters to display.
For example a gauge for each panel; more details on the energy production of each panel; etc.
I will make a remark about this in the code. -
@evroom That sounds good, but we should loop through the pv_data objects and display each as a graph. In the end, there could be a config setting like detailed: true to activate the display of all pv_data objects as individual graphs. If set to false, we could display a single graph with the total power.
There are Hoymiles inverters with 6 inputs, and adding 6 × 6 to 8 variables can quickly add up. This might not be an issue for us, but it’s worth considering if the module should be as generic as possible.
Sorry I´m a IT-Consultant who, sometimes it breaks through :D
-
@schris88 Recently worked on it a bit and added a second branch with local mongodb to save and display max power, Im planning to use the db entries to display a history chart
-
Hallo,
ich bin reltiv neu hier und versuche gerade das modul zu installieren.Ich habe soweit alles nach Anleitung gemacht, aber wenn ich ./HoymilesWifi.sh starte kommt immer folgende Meldung:
* Serving Flask app 'hoymiles_data' * Debug mode: off Address already in use Port 5000 is in use by another program. Either identify and stop that program, or start the server with a different port.Was mache ich falsch? Der port ist angeblich durch pthon belegt …
Danke und Grüße
Florian
-
Try this to find out what is using port 5000:
sudo netstat -apln | grep -w 5000And did you update the bash program?
https://github.com/schris88/MMM-Hoymiles-Wifi?tab=readme-ov-file#enter-dtu-ip-address-of-dtu -
@evroom
Thanks for the quick answer.I inserted the IP of the dtu.
Portscan is:
tcp 0 0 127.0.0.1:5000 0.0.0.0:* LISTEN 64879/python tcp 0 0 127.0.0.1:33698 127.0.0.1:5000 TIME_WAIT - tcp 0 0 127.0.0.1:5000 127.0.0.1:56374 TIME_WAIT - tcp 0 0 127.0.0.1:60100 127.0.0.1:5000 ESTABLISHED 71440/exe tcp 0 0 127.0.0.1:5000 127.0.0.1:60100 ESTABLISHED 64879/python tcp 0 0 127.0.0.1:52508 127.0.0.1:5000 TIME_WAIT - tcp 0 0 127.0.0.1:50296 127.0.0.1:5000 TIME_WAIT - -
This command should give more information on the PID found:
ps -Flww -p
E.g.
ps -Flww -p 64879
Perhaps there are easier ways, but this should do.
-
Seems that this is hoymiles …?
F S UID PID PPID C PRI NI ADDR SZ WCHAN RSS PSR STIME TTY TIME CMD 0 S florian 64879 64878 1 80 0 - 59630 do_sys 137520 1 16:11 ? 00:05:02 python hoymiles_data.py --dtu_ip_address 192.168.178.150 --max 800 -
Yes, so an instance is already running.
You added it to pm2 too?pm2 status
If yes, then you do not need to run it manually.
If no, then kill the (p)pid.sudo kill -9 [ppid]
-
Well, I’ve done that now. At the moment it is night so I can’t see any output.
Will see if it works tomorrow …Thank you. I will post if it runs then.
-
Can’t get it to work.
I don’t know what I’m doing wrong…
Now, Portscan ist about that:
tcp 0 0 127.0.0.1:5000 0.0.0.0:* LISTEN 1139/python tcp 0 0 127.0.0.1:5000 127.0.0.1:37002 ESTABLISHED 1139/python tcp 0 0 127.0.0.1:57592 127.0.0.1:5000 TIME_WAIT - tcp 0 0 127.0.0.1:37002 127.0.0.1:5000 ESTABLISHED 6097/exe -
First I would disable the module:
$ vi ~/MagicMirror/config/config.js module: "MMM-Hoymiles-Wifi", disabled: true, $ pm2 restart MagicMirrorI build this command to try to get more info on port 5000:
$ for pid in `lsof -i :5000 | grep -v 'PID' | awk '{print $2}' | sort -u`; do echo $pid; ps -Flww -p $pid; doneHopefully the Forum tool does not change it.
Furthermore please verify and supply the following data:
$ cd /home/admin/MagicMirror/modules/MMM-Hoymiles-WifiCheck path:
$ which hoymiles-wifi $ echo $PATHCheck if the path is in the PATH.
If not, do (using the path from ‘which’):$ export PATH=$PATH:/home/admin/.local/binCheck config.js:
$ grep ':5000' ~/MagicMirror/config/config.jsExpected is:
{ src: 'http://127.0.0.1:5000' },Check HoymilesWifi.sh:
$ grep 'dtu_ip_address' HoymilesWifi.shExpected is your DTU IP address, for example:
python hoymiles_data.py --dtu_ip_address 192.168.178.50 --max 800Test run (hoymiles-wifi):
$ hoymiles-wifi --host 192.168.178.50 identify-invertersExpected is a response.
Test run (HoymilesWifi.sh)
$ ./HoymilesWifi.shExpected is:
* Serving Flask app 'hoymiles_data' * Debug mode: off INFO:werkzeug:WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Running on http://127.0.0.1:5000 INFO:werkzeug:Press CTRL+C to quitIf you wait a bit some more output is shown.
If it works, then I would suggest to stop the
./HoymilesWifi.shcommand and do:$ cd /home/admin/MagicMirror/modules/MMM-Hoymiles-Wifi $ pm2 start HoymilesWifi.sh $ pm2 save $ pm2 status HoymilesWifi $ pm2 logs HoymilesWifi --lines 10If everything is okay, the enable the module again:
$ vi ~/MagicMirror/config/config.js module: "MMM-Hoymiles-Wifi", disabled: false, $ pm2 restart MagicMirror -
To be honest, for me the MM does not display anything.
Although it is dark, I still expected the graphic with 0 or so.
Or I have to wait a bit longer.I used
https://github.com/schris88/MMM-Hoymiles-Wifi/
and all the above is correct and running.A year ago I made a fork and made some changes, of which I think are present in the schris88 version as well.
https://github.com/evroom/MMM-Hoymiles-Wifi/
I will give this one a try when I have time.PS: it seems that when the microinverter is off-line, you will not see anything. Need to wait for it to be active again.
-
@evroom said in MMM-Hoymiles-Wifi:
$ grep ‘dtu_ip_address’ HoymilesWifi.sh
Until that line everything is ok. After that it says:
grep: HoymilesWifi.sh: No such file or directory -
@evroom said in MMM-Hoymiles-Wifi:
$ hoymiles-wifi --host 192.168.178.50 identify-inverters
This works:
Identify-inverters Response: {'1412a015f1e3': 'HMS-800W/1000W-2T'}After that: ./HoymilesWifi.sh
* Serving Flask app 'hoymiles_data' * Debug mode: off Address already in use Port 5000 is in use by another program. Either identify and stop that program, or start the server with a different port. -
@Jose1701 typo
grep 'dtu_ip_address' Hoymiles-Wifi.sh
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