PVOUTPUT uploader via nodered

Ok, I’m going to try this.

1 Like

I simplified the code here a bit and made it much cleaner. Still gets you the same result.
Just put the following in function node and change the necessary HA states.
Add moment to the setup modules in your function.

var d = moment().format("YYYYMMDD");
var t = moment().format("HH:mm");
var v1 = global.get("homeassistant.homeAssistant.states['sensor.solar_daily_energy_peak'].state")*1000;
var v2 = global.get("homeassistant.homeAssistant.states['sensor.total_solar_power'].state");
var v3 = global.get("homeassistant.homeAssistant.states['sensor.consumed_daily_energy_peak'].state")*1000;
var v4 = global.get("homeassistant.homeAssistant.states['sensor.total_consumed_power'].state");
var v5 = global.get("homeassistant.homeAssistant.states['sensor.edmonton_temperature'].state");
var v6 = global.get("homeassistant.homeAssistant.states['sensor.utility_2_voltage'].state");
msg.payload = {
    d: d,
    t: t,
    v1: v1,
    v2: v2,
    v3: v3,
    v4: v4,
    v5: v5,
    v6: v6
}
msg.action = msg.payload
msg.headers = { 
    'X-Pvoutput-Apikey': 'b68ff050919c890aa1316298d8f3acb174788a4c',
    'X-Pvoutput-SystemId': '68801',
    'Content-Type': 'application/x-www-form-urlencoded'
};
msg.url = "http://pvoutput.org/service/r2/addstatus.jsp";
return msg;



Hi Picnic,

Where does this code go? Trying to figure this out but struggling.

appreciate any help.

This goes inside a function node. Here’s a complete flow:

[{"id":"2168eae5932e10ca","type":"debug","z":"c7434384.70251","name":"Header Check","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":710,"y":1880,"wires":[]},{"id":"94287b6905ebc2f4","type":"http request","z":"c7434384.70251","name":"Post","method":"POST","ret":"txt","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":530,"y":1880,"wires":[["2168eae5932e10ca"]]},{"id":"44a1c730d435d36d","type":"function","z":"c7434384.70251","name":"PV Output","func":"var d = moment().format(\"YYYYMMDD\");\nvar t = moment().format(\"HH:mm\");\nvar v1 = global.get(\"homeassistant.homeAssistant.states['sensor.solar_daily_energy_peak'].state\")*1000;\nvar v2 = global.get(\"homeassistant.homeAssistant.states['sensor.total_solar_power'].state\");\nvar v3 = global.get(\"homeassistant.homeAssistant.states['sensor.consumed_daily_energy_peak'].state\")*1000;\nvar v4 = global.get(\"homeassistant.homeAssistant.states['sensor.total_consumed_power'].state\");\nvar v5 = global.get(\"homeassistant.homeAssistant.states['sensor.edmonton_temperature'].state\");\nvar v6 = global.get(\"homeassistant.homeAssistant.states['sensor.utility_2_voltage'].state\");\nmsg.payload = {\n    d: d,\n    t: t,\n    v1: v1,\n    v2: v2,\n    v3: v3,\n    v4: v4,\n    v5: v5,\n    v6: v6\n}\nmsg.action = msg.payload\nmsg.headers = { \n    'X-Pvoutput-Apikey': 'xxxxxxxxxxxxxxxxxxxxxxx',\n    'X-Pvoutput-SystemId': 'xxxxxxxxx',\n    'Content-Type': 'application/x-www-form-urlencoded'\n};\nmsg.url = \"http://pvoutput.org/service/r2/addstatus.jsp\";\nreturn msg;\n\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[{"var":"moment","module":"moment"}],"x":350,"y":1880,"wires":[["94287b6905ebc2f4"]]},{"id":"ee0c4287ff0f128f","type":"inject","z":"c7434384.70251","name":"Every 5 Minutes","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"300","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":140,"y":1880,"wires":[["44a1c730d435d36d"]]}]

Simple and effective.
Thanks.