Weather compensating regulator

I have my sensors, thermostats, switches, pid regulator, pwm outputs and compensations figured. Now i need to tie them all together.

What i want to accomplish in the end is a 0-10v signal for an actuator that controls the flow temperature of my heating system. I sense the outdoor temperature, put that through a compensation to get a set point for the pid regulator (HACS) that then feeds the pwm output (rpi_gpio_pwm). But only when a certain switch is on, namely the pump that serves my house. How do i tie this all together? This is a chain of entities that need continuous interaction. Not sure what to even look for in the documentation.

In case anyone’s interested i solved it in node-red instead.

[{"id":"e0cb2a8c.4402a8","type":"PID","z":"add70ebdda502dbc","name":"","setpoint":"50","pb":"10","ti":"120","td":"0","integral_default":"0","smooth_factor":"0","max_interval":"5","enable":"0","disabled_op":"0","x":490,"y":320,"wires":[["e94f888a.130a88"]]},{"id":"f70949c8.aab988","type":"change","z":"add70ebdda502dbc","name":"","rules":[{"t":"set","p":"topic","pt":"msg","to":"op","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":770,"y":420,"wires":[[]]},{"id":"e94f888a.130a88","type":"range","z":"add70ebdda502dbc","minin":"0","maxin":"1","minout":"0","maxout":"100","action":"scale","round":false,"property":"payload","name":"Scale power","x":570,"y":480,"wires":[["f70949c8.aab988","17321c5ab50e6958","de30611c4eec55a9","bf07a9d3f1eaf5ca"]]},{"id":"de30611c4eec55a9","type":"data-view","z":"add70ebdda502dbc","name":"","property":"payload","fieldType":"msg","width":200,"height":160,"points":10,"active":true,"passthru":false,"hide":true,"outputs":0,"x":850,"y":500,"wires":[]},{"id":"17321c5ab50e6958","type":"pi-gpiod out","z":"add70ebdda502dbc","name":"House actuator","host":"172.17.32.107","port":8888,"pin":"18","set":"","level":"0","out":"pwm","sermin":"1000","sermax":"2000","freq":"8000","x":760,"y":340,"wires":[]},{"id":"07e1ebf617cb2c7d","type":"poll-state","z":"add70ebdda502dbc","name":"House flow set point","server":"50eb7c18.7c80c4","version":2,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"updateinterval":"1","updateIntervalType":"num","updateIntervalUnits":"seconds","outputinitially":false,"outputonchanged":false,"entity_id":"sensor.compensation_sensor_28_8bb7a70d0000_temperature","state_type":"num","halt_if":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"x":130,"y":440,"wires":[["b0bbff10f332fddb"]]},{"id":"d772198044c66a34","type":"poll-state","z":"add70ebdda502dbc","name":"House flow feedback","server":"50eb7c18.7c80c4","version":2,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"updateinterval":"1","updateIntervalType":"num","updateIntervalUnits":"seconds","outputinitially":false,"outputonchanged":false,"entity_id":"sensor.workshop_temperature","state_type":"num","halt_if":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"x":130,"y":380,"wires":[["e0cb2a8c.4402a8"]]},{"id":"b0bbff10f332fddb","type":"change","z":"add70ebdda502dbc","name":"setpoint","rules":[{"t":"set","p":"topic","pt":"msg","to":"setpoint","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":300,"y":440,"wires":[["e0cb2a8c.4402a8"]]},{"id":"bf07a9d3f1eaf5ca","type":"ha-entity","z":"add70ebdda502dbc","name":"House actuator opening","server":"50eb7c18.7c80c4","version":2,"debugenabled":false,"outputs":1,"entityType":"sensor","config":[{"property":"name","value":"house actuator opening"},{"property":"device_class","value":"sensor"},{"property":"icon","value":""},{"property":"unit_of_measurement","value":"%"},{"property":"state_class","value":""},{"property":"last_reset","value":""}],"state":"payload","stateType":"msg","attributes":[{"property":"entity_id","value":"sensor.house_actuator_opening","valueType":"str"}],"resend":true,"outputLocation":"payload","outputLocationType":"msg","inputOverride":"allow","outputOnStateChange":false,"outputPayload":"","outputPayloadType":"str","x":790,"y":280,"wires":[[]]},{"id":"23e898e80e742204","type":"poll-state","z":"add70ebdda502dbc","name":"House pump on","server":"50eb7c18.7c80c4","version":2,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"updateinterval":"60","updateIntervalType":"num","updateIntervalUnits":"seconds","outputinitially":true,"outputonchanged":true,"entity_id":"switch.house_pump","state_type":"str","halt_if":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"x":120,"y":260,"wires":[["3dcbfb15b641b245"],["6656b11f8aee4f1e"]]},{"id":"3dcbfb15b641b245","type":"change","z":"add70ebdda502dbc","name":"enable","rules":[{"t":"set","p":"payload","pt":"msg","to":"true","tot":"str"},{"t":"set","p":"topic","pt":"msg","to":"enable","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":330,"y":220,"wires":[["e0cb2a8c.4402a8"]]},{"id":"6656b11f8aee4f1e","type":"change","z":"add70ebdda502dbc","name":"disable","rules":[{"t":"set","p":"payload","pt":"msg","to":"false","tot":"str"},{"t":"set","p":"topic","pt":"msg","to":"enable","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":280,"wires":[["e0cb2a8c.4402a8"]]},{"id":"50eb7c18.7c80c4","type":"server","name":"Home Assistant","version":4,"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"}]