Node red - Contrôle consommation panneaux solaire pour ballon

Bonjour à tous

Je partage mon code pour chauffer mon ballon d’eau chaude avec les panneaux solaires.
Explication, je contrôle au départ ma conso panneaux si > 150 car je suis en zéro injection, et j’allume mon ballon, après 10 minutes je regarde si ma conso panneaux > 300 car si les panneaux produisent c’est ok je continu jusqu’au conso ballon < 5 et j’éteint mon ballon. Mon bit solaire est lâ pour ne pas allumer ma conso le soir en heure creuse c’est un autre code.

Mais je trouve mon code un peu long, et je voulais savoir s’il y avait une autre méthode pour simplifier tout ceci.

Merci d’avance

David

[{"id":"dc6b9d3f7861a14d","type":"cronplus","z":"dd8126bdccffbd90","name":"à 13h00","outputField":"payload","timeZone":"","storeName":"","commandResponseMsgOutput":"output1","defaultLocation":"","defaultLocationType":"default","outputs":1,"options":[{"name":"schedule1","topic":"topic1","payloadType":"default","payload":"","expressionType":"cron","expression":"0 0 13 * * *","location":"","offset":"0","solarType":"all","solarEvents":"sunrise,sunset"}],"x":180,"y":980,"wires":[["abb01b8759cea4e1"]]},{"id":"8183de4da78ce088","type":"api-call-service","z":"dd8126bdccffbd90","name":"ballon on","server":"4066b510aa00d654","version":5,"debugenabled":false,"domain":"switch","service":"turn_on","areaId":[],"deviceId":[],"entityId":["switch.ballon"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","output_location":"payload","output_location_type":"none","x":580,"y":960,"wires":[["deb55a97464488ca","54a465af6cfa517f"]]},{"id":"3c565f20b1df6e1e","type":"api-call-service","z":"dd8126bdccffbd90","name":"Ballon off","server":"4066b510aa00d654","version":5,"debugenabled":false,"domain":"switch","service":"turn_off","areaId":[],"deviceId":[],"entityId":["switch.ballon"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","output_location":"payload","output_location_type":"none","x":1480,"y":980,"wires":[["3f87031157c2be35"]]},{"id":"deb55a97464488ca","type":"delay","z":"dd8126bdccffbd90","name":"","pauseType":"delay","timeout":"10","timeoutUnits":"minutes","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":830,"y":980,"wires":[["566f42ef0fd6471c"]]},{"id":"abb01b8759cea4e1","type":"api-current-state","z":"dd8126bdccffbd90","name":"conso > 150","server":"4066b510aa00d654","version":3,"outputs":2,"halt_if":"150","halt_if_type":"num","halt_if_compare":"gt","entity_id":"sensor.conso_ps","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"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":390,"y":980,"wires":[["8183de4da78ce088"],[]]},{"id":"566f42ef0fd6471c","type":"api-current-state","z":"dd8126bdccffbd90","name":"conso > 300","server":"4066b510aa00d654","version":3,"outputs":2,"halt_if":"300","halt_if_type":"num","halt_if_compare":"gt","entity_id":"sensor.conso_ps","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"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":1050,"y":980,"wires":[["7c3fad8086453789","deb55a97464488ca","e09d6c568cdd6933"],["3c565f20b1df6e1e"]]},{"id":"7c3fad8086453789","type":"api-current-state","z":"dd8126bdccffbd90","name":"Conso ballon <5","server":"4066b510aa00d654","version":3,"outputs":2,"halt_if":"5","halt_if_type":"num","halt_if_compare":"lt","entity_id":"sensor.ballon_power","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"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":1280,"y":920,"wires":[["3c565f20b1df6e1e"],[]]},{"id":"54a465af6cfa517f","type":"api-call-service","z":"dd8126bdccffbd90","name":"Bit solaire = off","server":"4066b510aa00d654","version":5,"debugenabled":false,"domain":"input_boolean","service":"turn_off","areaId":[],"deviceId":[],"entityId":["input_boolean.bit_solaire"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","output_location":"","output_location_type":"none","x":760,"y":780,"wires":[["abeb112e49d39437"]]},{"id":"abeb112e49d39437","type":"api-call-service","z":"dd8126bdccffbd90","name":"Msg : Ballon on PS","server":"4066b510aa00d654","version":5,"debugenabled":false,"domain":"telegram_bot","service":"send_message","areaId":[],"deviceId":[],"entityId":[],"data":"{\"message\":\"Ballon On PS\"}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1650,"y":780,"wires":[[]]},{"id":"3184bc4e7b1378c7","type":"api-call-service","z":"dd8126bdccffbd90","name":"Bit solaire = on","server":"4066b510aa00d654","version":5,"debugenabled":false,"domain":"input_boolean","service":"turn_on","areaId":[],"deviceId":[],"entityId":["input_boolean.bit_solaire"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","output_location":"","output_location_type":"none","x":1320,"y":840,"wires":[["81f9dc98d14d4a97"]]},{"id":"81f9dc98d14d4a97","type":"api-call-service","z":"dd8126bdccffbd90","name":"Msg : Solaire On","server":"4066b510aa00d654","version":5,"debugenabled":false,"domain":"telegram_bot","service":"send_message","areaId":[],"deviceId":[],"entityId":[],"data":"{\"message\":\"Solaire on\"}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1650,"y":840,"wires":[[]]},{"id":"e09d6c568cdd6933","type":"api-current-state","z":"dd8126bdccffbd90","name":"Bit = off","server":"4066b510aa00d654","version":3,"outputs":2,"halt_if":"off","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_boolean.bit_solaire","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"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":1140,"y":840,"wires":[["3184bc4e7b1378c7"],[]]},{"id":"3f87031157c2be35","type":"api-call-service","z":"dd8126bdccffbd90","name":"Msg : Ballon off ","server":"4066b510aa00d654","version":5,"debugenabled":false,"domain":"telegram_bot","service":"send_message","areaId":[],"deviceId":[],"entityId":[],"data":"{\"message\":\"Ballon Off\"}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1660,"y":980,"wires":[[]]},{"id":"4066b510aa00d654","type":"server","name":"HA","version":5,"addon":false,"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":": ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"default","statusTimeFormat":"h:m","enableGlobalContextStore":false}]
1 « J'aime »

Salut,
Il y a souvent la possibilité de simplifier.
Je préfère avoir un flow avec 20 Nodes qui ont chacun une fonction plutôt que tous mettre dans un seul.
De séparer les choses permet de savoir ce que tu fais à chaque étape et favorise le débogage.

Pas la peine de tester si bit = on pour le passer à off. Passage en off immédiatement.
Tu peux stocker tes valeurs conso et conso ballon en variable flow ou global pour les réutiliser autant de fois que tu le veux.

On peut refaire ton flow de 10 manières différentes mais reste simple en pensant au débogage.

1 « J'aime »

merci pour ton retour :+1: