Emonhub.conf duplicate node decoders after update

@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
c1:50:82:3f:f9:b8:27:82:5c:85:db:3c:bf:64:1e:de.
Please contact your system administrator.
Add correct host key in /Volumes/Mac Disc 2/Mark/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Volumes/Mac Disc 2/Mark/.ssh/known_hosts:3
RSA host key for 192.168.0.113 has changed and you have requested strict checking.
Host key verification failed.

This Pi (one of 2) stopped responding June 2 @ 14.38

Emonhub log shows
2016-01-22 17:04:15,102 CRITICAL MainThread Error parsing config file “/home/pi/data/emonhub.conf”: Parsing failed with several errors.
First error at line 248.
2016-06-07 10:07:41,120 CRITICAL MainThread Error parsing config file “/home/pi/data/emonhub.conf”: Parsing failed with several errors.
First error at line 248.

Any thoughts? Is it really ominous or what has happened?
Relatively inexperienced with this so idiots guide required!

So I managed to sort the SSH.
trying to restart emonhub gives Unable to load configuration file: /home/pi/data/emonhub.conf
Guess it has become corrupted?

What actions lead up to this?

Was the emonPi working fine before?

Is this a new unit?

Have you been able to SSH before?

Can you post your /home/pi/data/emonhub.conf file?

What emonSD image version are your running?

[quote=“markstjwebb, post:1, topic:669, full:true”]
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
c1:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00.
Please contact your system administrator.
Add correct host key in /Volumes/Mac Disc 2/Mark/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Volumes/Mac Disc 2/Mark/.ssh/known_hosts:3
RSA host key for 192.168.0.113 has changed and you have requested strict checking.
Host key verification failed.[/quote]

@markstjwebb - I’m going to answer the 1st part of your question incase someone else runs into the same error. I did see you got this working.

This error usually happens after installing a new Pi image or installing a new Pi OS. If that has happened recently:

  1. On your Mac, go to the folder in the error message: /Volumes/Mac Disc 2/Mark/.ssh
  2. Open the file known_hosts with TextWrangler or a good text editor that shows line numbers (not MS Word).
  3. Go to the line mentioned (hidden) in the error message. In this case the error is the 3rd line of the known_hosts file. See the “3” in this error line - Offending RSA key in /Volumes/Mac Disc 2/Mark/.ssh/known_hosts:3
  4. In the known_hosts file delete the entire line 3 -or- add a # at the beginning of line 3 to comment out the line.
  5. Save the known_hosts file.

No restarts are needed. Try connecting via SSH again.

System was working fine. Looked at data yesterday found that system had stopped. Not a new unit but I purchased a new SD image from you in Jan 16 . Old Pi with old type radio. no problem with SSH before. Low-write v8.5. Could this have happened when updating using local Emoncms?

When I look on the Pi SD card I can find no emonhub.conf file!!!
Am I being stupid?

Try issuing the command: sudo find / -iname emonhub.conf

Thanks for the info, it might have been caused by an update not compleating sucesfully.

The emonhub.conf file is located in /home/pi/data/emonhub.conf, the easiest way to view is via local Emoncms EmonHub tab if you are able to access the Pi via your web browser. It would also be helpful to view the update log to see what went wrong. You can view this in the local Emoncms admin pagin.

#######################################################################
#######################      emonhub.conf     #########################
#######################################################################
###
### SPECIMEN emonHub configuration file
### Note that when installed from apt, a new config file is written
### by the debian/postinst script, so changing this file will do
### nothing in and of itself.
###
### Each Interfacer and each Reporter has
### - a [[name]]: a unique string
### - a type: the name of the class it instantiates
### - a set of init_settings (depends on the type)
### - a set of runtimesettings (depends on the type)
### Both init_settings and runtimesettings sections must be defined,
### even if empty. Init settings are used at initialization,
### and runtime settings are refreshed on a regular basis.
### Many settings below are "commented out" as they are not mandatory and
### have been included as a template or to provide alternative options
### removing the leading # will enable the setting and override the default
### Default settings are shown as comments on the same line as the setting
### eg #(default:xyz) "xyz" is set if the setting is "commented out".
###
### All lines beginning with '###' are comments and can be safely removed.
###
#######################################################################
#######################    emonHub  settings    #######################
#######################################################################

[hub]

### loglevel must be one of DEBUG, INFO, WARNING, ERROR, and CRITICAL
### see here : http://docs.python.org/2/library/logging.html
loglevel = DEBUG #(default:WARNING)

#######################################################################
#######################       Interfacers       #######################
#######################################################################

[interfacers]

### This interfacer manages the RFM2Pi module
[[RFM2Pi]]
    Type = EmonHubJeeInterfacer
    [[[init_settings]]]
        com_port = /dev/ttyAMA0
        com_baud = 9600
    [[[runtimesettings]]]
        pubchannels = ToEmonCMS,
        subchannels = ToRFM12,
        
        # datacode = B #(default:h)
        # scale = 100 #(default:1)
        group = 210 #(default:210)
        frequency = 868 #(default:433)
        baseid = 5 #(emonPi default:5)
        quiet = false #(default:true)
        calibration = 230V #(UK/EU: 230V, US: 110V)
        # interval = 300 #(default:0)
        # nodeoffset = 32 #(default:0)

### This interfacer manages the RFM2Pi module
[[MQTT]]

    Type = EmonHubMqttInterfacer
    [[[init_settings]]]
        mqtt_host = 127.0.0.1
        mqtt_port = 1883
        mqtt_user = emonpi
        mqtt_passwd = emonpimqtt2016

    [[[runtimesettings]]]
        pubchannels = ToRFM12,
        subchannels = ToEmonCMS,
        basetopic = emonhub/
        
[[emoncmsorg]]
    Type = EmonHubEmoncmsHTTPInterfacer
    [[[init_settings]]]
    [[[runtimesettings]]]
        pubchannels = ToRFM12,
        subchannels = ToEmonCMS,
        url = http://emoncms.org
        apikey = 709b5adcc32c8010e1aa052e93e6ba9f
        senddata = 1
        sendstatus = 1
        
#######################################################################
#######################          Nodes          #######################
#######################################################################

[nodes]

### List of nodes by node ID
### 'datacode' is default for node and 'datacodes' are per value data codes.
### if both are present 'datacode' is ignored in favour of 'datacodes'
### eg node 99 would expect 1 long and 4 ints, unless the "datacodes" line
### was removed, then "datacode" would make it expect any number of longs,
### likewise per value "scales" will override default node "scale", the number
### of "scales" must match the number of values or frame will be discarded.

[[5]]
    nodename = emonPi
    firmware = emonPi_RFM69CW_RF12Demo_DiscreteSampling.ino
    hardware = emonpi
    [[[rx]]]
        names = power1,power2,power1_plus_power2,Vrms,T1,T2,T3,T4,T5,T6,pulseCount
        datacodes = h, h, h, h, h, h, h, h, h, h, L
        scales = 1,1,1,0.01,0.1,0.1,0.1,0.1,0.1,0.1,1
        units = W,W,W,V,C,C,C,C,C,C,p

[[19]]
    nodename = emonTH_1
    firmware = emonTH_DHT22_DS18B20_RFM69CW
    hardware = emonTH_(Node_ID_Switch_DIP1:OFF_DIP2:OFF)
    [[[rx]]]
       names = temperature, external temperature, humidity, battery
       datacode = h
       scales = 0.1,0.1,0.1,0.1
       units = C,C,%,V

[[20]]
    nodename = emonTH_2
    firmware = emonTH_DHT22_DS18B20_RFM69CW
    hardware = emonTH_(Node_ID_Switch_DIP1:ON_DIP2:OFF)
    [[[rx]]]
       names = temperature, external temperature, humidity, battery
       datacode = h
       scales = 0.1,0.1,0.1,0.1
       units = C,C,%,V

[[21]]
    nodename = emonTH_3
    firmware = emonTH_DHT22_DS18B20_RFM69CW
    hardware = emonTH_(Node_ID_Switch_DIP1:OFF_DIP2:ON)
    [[[rx]]]
       names = temperature, external temperature, humidity, battery
       datacode = h
       scales = 0.1,0.1,0.1,0.1
       units = C,C,%,V

[[22]]
    nodename = emonTH_4
    firmware = V1_5_emonTH_DHT22_DS18B20_RFM69CW
    hardware = emonTH_(Node_ID_Switch_DIP1:ON_DIP2:ON)
    [[[rx]]]
       names = temperature, external temperature, humidity, battery
       datacode = h
       scales = 0.1,0.1,0.1,0.1
       units = C,C,%,V

[[10]]
    nodename = emonTx_1
    firmware =V1_6_emonTxV3_4_DiscreteSampling
    hardware = emonTx_(NodeID_DIP_Switch1:OFF)
    [[[rx]]]
       names = power1, power2, power3, power4, Vrms, temp1, temp2, temp3, temp4, temp5, temp6, pulse #Firmware V1.6
       #names = power1, power2, power3, power4, Vrms, temp                                           #Firmware =<V1.4 (un-comment)
       datacode = h
       scales = 1,1,1,1,0.01,0.1,0.1,0.1,0.1,0.1,0.1,1 #Firmware V1.6
       units = W,W,W,W,V,C,C,C,C,C,C,p                   #FirmwareV1.6
       #scales = 1,1,1,1,0.01,0.1                       #Firmware =<V1.4 (un-comment) 
       #units =W,W,W,W,V,C                              #Firmware =<V1.4 (un-comment)
       

[[9]]
    nodename = emonTx_2
    firmware =V1_6_emonTxV3_4_DiscreteSampling
    hardware = emonTx_(NodeID_DIP_Switch1:ON)
    [[[rx]]]
       names = power, power2, power3, power4, Vrms, tempp, temp2, temp3, temp4, temp5, temp6, pulse #Firmware V1.6
       #names = power1, power2, power3, power4, Vrms, temp                                           #Firmware =<V1.4 (un-comment)
       datacode = h
       scales = 1,1,1,1,0.01,0.1,0.1, 0.1,0.1,0.1,0.1,1 #Firmware V1.6
       units =W,W,W,W,V,C,C,C,C,C,C,p                   #FirmwareV1.6
       #scales = 1,1,1,1,0.01,0.1                       #Firmware =<V1.4 (un-comment) 
       #units =W,W,W,W,V,C                              #Firmware =<V1.4 (un-comment)
       
[[6]]
    nodename = emonTxShield
    firmware =emonTxShield
    hardware = emonTxShield
    [[[rx]]]
       names = power1, power2, power3, power4, Vrms
       datacode = h
       scales = 1,1,1,1,0.01
       units =W,W,W,W,V
       
[[23]]
    nodename = emonTH_5
    firmware = V2.x_emonTH_DHT22_DS18B20_RFM69CW_Pulse
    hardware = emonTH_(Node_ID_Switch_DIP1:OFF_DIP2:OFF)
    [[[rx]]]
       names = temperature, external temperature, humidity, battery, pulseCount
       datacodes = h,h,h,h,L
       scales = 0.1,0.1,0.1,0.1,1
       units = C,C,%,V,p
  
[[24]]
    nodename = emonTH_6
    firmware = V2.x_emonTH_DHT22_DS18B20_RFM69CW_Pulse
    hardware = emonTH_(Node_ID_Switch_DIP1:ON_DIP2:OFF)
    [[[rx]]]
       names = temperature, external temperature, humidity, battery, pulseCount
       datacodes = h,h,h,h,L
       scales = 0.1,0.1,0.1,0.1,1
       units = C,C,%,V,p
    
[[25]]
    nodename = emonTH_7
    firmware = V2.x_emonTH_DHT22_DS18B20_RFM69CW_Pulse
    hardware = emonTH_(Node_ID_Switch_DIP1:OFF_DIP2:ON)
    [[[rx]]]
       names = temperature, external temperature, humidity, battery, pulseCount
       datacodes = h,h,h,h,L
       scales = 0.1,0.1,0.1,0.1,1
       units = C,C,%,V,p

[[26]]
    nodename = emonTH_8
    firmware = V2.x_emonTH_DHT22_DS18B20_RFM69CW_Pulse
    hardware = emonTH_(Node_ID_Switch_DIP1:ON_DIP2:ON)
    [[[rx]]]
       names = temperature, external temperature, humidity, battery, pulseCount
       datacodes = h,h,h,h,L
       scales = 0.1,0.1,0.1,0.1,1
       units = C,C,%,V,p

[[8]]
    nodename = emonTx_3
    firmware =V2_3_emonTxV3_4_DiscreteSampling
    hardware = emonTx_(NodeID_DIP_Switch1:OFF)
    [[[rx]]]
       names = power1, power2, power3, power4, Vrms, temp1, temp2, temp3, temp4, temp5, temp6, pulse
       datacodes = h,h,h,h,h,h,h,h,h,h,h,L
       scales = 1,1,1,1,0.01,0.1,0.1, 0.1,0.1,0.1,0.1,1 
       units =W,W,W,W,V,C,C,C,C,C,C,p                   
 
[[7]]
    nodename = emonTx_4
    firmware =V2_3_emonTxV3_4_DiscreteSampling
    hardware = emonTx_(NodeID_DIP_Switch1:OFF)
    [[[rx]]]
       names = power1, power2, power3, power4, Vrms, temp1, temp2, temp3, temp4, temp5, temp6, pulse
       datacodes = h,h,h,h,h,h,h,h,h,h,h,L
       scales = 1,1,1,1,0.01,0.1,0.1, 0.1,0.1,0.1,0.1,1 
       units =W,W,W,W,V,C,C,C,C,C,C,p
[[5]]
    nodename = emonPi
    firmware = emonPi_RFM69CW_RF12Demo_DiscreteSampling.ino
    hardware = emonpi
    [[[rx]]]
        names = power1,power2,power1_plus_power2,Vrms,T1,T2,T3,T4,T5,T6,pulseCount
        datacodes = h, h, h, h, h, h, h, h, h, h, L
        scales = 1,1,1,0.01,0.1,0.1,0.1,0.1,0.1,0.1,1
        units = W,W,W,V,C,C,C,C,C,C,p

[[6]]
    nodename = emonTxShield
    firmware =emonTxShield
    hardware = emonTxShield
    [[[rx]]]
       names = power1, power2, power3, power4, Vrms
       datacode = h
       scales = 1,1,1,1,0.01
       units =W,W,W,W,V

[[7]]
    nodename = emonTx_4
    firmware =V2_3_emonTxV3_4_DiscreteSampling
    hardware = emonTx_(NodeID_DIP_Switch1:OFF)
    [[[rx]]]
       names = power1, power2, power3, power4, Vrms, temp1, temp2, temp3, temp4, temp5, temp6, pulse
       datacodes = h,h,h,h,h,h,h,h,h,h,h,L
       scales = 1,1,1,1,0.01,0.1,0.1, 0.1,0.1,0.1,0.1,1 
       units =W,W,W,W,V,C,C,C,C,C,C,p

[[8]]
    nodename = emonTx_3
    firmware =V2_3_emonTxV3_4_DiscreteSampling
    hardware = emonTx_(NodeID_DIP_Switch1:OFF)
    [[[rx]]]
       names = power1, power2, power3, power4, Vrms, temp1, temp2, temp3, temp4, temp5, temp6, pulse
       datacodes = h,h,h,h,h,h,h,h,h,h,h,L
       scales = 1,1,1,1,0.01,0.1,0.1, 0.1,0.1,0.1,0.1,1 
       units =W,W,W,W,V,C,C,C,C,C,C,p 

[[9]]
    nodename = emonTx_2
    firmware =V1_6_emonTxV3_4_DiscreteSampling
    hardware = emonTx_(NodeID_DIP_Switch1:ON)
    [[[rx]]]
       names = power1, power2, power3, power4, Vrms, temp1, temp2, temp3, temp4, temp5, temp6, pulse #Firmware V1.6
       #names = power1, power2, power3, power4, Vrms, temp                                           #Firmware =<V1.4 (un-comment)
       datacode = h
       scales = 1,1,1,1,0.01,0.1,0.1, 0.1,0.1,0.1,0.1,1 #Firmware V1.6
       units =W,W,W,W,V,C,C,C,C,C,C,p                   #FirmwareV1.6
       #scales = 1,1,1,1,0.01,0.1                       #Firmware =<V1.4 (un-comment) 
       #units =W,W,W,W,V,C                              #Firmware =<V1.4 (un-comment)

[[10]]
    nodename = emonTx_1
    firmware =V1_6_emonTxV3_4_DiscreteSampling
    hardware = emonTx_(NodeID_DIP_Switch1:OFF)
    [[[rx]]]
       names = power1, power2, power3, power4, Vrms, temp1, temp2, temp3, temp4, temp5, temp6, pulse #Firmware V1.6
       #names = power1, power2, power3, power4, Vrms, temp                                           #Firmware =<V1.4 (un-comment)
       datacode = h
       scales = 1,1,1,1,0.01,0.1,0.1, 0.1,0.1,0.1,0.1,1 #Firmware V1.6
       units =W,W,W,W,V,C,C,C,C,C,C,p                   #FirmwareV1.6
       #scales = 1,1,1,1,0.01,0.1                       #Firmware =<V1.4 (un-comment) 
       #units =W,W,W,W,V,C                              #Firmware =<V1.4 (un-comment)

[[11]]
    nodename = 3phase
    [[[rx]]]
       names = powerL1, powerL2, powerL3, power4, Vrms, temp1, temp2, temp3, temp4, temp5, temp6
       datacode = h
       scales = 1,1,1,1,0.01,0.1,0.1,0.1,0.1,0.1,0.1
       units =W,W,W,W,V,C,C,C,C,C,C

[[19]]
    nodename = emonTH_1
    firmware = emonTH_DHT22_DS18B20_RFM69CW
    hardware = emonTH_(Node_ID_Switch_DIP1:OFF_DIP2:OFF)
    [[[rx]]]
       names = temperature, external temperature, humidity, battery
       datacode = h
       scales = 0.1,0.1,0.1,0.1
       units = C,C,%,V

[[20]]
    nodename = emonTH_2
    firmware = emonTH_DHT22_DS18B20_RFM69CW
    hardware = emonTH_(Node_ID_Switch_DIP1:ON_DIP2:OFF)
    [[[rx]]]
       names = temperature, external temperature, humidity, battery
       datacode = h
       scales = 0.1,0.1,0.1,0.1
       units = C,C,%,V

[[21]]
    nodename = emonTH_3
    firmware = emonTH_DHT22_DS18B20_RFM69CW
    hardware = emonTH_(Node_ID_Switch_DIP1:OFF_DIP2:ON)
    [[[rx]]]
       names = temperature, external temperature, humidity, battery
       datacode = h
       scales = 0.1,0.1,0.1,0.1
       units = C,C,%,V

[[22]]
    nodename = emonTH_4
    firmware = V1_5_emonTH_DHT22_DS18B20_RFM69CW
    hardware = emonTH_(Node_ID_Switch_DIP1:ON_DIP2:ON)
    [[[rx]]]
       names = temperature, external temperature, humidity, battery
       datacode = h
       scales = 0.1,0.1,0.1,0.1
       units = C,C,%,V

[[23]]
    nodename = emonTH_5
    firmware = V2.x_emonTH_DHT22_DS18B20_RFM69CW_Pulse
    hardware = emonTH_(Node_ID_Switch_DIP1:OFF_DIP2:OFF)
    [[[rx]]]
       names = temperature, external temperature, humidity, battery, pulseCount
       datacodes = h,h,h,h,L
       scales = 0.1,0.1,0.1,0.1,1
       units = C,C,%,V,p

[[24]]
    nodename = emonTH_6
    firmware = V2.x_emonTH_DHT22_DS18B20_RFM69CW_Pulse
    hardware = emonTH_(Node_ID_Switch_DIP1:ON_DIP2:OFF)
    [[[rx]]]
       names = temperature, external temperature, humidity, battery, pulseCount
       datacodes = h,h,h,h,L
       scales = 0.1,0.1,0.1,0.1,1
       units = C,C,%,V,p

[[25]]
    nodename = emonTH_7
    firmware = V2.x_emonTH_DHT22_DS18B20_RFM69CW_Pulse
    hardware = emonTH_(Node_ID_Switch_DIP1:OFF_DIP2:ON)
    [[[rx]]]
       names = temperature, external temperature, humidity, battery, pulseCount
       datacodes = h,h,h,h,L
       scales = 0.1,0.1,0.1,0.1,1
       units = C,C,%,V,p

[[26]]
    nodename = emonTH_8
    firmware = V2.x_emonTH_DHT22_DS18B20_RFM69CW_Pulse
    hardware = emonTH_(Node_ID_Switch_DIP1:ON_DIP2:ON)
    [[[rx]]]
       names = temperature, external temperature, humidity, battery, pulseCount
       datacodes = h,h,h,h,L
       scales = 0.1,0.1,0.1,0.1,1
       units = C,C,%,V,p

Update log is blank. However I have asked it it to update on a good few occasions.

So I just ran an update.
Log shows this

Filesystem is unlocked - Write access
type ' rpi-ro ' to lock

EUID: 1000
Stopping system emonPiLCD daemon:start-stop-daemon: warning: failed to kill 2481: No such process
No process in pidfile '/var/run/emonPiLCD.pid' found running; none killed.
 failed!
I2C LCD NOT DETECTED
Starting emonPi Update >

Tue Jun  7 21:18:02 UTC 2016

git pull /home/pi/emonpi
Already up-to-date.
git pull /home/pi/RFM2Pi
Already up-to-date.
git pull /home/pi/emonhub
Already up-to-date.
git pull /home/pi/backup
Already up-to-date.

Start emonPi Atmega328 firmware update:

=================================
EmonPi update started
=================================

EUID: 1000

Requirement already satisfied (use --upgrade to upgrade): xmltodict in /usr/local/lib/python2.7/dist-packages
Cleaning up...
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/local/lib/python2.7/dist-packages
Cleaning up...
Stopping OpenEnergyMonitor emonHub: emonhub has been stopped ok.
Start ATmega328 serial upload using avrdude with latest.hex
Discrete Sampling
avrdude -c arduino -p ATMEGA328P -P /dev/ttyAMA0 -b 115200 -U flash:w:/home/pi/emonpi/firmware/compiled/latest.hex
avrdude-original: Using autoreset DTR on GPIO Pin 7
avrdude-original: stk500_recv(): programmer is not responding


Start emonhub update script:

=================================
EmonPi update started
=================================
Running emonhub automatic node addition script
EUID: 1000
EUID: 1000
[[5]]
[[5]]
Node 5 already present
[[6]]
[[6]]
Node 6 already present
[[7]]
[[7]]
Node 7 already present
[[8]]
[[8]]
Node 8 already present
[[9]]
[[9]]
Node 9 already present
[[10]]
[[10]]
Node 10 already present
[[11]]
Node 11 already present
[[19]]
[[19]]
Node 19 already present
[[20]]
[[20]]
Node 20 already present
[[21]]
[[21]]
Node 21 already present
[[22]]
[[22]]
Node 22 already present
[[23]]
[[23]]
Node 23 already present
[[24]]
[[24]]
Node 24 already present
[[25]]
[[25]]
Node 25 already present
[[26]]
[[26]]
Node 26 already present

Start emoncms update:

=================================
Emoncms update started

Tue Jun  7 21:18:27 UTC 2016

EUID: 1000
Checking cron tab for service runner entry...
service runner crontab entry already installed
git pull /var/www/emoncms
* low-write
Already up-to-date.

git pull /var/www/emoncms/Modules/nodes
* master
Already up-to-date.

git pull /var/www/emoncms/Modules/app
* master
Already up-to-date.

git pull /var/www/emoncms/Modules/config
* master
Already up-to-date.

git pull /var/www/emoncms/Modules/wifi
* master
Already up-to-date.
git pull /var/www/emoncms/Modules/dashboard
* low-write
Already up-to-date.

git pull /var/www/emoncms/Modules/graph
* master
Already up-to-date.

git pull /home/pi/postprocess
Already on 'emonpi'
Already up-to-date.
git pull /home/pi/backup
* master
Already up-to-date.

Copy new default.emonpi.settings.php to settings.php & make backup old.emonpi.settings.php

Update Emoncms database
[]

Restarting Services...
Restarting OpenEnergyMonitor emonHub: emonhub has been restarted ok.
Log is turned off
Restarting feedwriterUnable to load configuration file: /home/pi/data/emonhub.conf
Job is already running!

Log is turned off
Restarting emoncms-nodes


set log rotate config owner to root
Restarting Services...


Start emonPi LCD service
Starting system emonPiLCD daemon:.

...................
emonPi update done
Tue Jun  7 21:19:43 UTC 2016

Filesystem is locked - Read Only access
type ' rpi-rw ' to unlock

Update log looks fine, however, emonhub.conf looks like the node decoders have become duplicated. I’m not sure how this happened, I will have to investigate. However, you can fix by overwriting your emonhub.log with the following default version. You can do this by copy and pasting into the emonhub edit window in local Emoncms

if your running latest emoSD-03-May16:
https://raw.githubusercontent.com/openenergymonitor/emonhub/emon-pi/conf/emonpi.default.emonhub.conf

If you’re running emonSD-17June15 image:
https://raw.githubusercontent.com/openenergymonitor/emonhub/emon-pi/conf/emonhub.conf

You can find out what image your running by pressing the button on the emonPi LCD to scroll through until the version is displayed or execute the following terminal command

sudo ls /boot | grep emonSD

OK so it was 17 June image (updated) copied and pasted followed by reboot.
Something got better because emoncms log now reads

2016-06-07 22:13:10,026 INFO     MainThread Setting RFM2Pi group: 210 (210g)
2016-06-07 22:13:11,030 INFO     MainThread Setting RFM2Pi quiet: 0 (0q)
2016-06-07 22:13:12,033 INFO     MainThread Setting RFM2Pi baseid: 5 (5i)
2016-06-07 22:13:13,037 INFO     MainThread Setting RFM2Pi calibration: 230V (1p)
2016-06-07 22:13:14,041 DEBUG    MainThread Setting RFM2Pi subchannels: ['ToRFM12']
2016-06-07 22:13:14,044 DEBUG    MainThread Interfacer: Subscribed to channel' : ToRFM12
2016-06-07 22:13:14,046 DEBUG    MainThread Setting RFM2Pi pubchannels: ['ToEmonCMS']
2016-06-07 22:13:14,059 DEBUG    MainThread Interfacer: Subscribed to channel' : ToRFM12
2016-06-07 22:13:14,063 INFO     MainThread Creating EmonHubMqttInterfacer 'MQTT' 
2016-06-07 22:13:14,080 DEBUG    RFM2Pi     acknowledged command: > 4b
2016-06-07 22:13:14,077 INFO     MainThread MQTT Init mqtt_host=127.0.0.1 mqtt_port=1883 mqtt_user=emonpi
2016-06-07 22:13:14,108 DEBUG    MainThread MQTT Subscribed to channel' : ToEmonCMS
2016-06-07 22:13:14,116 INFO     MainThread Creating EmonHubEmoncmsHTTPInterfacer 'emoncmsorg' 
2016-06-07 22:13:14,132 DEBUG    MainThread emoncmsorg Subscribed to channel' : ToEmonCMS
2016-06-07 22:13:14,237 INFO     MQTT       Connecting to MQTT Server
2016-06-07 22:13:14,279 INFO     MQTT       connection status: Connection successful
2016-06-07 22:13:14,283 DEBUG    MQTT       CONACK => Return code: 0
2016-06-07 22:13:14,290 DEBUG    RFM2Pi     acknowledged command: > 210g
2016-06-07 22:13:14,424 INFO     MQTT       on_subscribe
2016-06-07 22:13:14,525 DEBUG    RFM2Pi     acknowledged command: > 0q
2016-06-07 22:13:14,641 DEBUG    RFM2Pi     acknowledged command: > 5i
2016-06-07 22:13:14,846 DEBUG    RFM2Pi     acknowledged command: > 1p
2016-06-07 22:13:15,295 DEBUG    RFM2Pi     acknowledged command:  i     - set node ID (standard node ids are 1..26)
2016-06-07 22:13:15,410 DEBUG    RFM2Pi     acknowledged command:  b      - set MHz band (4 = 433, 8 = 868, 9 = 915)
2016-06-07 22:13:15,536 DEBUG    RFM2Pi     acknowledged command:  g    - set network group (RFM12 only allows 212, 0 = any)
2016-06-07 22:13:15,663 DEBUG    RFM2Pi     acknowledged command:  c      - set collect mode (advanced, normally 0)
2016-06-07 22:13:15,798 DEBUG    RFM2Pi     acknowledged command: ..., a - send data packet to node , with ack
2016-06-07 22:13:15,922 DEBUG    RFM2Pi     acknowledged command: ..., s - send data packet to node , no ack
2016-06-07 22:13:16,037 DEBUG    RFM2Pi     acknowledged command:  l      - turn activity LED on DIG8 on or off
2016-06-07 22:13:16,306 DEBUG    RFM2Pi     device settings updated: 69 i5 g210 @ 433 MHz  Lock: 1

However still no data either local or remote. If I remember correctly this is because my Emontx’s are older versions and something needs to be changed in the emonhub config file. I cannot remember what though.

Wait forgot to change frequency to 868 even though I remembered to change baud to 9600 just rebooting again.

OK I have some data locally. But nothing from emoncms.org remotely

1 Like

AH OK perhaps an API key would do it!!! sorry I am rushing a bit

1 Like

Yeah! nice work, it sounds like connectivity has been restored :-). Sorry for the hassle.

I will further investigate what could have caused this.

If your feeling up to it please try and run emonpi update again now to see what happens? If emonhub.conf does get messed up you now know how to fix with a quick copy and paste (plus change freq and emoncms.org API key).

For the record I have just tested updating a emonSD-17Jun15 using emo pi update and it worked fine. Therefore, the issue you experienced with emonhub.conf getting node decoders duplicated is not a fundamental issue. Without being able to replicate I cannot debug further.

I would recommend all users update to the latest emonSD image as you have done.

Hi, same problem here, found duplicated data on emonSD-17June15 /emonpi.conf

Lost logs since 28 of May, till I saw this post, changed de emonpi.conf, deleting all de duplicated data, restart emonpi and up and running.

Don’t know what happened, any ideia ?

tks

Thanks for letting us know. Sorry, I have not been able to figure out what’s the cause of this issue, I have not been able to replicate the duplicate nodes when running update on a emonSD-17June15 image.

Can you think of anything that could be different about your setup? Have got any customised nodes? Other emonhub edits? How often do you update? Could you attach your entire emonpiupdate.log? Thanks.

As a side issue as I mentioned above, I would recommend updating to the latest emonSD-30May16, this is an LTS release with many improvements and fixes. The backup module can be used to migrate your data: Import / Backup - Guide | OpenEnergyMonitor