Ajuda Node Red (No para fazer um Loop em uma determinada estrutura)

Bom dia, criei um Flow para fiscalizar a bateria e avisar quando ela precisa ser carregada e para quando ela está 100% carregada. A dificuldade que estou tendo é referente aos 100% pois esta parametrizado para que a cada 30 minutos cheque o status da bateria porém acontece diversas vezes de atingir os 100% e nos próximos 30 minutos após ter retirado o carregador a bateria não sair dos 100 e então a Alexa avisa novamente que a bateria está carregada.

Utilize um nó “RBE”, “Report By Exception”, desta forma um próximo fluxo só será acionado se atender determinada condição. Ele faz vários bloqueios e pode ser definido um limite.
Vou colocar um exemplo simples que poderá ver o funcionamento e adaptar à sua necessidade.

Injete os valores “0” e “4” e veja o que acontece. Após, injete várias vezes o mesmo valor. Altere por exemplo o valor “4” para “1” e faça o mesmo, observando o limite “2”. Altere o limite “2” para outros valores. Etc.

Obrigado @WDGCHA vou testar aqui e retorno.

Acho que não estou conseguindo simular. :relieved:

Pelo que entendi você não quer que informe novamente estando ainda o valor de 100.

Se é este o caso o RBE criará um filtro de acordo com o que for selecionado.

Se o “mode” dele estiver como “Block unless value changes” (Bloqueie a menos que o valor mude), a saída informará na primeira vez que atingir 100 e não informará mais até que altere este valor, pois bloqueará todos as demais entradas que forem iguais.

Para não ficar limitado em 100 você pode colocar uma faixa, por exemplo, de 91 a 100 para ser bloqueado, então altere o “mode” para “Block unless value change is greater or equal to” (Bloqueie a menos que a alteração do valor seja maior ou igual a) e no campo de baixo coloque “10”, assim não somente o valor “100” será ignorado, mas também 99, 98, 97, … Se o valor for, por exemplo, 88, não será bloqueado e o fluxo seguirá.

Pelo que parece, no seu fluxo, o RDE, “filter”, deverá estar após o primeiro “switch”.

Creio que teriam outras formas, mas este é o nó usual para esta finalidade.

Faça testes colocando “debug” para verificar e ajustar a sua necessidade.

eu coloquei um current state para que me avise quando chegar a 100% somente enquanto estiver carregando, se tirar do carregador ele não continua o fluxo

1 curtida

Vou fazer uns teste então, obrigado pela explicação. Ainda sou meio leigo em tudo isso estou começando, esse flow que montei foi tudo com base em vários vídeos que eu assisti.
Explorando um pouco a sua experiência, sabe me dizer se tem algum nó que eu consigo fazer com que a automação não seja executada por um determinado tempo.
Exemplo pela Alexa eu tenho uma automação que quando eu abro a porta do por do sol ao nascer do sol ela liga varias luzes. Mas nas configurações dessa rotina tem uma configuração com o nome (suprimir) que quando habilitado eu consigo determinar um tempo para que essa automação não ocorra novamente mesmo que eu abra a porta.

Hum, você está usando os sensores direto do HA instalado nos celulares!?
O meu eu fiz com base no Life 360, eu acho que vou mudar, pois por uns vídeos que eu assisti pelo HA instalado no celular eu consigo ter vários sensores.

Normal. Estamos todos aprendendo sempre.
O nó para pausar uma execução é o “Delay”.
Porém, dependendo da automação pode ser configurada a pausa com um Trigger.
Ou pode configurar tempos para execução no Time Range, Inject ou outros.

isso eu uso os sensore do app Home Assistant, ai tem o sensor que verifica o estado da bateria: “descarregando, corregando, etc…”
ai uso o “carregando” como condição para continuar o fluxo e me avisar pela alexa

teria como compartilha o código desse flow?
grato.

segue o fluxo abaixo

[{"id":"27ceafab238451bd","type":"poll-state","z":"1a4a08c7f4fbabc0","g":"31a7ab032e0835a0","name":"RN8 Bateria <= 10","server":"faeb23f4.a3119","version":2,"updateIntervalType":"num","updateIntervalUnits":"minutes","outputs":2,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"updateinterval":"10","outputinitially":false,"outputonchanged":false,"entity_id":"sensor.redmi_note_8_nivel_da_bateria","state_type":"str","halt_if":"10","halt_if_type":"num","halt_if_compare":"lte","x":170,"y":720,"wires":[["647d231785032096"],[]]},{"id":"8ab3e87488da0d25","type":"poll-state","z":"1a4a08c7f4fbabc0","g":"31a7ab032e0835a0","name":"RN8 Bateria = 100","server":"faeb23f4.a3119","version":2,"updateIntervalType":"num","updateIntervalUnits":"minutes","outputs":2,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"updateinterval":"10","outputinitially":false,"outputonchanged":false,"entity_id":"sensor.redmi_note_8_nivel_da_bateria","state_type":"str","halt_if":"100","halt_if_type":"num","halt_if_compare":"gte","x":170,"y":800,"wires":[["82b61e5e9f1d01d2"],[]]},{"id":"82b61e5e9f1d01d2","type":"api-current-state","z":"1a4a08c7f4fbabc0","g":"31a7ab032e0835a0","name":"Avisos Sonoros?","server":"faeb23f4.a3119","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_boolean.avisos_sonoros","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","x":390,"y":800,"wires":[["4e10f2d701ac06c5","516e50a2e4abbc42"],[]]},{"id":"647d231785032096","type":"api-current-state","z":"1a4a08c7f4fbabc0","g":"31a7ab032e0835a0","name":"Avisos Sonoros?","server":"faeb23f4.a3119","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_boolean.avisos_sonoros","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","x":390,"y":720,"wires":[["4809ab7047b66899"],[]]},{"id":"4809ab7047b66899","type":"api-current-state","z":"1a4a08c7f4fbabc0","g":"31a7ab032e0835a0","name":"esta carregando?","server":"faeb23f4.a3119","version":3,"outputs":2,"halt_if":"charging","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.redmi_note_8_estado_da_bateria","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","x":630,"y":720,"wires":[[],["1b1fd61cc527cfe2"]]},{"id":"4e10f2d701ac06c5","type":"api-current-state","z":"1a4a08c7f4fbabc0","g":"31a7ab032e0835a0","name":"Carregado?","server":"faeb23f4.a3119","version":3,"outputs":2,"halt_if":"charging","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.redmi_note_8_estado_da_bateria","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","x":610,"y":780,"wires":[["bb224b62c3947777"],[]]},{"id":"516e50a2e4abbc42","type":"api-current-state","z":"1a4a08c7f4fbabc0","g":"31a7ab032e0835a0","name":"Carregado?","server":"faeb23f4.a3119","version":3,"outputs":2,"halt_if":"full","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.redmi_note_8_estado_da_bateria","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","x":610,"y":840,"wires":[["bb224b62c3947777"],[]]},{"id":"bb224b62c3947777","type":"api-current-state","z":"1a4a08c7f4fbabc0","g":"31a7ab032e0835a0","name":"RN8 está em casa?","server":"faeb23f4.a3119","version":3,"outputs":2,"halt_if":"home","halt_if_type":"str","halt_if_compare":"is","entity_id":"device_tracker.redmi_note_8","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","x":850,"y":800,"wires":[["b43bc9f1bec161f9"],[]]},{"id":"1b1fd61cc527cfe2","type":"api-current-state","z":"1a4a08c7f4fbabc0","g":"31a7ab032e0835a0","name":"RN8 está em casa?","server":"faeb23f4.a3119","version":3,"outputs":2,"halt_if":"home","halt_if_type":"str","halt_if_compare":"is","entity_id":"device_tracker.redmi_note_8","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","x":850,"y":720,"wires":[["77230f94c330e1bd"],[]]},{"id":"77230f94c330e1bd","type":"api-current-state","z":"1a4a08c7f4fbabc0","g":"31a7ab032e0835a0","name":"Nível bateria","server":"faeb23f4.a3119","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.redmi_note_8_nivel_da_bateria","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","x":1070,"y":720,"wires":[["a5790fff9eaa8a6b"]]},{"id":"b43bc9f1bec161f9","type":"time-range-switch","z":"1a4a08c7f4fbabc0","g":"31a7ab032e0835a0","name":"7:00 as 22:00","lat":"","lon":"","startTime":"7:00","endTime":"22:00","startOffset":0,"endOffset":0,"x":1080,"y":800,"wires":[["3ac5f40358c37706"],[]]},{"id":"a5790fff9eaa8a6b","type":"function","z":"1a4a08c7f4fbabc0","g":"31a7ab032e0835a0","name":"coleta","func":"msg.bateria = \"Redmi Note 8 está com \"+msg.payload +\"% de bateria! Coloque-o no carregador!\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1230,"y":720,"wires":[[]]},{"id":"5daf33dacce8731d","type":"alexa-remote-routine","z":"1a4a08c7f4fbabc0","g":"31a7ab032e0835a0","name":"","account":"6f95c14e8a7f1a21","routineNode":{"type":"speak","payload":{"type":"announcement","text":{"type":"msg","value":"bateria"},"devices":["G090XG0995121LUS"]}},"x":1380,"y":720,"wires":[[]]},{"id":"3ac5f40358c37706","type":"alexa-remote-routine","z":"1a4a08c7f4fbabc0","g":"31a7ab032e0835a0","name":"","account":"6f95c14e8a7f1a21","routineNode":{"type":"speak","payload":{"type":"announcement","text":{"type":"str","value":"Redmi Note 8 já carregou 100% da bateria! Tire-o do carregador!"},"devices":["G090XG0995121LUS"]}},"x":1380,"y":800,"wires":[[]]},{"id":"faeb23f4.a3119","type":"server","name":"Home Assistant","addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"","connectionDelay":false,"cacheJson":false,"heartbeat":false,"heartbeatInterval":"","statusSeparator":"","enableGlobalContextStore":false},{"id":"6f95c14e8a7f1a21","type":"alexa-remote-account","name":"","authMethod":"proxy","proxyOwnIp":"192.168.2.5","proxyPort":"3456","cookieFile":"/config/authAlexa","refreshInterval":"3","alexaServiceHost":"pitangui.amazon.com","amazonPage":"amazon.com.br","acceptLanguage":"pt-BR","userAgent":"","useWsMqtt":"on","autoInit":"on"}]
1 curtida