New emonSD release: emonSD-30Oct18 (Raspbian Stretch Pi3B+ compatible) 🎉

Hi,

I upgraded my emoncms to version 9.9.4 successfully with emonSD-26Oct17 image on my emonPi. I’m now wondering if it is possible to migrate to the emonSD-30Oct18 image directly from my computer through my wifi network, or if it is necessary to open the case of my emonPi to flash the SDcard with Etcher.

Regards

Gerard

The key difference is that the new image’s base OS is a ‘Stretch’ image (old one was ‘Jessie’ i.e. different versions of Raspbian/Debian).

To make the upgrade, you do need to reflash the SD Card - personally, I’d buy a new card so you have a path back if it is not successful.

You will need to backup the data and the import it. As you have upgraded to 9.9.4 that should be less of a hassle.

I would suggest you

  • First update the existing setup to 9.9.4.
  • Backup / export data
  • Flash new image to (new) SD Card
  • Install card, get system up and running (wifi etc).
  • Update EmonCMS system (image is not on latest).
  • Restore data (which will include dashboards etc (hopefully…)

By using a new card, you have a route back to where you were if something goes wrong.

2 Likes

Thank you for the is list - I need to run through this list…

“First update the existing setup to 9.9.4.” - I have Version low-write 9.8.31 | 2018.06.21 - so I need to update. Should I use “emonpi Update” or “emonBase Update” button? I’m not clear what each does this instance. Alternative I could ssh and then a “.sh”?

Similarly the line “Update EmonCMS system (image is not on latest).” - does that also use “emonpi Update” or “emonBase Update” button? etc…

Yes ‘emonpi update’ is the best method in both instances. The emonbase update updates the firmware on the rflink (I think - not an emonpi user).

Take a backup first :smile: - there are a number of threads on baking up / exporting data.

My crib notes say:

Update EmonPi Button or Update EmonBase Button? - #15 by pb66

And in rather more detail (all courtesy of @pb66)

Updating emonPi sketch:
If you do want to change the firmware, it’s best to compile the Arduino sketch on your PC then transfer the .hex to the emonPi and upload directly from the RaspberryPi using avrdude. Emonhub will need to be stopped to free up the serial port. See example script to upload .hex emonpi/update at master · openenergymonitor/emonpi · GitHub

#!/bin/bash
sudo service emonhub stop
avrdude -v -c arduino -p ATMEGA328P -P /dev/ttyAMA0 -b 115200 -U flash:w:/home/pi/emonpi/firmware/compiled/latest.hex
sudo service emonhub start

Not updating the emonPi sketch:
EmonPi AC-AC input - #13 by pb66
“If you use the “update RFM69Pi” button rather than the “update emonPi” button it will update in exactly the same way but when it tries to upload the firmware at the wrong upload baud it will fail and the existing firmware will remain intact. This works as the 16MHz emonPi has a different bootloader to all the 8MHz RFM2Pi type devices.”

If you have an emonPi with a totally stock sketch you are best using “update emonpi” to keep up to date.
If you have an emonPi with a modified sketch you are best using “update emonbase” to avoid overwriting.
If you have an emonBase and you know your RFM2Pi or RFM69Pi is rfm69 based and has a totally stock sketch you are best using “update emonBase” to keep it updated
If you have an emonBase with a rfm69 based RFM2Pi or RFM69Pi running a modified sketch OR if you have a rfm12 based RFM2Pi OR you are unsure what RFM2Pi you have you should use “update emonpi” to avoid over-writing the firmware.
Aside from the firmware differences, there is no difference, both buttons fully update the emonSD used in both the emonPi and emonBases. There is no emonHub update button, emonhub is updated along with emoncms and other softwares in that same emonSD update.

2 Likes

Thanks for your advices. Buying a new card is probably a safer solution.

1 Like

This was discussed in great length already, and there’s a link to the discussion in Glyn’s first post in this thread. Have a read through that discussion - the argument has already been lost :wink:

I’ve not been able to revive a couple of inputs - i.e. those from Robin’s Mk2 pv diverter. The standard emontx and emonth nodes have been picked up and are updating, but not these additional ones. The imported backup file has these nodes (basically node ‘12’ and ‘13’) listed in inputs, but null values. The log file shows an error:

2018-11-14 00:44:16.296|ERROR|phpmqtt_input.php|ErrorException: Undefined index: nodeid in /var/www/emoncms/Modules/input/input_model.php:206

but I’m on the edge of my knowledge here…do I need to edit the script on the diverter (which I presume is still transmitting the data with the same format) or do I need to try and find these nodes in the php script?

3 posts were split to a new topic: Getting started with energy monitoring using RasPi + CT sensors

Fixed it - basically needed to edit the emonHub config nodes and delete the old ones :smile:

2 Likes

Thanks everyone. I did a full backup for everything in keep in case of trouble, but…

The backup/SDcard2018/import works fine.

The one issue which might be nothing is that I the ‘averdude’ I updated.

At the end of the procedure it said…

=============================================
avrdude-original: safemode: lfuse reads as 0
avrdude-original: safemode: hfuse reads as 0
avrdude-original: safemode: efuse reads as 0
avrdude-original: safemode: Fuses OK (E:00, H:00, L:00)
strace: |autoreset: Broken pipe
strace: |autoreset: Broken pipe
strace: |autoreset: Broken pipe
strace: |autoreset: Broken pipe
strace: |autoreset: Broken pipe

avrdude-original done. Thank you.

strace: |autoreset: Broken pipe

Is that just then drop the connection? In which case nothing to worried about…

Thanks for everyone for the advice…

I think that error just means that the firmware upload tool could not connect to the emonpi board, did you share the details of your system? Is it an emonpi?

That’s nothing to worry about. The FW updated successfully this strace error happens when avrdude finishes. It’s due to our modified avrdude with “auto reset” to auto toggle a GPIO pin on a RasPi to reset the AVR controller.:

I did try and track this message down in the past but didn’t manage to fix it. Agree it would be best if the error wasn’t there! But nothing to worry about.

1 Like

I have just reboot my emonpi and i am getting:

Can’t connect to database, please verify credentials/configuration in settings.php
Error message: Connection refused

in the log file I am seeing

Nov 18 21:48:52 emonpi systemd[1]: Started Emoncms MQTT Input Script.
Nov 18 21:48:52 emonpi mqtt_input[11753]: PHP Fatal error:  Uncaught ErrorException: mysqli::__construct(): (HY00$
Nov 18 21:48:52 emonpi mqtt_input[11753]: Stack trace:
Nov 18 21:48:52 emonpi mqtt_input[11753]: #0 [internal function]: exceptions_error_handler(2, 'mysqli::__const...$
Nov 18 21:48:52 emonpi mqtt_input[11753]: #1 /var/www/emoncms/scripts/phpmqtt_input.php(61): mysqli->__construct($
Nov 18 21:48:52 emonpi mqtt_input[11753]: #2 {main}
Nov 18 21:48:52 emonpi mqtt_input[11753]:   thrown in /var/www/emoncms/scripts/phpmqtt_input.php on line 61
Nov 18 21:48:52 emonpi mqtt_input[11753]: Fatal error: Uncaught ErrorException: mysqli::__construct(): (HY000/200$
Nov 18 21:48:52 emonpi mqtt_input[11753]: Stack trace:
Nov 18 21:48:52 emonpi mqtt_input[11753]: #0 [internal function]: exceptions_error_handler(2, 'mysqli::__const...$
Nov 18 21:48:52 emonpi mqtt_input[11753]: #1 /var/www/emoncms/scripts/phpmqtt_input.php(61): mysqli->__construct($
Nov 18 21:48:52 emonpi mqtt_input[11753]: #2 {main}
Nov 18 21:48:52 emonpi mqtt_input[11753]:   thrown in /var/www/emoncms/scripts/phpmqtt_input.php on line 61

Glyn

Thanks for the info. I may have missed it but how do I get the new card into the pi?

If you are referring to the emonPi, you will need to open up the enclosure and insert the SD card into the RaspberryPi. See this overview video showing the inside of the emonPi:

Glyn,

New Micro SD arrived today (16GB ? iso 8GB). Sorry for this silly question, just want to make sure. I assume I do a backup. Remove the old SD then insert the new SD and then do an “Import Backup”.

Regards
John

The base emonSD image is 8GB, we have expanded the data partition to fill the 16GB card. One of the main reasons for this is at 16GB cards are now cheaper and easier to source than 8GB! Economics of scale I guess. No harm in having more storage space.

Correct, before you remove the old card update your old emonPi then run an export using the backup module. Once done, download the compressed backup file.

Then once your up and running with the new image perform an import.

See full instructions here:

https://guide.openenergymonitor.org/setup/import

I also have old hardware:

  • Pi Model B gen 1 EmonHub with old RFM12B radio runing emonSD-07Nov16 image
  • EmonTX v3 with old firmware

The emonSD-30Oct18 image didn’t boot on the old Pi 1, but I booted it on a Pi 3 where I was able to make the changes to /boot/config.txt suggested (three items to comment out) and it booted okay to login. I reverted emonhub.conf to 9600 baud for the radio, then I got stuck as I’m not able to pick up my feeds. It’s not a big deal – I’m well overdue to update my hardware, I’ll go back to emonSD-07Nov16 until I figure it out.

2018-12-02 18:35:12,539 INFO MainThread EmonHub emonHub emon-pi variant v2.1.1
2018-12-02 18:35:12,543 INFO MainThread Opening hub…
2018-12-02 18:35:12,579 INFO MainThread Logging level set to DEBUG
2018-12-02 18:35:12,583 INFO MainThread Creating EmonHubJeeInterfacer ‘RFM2Pi’
2018-12-02 18:35:12,649 DEBUG MainThread Opening serial port: /dev/ttyAMA0 @ 9600 bits/s
2018-12-02 18:35:14,656 WARNING MainThread Device communication error - check settings
2018-12-02 18:35:14,661 INFO MainThread Setting RFM2Pi frequency: 433 (4b)
2018-12-02 18:35:15,666 INFO MainThread Setting RFM2Pi group: 210 (210g)
2018-12-02 18:35:16,671 INFO MainThread Setting RFM2Pi quiet: 0 (0q)