Are you comfortable with javascript?
Have a look at the flow below, which seems to work OK.
The group of inject nodes to the left are just used to simulate the inputs, but in your flow they would be deleted, and the lux level (as a number) would be fed into the function node, and the two inject nodes (into the change node) would be set to trigger at 8am and the other at whatever time that you wanted them closing.
As your lux level arrives every 6 minutes, that will run the flow in the function node, which will output the appropriate command to open or close the blinds.
Remember! in this demo, if you use the two 8am/8pm inject nodes, the changes will not take place until the function node flow is run by injecting either of the simulated Lux level inject nodes (which in your flow would be run every 6 minutes).
[{"id":"a44f90a57324d4b0","type":"change","z":"8ec88bd9c36c3f6b","name":"Save timer state to context","rules":[{"t":"set","p":"blinds.timer","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":465,"y":1460,"wires":[[]]},{"id":"609b12f869abbac0","type":"function","z":"8ec88bd9c36c3f6b","name":"Calculation","func":"let lux = msg.payload\nlet savedVals = flow.get('blinds') || {timer:'closed',currentState:'closed', lux: 0}\nif (savedVals.currentState == 'closed') {\n if (savedVals.timer == 'open' && lux > 300) {\n node.send({payload: 'open'})\n savedVals.currentState = 'open'\n }\n} else if (savedVals.timer == 'close') {\n node.send({ payload: 'close' })\n savedVals.currentState = 'closed'\n}\nsavedVals.lux = lux\nflow.set('blinds', savedVals)\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":430,"y":1530,"wires":[["ab738f4cc68e72c8"]]},{"id":"ab738f4cc68e72c8","type":"debug","z":"8ec88bd9c36c3f6b","name":"Blinds output","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":635,"y":1530,"wires":[]},{"id":"0a15e85cf4762091","type":"group","z":"8ec88bd9c36c3f6b","name":"Simulated data","style":{"label":true,"label-position":"n"},"nodes":["2d06eb572c0ccf78","a8948e86490c79c6","c4d090aa24ab127b","3a86e149786d6e50"],"x":14,"y":1399,"w":272,"h":192},{"id":"2d06eb572c0ccf78","type":"inject","z":"8ec88bd9c36c3f6b","g":"0a15e85cf4762091","name":"8am timer (open blinds)","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"open","payloadType":"str","x":160,"y":1440,"wires":[["a44f90a57324d4b0"]]},{"id":"a8948e86490c79c6","type":"inject","z":"8ec88bd9c36c3f6b","g":"0a15e85cf4762091","name":"8pm timer (close blinds)","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"close","payloadType":"str","x":160,"y":1475,"wires":[["a44f90a57324d4b0"]]},{"id":"c4d090aa24ab127b","type":"inject","z":"8ec88bd9c36c3f6b","g":"0a15e85cf4762091","name":"Simulated Lux level 310","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"310","payloadType":"num","x":160,"y":1550,"wires":[["609b12f869abbac0"]]},{"id":"3a86e149786d6e50","type":"inject","z":"8ec88bd9c36c3f6b","g":"0a15e85cf4762091","name":"Simulated Lux level 280","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"280","payloadType":"num","x":160,"y":1515,"wires":[["609b12f869abbac0"]]}]
If you don't want to close the blinds at a certain time, just comment out this line in the function node, and it will then just reset things for the following morning instead;
// node.send({ payload: 'close' })