Hier is alvast de JSON van de flow. Je kan deze rechtstreeks importeren in node red.
Code: Selecteer alles
[{"id":"ee93724ef816afff","type":"group","z":"a5ecbc5e135cb5e8","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["b0c5d975ebd082d2","7b346b9d03da2a5f","ce42b377546436a8","9f34dffa10bb0a29","0125564bb8c4ec32","4354094496a5fc16","fc8d1ad72c792502","3ea0bc43faf83cb6","7ff509aa6544d71b","68ce8249a19893a8","168f131b7f5b2ea7","99790ef0c97f3607","dda1126b839cc582","990f904a54239bbc","2e30b1a59f495751","c476f930b588590f","7ba1bad999aa53fb","d2933282f7cf775c","3c725bb32e9aceeb","ec39bd55d1c1b248","f27fac7242369f88","97226d384540ec7c","9cfb26d4e608f9cb","1eb6a7f104e19979","e990a91daf3f1871","be5fa0892af9291b","2f33d9778262850a","9806f11126fd82fd","06560fd65450e959"],"x":34,"y":539,"w":1952,"h":482},{"id":"b0c5d975ebd082d2","type":"api-call-service","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"Turn off zero export + DAC --> Reset power slider to 100%","server":"82e28109.c824c","version":7,"debugenabled":false,"action":"input_boolean.turn_off","floorId":[],"areaId":[],"deviceId":[],"entityId":["input_boolean.zero_export","input_boolean.dynamic_active_control_dac"],"labelId":[],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"100","valueType":"num"},{"property":"topic","propertyType":"msg","value":"Turn off zero export --> Reset power slider to 100%","valueType":"str"}],"queue":"none","blockInputOverrides":false,"domain":"input_boolean","service":"turn_off","x":590,"y":980,"wires":[["7ff509aa6544d71b"]]},{"id":"7b346b9d03da2a5f","type":"api-call-service","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"Turn on zero export --> set power slider to 100%","server":"82e28109.c824c","version":7,"debugenabled":false,"action":"input_boolean.turn_on","floorId":[],"areaId":[],"deviceId":[],"entityId":["input_boolean.zero_export"],"labelId":[],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"100","valueType":"num"},{"property":"topic","propertyType":"msg","value":"Turn on zero export","valueType":"str"}],"queue":"none","blockInputOverrides":false,"domain":"input_boolean","service":"turn_on","x":560,"y":920,"wires":[["7ff509aa6544d71b"]]},{"id":"ce42b377546436a8","type":"comment","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"4 seasons flow: Zero export when export price is negative","info":"","x":270,"y":580,"wires":[]},{"id":"9f34dffa10bb0a29","type":"server-state-changed","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"Export price < 0?","server":"82e28109.c824c","version":6,"outputs":2,"exposeAsEntityConfig":"","entities":{"entity":["sensor.adjusted_current_electricity_export_price"],"substring":[],"regex":[]},"outputInitially":true,"stateType":"num","ifState":"0","ifStateType":"num","ifStateOperator":"lt","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"on","valueType":"str"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":160,"y":960,"wires":[["7b346b9d03da2a5f"],["b0c5d975ebd082d2"]]},{"id":"0125564bb8c4ec32","type":"server-state-changed","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"Active power limit slider","server":"82e28109.c824c","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["input_number.active_power_limit"],"substring":[],"regex":[]},"outputInitially":false,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":180,"y":660,"wires":[["fc8d1ad72c792502","4354094496a5fc16"]]},{"id":"4354094496a5fc16","type":"function","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"* 100","func":"var lim = msg.payload *100;\nreturn [{payload: lim}];","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":410,"y":640,"wires":[["ec39bd55d1c1b248"]]},{"id":"fc8d1ad72c792502","type":"function","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"* 80","func":"var lim = msg.payload *80;\nreturn [{payload: lim}];","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":410,"y":720,"wires":[["3ea0bc43faf83cb6"]]},{"id":"3ea0bc43faf83cb6","type":"ha-sensor","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"Active power limit sensor","entityConfig":"dbbf6dfc33b249fe","version":0,"state":"payload","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":690,"y":720,"wires":[[]]},{"id":"7ff509aa6544d71b","type":"api-call-service","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"Active power limit slider","server":"82e28109.c824c","version":7,"debugenabled":false,"action":"input_number.set_value","floorId":[],"areaId":[],"deviceId":[],"entityId":["input_number.active_power_limit"],"labelId":[],"data":"{\"value\":{{payload}}}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"blockInputOverrides":false,"domain":"input_number","service":"set_value","output_location":"","output_location_type":"none","service_domain":"input_number","mergecontext":"","x":690,"y":780,"wires":[[]]},{"id":"68ce8249a19893a8","type":"inject","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"Reset active power limit slider to 100% @ midnight","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"00 00 * * *","once":false,"onceDelay":0.1,"topic":"Reset active power limit slider to 100%","payload":"100","payloadType":"num","x":290,"y":780,"wires":[["7ff509aa6544d71b"]]},{"id":"168f131b7f5b2ea7","type":"comment","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"Adjust dynamically \"Normalized active power limitation by PV system control\" to home consumption","info":"","x":1300,"y":580,"wires":[]},{"id":"99790ef0c97f3607","type":"function","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"Power limit factor","func":"var marge = 0;\nvar Limfactor;\n\nif (msg.payload > 8000) {\n Limfactor = (8000 + marge) / 8000;\n} else {\n Limfactor = (msg.payload + marge) / 8000;\n}\n\nreturn [{ payload: Limfactor }];\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1250,"y":760,"wires":[["dda1126b839cc582"]]},{"id":"dda1126b839cc582","type":"function","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"abs","func":"var abs = Math.abs(msg.payload);\n\nreturn [{ payload: abs }]","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1030,"y":840,"wires":[["990f904a54239bbc"]]},{"id":"990f904a54239bbc","type":"function","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"* 100","func":"var lim = msg.payload *100 ;\nvar limit = Math.ceil(lim) ; \nreturn [{payload: limit}];","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1190,"y":840,"wires":[["2e30b1a59f495751"]]},{"id":"2e30b1a59f495751","type":"delay","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"","pauseType":"rate","timeout":"6","timeoutUnits":"seconds","rate":"1","nbRateUnits":"10","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"allowrate":false,"outputs":1,"x":1360,"y":840,"wires":[["c476f930b588590f"]]},{"id":"c476f930b588590f","type":"api-call-service","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"Active power limit slider","server":"82e28109.c824c","version":7,"debugenabled":false,"action":"input_number.set_value","floorId":[],"areaId":[],"deviceId":[],"entityId":["input_number.active_power_limit"],"labelId":[],"data":"{\"value\":{{payload}}}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"blockInputOverrides":false,"domain":"input_number","service":"set_value","output_location":"","output_location_type":"none","service_domain":"input_number","mergecontext":"","x":1110,"y":920,"wires":[[]]},{"id":"7ba1bad999aa53fb","type":"api-current-state","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"If zero export is on","server":"82e28109.c824c","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_boolean.zero_export","state_type":"str","blockInputOverrides":false,"outputProperties":[],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1550,"y":660,"wires":[["be5fa0892af9291b","97226d384540ec7c"],[]]},{"id":"d2933282f7cf775c","type":"poll-state","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"houseconsumption","server":"82e28109.c824c","version":3,"exposeAsEntityConfig":"","updateInterval":"1","updateIntervalType":"num","updateIntervalUnits":"seconds","outputInitially":true,"outputOnChanged":false,"entityId":"sensor.current_houseconsumption","stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputs":1,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"topic","propertyType":"msg","value":"Home consumption","valueType":"str"}],"x":1050,"y":660,"wires":[["f27fac7242369f88"]]},{"id":"3c725bb32e9aceeb","type":"comment","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"Als capaciteitstarief op injectie ingaat dan moet DAC altijd aan!","info":"","x":1180,"y":620,"wires":[]},{"id":"ec39bd55d1c1b248","type":"modbus-write","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"SMA Modbus Write 41255 ( Limit )","showStatusActivities":true,"showErrors":true,"showWarnings":true,"unitid":"1","dataType":"HoldingRegister","adr":"41255","quantity":"1","server":"a3ba30e733e52b3b","emptyMsgOnFail":true,"keepMsgProperties":true,"delayOnStart":false,"startDelayTime":"","x":720,"y":620,"wires":[[],[]]},{"id":"f27fac7242369f88","type":"function","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"Houseconsumption - 60","func":"// Controleer of msg.payload een geldig getal is\nif (isNaN(msg.payload)) {\n node.warn(\"Payload is geen geldig getal: \" + msg.payload);\n return null; // Stopt de uitvoering als het geen getal is\n}\n\n// Aftrekken: houseConsumption - 60\nvar houseConsumption = parseFloat(msg.payload);\nvar result = houseConsumption - 60;\nmsg.payload = result;\nreturn msg;\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1310,"y":660,"wires":[["7ba1bad999aa53fb"]]},{"id":"97226d384540ec7c","type":"api-current-state","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"If DAC is on","server":"82e28109.c824c","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_boolean.dynamic_active_control_dac","state_type":"str","blockInputOverrides":false,"outputProperties":[],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1050,"y":760,"wires":[["99790ef0c97f3607"],[]]},{"id":"9cfb26d4e608f9cb","type":"api-call-service","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"Turn on DAC","server":"82e28109.c824c","version":7,"debugenabled":false,"action":"input_boolean.turn_on","floorId":[],"areaId":[],"deviceId":[],"entityId":["input_boolean.dynamic_active_control_dac"],"labelId":[],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","blockInputOverrides":true,"domain":"input_boolean","service":"turn_on","x":1650,"y":800,"wires":[["1eb6a7f104e19979"]]},{"id":"1eb6a7f104e19979","type":"stoptimer","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","duration":"30","units":"Minute","payloadtype":"num","payloadval":"0","name":"30 minutes timer","x":1880,"y":800,"wires":[["06560fd65450e959"],[]]},{"id":"e990a91daf3f1871","type":"api-call-service","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"Turn off DAC + set powerslider to 100%","server":"82e28109.c824c","version":7,"debugenabled":false,"action":"input_boolean.turn_off","floorId":[],"areaId":[],"deviceId":[],"entityId":["input_boolean.dynamic_active_control_dac"],"labelId":[],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"100","valueType":"num"}],"queue":"none","blockInputOverrides":true,"domain":"input_boolean","service":"turn_off","x":1760,"y":920,"wires":[["c476f930b588590f"]]},{"id":"be5fa0892af9291b","type":"api-current-state","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"Grid return > 500w","server":"82e28109.c824c","version":3,"outputs":2,"halt_if":"500","halt_if_type":"num","halt_if_compare":"gt","entity_id":"sensor.electricity_meter_grid_power_return","state_type":"num","blockInputOverrides":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"on","valueType":"str"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1810,"y":660,"wires":[["2f33d9778262850a"],[]]},{"id":"2f33d9778262850a","type":"delay","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"","pauseType":"delay","timeout":"20","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1660,"y":740,"wires":[["9806f11126fd82fd"]]},{"id":"9806f11126fd82fd","type":"api-current-state","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"Grid return > 500w","server":"82e28109.c824c","version":3,"outputs":2,"halt_if":"500","halt_if_type":"num","halt_if_compare":"gt","entity_id":"sensor.electricity_meter_grid_power_return","state_type":"num","blockInputOverrides":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"on","valueType":"str"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1850,"y":740,"wires":[["9cfb26d4e608f9cb"],[]]},{"id":"06560fd65450e959","type":"api-current-state","z":"a5ecbc5e135cb5e8","g":"ee93724ef816afff","name":"Battery not full?","server":"82e28109.c824c","version":3,"outputs":2,"halt_if":"100","halt_if_type":"num","halt_if_compare":"lt","entity_id":"sensor.sn_3012415982_battery_soc_total","state_type":"num","blockInputOverrides":true,"outputProperties":[],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1820,"y":860,"wires":[["e990a91daf3f1871"],[]]},{"id":"82e28109.c824c","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true},{"id":"dbbf6dfc33b249fe","type":"ha-entity-config","server":"82e28109.c824c","deviceConfig":"","name":"Active power limit","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"Active power limit"},{"property":"icon","value":""},{"property":"entity_picture","value":""},{"property":"entity_category","value":"diagnostic"},{"property":"device_class","value":"power"},{"property":"unit_of_measurement","value":"W"},{"property":"state_class","value":"measurement"}],"resend":false,"debugEnabled":false},{"id":"a3ba30e733e52b3b","type":"modbus-client","name":"","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":true,"queueLogEnabled":true,"failureLogEnabled":true,"tcpHost":"192.168.178.72","tcpPort":"502","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","serialAsciiResponseStartDelimiter":"0x3A","unit_id":3,"commandDelay":1,"clientTimeout":1000,"reconnectOnTimeout":true,"reconnectTimeout":2000,"parallelUnitIdsAllowed":true,"showErrors":true,"showWarnings":true,"showLogs":true}]
Sorry voor het veel te late antwoord. Ik heb het bericht totaal gemist.
Ik zie dat jij eveneens een Home manager 2 hebt. In eerdere berichten heb ik aangegeven dat er een probleem was met een update van de firmware en dat de Home manager 2 dit modbus register telkens overschrijft. Dit is nog steeds zo, maar ik heb het kunnen oplossen. Na een tijd over en weer gemaild te hebben met iemand van SMA, gaf die de sugestie dat je de home manager ook als gewone energiemeter kan gebruiken. Als je home assistant gebruikt, dan heb je eigenlijk die functies van de home manager 2 niet meer nodig. De oplossing is dus om de connectie met SMA sunnycloud te verbreken en je installatie daar te deleten. Als je home assistant gebruikt, dan krijg je normaal gezien al je gegevens daar binnen. Op dit manier, door de verbinding te verbreken met sunny portal, stopt home manager met de baas te spelen over de omvormer en werkt dit register terug als normaal. Ik geef het even mee, want anders ga je allicht hier tegenaan lopen. Met een klassieke energiemeter van sma werkt het normaal, maar niet met home manager 2, althans niet meer dankzij die firmware update. Je zal dus voorlopig moeten kiezen vrees ik. Ik heb de keuze gemaakt en het werkt prima nu.
Van mijn contact bij SMA weet ik dat ze normaal gezien in Q3 van dit jaar een nieuwe firmaware update gepland hebben, waar dynamische tarieven in vervat zitten. Benieuwd of je dan via de Home manager 2 je vermogen kan beperken bij negatieve injectieprijzen. Dit zijn een beetje de opties waar je tussen kan kiezen op dit moment.
Laat gerust weten of het gelukt is of je ergens vast loopt.
Ik heb hier mijn installatie intussen draaien naar eigen smaak.