AIF - Agricultura Interior Forçada

Olá a todos!

Já há alguns dias ando a ler o forum ao qual dou os parabéns pois foi também com ele que me guiei para instalar e configurar o meu HomeAssistant.

Venho apresentar uma pequeno projecto ao qual fui forçado a migrar da rua para o interior. E quando um amigo me mostrou “este mundo” fiquei bastante interessado em implementar uma “coisa destas” caseira, como passo os dias fora de casa gostaria de dar uma olhada quando não estou presente!

O meu pequeno hobbie é de cultivar/tratar cactos e suculentas. E derivado às temperaturas baixas fui forçado a arranjar uma estrutura e um cantinho em casa para coloca-las mais confortáveis lá dentro.

Fiz uma longa pesquisa no forum CPHA sobre projectos e automatismos e vi vários projectos (também em outros foruns na area de automatismo e agricultura como MyCodo… RaspGrow…) e decidi usar HA para automatizar e também para uma possibilidade num futuro aplicar pelo resto da casa, visto que é muito interessante, pois existe uma grande comunidade e de existir dispositivos relativamente baratos às soluções comerciais que por aí se encontram e tudo mais virado para linha profissinal e não caseira, ou então com demasiada estética…

Vou usar dispositivos SonOff (que já estão inseridos no HA e a funcionar com on/off manual) apenas a aguardar por NodeMCU CP2102 e um MH-Z59B Sensor.
Já revirei e li os tutoriais e cheguei à conclusão que o problema não é configurar pelo RED-Node mas sim Como fazer certas operações/condições.

Material a ser usado:

  • VMware
  • Router Thomson + Asus AC66U (Em DMZ)
  • HomeAssistant (VMDK)
  • uns quantos SonOff Basic R2
  • SonOff Temp/Hum sensor kit
  • LED 50W
  • Ventoinha
  • Aquecimento base
  • ventoinha auxiliar
  • NodeMCU + Sensor CO2 (Li recentemente que dá grande boost no crescimento, uma possibilidade a testar, ainda teria que arranjar algo para “injectar”/extrair co2, não estou dentro disto, mais pesquisa, apenas uma curiosidade para os agricultores daqui!)

Os cactos como todas as plantas têm 2 fases de vida durante um ano. A altura do crescimento, floração. (para simplificar…)

  • Necessito para crescimento de 12h de luz por dia, no máximo (até ao inicio de primavera, que é o que pretendo, durante outono e inverno)
  • Também necessito para floração 18h de luz por dia, pelo menos (Isto já não é necessário, é mais para praticar/treinar as automações, pois chega à primavera os dias vao aumentar e já não está este gelo…)

Portanto, tenho esses Dispositivos todos já no HA (Excepto o sensor q ha-de vir… espero não ser um barrete…). Criei com sucesso uma automação para ligar o LED às X horas e outra automação para DESligar o LED às Y horas.
Aqui nesta situação qual seria a automação/Configuração mais correcta? Criar duas automações independentes ON e OFF? ou criar uma só em que se programe, SE ON faz uma coisa, SE OFF faz outra coisa? está aqui um problema de lógica, talvez por falta de conhecimento de funcionamento do NodeRED :open_mouth:

O objectivo é ao mudar (manual/horario) o status do LED para ON, Todos os outros aparelhos têm uma configuração. Quando o LED para OFF, todos os outros aparelhos mudam de configuração.

Aqui ficou a 1ª dúvida inicial para começar esta Saga :slight_smile:

PS: Mais questões chatas virão logo de seguida :wink:

Link: https://github.com/hellresistor/FIFU-Project

No NR para o ON e OFF podes usar o node Schedex (tem de ser instalado pois não vem de origem) que tem a vantagem de poder ser controlado por inputs externos (no meu caso por input_datetime).

A saída dos Schedex tem um node que analisa se é ON ou OFF e reencaminha para o call service correspondente.

então vamos lá devagar devagarinho.

“… poder ser controlado por inputs externos…”
como por exemplo, o estado do sonoff se o ‘state’ fica ‘on’ ou ‘off’ ?!

1- O ‘Estado de Luzes’ é um “Schedex” node e não um “current state” node - que está associado ao dispositivo ON/OFF obtendo o seu estado actual.
2- O ON_Time/OFF_TIME é um “horário” para hora X faz ON hora Y faz OFF.

até aqui estou certo? ou completamente perdido :sweat_smile: :sweat_smile:

Por inputs externos de hora, tipo defines a hora a que queres ligar e desligar no HA e o NR lê os valores e injecta no Schedex. Também podes despoletar acções conforme o ON e OFF dos Sonoffs.

O Estado das Luzes limita-se a ler como está o switch e não precisava de estar no flow. O ON time e OFF time são a hora de ligar e desligar.

1 Curtiu

ok. Obrigado! bem continuando

3- os próximos 2 passos ‘Set Time 1 OFF’ que é um “template” node e
‘Clock Terrario 1’ é o suposto. “schedex”

continuo semi perdido :stuck_out_tongue:

O Set Time 1 ON (e todos os outros “Set”) são template nodes que contêm o código ontime {{payload}} ou offtime {{payload}} conforme sejam On ou OFF respetivamente.

O Clock Terrário 1 é o Schedex do primeiro temporizador.

1 Curtiu

Vou deixar mais informação do que pretendo, parece que ando perdido no mapa…
Será mais um update ao post.
Preciso de uma orientação. pois que não sei por onde começar para automatizar/monitorizar os meus cactos à distância.

  • se pelo controlo de temperatura (se mais que 35Cº desliga aquecimento e liga ventilação.
  • se pela luz que é por horario/schedule. Quando on, lê temperaturas … liga/desliga ventilação
  • mas de noite se a temperatura desce, tem que ligar o aquecedor e desligar ventoinha…
  • Se me meter na maluquice do co2 … é mais outra… só trabalha quando a luz liga … e pára de trabalhar se co2 quanto antinge 500ppm. se subir para 600ppm liga ventoinha até baixar 300 ppms

Isto deve ser uma coisa simples eu é que estou fazer um bicho de 7 cabeças… :face_with_head_bandage: :face_with_head_bandage:

Olá @patodoesgoto parabéns por esse Hobbie, e por trazeres esse tema ao fórum, também conheco alguém dedicado a esse tema, mas sem dómotica pelo meio.

Podes me dizer o que tens para aquecer o teu substracto? Penso que o user @sslopes comprou há dias algo semelhante para as suas espécies de picantes que comprou.

Relativamente às tuas últimas questões, isso é tudo fácil de fazer, recomendo step by step se ainda não estás bem familiarizado com este mundo. Para que o erro que possa advir seja de fácil resolução e não fiques ainda mais confuso e perdido.
A malta aqui ajudará a desenvolveres o que queres.

Boas @RodolfoVieira Obrigado, não é nada de mais! :slight_smile:

Sou novo nisto dos .yaml e .json (sempre mexi em bash e pouco html e sql) e Node-Reds e automatismos “desta categoria” nunca visto antes :sweat_smile: :sweat_smile:
Quando referes o step by step é o tutorial aqui no forum? ou mesmo ao projecto?
Agradeço a ajuda.

Em relação ao assunto de aquecimeto, Para aquecer o solo/chão (não é a terra directamente, mas sim por baixo dos vasos. uso um cabo deste género

Fica coberto entre 4 cm (2+2) de areia (dentro de um recipiente/tabuleiro). espero que esta dica ajude

Bem elaborei 3 esboços de como funcionar. ( o último, o que inclui CO2 está a ser manhoso de como fazer isto… fica para depois, como disse @RodolfoVieira “step-by-step”. e pegando na base de floração 18horas luz / 6 horas escuridão.

Modo 0 (4x SonOff - Automatismo no Led e aquecimento, com controle geral ( desliga/liga o estaminé completo ) :

  • Led (liga durante 18 horas ÀS X horas OU clico no botão e inicia o ciclo)
  • Exaustor (On/Off Manual)
  • Aquecimento ( durante 6 horas, após deligar a luz, e desliga após ligar a luz)
  • Ventoinha auxiliar (On/Off Manual)

Modo 1 (4x SonOff, 1x SonOff Sensores - Automatizado, com controle geral ( desliga/liga o estaminé completo ):

  • Led (liga durante 18 horas ÀS X horas)
  • Sensor Temperatura ( range: <35 Cº - > 23 Cº ) + Humidade ( between: 40%~60%)
  • Extrator - On quando > 35Cº & Off quando => 28Cº || On quando > 60% & Off quando =>50%
  • Aquecimento - On Apenas quando Led OFF || OFF quando Temperatura >= 26Cº)
  • Ventoinha Auxilia - On quando >= 30 Cº & Off quando <= 23 Cº || On quando >= 60% & Off <= 45%

Mode 2: — Aqui fica para mais tarde :wink:

Para começar com o método 0 !

Deveria iniciar com um State node ? ou um event node? ou um trigger node?

@j_assuncao qual a tua opinião ?

PS: Já dizia o outro “o que é preciso, é encarrilhar…”

Deixo aqui uma imagem do inicio do modo 0 .

Vai ficar hoje a correr duranteo dia, para verificar o ciclo de 24h.

Tenho duvida. em relação ao 1º “event” node. com este node não vai ser necessário o “switch” node ?

Ou esta será a opção mais correcta?

Podes usar o primeiro node do lado esquerdo. Events All

Se as automação são em função das horas o Schedex deve ser o inicio do flow.

E parece-me que tens aí algumas coisas mal, o Schedex tem duas saidas (ON e OFF) não precisas de ter um Schedex para ligar e outro para desligar (vê o flow que coloquei).

1 Curtiu

Obrigado @j_assuncao

A automação é em função de eu clicar no botão para ligar (no dashboard) o terrário arrancar, fica em loop diáriamente/eternamente, parando apenas quando lá for clicar novamente para desligar.

Poderias dar a tua sugestão ? ou é exactamente isso que me estás a mostrar? (não estou a encontrar o Schedex azul ?!?! :face_with_raised_eyebrow: :thinking: )

Eu entretanto de manhã (antes de ir para o serviço) fiz uma pequena alteração, substituí o “current state” por um input_boolean associado a um Helper que criei para usar no dashboard como botão. pelos vistos esta a funcionar o0 (cheirame que vai dar barraca… necessita de teste de 48horas no minimo ^^

Bem vou voltar a mexer, se entretando obtiver algum resultado, buzino !

UPDATE:
@j_assuncao baseado no teu! obviamente. apenas não entendi o que faz o Template node? (a tua resposta mais acima!)
E não percebo porque agora surge “input unsupported”

Se te referes a estes abaixo, o template node serve para preparar o conteúdo para inserir no Schedex.

image

P.S.: Acho que não faz sentido nenhum isso funcionar a partir de um input boolean…

Podia explicar a sua opinião por não fazer sentido controlar por botão ?

Porque tendo em conta que o Schedex é um node que despoleta acções (à hora de ligar e desligar envia um comando), o facto de o input boolean estar antes quer dizer que não vais de facto ligar e desligar a automação apenas vais forçar o arranque ou paragem.

Uma vez que queres ter dois modos (e futuramente um terceiro) devias criar um flow para cada modo e, entre a saída do Schedex de cada flow e a entrada do respectivo switch node, colocar um current state node que iria ler um input select do HA em que escolhias o modo que querias usar e comparava com o nome do modo de cada flow.

Assim, ao escolher o modo no input select no HA, apenas um flow corria ficando os outros parados. Mas isto são apenas os meus 25 cêntimos…

1 Curtiu

Obrigado Esclarecido. vou ler sobre payloads amanhã que já vi que há algo sobre isso aqui no forum! Em qualquer lado vejo o tal payload mas não sei como funciona/o nem o que é,

Pretendo para agora, o Modo 2. o Modo 1 é só para perceber como funciona o node red. e o modo 3, bem mais complicado e ainda não tenho o material.

Em relação a essa conjugação final que falaste, também tenho isso em mente para fazer… mas isso é no fim… 1º conseguir meter uma coisa destas a trabalhar :slight_smile:

Olá Olá Pessoal… passados uns dias venho com novidades.

Desde já agradecer a todos do Forum (directa e indirectamente) que me ajudaram e a este tutorial que me orientou excelente bem para mesmo o que precisava.

Venho tambem partilhar que acabei por fazer o que era para fazer mais tarde, a dita conjugação.

Partilho aqui o NR Actual:

[{"id":"82399e1f.514cd","type":"tab","label":"Modo","disabled":false,"info":""},{"id":"c3c1b7a0.2a2d58","type":"tab","label":"Germinacao","disabled":false,"info":""},{"id":"e446f866.f114c8","type":"tab","label":"Vegetativo","disabled":false,"info":""},{"id":"b2482af2.02bbf8","type":"tab","label":"Floracao","disabled":false,"info":""},{"id":"cfe1d51.9440928","type":"server","name":"Home Assistant","addon":true},{"id":"cfeafe0b.76b14","type":"telegram bot","botname":"TelegramBot","usernames":"domato","chatids":"664078350","baseapiurl":"","updatemode":"polling","pollinterval":"300","usesocks":false,"sockshost":"","socksport":"6667","socksusername":"anonymous","sockspassword":"","bothost":"","botpath":"","localbotport":"8443","publicbotport":"8443","privatekey":"","certificate":"","useselfsignedcertificate":false,"sslterminated":false,"verboselogging":false},{"id":"9a0e49fc.9f5fa8","type":"api-call-service","z":"82399e1f.514cd","name":"veg off","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_off","entityId":"input_boolean.vegetativo","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":530,"y":80,"wires":[[]]},{"id":"54e49c74.c55f14","type":"api-call-service","z":"82399e1f.514cd","name":"flor off","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_off","entityId":"input_boolean.floracao","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":530,"y":160,"wires":[[]]},{"id":"aea662bc.18c83","type":"api-call-service","z":"82399e1f.514cd","name":"ger off","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_off","entityId":"input_boolean.germinacao","data":"","dataType":"json","mergecontext":"","output_location":"payload1","output_location_type":"msg","mustacheAltTags":false,"x":530,"y":220,"wires":[[]]},{"id":"5254ecd2.ff9674","type":"api-call-service","z":"82399e1f.514cd","name":"flor off","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_off","entityId":"input_boolean.floracao","data":"","dataType":"json","mergecontext":"","output_location":"payload1","output_location_type":"msg","mustacheAltTags":false,"x":530,"y":300,"wires":[[]]},{"id":"9c5ef670.ecec78","type":"api-call-service","z":"82399e1f.514cd","name":"ger off","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_off","entityId":"input_boolean.germinacao","data":"","dataType":"json","mergecontext":"","output_location":"payload2","output_location_type":"msg","mustacheAltTags":false,"x":530,"y":360,"wires":[[]]},{"id":"dc1ca562.f11c58","type":"api-call-service","z":"82399e1f.514cd","name":"veg off","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_off","entityId":"input_boolean.vegetativo","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":530,"y":440,"wires":[[]]},{"id":"69bb1660.422418","type":"template","z":"82399e1f.514cd","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"off {{payload}}","output":"str","x":220,"y":120,"wires":[["55493d9a.c2bcb4"]]},{"id":"55493d9a.c2bcb4","type":"change","z":"82399e1f.514cd","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"off","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":120,"wires":[["9a0e49fc.9f5fa8","54e49c74.c55f14"]]},{"id":"f4863caf.20095","type":"template","z":"82399e1f.514cd","name":"","field":"payload1","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"off {{payload1}}","output":"str","x":200,"y":260,"wires":[["25e11745.30d628"]]},{"id":"25e11745.30d628","type":"change","z":"82399e1f.514cd","name":"","rules":[{"t":"set","p":"payload1","pt":"msg","to":"off","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":370,"y":260,"wires":[["aea662bc.18c83","5254ecd2.ff9674"]]},{"id":"b0e69b5.c747568","type":"template","z":"82399e1f.514cd","name":"","field":"payload2","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"off {{payload2}}","output":"str","x":200,"y":400,"wires":[["6934b490.4e855c"]]},{"id":"6934b490.4e855c","type":"change","z":"82399e1f.514cd","name":"","rules":[{"t":"set","p":"payload2","pt":"msg","to":"off","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":370,"y":400,"wires":[["9c5ef670.ecec78","dc1ca562.f11c58"]]},{"id":"25b4743b.c437cc","type":"server-state-changed","z":"82399e1f.514cd","name":"Germin Mod","server":"cfe1d51.9440928","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.germinacao","entityidfiltertype":"exact","outputinitially":true,"state_type":"habool","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":70,"y":120,"wires":[["69bb1660.422418"]]},{"id":"c897f986.344de8","type":"server-state-changed","z":"82399e1f.514cd","name":"Veget Mod","server":"cfe1d51.9440928","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.vegetativo","entityidfiltertype":"exact","outputinitially":true,"state_type":"habool","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":60,"y":260,"wires":[["f4863caf.20095"]]},{"id":"61b1232b.24dbbc","type":"server-state-changed","z":"82399e1f.514cd","name":"Flor Mod","server":"cfe1d51.9440928","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.floracao","entityidfiltertype":"exact","outputinitially":true,"state_type":"habool","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":60,"y":400,"wires":[["b0e69b5.c747568"]]},{"id":"e5f30db.27456f","type":"poll-state","z":"c3c1b7a0.2a2d58","name":"ON Time","server":"cfe1d51.9440928","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"updateinterval":"10","updateIntervalUnits":"seconds","outputinitially":false,"outputonchanged":true,"entity_id":"input_datetime.ligar_germinacao","state_type":"str","halt_if":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"x":60,"y":120,"wires":[["f9eeeac7.4c5198"]]},{"id":"11f47ae6.ae9095","type":"poll-state","z":"c3c1b7a0.2a2d58","name":"OFF Time","server":"cfe1d51.9440928","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"updateinterval":"10","updateIntervalUnits":"seconds","outputinitially":false,"outputonchanged":true,"entity_id":"input_datetime.desligar_germinacao","state_type":"str","halt_if":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"x":60,"y":200,"wires":[["56f3f67e.780798"]]},{"id":"f9eeeac7.4c5198","type":"template","z":"c3c1b7a0.2a2d58","name":"Set On","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"ontime {{payload}}","output":"str","x":200,"y":120,"wires":[["af98a73.4bc1758"]]},{"id":"56f3f67e.780798","type":"template","z":"c3c1b7a0.2a2d58","name":"Set OFF","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"offtime {{payload}}","output":"str","x":200,"y":200,"wires":[["af98a73.4bc1758"]]},{"id":"af98a73.4bc1758","type":"schedex","z":"c3c1b7a0.2a2d58","name":"Timer Germinacao","passthroughunhandled":false,"suspended":false,"lat":"","lon":"","ontime":"","ontopic":"","onpayload":"1","onoffset":0,"onrandomoffset":0,"offtime":"","offtopic":"","offpayload":"0","offoffset":0,"offrandomoffset":0,"mon":true,"tue":true,"wed":true,"thu":true,"fri":true,"sat":true,"sun":true,"x":350,"y":160,"wires":[["69c90f96.81e89"]]},{"id":"c4e67fb8.be659","type":"api-call-service","z":"c3c1b7a0.2a2d58","name":"Led1  ON","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_on","entityId":"switch.sonoff_led1","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":520,"y":80,"wires":[[]]},{"id":"69c90f96.81e89","type":"switch","z":"c3c1b7a0.2a2d58","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"str"},{"t":"eq","v":"0","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":510,"y":160,"wires":[["c4e67fb8.be659"],["ed17909e.ba3f6"]]},{"id":"ed17909e.ba3f6","type":"api-call-service","z":"c3c1b7a0.2a2d58","name":"Led1 OFF","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.sonoff_led1","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":520,"y":240,"wires":[[]]},{"id":"187d0957.9072c7","type":"poll-state","z":"e446f866.f114c8","name":"ON Time","server":"cfe1d51.9440928","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"updateinterval":"10","updateIntervalUnits":"seconds","outputinitially":false,"outputonchanged":true,"entity_id":"input_datetime.ligar_vegetativo","state_type":"str","halt_if":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"x":100,"y":120,"wires":[["d49dac84.8f02d"]]},{"id":"8ed13ee6.46925","type":"poll-state","z":"e446f866.f114c8","name":"OFF Time","server":"cfe1d51.9440928","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"updateinterval":"10","updateIntervalUnits":"seconds","outputinitially":false,"outputonchanged":true,"entity_id":"input_datetime.desligar_vegetativo","state_type":"str","halt_if":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"x":100,"y":200,"wires":[["b4ddb7dd.6d3398"]]},{"id":"d49dac84.8f02d","type":"template","z":"e446f866.f114c8","name":"Set On","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"ontime {{payload}}","output":"str","x":260,"y":120,"wires":[["4d71505b.1584c"]]},{"id":"b4ddb7dd.6d3398","type":"template","z":"e446f866.f114c8","name":"Set OFF","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"offtime {{payload}}","output":"str","x":260,"y":200,"wires":[["4d71505b.1584c"]]},{"id":"4d71505b.1584c","type":"schedex","z":"e446f866.f114c8","name":"Timer Germinacao","passthroughunhandled":false,"suspended":false,"lat":"","lon":"","ontime":"","ontopic":"","onpayload":"1","onoffset":0,"onrandomoffset":0,"offtime":"","offtopic":"","offpayload":"0","offoffset":0,"offrandomoffset":0,"mon":true,"tue":true,"wed":true,"thu":true,"fri":true,"sat":true,"sun":true,"x":450,"y":160,"wires":[["8257b212.1e12d"]]},{"id":"c7f6927c.ec1be","type":"api-call-service","z":"e446f866.f114c8","name":"Led1  ON","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_on","entityId":"switch.sonoff_led1","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":720,"y":100,"wires":[[]]},{"id":"8257b212.1e12d","type":"switch","z":"e446f866.f114c8","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"str"},{"t":"eq","v":"0","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":620,"y":160,"wires":[["c7f6927c.ec1be"],["b7f6efe4.f7e4"]]},{"id":"b7f6efe4.f7e4","type":"api-call-service","z":"e446f866.f114c8","name":"Led1 OFF","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.sonoff_led1","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":720,"y":220,"wires":[[]]},{"id":"2589484.88e90b8","type":"api-current-state","z":"c3c1b7a0.2a2d58","name":"","server":"cfe1d51.9440928","version":1,"outputs":2,"halt_if":"true","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"input_boolean.germinacao","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"Mode","override_data":"flow","blockInputOverrides":false,"x":260,"y":40,"wires":[[],[]]}]

Criei Alguns “Helpers”:

E Assim fica o Dashboard. Apenas é possivel um Modo activo, forçando o desligar ao tentar activar um 2º modo.

Next Step!!

Cada Modo com o seu Flow. Como poderei fazer para quando um toogle fique ON, Irá iniciar o loop do respectivo Flow ? Ou isto não é feito assim desta maneira tão “bonita singela”?

Já compreendi as variaveis globais, Consegui fazer funcionar bem com inject, como exemplo.
Deparei-me ali com a situação como faço para arrancar o flow vegetacao? apos o toogle seja ON? Com o inject e fazendo um change chega a variavel certa ao flow de destino!

Boa tarde Malta da “casa assistida” !

Derivado a variados pensamentos e raciocinios cheguei a esta conclusão! Decidi alterar o projecto, pois não faz sentido (para mim/ minha utilidade) activar por Modo de crescimento (germinação, vegetação, Floração), pois no temporizador eu vou gerir o horário que pretento.

Ficando assim o Dashboard:

E aqui o NR:

Flow:

[{"id":"333b236c.784a0c","type":"tab","label":"Terrario1","disabled":false,"info":""},{"id":"cfe78da9.cd351","type":"poll-state","z":"333b236c.784a0c","name":"Hora Ligar","server":"cfe1d51.9440928","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"updateinterval":"1","updateIntervalUnits":"minutes","outputinitially":false,"outputonchanged":false,"entity_id":"input_datetime.ligar_luz1","state_type":"str","halt_if":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"x":80,"y":280,"wires":[["9f013612.1daa58"]]},{"id":"9f013612.1daa58","type":"template","z":"333b236c.784a0c","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"ontime {{payload}}","output":"str","x":260,"y":260,"wires":[["805845ce.bec568"]]},{"id":"9c34559a.095888","type":"poll-state","z":"333b236c.784a0c","name":"Hora Desligar","server":"cfe1d51.9440928","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"updateinterval":"1","updateIntervalUnits":"minutes","outputinitially":false,"outputonchanged":false,"entity_id":"input_datetime.desligar_luz1","state_type":"str","halt_if":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"x":90,"y":360,"wires":[["29dbf656.b34cca"]]},{"id":"29dbf656.b34cca","type":"template","z":"333b236c.784a0c","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"offtime {{payload}}","output":"str","x":260,"y":380,"wires":[["805845ce.bec568"]]},{"id":"805845ce.bec568","type":"schedex","z":"333b236c.784a0c","name":"Timer","passthroughunhandled":false,"suspended":false,"lat":"","lon":"","ontime":"07:28","ontopic":"","onpayload":"1","onoffset":0,"onrandomoffset":0,"offtime":"goldenHour","offtopic":"","offpayload":"0","offoffset":0,"offrandomoffset":0,"mon":true,"tue":true,"wed":true,"thu":true,"fri":true,"sat":true,"sun":true,"x":250,"y":320,"wires":[["6594bebd.3b182"]]},{"id":"3f8c643f.52b9ec","type":"switch","z":"333b236c.784a0c","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"str"},{"t":"eq","v":"0","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":530,"y":320,"wires":[["a3901a38.e53838"],["b06a3c59.3baeb"]]},{"id":"a3901a38.e53838","type":"api-current-state","z":"333b236c.784a0c","name":"Led Ligada?","server":"cfe1d51.9440928","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.sonoff_1000d9861d","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":510,"y":280,"wires":[[],["9096c36.dd7d94"]]},{"id":"b06a3c59.3baeb","type":"api-current-state","z":"333b236c.784a0c","name":"Led Desligada?","server":"cfe1d51.9440928","version":1,"outputs":2,"halt_if":"off","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.sonoff_1000d9861d","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":500,"y":380,"wires":[[],["32cd9918.2a5df6"]]},{"id":"9096c36.dd7d94","type":"api-call-service","z":"333b236c.784a0c","name":"Led1 Ligar","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_on","entityId":"switch.sonoff_1000d9861d","data":"","dataType":"jsonata","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":670,"y":280,"wires":[["2eb1e209.15bf1e"]]},{"id":"32cd9918.2a5df6","type":"api-call-service","z":"333b236c.784a0c","name":"Led1 Desligar","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.sonoff_1000d9861d","data":"","dataType":"jsonata","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":680,"y":380,"wires":[["2eb1e209.15bf1e"]]},{"id":"6594bebd.3b182","type":"api-current-state","z":"333b236c.784a0c","name":"Geral","server":"cfe1d51.9440928","version":1,"outputs":2,"halt_if":"true","halt_if_type":"bool","halt_if_compare":"is","override_topic":false,"entity_id":"input_boolean.terrario1","state_type":"habool","state_location":"","override_payload":"none","entity_location":"","override_data":"none","blockInputOverrides":false,"x":370,"y":320,"wires":[["3f8c643f.52b9ec"],["b06a3c59.3baeb"]]},{"id":"e8eb0145.02655","type":"change","z":"333b236c.784a0c","name":"Nomes Dispositivos","rules":[{"t":"change","p":"payload.text","pt":"msg","from":"sonoff_1000da512f","fromt":"str","to":"Fan Auxiliar","tot":"str"},{"t":"change","p":"payload.text","pt":"msg","from":"sonoff_1000d9861d","fromt":"str","to":"Luz1","tot":"str"},{"t":"change","p":"payload.text","pt":"msg","from":"sonoff_1000d9ef4a","fromt":"str","to":"Exaustor","tot":"str"},{"t":"change","p":"payload.text","pt":"msg","from":"sonoff_1000d98c59","fromt":"str","to":"Aquecedor","tot":"str"},{"t":"change","p":"payload.text","pt":"msg","from":"sonoff_1000d98be8","fromt":"str","to":"Desumidificador","tot":"str"},{"t":"change","p":"payload.text","pt":"msg","from":"sonoff_1000d91305","fromt":"str","to":"Led2","tot":"str"},{"t":"change","p":"payload.text","pt":"msg","from":"sonoff_100103178a","fromt":"str","to":"Purificador","tot":"str"},{"t":"change","p":"payload.text","pt":"msg","from":"off","fromt":"str","to":"Desligado","tot":"str"},{"t":"change","p":"payload.text","pt":"msg","from":"on","fromt":"str","to":"Ligado","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1150,"y":200,"wires":[["bd1f1b38.584708"]]},{"id":"2eb1e209.15bf1e","type":"function","z":"333b236c.784a0c","name":"OK","func":"var estado = msg.payload.service.split('_')[1]\nvar dispositivo = msg.payload.data.entity_id.split('.')[1]\n// var geral = msg.topic\nvar texto = '--> ' + dispositivo + ' está ' + estado + ' ! ';\nreturn {'payload': {'text':texto}};","outputs":1,"noerr":0,"initialize":"","finalize":"","x":990,"y":200,"wires":[["e8eb0145.02655"]]},{"id":"92786d10.8f71a","type":"comment","z":"333b236c.784a0c","name":"Quadro Geral","info":"","x":270,"y":40,"wires":[]},{"id":"ffad79ef.391fc8","type":"comment","z":"333b236c.784a0c","name":"Temporizador","info":"","x":270,"y":200,"wires":[]},{"id":"5b86b33d.d8269c","type":"comment","z":"333b236c.784a0c","name":"Humidade OK","info":"","x":250,"y":820,"wires":[]},{"id":"d13122e4.47f84","type":"server-state-changed","z":"333b236c.784a0c","name":"Humi Target","server":"cfe1d51.9440928","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.humidity_target","entityidfiltertype":"exact","outputinitially":true,"state_type":"num","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":90,"y":860,"wires":[["4eb472eb.f198ec"]]},{"id":"22eb5f51.962c6","type":"server-state-changed","z":"333b236c.784a0c","name":"Humi Toler","server":"cfe1d51.9440928","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.humidity_tolerance","entityidfiltertype":"exact","outputinitially":true,"state_type":"num","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":80,"y":920,"wires":[["4eb472eb.f198ec"]]},{"id":"a7c264a8.88ff88","type":"server-state-changed","z":"333b236c.784a0c","name":"Humi Actual","server":"cfe1d51.9440928","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.sonoff_100103178a_humidity","entityidfiltertype":"exact","outputinitially":false,"state_type":"num","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":90,"y":980,"wires":[["4eb472eb.f198ec"]]},{"id":"5a7bcfbf.4af22","type":"api-current-state","z":"333b236c.784a0c","name":"Desumidificador Off?","server":"cfe1d51.9440928","version":1,"outputs":2,"halt_if":"off","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.sonoff_1000d98be8","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":460,"y":860,"wires":[["9c981f68.08fcc"],[]]},{"id":"75310d11.9c8084","type":"api-current-state","z":"333b236c.784a0c","name":"Desumidificador On?","server":"cfe1d51.9440928","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.sonoff_1000d98be8","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":460,"y":980,"wires":[["a78c569c.a2d3d8"],[]]},{"id":"9c981f68.08fcc","type":"api-call-service","z":"333b236c.784a0c","name":"Desumidificador on","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_on","entityId":"switch.sonoff_1000d98be8","data":"","dataType":"jsonata","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":570,"y":900,"wires":[["2eb1e209.15bf1e"]]},{"id":"a78c569c.a2d3d8","type":"api-call-service","z":"333b236c.784a0c","name":"Desumidificador off","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.sonoff_1000d98be8","data":"","dataType":"jsonata","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":570,"y":940,"wires":[["2eb1e209.15bf1e"]]},{"id":"4eb472eb.f198ec","type":"join","z":"333b236c.784a0c","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"3","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":230,"y":920,"wires":[["ff24b62c.3aa8e8"]]},{"id":"ff24b62c.3aa8e8","type":"function","z":"333b236c.784a0c","name":"","func":"let grHumidity = msg.payload[\"sensor.sonoff_100103178a_humidity\"];\nlet grHumidityTarget = msg.payload[\"input_number.humidity_target\"];\nlet grHumidityTolerance = msg.payload[\"input_number.humidity_tolerance\"];\n\nif (grHumidity < (grHumidityTarget + grHumidityTolerance)) {\n    return [msg, null];\n} else if (grHumidity > (grHumidityTarget - grHumidityTolerance)) {\n    return [null, msg];\n}","outputs":2,"noerr":0,"initialize":"","finalize":"","x":360,"y":920,"wires":[["5a7bcfbf.4af22"],["75310d11.9c8084"]]},{"id":"9fbfc574.ccdd28","type":"api-call-service","z":"333b236c.784a0c","name":"Aquecedor ON","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_on","entityId":"switch.sonoff_1000d98c59","data":"","dataType":"jsonata","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":760,"y":480,"wires":[["2eb1e209.15bf1e"]]},{"id":"d60e082b.ca2e88","type":"api-call-service","z":"333b236c.784a0c","name":"Aquecedor Off","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.sonoff_1000d98c59","data":"","dataType":"jsonata","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":740,"y":540,"wires":[["2eb1e209.15bf1e"]]},{"id":"5f0e142e.20ed1c","type":"api-current-state","z":"333b236c.784a0c","name":"Aquecedor ON?","server":"cfe1d51.9440928","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.sonoff_1000d98c59","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":560,"y":540,"wires":[["d60e082b.ca2e88"],[]]},{"id":"c6f7cdae.4d3c2","type":"api-current-state","z":"333b236c.784a0c","name":"Aquecedor OFF?","server":"cfe1d51.9440928","version":1,"outputs":2,"halt_if":"off","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.sonoff_1000d98c59","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":570,"y":480,"wires":[["9fbfc574.ccdd28"],[]]},{"id":"b5312263.ee9be","type":"api-call-service","z":"333b236c.784a0c","name":"Exaustor On","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_on","entityId":"switch.sonoff_1000d9ef4a","data":"","dataType":"jsonata","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":1030,"y":540,"wires":[["2eb1e209.15bf1e"]]},{"id":"99458dd5.6d721","type":"api-call-service","z":"333b236c.784a0c","name":"Exaustor Off","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.sonoff_1000d9ef4a","data":"","dataType":"jsonata","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":1030,"y":720,"wires":[["2eb1e209.15bf1e"]]},{"id":"d9af1feb.dd9d6","type":"api-current-state","z":"333b236c.784a0c","name":"Exaustor OFF?","server":"cfe1d51.9440928","version":1,"outputs":2,"halt_if":"off","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.sonoff_1000d9ef4a","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":560,"y":600,"wires":[["b5312263.ee9be","3f8779bd.afdcb6"],[]]},{"id":"fb34f377.c14d2","type":"api-call-service","z":"333b236c.784a0c","name":"Fan ON","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_on","entityId":"switch.sonoff_1000da512f","data":"","dataType":"jsonata","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":700,"y":720,"wires":[["2eb1e209.15bf1e"]]},{"id":"a0ecbf05.4d991","type":"api-call-service","z":"333b236c.784a0c","name":"Fan OFF","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.sonoff_1000da512f","data":"","dataType":"jsonata","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":700,"y":780,"wires":[["2eb1e209.15bf1e"]]},{"id":"6bf09860.e60308","type":"api-current-state","z":"333b236c.784a0c","name":"Fan ON?","server":"cfe1d51.9440928","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.sonoff_1000da512f","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":540,"y":780,"wires":[["a0ecbf05.4d991"],[]]},{"id":"a70216d8.95a638","type":"api-current-state","z":"333b236c.784a0c","name":"Fan OFF?","server":"cfe1d51.9440928","version":1,"outputs":2,"halt_if":"off","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.sonoff_1000da512f","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":550,"y":720,"wires":[["fb34f377.c14d2"],[]]},{"id":"3183fdfb.b0a622","type":"comment","z":"333b236c.784a0c","name":"Termometro","info":"","x":270,"y":460,"wires":[]},{"id":"2ee34571.96e6ea","type":"api-current-state","z":"333b236c.784a0c","name":"Exaustor ON?","server":"cfe1d51.9440928","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.sonoff_1000d9ef4a","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":560,"y":660,"wires":[["be668273.71d68","f9b9ffea.824d7"],[]]},{"id":"ee53a3e2.77d6","type":"server-state-changed","z":"333b236c.784a0c","name":"Temp. Minimo","server":"cfe1d51.9440928","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.temp_minima","entityidfiltertype":"exact","outputinitially":true,"state_type":"num","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":90,"y":560,"wires":[["a045e91f.d8ded8"]]},{"id":"4e263f1d.df4d9","type":"server-state-changed","z":"333b236c.784a0c","name":"Temp. Actual","server":"cfe1d51.9440928","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.sonoff_100103178a_temperature","entityidfiltertype":"exact","outputinitially":false,"state_type":"num","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":90,"y":680,"wires":[["a045e91f.d8ded8"]]},{"id":"61df5383.f35f4c","type":"server-state-changed","z":"333b236c.784a0c","name":"Temp. Maximo","server":"cfe1d51.9440928","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.temp_maximo","entityidfiltertype":"exact","outputinitially":true,"state_type":"num","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":100,"y":620,"wires":[["a045e91f.d8ded8"]]},{"id":"a045e91f.d8ded8","type":"join","z":"333b236c.784a0c","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"3","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":270,"y":620,"wires":[["de93b43e.3448c8"]]},{"id":"de93b43e.3448c8","type":"function","z":"333b236c.784a0c","name":"","func":"if(msg.payload[\"sensor.sonoff_100103178a_temperature\"] < msg.payload[\"input_number.temp_maximo\"] && msg.payload[\"sensor.sonoff_100103178a_temperature\"] > msg.payload[\"input_number.temp_minima\"]){\n    return [null, msg, null];\n}\n\nelse if(msg.payload[\"sensor.sonoff_100103178a_temperature\"] > msg.payload[\"input_number.temp_maximo\"]){\n    return [null, null, msg];\n}\n\nelse if(msg.payload[\"sensor.sonoff_100103178a_temperature\"] < msg.payload[\"input_number.temp_minima\"]){\n    return [msg, null, null];\n}","outputs":3,"noerr":0,"initialize":"","finalize":"","x":400,"y":620,"wires":[["c6f7cdae.4d3c2","2ee34571.96e6ea","6bf09860.e60308"],["c2a78a38.1d4528"],["5f0e142e.20ed1c","d9af1feb.dd9d6","a70216d8.95a638"]]},{"id":"bd1f1b38.584708","type":"telegrambot-payload","z":"333b236c.784a0c","name":"MyBot","bot":"3ffee45b.b9ea0c","chatId":"xxxxxx","sendMethod":"sendMessage","payload":"","x":1310,"y":200,"wires":[[]]},{"id":"17dd5adc.af6d75","type":"server-state-changed","z":"333b236c.784a0c","name":"Terrario1Geral","server":"cfe1d51.9440928","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.terrario1","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":90,"y":80,"wires":[["9edbc868.94de08"],["9edbc868.94de08","b06a3c59.3baeb","5f0e142e.20ed1c","2ee34571.96e6ea","6bf09860.e60308","75310d11.9c8084","be668273.71d68"]]},{"id":"9edbc868.94de08","type":"function","z":"333b236c.784a0c","name":"OK1","func":"// #var estado = msg.topic.split('_')[1]\nvar estado1 = msg.payload\nvar dispositivo1 = msg.topic\nvar texto1 = '-->' + dispositivo1 + ' está ' + estado1 + ' ! ';\nreturn {'payload': {'text':texto1}};","outputs":1,"noerr":0,"initialize":"","finalize":"","x":270,"y":80,"wires":[["21f01352.cb9a6c"]]},{"id":"21f01352.cb9a6c","type":"change","z":"333b236c.784a0c","name":"Nomes Dispositivos","rules":[{"t":"change","p":"payload.text","pt":"msg","from":"input_boolean.terrario2","fromt":"str","to":"Terrário2 Geral","tot":"str"},{"t":"change","p":"payload.text","pt":"msg","from":"input_boolean.terrario1","fromt":"str","to":"Terrário1 Geral","tot":"str"},{"t":"change","p":"payload.text","pt":"msg","from":"off","fromt":"str","to":"Desligado","tot":"str"},{"t":"change","p":"payload.text","pt":"msg","from":"on","fromt":"str","to":"Ligado","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":450,"y":80,"wires":[["bd1f1b38.584708"]]},{"id":"2a729463.2811bc","type":"comment","z":"333b236c.784a0c","name":"Condicoes IDEAIS","info":"","x":1010,"y":900,"wires":[]},{"id":"b08a043c.07db78","type":"link in","z":"333b236c.784a0c","name":"","links":["cd0b2359.6edc4","31d1123c.217a5e","e7c748ec.f2a628"],"x":685,"y":40,"wires":[["bd1f1b38.584708"]]},{"id":"eecf2553.72b658","type":"api-current-state","z":"333b236c.784a0c","name":"Purificador Off?","server":"cfe1d51.9440928","version":1,"outputs":2,"halt_if":"off","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.sonoff_100103178a","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":860,"y":600,"wires":[["6931fa47.2e8c64"],[]]},{"id":"6931fa47.2e8c64","type":"api-call-service","z":"333b236c.784a0c","name":"Purificador on","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_on","entityId":"switch.sonoff_100103178a","data":"","dataType":"jsonata","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":1040,"y":600,"wires":[["2eb1e209.15bf1e"]]},{"id":"be668273.71d68","type":"api-current-state","z":"333b236c.784a0c","name":"Purificador ON?","server":"cfe1d51.9440928","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.sonoff_100103178a","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":860,"y":660,"wires":[["c70cee20.f0ee3"],[]]},{"id":"c70cee20.f0ee3","type":"api-call-service","z":"333b236c.784a0c","name":"Purificador off","server":"cfe1d51.9440928","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.sonoff_100103178a","data":"","dataType":"jsonata","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":1040,"y":660,"wires":[["2eb1e209.15bf1e"]]},{"id":"f9b9ffea.824d7","type":"delay","z":"333b236c.784a0c","name":"Atraso","pauseType":"delay","timeout":"1","timeoutUnits":"minutes","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":710,"y":680,"wires":[["99458dd5.6d721"]]},{"id":"3f8779bd.afdcb6","type":"delay","z":"333b236c.784a0c","name":"Atraso","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":710,"y":600,"wires":[["eecf2553.72b658"]]},{"id":"c2a78a38.1d4528","type":"api-current-state","z":"333b236c.784a0c","name":"Luz1 Ligada?","server":"cfe1d51.9440928","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.sonoff_1000d9861d","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":960,"y":980,"wires":[[],[]]},{"id":"cfe1d51.9440928","type":"server","name":"Home Assistant","addon":true},{"id":"3ffee45b.b9ea0c","type":"telegrambot-config","botname":"user_bot","usernames":"","chatIds":"","pollInterval":"300"}]

Material:
SonOff Basic R2 - Luz1
SonOff Basic R2 - Exaustor
SonOff Basic R2 - Desumidificador
SonOff Basic R2 - Fan Auxiliar
SonOff Basic R2 - Aquecedor
SonOff TH16 + Sensor Si7021 + OwnSwitch - Purificador

Funções:

  • “Quadro Geral” - Para desactivar todos os dispositivos / Desactivar o Terrário
  • Telegram Bot - Envia notificações sobre a alertas de alteração de estado de cada dispositivo
  • Verifica Humidade entre valores defenidos e o actual e executa respectivas acções
  • Temporizador básico para iluminação, controlado a hora que liga e desliga
  • Consoante a Temperatura e Humidade Activa e desactiva a corculação de ar, aquecimento
  • Condições indicadas - A trabalhar nisto para executar um ciclo de ventilação

Aguardo Sugestões e Criticas para melhorar isto.

Até agora acho que estou a ter algum problema com a detecção de Humidade/Temperatura, parece-me que nem sempre está actualizar os valores correctamente, e verifiquei apos 48horas de teste, que volta e meia deixa de dar ordem ao Exaustor (no HA Dashboard, os Toogles não movem). :S

Próxima fase:

  • Tasmotear os SonOffs, e devo resolver este problemas de “dessincronizaçao” :slight_smile: Tik Tak
  • Aguardar o Censor de qualidade de AR e o respectivo NodeMCU (ainda a caminho)
  • Aplicar um alarme básico de detector de fogo, para desligar tudo e mandar notificação
1 Curtiu

Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade