Skip to content

Instantly share code, notes, and snippets.

@zoernert
Created October 1, 2021 22:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zoernert/2bdd306ec2a3316ad496c35722144387 to your computer and use it in GitHub Desktop.
Save zoernert/2bdd306ec2a3316ad496c35722144387 to your computer and use it in GitHub Desktop.
Decarbonize My Discovergy SmartMeter

CO2Offset

Uses the CO2 Offset API to automatically compensate CO2 footprint of consumed electricity.

Free CO2 Compensation up to 1kg/month

Requirements

[{"id":"b10b433c6ca23d08","type":"tab","label":"Decarbonize My SmartMeter","disabled":false,"info":"Automatically Offset CO2 footprint of an Discovergy Energy Meter."},{"id":"1e2866780a8b44d7","type":"debug","z":"b10b433c6ca23d08","name":"Certified Compensation ","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload.certificate.co2requested","statusType":"msg","x":1050,"y":100,"wires":[]},{"id":"89e38a5292863cf3","type":"inject","z":"b10b433c6ca23d08","name":"Every 6h","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"21600","crontab":"","once":true,"onceDelay":0.1,"topic":"","payloadType":"date","x":110,"y":160,"wires":[["ddded0130f583709","ef1ad34e6de69c53"]]},{"id":"bfa1ece311f95316","type":"function","z":"b10b433c6ca23d08","name":"Calculate CO2","func":"const EMISSIONFACTOR=35; // Gram of CO2eq per kWh (35 fits for Ökostrom in Germany).\n\nlet lastReading = flow.get(msg.payload.meterinfo.fullSerialNumber);\n\nif(typeof msg.payload.latest !== 'undefined') {\n let offsetGrams = 0;\n if((typeof lastReading !== 'undefined') && (lastReading !== null)) {\n // calculate Delta of Reading\n let delta = msg.payload.latest.energy_wh - lastReading.energy_wh;\n offsetGrams = Math.floor((delta / 1000) * EMISSIONFACTOR) + 1; \n }\n flow.set(msg.payload.meterinfo.fullSerialNumber,msg.payload.latest);\n msg.payload = {\n gram: offsetGrams\n }\n} else {\n msg.payload = {};\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":560,"y":100,"wires":[["a91b04de1e036ed7"]]},{"id":"ddded0130f583709","type":"Discovergy Meter","z":"b10b433c6ca23d08","name":"My Energy Meter","account":"9b658d63a33fe119","meterId":"7987040f5f7a40f297d53460cae627f9","firstReading":0,"firstReadingOut":0,"firstReadingDate":"","isProduction":false,"revenue":0,"amortization":0,"prodMeterId":null,"firstReadingProd":0,"x":350,"y":100,"wires":[["bfa1ece311f95316"]]},{"id":"6331660e11b34db0","type":"debug","z":"b10b433c6ca23d08","name":"Total Compensated CO2","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload.balance","statusType":"msg","x":1050,"y":240,"wires":[]},{"id":"4ea76819e90c5229","type":"function","z":"b10b433c6ca23d08","name":"Use Identity 4 Balance","func":"msg.payload = {\n identity:msg.payload.account\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":540,"y":240,"wires":[["9570675d43bade90"]]},{"id":"30daed23905a1818","type":"comment","z":"b10b433c6ca23d08","name":"Auto Compensate CO2","info":"","x":360,"y":60,"wires":[]},{"id":"6384290351517417","type":"comment","z":"b10b433c6ca23d08","name":"Retrieve Lifetime Total Grams of CO Offset","info":"","x":420,"y":200,"wires":[]},{"id":"458b1f5745d75b4a","type":"comment","z":"b10b433c6ca23d08","name":"Setup: Set your Rapid Credentials (API Key, Host) in 3 Nodes!","info":"","x":480,"y":340,"wires":[]},{"id":"a91b04de1e036ed7","type":"RapidAPI","z":"b10b433c6ca23d08","name":"CO2 Offset","account":"1e79c85e958df143","url":"https://co2-offset.p.rapidapi.com/rapidapi/compensate","method":"GET","credentials":{},"x":790,"y":100,"wires":[["1e2866780a8b44d7"]]},{"id":"ef1ad34e6de69c53","type":"RapidAPI","z":"b10b433c6ca23d08","name":"Who am I","account":"1e79c85e958df143","url":"https://co2-offset.p.rapidapi.com/rapidapi/whoami","method":"GET","x":320,"y":240,"wires":[["4ea76819e90c5229"]]},{"id":"9570675d43bade90","type":"RapidAPI","z":"b10b433c6ca23d08","name":"Total Compensated","account":"1e79c85e958df143","url":"https://co2-offset.p.rapidapi.com/co2/balanceOf","method":"GET","x":790,"y":240,"wires":[["6331660e11b34db0"]]},{"id":"9b658d63a33fe119","type":"discovergy-config","name":"MSB der STROMDAO"},{"id":"1e79c85e958df143","type":"rapidapi-config","name":""}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment