Export PGE Energy daily balance CSV report to influxdb database.

Flow dzięki któremu można załadować dane z zamówionego raportu dziennego PGE do bazy influxdb. Flow odczytuje z pliku CSV dane o energii pobranej, oddanej i zbilansowanej Raport można zamówić na stronie BOK PGE. Dostępny zakres od 1.04.2022 do 31.12.2022 Daje to ponad 19000 rekordów do dodania. Flow zapisuje dane godzinnych rekordów z prawidłowym timestampem. Dzięki czemu dane trafiają w odpowiednie miejsce w przeszłości. Z uwagi na to, że requestów jest sporo zrobiłem ograniczenie wysyłania do jednej wartości na sekundę. Najlepiej zostawić na noc i niech się dopisuje powoli. Jeśli masz mocną maszynę na której masz influxdb możesz zwiększyć ilość requestów . Można też zapisać do pliku txt i wgrać dane według schematu opisanego na helpdesku influxa.

Porównując dane do zebranych przez MEW-01 wynika, że zgadzają się niemal idealnie.

Do prawidłowego działania potrzeba pliku CSV zamówionego z PGE, dopasować ścieżki do pliku oraz dane linku API influxdb.

[{"id":"b55a91d2e2b6bcbf","type":"tab","label":"Flow 4","disabled":false,"info":"","env":[]},{"id":"a995326e9fe85497","type":"inject","z":"b55a91d2e2b6bcbf","name":"Init","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":90,"y":420,"wires":[["ddb6ef3f97846ac6"]]},{"id":"ddb6ef3f97846ac6","type":"file in","z":"b55a91d2e2b6bcbf","name":"","filename":"/var/www/pge.csv","filenameType":"str","format":"utf8","chunk":false,"sendError":false,"encoding":"utf8","allProps":false,"x":270,"y":420,"wires":[["ce147dddd023414b"]]},{"id":"ce147dddd023414b","type":"csv","z":"b55a91d2e2b6bcbf","name":"","sep":";","hdrin":true,"hdrout":"none","multi":"mult","ret":"\\n","temp":"","skip":"0","strings":true,"include_empty_strings":"","include_null_values":false,"x":450,"y":420,"wires":[["9f66c0625cd111a7"]]},{"id":"9f66c0625cd111a7","type":"split","z":"b55a91d2e2b6bcbf","name":"","splt":";","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":true,"addname":"topic","x":590,"y":420,"wires":[["f74ff9ddbfba9595"]]},{"id":"f74ff9ddbfba9595","type":"function","z":"b55a91d2e2b6bcbf","name":"PGE CSV to influxdb","func":"delete msg.payload.KodPP;\nvar data = String(msg.payload.DataOdczytu).replace(/(\\d{4})(\\d\\d)(\\d\\d)/, \"$1.$2.$3\");\nvar timestamp = parseInt((new Date(data).getTime() / 1000).toFixed(0));\ndelete msg.payload.DataOdczytu;\nvar kierunek = msg.payload.Kierunek.split(' ').pop();\ndelete msg.payload.Kierunek;\nlet keys = Object.keys(msg.payload);\nlet msgs = keys.map(function (key) {\n   return { topic: parseInt((key).replace(/[^0-9]/, \"\")) * 3600 - 1, payload: kierunek +\",\"+ \"source=PGE\" + \" value=\" + msg.payload[key].replace(/\\B,|^,/, \"0.\").replace(',', '.') + \" \" + String(timestamp + parseInt((key).replace(/[^0-9]/, \"\")) * 3600 - 1) };\n});\nreturn [msgs];","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":780,"y":420,"wires":[["0019aa71af60fcf9","977c210ddef6cd11"]]},{"id":"977c210ddef6cd11","type":"file","z":"b55a91d2e2b6bcbf","name":"","filename":"/var/www/pge.txt","filenameType":"str","appendNewline":true,"createDir":false,"overwriteFile":"false","encoding":"none","x":1020,"y":500,"wires":[[]]},{"id":"0019aa71af60fcf9","type":"delay","z":"b55a91d2e2b6bcbf","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1010,"y":420,"wires":[["87d0072c72ecccc8"]]},{"id":"87d0072c72ecccc8","type":"http request","z":"b55a91d2e2b6bcbf","name":"Post to Influx DB","method":"POST","ret":"txt","paytoqs":"ignore","url":"http://localhost:8086/write?db=domoticz&u=domoticz&p=domoticz&precision=s","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":1210,"y":420,"wires":[["f5a6aa62a355db15"]]},{"id":"f5a6aa62a355db15","type":"debug","z":"b55a91d2e2b6bcbf","name":"debug 34","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1400,"y":420,"wires":[]}]

Flow Info

Created 1 year, 4 months ago
Rating: not yet rated

Owner

Actions

Rate:

Node Types

Core
  • csv (x1)
  • debug (x1)
  • delay (x1)
  • file (x1)
  • file in (x1)
  • function (x1)
  • http request (x1)
  • inject (x1)
  • split (x1)
Other
  • tab (x1)

Tags

  • PGE
  • CSV
  • PV
Copy this flow JSON to your clipboard and then import into Node-RED using the Import From > Clipboard (Ctrl-I) menu option