{"id":19,"date":"2026-10-04T10:49:15","date_gmt":"2026-10-04T10:49:15","guid":{"rendered":"https:\/\/sfelectronica.com\/bit\/?p=19"},"modified":"2026-10-04T20:15:11","modified_gmt":"2026-10-04T20:15:11","slug":"bomba-de-calor-card-home-assistant","status":"publish","type":"post","link":"https:\/\/sfelectronica.com\/bit\/bomba-de-calor-card-home-assistant\/","title":{"rendered":"Bomba de Calor Card: acompanha a tua instala\u00e7\u00e3o num esquema animado do Home Assistant"},"content":{"rendered":"<p class=\"hbc-lede\"><strong>O Bomba de Calor Card<\/strong> \u00e9 um cart\u00e3o personalizado (<em>custom card<\/em>) para o Home Assistant que transforma uma imagem t\u00e9cnica da tua instala\u00e7\u00e3o num dashboard vivo: as tubagens ganham fluxo animado, os ventiladores rodam, os dep\u00f3sitos aquecem e cada sensor ocupa exatamente o espa\u00e7o que lhe compete no esquema. \u00c9 um projeto open source, com interface em portugu\u00eas, que se instala por HACS em poucos minutos e dispensa qualquer plugin adicional.<\/p>\n<div class=\"hbc-specs\">\n<div class=\"hbc-specs__item\"><span class=\"hbc-specs__key\">Projeto<\/span><span class=\"hbc-specs__val\">Bomba de Calor Card<\/span><\/div>\n<div class=\"hbc-specs__item\"><span class=\"hbc-specs__key\">Tipo<\/span><span class=\"hbc-specs__val\">Cart\u00e3o Lovelace<\/span><\/div>\n<div class=\"hbc-specs__item\"><span class=\"hbc-specs__key\">Instala\u00e7\u00e3o<\/span><span class=\"hbc-specs__val\">HACS ou manual<\/span><\/div>\n<div class=\"hbc-specs__item\"><span class=\"hbc-specs__key\">Ficheiro<\/span><span class=\"hbc-specs__val\">bomba-calor-card.js<\/span><\/div>\n<div class=\"hbc-specs__item\"><span class=\"hbc-specs__key\">Idiomas<\/span><span class=\"hbc-specs__val\">PT \u00b7 EN \u00b7 ES \u00b7 FR \u00b7 DE<\/span><\/div>\n<div class=\"hbc-specs__item\"><span class=\"hbc-specs__key\">Licen\u00e7a<\/span><span class=\"hbc-specs__val\">MIT<\/span><\/div>\n<\/div>\n<div class=\"hbc-toc\">\n<p class=\"hbc-toc__title\">Neste artigo<\/p>\n<ol>\n<li><a href=\"#ler-ou-ver\">Ler valores ou ver a instala\u00e7\u00e3o?<\/a><\/li>\n<li><a href=\"#o-que-faz\">O que o cart\u00e3o faz<\/a><\/li>\n<li><a href=\"#instalacao\">Instala\u00e7\u00e3o por HACS ou manual<\/a><\/li>\n<li><a href=\"#configuracao\">Configura\u00e7\u00e3o essencial<\/a><\/li>\n<li><a href=\"#funcionalidades\">Funcionalidades em detalhe<\/a><\/li>\n<li><a href=\"#casos-de-uso\">Casos de uso reais<\/a><\/li>\n<li><a href=\"#desempenho\">Desempenho e boas pr\u00e1ticas<\/a><\/li>\n<li><a href=\"#conclusao\">Conclus\u00e3o e recursos<\/a><\/li>\n<\/ol>\n<\/div>\n<h2 id=\"o-que-faz\">O que o cart\u00e3o faz<\/h2>\n<p>O Bomba de Calor Card n\u00e3o \u00e9 um gr\u00e1fico est\u00e1tico com sensores por cima. \u00c9 um editor de esquemas completo que corre dentro do Lovelace: defines os pontos de interesse diretamente sobre a imagem, desenhas as tubagens \u00e0 m\u00e3o e associas cada elemento a uma entidade.<\/p>\n<ul class=\"hbc-stats\">\n<li><strong>4<\/strong><span>Tipos de componentes animados<\/span><\/li>\n<li><strong>5<\/strong><span>Estilos de fluxo<\/span><\/li>\n<li><strong>5<\/strong><span>Estilos de tanque<\/span><\/li>\n<li><strong>5<\/strong><span>Idiomas na interface<\/span><\/li>\n<\/ul>\n<div class=\"hbc-features\">\n<div class=\"hbc-feature\">\n\t\t<span class=\"hbc-feature__num\">01<\/span><\/p>\n<h3 class=\"hbc-feature__title\">Editor visual integrado<\/h3>\n<p>Configura\u00e7\u00e3o <em>point-and-click<\/em>: clicas na pr\u00e9-visualiza\u00e7\u00e3o para posicionar sensores, bombas e ventiladores, e desenhas os tubos com curvas de B\u00e9zier ajust\u00e1veis.<\/p>\n<p>Inclui grelha de alinhamento, reordena\u00e7\u00e3o por arrastar e exporta\u00e7\u00e3o\/importa\u00e7\u00e3o da configura\u00e7\u00e3o completa em JSON.<\/p>\n<\/p><\/div>\n<div class=\"hbc-feature\">\n\t\t<span class=\"hbc-feature__num\">02<\/span><\/p>\n<h3 class=\"hbc-feature__title\">Gest\u00e3o de entidades<\/h3>\n<p>Nome, \u00edcone, cor de texto, cor de \u00edcone e cor de fundo por sensor. Unidade personalizada, multiplicador, casas decimais e op\u00e7\u00e3o de esconder o valor.<\/p>\n<p>Com suporte a a\u00e7\u00f5es de clique, visibilidade condicional, alertas intermitentes e cores din\u00e2micas por limiar.<\/p>\n<\/p><\/div>\n<div class=\"hbc-feature\">\n\t\t<span class=\"hbc-feature__num\">03<\/span><\/p>\n<h3 class=\"hbc-feature__title\">Switches e bot\u00f5es<\/h3>\n<p>Um interruptor principal para o atuador da instala\u00e7\u00e3o (bomba de recircula\u00e7\u00e3o, por exemplo) e tantos switches adicionais quantos precisares.<\/p>\n<p>Quatro estilos de bot\u00e3o \u2014 padr\u00e3o, quadrado, redondo e transparente \u2014 com cores e textos pr\u00f3prios para cada estado.<\/p>\n<\/p><\/div>\n<div class=\"hbc-feature\">\n\t\t<span class=\"hbc-feature__num\">04<\/span><\/p>\n<h3 class=\"hbc-feature__title\">Fluxos animados<\/h3>\n<p>Cinco estilos de linha (tracejado, pontos, brilho, pulsa\u00e7\u00e3o e cometa), com gradiente entre duas cores para reproduzir aquecimento ou arrefecimento ao longo do tubo.<\/p>\n<p>As anima\u00e7\u00f5es podem depender de um estado (<code>on<\/code>) ou de um limiar num\u00e9rico, como pot\u00eancia superior a 20&nbsp;W.<\/p>\n<\/p><\/div>\n<div class=\"hbc-feature\">\n\t\t<span class=\"hbc-feature__num\">05<\/span><\/p>\n<h3 class=\"hbc-feature__title\">Componentes din\u00e2micos<\/h3>\n<p>Ventiladores com simula\u00e7\u00e3o em perspetiva, bombas circuladoras com rotor animado e suporte a imagens personalizadas, e tanques de \u00e1gua com efeitos distintos.<\/p>\n<p>Velocidade, rota\u00e7\u00e3o, inclina\u00e7\u00e3o, opacidade e dimens\u00f5es configur\u00e1veis elemento a elemento.<\/p>\n<\/p><\/div>\n<div class=\"hbc-feature\">\n\t\t<span class=\"hbc-feature__num\">06<\/span><\/p>\n<h3 class=\"hbc-feature__title\">Efeito de chama<\/h3>\n<p>Nos tanques, o estilo <em>fire<\/em> usa um GIF animado com transpar\u00eancia que muda de cor conforme a temperatura e pode crescer ou diminuir de forma proporcional ao valor lido.<\/p>\n<p>Ideal para c\u00e2maras de combust\u00e3o, caldeiras de pellets e acumuladores.<\/p>\n<\/p><\/div>\n<\/div>\n<h2 id=\"ler-ou-ver\">Ler valores ou ver a instala\u00e7\u00e3o?<\/h2>\n<p>Quem tem uma bomba de calor em casa conhece bem o problema: o dashboard enche-se de dezenas de entidades \u2014 temperaturas de ida e retorno, temperatura exterior, press\u00e3o, caudal, consumo el\u00e9trico, estado da bomba de circula\u00e7\u00e3o \u2014 mas nenhuma delas explica o que est\u00e1 a acontecer no sistema. \u00c9 preciso juntar mentalmente meia d\u00fazia de valores para perceber se o dep\u00f3sito de AQS j\u00e1 est\u00e1 quente ou se o permutador est\u00e1 apenas a aquecer o piso.<\/p>\n<p>O Bomba de Calor Card resolve isso colocando <strong>cada valor no seu contexto f\u00edsico<\/strong>. Em vez de uma lista de sensores, tens o desenho da tua instala\u00e7\u00e3o com os valores sobrepostos, ligados por tubagens animadas que mostram exatamente por onde circula a \u00e1gua e quando.<\/p>\n<div class=\"hbc-gallery\">\n<figure><img src=\"https:\/\/sfelectronica.com\/bit\/wp-content\/uploads\/2026\/10\/bomba-calor-card-preview.gif\" alt=\"Anima\u00e7\u00e3o do cart\u00e3o num dashboard do Home Assistant: esquema de bomba de calor com tubagens animadas, ventiladores e leituras de temperatura.\" width=\"395\" height=\"689\" loading=\"lazy\" decoding=\"async\" \/><figcaption>Cart\u00e3o em funcionamento num dashboard real, com fluxos animados, ventiladores e sensores sobre a imagem de fundo.<\/figcaption><\/figure>\n<figure><img src=\"https:\/\/sfelectronica.com\/bit\/wp-content\/uploads\/2026\/10\/bomba-calor-card-preview-pellets.gif\" alt=\"Anima\u00e7\u00e3o de um esquema de caldeira de pellets no cart\u00e3o, com efeito de chama na c\u00e2mara de combust\u00e3o e fluxos de \u00e1gua quente.\" width=\"395\" height=\"689\" loading=\"lazy\" decoding=\"async\" \/><figcaption>O mesmo cart\u00e3o aplicado a uma caldeira de pellets, com o efeito de chama na c\u00e2mara de combust\u00e3o.<\/figcaption><\/figure>\n<\/div>\n<p>O cart\u00e3o n\u00e3o substitui as entidades nem as automatiza\u00e7\u00f5es: \u00e9 uma camada de visualiza\u00e7\u00e3o. Toda a l\u00f3gica continua nos sensores do Home Assistant \u2014 o cart\u00e3o limita-se a reagir ao estado deles. Isso significa que funciona com qualquer integra\u00e7\u00e3o capaz de expor temperaturas, pot\u00eancias e bin\u00e1rios, seja uma bomba de calor comercial, uma caldeira de pellets ou um sistema solar t\u00e9rmico.<\/p>\n<h2 id=\"instalacao\">Instala\u00e7\u00e3o por HACS ou manual<\/h2>\n<p>O cart\u00e3o \u00e9 distribu\u00eddo como <em>frontend plugin<\/em>. A via recomendada \u00e9 o <strong>HACS<\/strong>, porque passa a receber atualiza\u00e7\u00f5es automaticamente; a instala\u00e7\u00e3o manual serve para instala\u00e7\u00f5es sem HACS ou para testar vers\u00f5es do ficheiro <code>bomba-calor-card.js<\/code>.<\/p>\n<h3>Via HACS (recomendado)<\/h3>\n<ol class=\"hbc-steps\">\n<li><strong>Confirma que tens o HACS instalado.<\/strong> Se ainda n\u00e3o tens, instala-o primeiro atrav\u00e9s da documenta\u00e7\u00e3o oficial (hacs.xyz).<\/li>\n<li><strong>Abre o HACS e entra em <em>Frontend<\/em>.<\/strong> O cart\u00e3o n\u00e3o vive na loja de integra\u00e7\u00f5es, mas sim no separador de frontend.<\/li>\n<li><strong>Abre o menu de tr\u00eas pontos no canto superior direito<\/strong> e escolhe <em>Custom repositories<\/em> (reposit\u00f3rios personalizados).<\/li>\n<li><strong>Adiciona o URL do reposit\u00f3rio<\/strong> <code>https:\/\/github.com\/sfelectronica\/bomba-calor-card<\/code> e define a categoria como <strong>Lovelace<\/strong>.<\/li>\n<li><strong>Confirma em <em>Add<\/em> e instala o cart\u00e3o<\/strong> a partir da lista. O HACS coloca os ficheiros no s\u00edtio certo por ti.<\/li>\n<li><strong>Recarrega o dashboard<\/strong> (Ctrl+F5) e o cart\u00e3o passa a aparecer no seletor \u00abAdicionar cart\u00e3o\u00bb.<\/li>\n<\/ol>\n<div class=\"hbc-callout hbc-callout--tip\">\n\t<span class=\"hbc-callout__icon\">OK<\/span><\/p>\n<p>Existe um bot\u00e3o <strong>Open in HACS<\/strong> no README do projeto. Se abrires esse link a partir do Home Assistant, os passos 2 a 5 s\u00e3o feitos automaticamente pelo redirecionador <code>my.home-assistant.io<\/code>.<\/p>\n<\/div>\n<h3>Instala\u00e7\u00e3o manual<\/h3>\n<ol class=\"hbc-steps\">\n<li><strong>Descarrega o ficheiro <code>bomba-calor-card.js<\/code><\/strong> a partir da p\u00e1gina de releases ou do pr\u00f3prio reposit\u00f3rio.<\/li>\n<li><strong>Coloca-o em <code>\/config\/www\/community\/bomba-calor-card\/<\/code><\/strong>, criando as pastas que ainda n\u00e3o existam (\u00e9 acess\u00edvel por SSH, SAMBA ou pelo add-on de ficheiros).<\/li>\n<li><strong>Regista o recurso<\/strong> no Lovelace: pela interface, em <em>Defini\u00e7\u00f5es \u2192 Dashboards \u2192 \u22ee \u2192 Recursos<\/em>, ou em modo YAML conforme o exemplo abaixo.<\/li>\n<\/ol>\n<pre><code>lovelace:\r\n  resources:\r\n    - url: \/local\/community\/bomba-calor-card\/bomba-calor-card.js\r\n      type: module<\/code><\/pre>\n<div class=\"hbc-callout hbc-callout--warn\">\n\t<span class=\"hbc-callout__icon\">!<\/span><\/p>\n<p>A pasta <code>\/config\/www\/<\/code> corresponde ao URL <code>\/local\/<\/code>. Se o caminho do recurso n\u00e3o bater certo com o s\u00edtio onde o ficheiro est\u00e1, o cart\u00e3o aparece como \u00abCustom element doesn&#8217;t exist: bomba-calor-card\u00bb.<\/p>\n<\/div>\n<h3>Imagem de fundo<\/h3>\n<p>Por omiss\u00e3o, o cart\u00e3o procura a imagem em <code>\/local\/cardbomba.jpg<\/code>. Podes fazer upload da tua pr\u00f3pria fotografia t\u00e9cnica para a pasta <code>www<\/code> e indicar o caminho no editor visual, ou usar as imagens de exemplo que acompanham o projeto.<\/p>\n<div class=\"hbc-gallery\">\n<figure><img src=\"https:\/\/sfelectronica.com\/bit\/wp-content\/uploads\/2026\/10\/bomba-gold-topologia.png\" alt=\"Ilustra\u00e7\u00e3o t\u00e9cnica de um dep\u00f3sito de AQS com bomba de circula\u00e7\u00e3o, serpentina de permuta e m\u00f3dulo eletr\u00f3nico de controlo.\" width=\"767\" height=\"1204\" loading=\"lazy\" decoding=\"async\" \/><figcaption>BombaGold.png: dep\u00f3sito de AQS, bomba de circula\u00e7\u00e3o e m\u00f3dulo de controlo j\u00e1 desenhados.<\/figcaption><\/figure>\n<figure><img src=\"https:\/\/sfelectronica.com\/bit\/wp-content\/uploads\/2026\/10\/pump-gold.png\" alt=\"Ilustra\u00e7\u00e3o de uma bomba circuladora com ventoinha, usada como componente animado no cart\u00e3o.\" width=\"110\" height=\"109\" loading=\"lazy\" decoding=\"async\" \/><figcaption>pumpgold.png: imagem de bomba circuladora pronta a animar com o estado de um interruptor.<\/figcaption><\/figure>\n<\/div>\n<h2 id=\"configuracao\">Configura\u00e7\u00e3o essencial<\/h2>\n<p>H\u00e1 dois caminhos para configurar o cart\u00e3o. O normal \u00e9 usar o <strong>editor visual<\/strong>: adicionas o cart\u00e3o ao dashboard, abres o editor e posicionas os elementos com o rato. O segundo caminho \u00e9 escrever a configura\u00e7\u00e3o em YAML, \u00fatil para manter tudo em ficheiros versionados ou para replicar o mesmo esquema em v\u00e1rios dashboards.<\/p>\n<p>Em qualquer dos casos, a estrutura \u00e9 a mesma: uma imagem de fundo, as coordenadas em percentagem relativas \u00e0 <em>view box<\/em> e listas indexadas de elementos.<\/p>\n<pre><code>type: custom:bomba-calor-card\r\nimage: \/local\/cardbomba.jpg\r\nlanguage: auto            # auto | pt | en | es | fr | de\r\nview_box: \"0 0 100 180\"   # sistema de coordenadas sobre a imagem\r\nbadge_opacity: 0.4\r\nlow_performance: false\r\n\r\n# --- Sensores (as listas s\u00e3o paralelas: \u00edndice 0 de cada lista = mesmo sensor) ---\r\nentities:\r\n  - sensor.aqs_temperatura\r\n  - sensor.retorno_temperatura\r\n  - sensor.exterior_temperatura\r\nnames:\r\n  - AQS\r\n  - Retorno\r\n  - Exterior\r\nicons:\r\n  - mdi:water-thermometer\r\n  - mdi:thermometer\r\n  - mdi:weather-snowy\r\npositions:\r\n  - { left: 55, top: 28 }\r\n  - { left: 32, top: 60 }\r\n  - { left: 8,  top: 12 }\r\ndecimals: [1, 1, 1]\r\n\r\n# --- Tubagens animadas ---\r\nanimations:\r\n  - entity: binary_sensor.bomba_circuladora\r\n    path: M 32,60 L 55,60 L 55,28\r\n    color: \"#2681DC\"\r\n    color_end: \"#ff3b30\"\r\n    style: dashes          # dashes | dots | shimmer | pulse | comet\r\n    dash: \"10 5\"\r\n    width: 2\r\n    speed: 1.5\r\n    threshold: 20          # s\u00f3 anima acima de 20 W\r\n\r\n# --- Ventiladores e bombas ---\r\nfans:\r\n  - entity: switch.ventilador_evaporador\r\n    x: 78\r\n    y: 22\r\n    size: 14\r\n    tilt: 0.6\r\n    skew: 0.2\r\n    reverse: false\r\n\r\npumps:\r\n  - entity: switch.bomba_recirculacao\r\n    x: 32\r\n    y: 60\r\n    size: 12\r\n    color: \"#ff7a18\"\r\n\r\n# --- Tanque com efeito de chama proporcional \u00e0 temperatura ---\r\nwater_tanks:\r\n  - x: 55\r\n    y: 28\r\n    width: 16\r\n    height: 30\r\n    opacity: 0.5\r\n    style: fire            # bubbles | waves | ripple | fire | jet\r\n    temp_entity: sensor.aqs_temperatura\r\n    min_temp: 30\r\n    max_temp: 75\r\n    min_color: \"#2681DC\"\r\n    max_color: \"#ff3b30\"\r\n    interactive_flame: true\r\n    fire_image: \/local\/community\/bomba-calor-card\/fire.gif\r\n\r\n# --- Interruptor principal e interruptores extra ---\r\nswitch: switch.degelo\r\nswitch_position: { left: 10, top: 50 }\r\nswitch_style: default      # default | square | round | transparent\r\nswitch_text_on: Degelo\r\nswitch_text_off: Normal\r\nswitches:\r\n  - entity: switch.bomba_secundaria\r\n    name: Secund\u00e1rio\r\n    left: 10\r\n    top: 70<\/code><\/pre>\n<div class=\"hbc-callout\">\n\t<span class=\"hbc-callout__icon\">i<\/span><\/p>\n<p><strong>Listas paralelas:<\/strong> em <code>entities<\/code>, <code>names<\/code>, <code>icons<\/code>, <code>positions<\/code>, <code>colors<\/code>, <code>units<\/code> ou <code>decimals<\/code>, cada lista descreve os mesmos sensores pela mesma ordem. O elemento <code>0<\/code> de todas as listas pertence ao primeiro sensor, e assim sucessivamente. Se acrescentares um sensor no fim, basta acrescentar uma entrada no fim de cada lista.<\/p>\n<\/div>\n<h2 id=\"funcionalidades\">Funcionalidades em detalhe<\/h2>\n<h3>Entidades: formata\u00e7\u00e3o e comportamento<\/h3>\n<p>Cada sensor tem uma ficha pr\u00f3pria. Al\u00e9m do nome e do \u00edcone, podes substituir a unidade de medida original (por exemplo, mostrar <code>Watts<\/code> em vez de <code>W<\/code>, ou remover a unidade), aplicar um multiplicador para fazer convers\u00f5es como W &rarr; kW, definir o n\u00famero de casas decimais e esconder o valor para mostrar apenas o \u00edcone.<\/p>\n<p>H\u00e1 ainda tr\u00eas comportamentos que fazem a diferen\u00e7a no dia a dia:<\/p>\n<ul>\n<li><strong>Visibilidade condicional<\/strong> \u2014 esconder uma entidade com base no estado de outra. A temperatura dos pain\u00e9is solares s\u00f3 aparece, por exemplo, quando a bomba solar est\u00e1 ligada.<\/li>\n<li><strong>Alerta por limiar<\/strong> \u2014 o badge da entidade come\u00e7a a piscar quando o valor ultrapassa o limite definido, o que torna imediatos os avisos de sobreaquecimento ou de press\u00e3o baixa.<\/li>\n<li><strong>Cores din\u00e2micas<\/strong> \u2014 o \u00edcone muda de cor conforme o valor: azul abaixo dos 10&nbsp;\u00b0C, vermelho acima dos 60&nbsp;\u00b0C, por exemplo, com limiares e cores configur\u00e1veis.<\/li>\n<\/ul>\n<p>Cada entidade aceita tamb\u00e9m <em>tap actions<\/em>: abrir a janela de mais informa\u00e7\u00f5es, alternar o estado (<code>toggle<\/code>), navegar para outro dashboard ou chamar diretamente um servi\u00e7o. Na pr\u00e1tica, o esquema passa a ser tamb\u00e9m uma interface de controlo.<\/p>\n<h3>Anima\u00e7\u00f5es de fluxo nas tubagens<\/h3>\n<p>As tubagens s\u00e3o desenhadas com curvas de B\u00e9zier e animadas por <em>stroke-dash<\/em>, o que resulta em anima\u00e7\u00f5es suaves mesmo em dispositivos modestos. Existem cinco estilos:<\/p>\n<table>\n<thead>\n<tr>\n<th>Estilo<\/th>\n<th>Efeito<\/th>\n<th>Onde brilha<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>dashes<\/code><\/td>\n<td>Tra\u00e7os em movimento, tipo corrente<\/td>\n<td>Circuitos hidr\u00e1ulicos de \u00e1gua quente<\/td>\n<\/tr>\n<tr>\n<td><code>dots<\/code><\/td>\n<td>Pontos espa\u00e7ados<\/td>\n<td>Fluxos de baixo caudal ou gotejar<\/td>\n<\/tr>\n<tr>\n<td><code>shimmer<\/code><\/td>\n<td>Brilho que percorre a linha<\/td>\n<td>Real\u00e7ar o sentido do retorno<\/td>\n<\/tr>\n<tr>\n<td><code>pulse<\/code><\/td>\n<td>Pulsa\u00e7\u00e3o cont\u00ednua<\/td>\n<td>Indicar troca de calor ativa<\/td>\n<\/tr>\n<tr>\n<td><code>comet<\/code><\/td>\n<td>Rasto luminoso com cauda<\/td>\n<td>Cr\u00e9dito visual m\u00e1ximo no dashboard<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Com <code>color<\/code> e <code>color_end<\/code> defines um gradiente ao longo do tubo, o que permite mostrar a \u00e1gua a arrefecer entre a ida e o retorno. A anima\u00e7\u00e3o pode depender de um estado simples (<code>state_on<\/code>, tipicamente <code>on<\/code>) ou de um <strong>limiar num\u00e9rico<\/strong> passado em <code>threshold<\/code> \u2014 por exemplo, animar apenas quando a bomba consome mais de 20&nbsp;W.<\/p>\n<h3>Ventiladores, bombas e tanques<\/h3>\n<p>Os <strong>ventiladores<\/strong> t\u00eam simula\u00e7\u00e3o tridimensional atrav\u00e9s dos par\u00e2metros de inclina\u00e7\u00e3o (<code>tilt<\/code>) e perspetiva (<code>skew<\/code>), rota\u00e7\u00e3o com velocidade ajust\u00e1vel e possibilidade de inverter o sentido. As <strong>bombas circuladoras<\/strong> mostram um rotor animado e aceitam imagens personalizadas \u2014 podes carregar o desenho da tua pr\u00f3pria bomba, que roda conforme o estado do interruptor associado.<\/p>\n<p>Os <strong>tanques de \u00e1gua<\/strong> s\u00e3o o elemento mais expressivo. Existem cinco estilos visuais:<\/p>\n<ul>\n<li><strong>Bubbles<\/strong> \u2014 bolhas em movimento dentro do tanque.<\/li>\n<li><strong>Waves<\/strong> \u2014 ondula\u00e7\u00e3o na superf\u00edcie do l\u00edquido.<\/li>\n<li><strong>Ripple<\/strong> \u2014 ondas conc\u00eantricas que se propagam.<\/li>\n<li><strong>Fire<\/strong> \u2014 chama a partir de um GIF com transpar\u00eancia, com colora\u00e7\u00e3o din\u00e2mica entre <code>min_color<\/code> e <code>max_color<\/code> e a largura da chama a crescer com a temperatura quando <code>interactive_flame<\/code> est\u00e1 ativo.<\/li>\n<li><strong>Jet<\/strong> \u2014 jato de part\u00edculas, para silos, dep\u00f3sitos de pellets ou fluxo de ar, com modo inverso para simular aspira\u00e7\u00e3o.<\/li>\n<\/ul>\n<p>Cada elemento aceita rota\u00e7\u00e3o, opacidade, dimens\u00f5es e cores pr\u00f3prias, o que permite alinhar o esquema com fotografias reais da instala\u00e7\u00e3o.<\/p>\n<h3>Editor visual e seguran\u00e7a da configura\u00e7\u00e3o<\/h3>\n<p>O editor permite clicar diretamente na imagem para posicionar elementos, arrastar entidades para reordenar a lista, desenhar caminhos curvos ponto a ponto e ajustar a tens\u00e3o das curvas, tudo com uma grelha auxiliar de alinhamento.<\/p>\n<p>A configura\u00e7\u00e3o completa pode ser exportada e importada em JSON, funcionando como c\u00f3pia de seguran\u00e7a: se alterares o cart\u00e3o e n\u00e3o gostares do resultado, voltas atr\u00e1s num clique. A interface do editor est\u00e1 traduzida em portugu\u00eas, ingl\u00eas, espanhol, franc\u00eas e alem\u00e3o.<\/p>\n<h2 id=\"casos-de-uso\">Casos de uso reais<\/h2>\n<p>Como o cart\u00e3o trabalha sobre uma imagem que escolhes, adapta-se a praticamente qualquer instala\u00e7\u00e3o t\u00e9rmica. Estes s\u00e3o os cen\u00e1rios onde o retorno \u00e9 maior:<\/p>\n<ul>\n<li><strong>Bomba de calor com AQS e piso radiante<\/strong> \u2014 o caso cl\u00e1ssico. O dep\u00f3sito de \u00e1guas quentes sanit\u00e1rias fica identificado com um tanque, a ida e o retorno dos circuitos com tubagens em gradiente de cor, e a bomba de circula\u00e7\u00e3o com um componente animado que roda quando consome energia.<\/li>\n<li><strong>Caldeira de pellets ou biomassa<\/strong> \u2014 c\u00e2mara de combust\u00e3o com estilo <em>fire<\/em>, silo com efeito <em>jet<\/em> e sensores de temperatura dos fumos no esquema. O exemplo de pr\u00e9-visualiza\u00e7\u00e3o do reposit\u00f3rio mostra exatamente este cen\u00e1rio.<\/li>\n<li><strong>Solar t\u00e9rmico com apoio<\/strong> \u2014 a visibilidade condicional evita polui\u00e7\u00e3o visual: as temperaturas dos pain\u00e9is e do permutador s\u00f3 aparecem quando a bomba solar est\u00e1 em funcionamento.<\/li>\n<li><strong>Monitoriza\u00e7\u00e3o de consumos<\/strong> \u2014 com o multiplicador e as casas decimais, mostras pot\u00eancia em kW diretamente sobre o desenho, e o alerta intermitente avisa quando a resist\u00eancia el\u00e9trica de apoio entra em servi\u00e7o.<\/li>\n<\/ul>\n<figure class=\"hbc-screen\">\n\t<img src=\"https:\/\/sfelectronica.com\/bit\/wp-content\/uploads\/2026\/10\/fogo-animado.gif\" alt=\"Anima\u00e7\u00e3o de chama com fundo transparente, usada no efeito de fogo dos tanques do cart\u00e3o.\" width=\"281\" height=\"500\" loading=\"lazy\" decoding=\"async\" \/><figcaption>Efeito de chama com transpar\u00eancia, colora\u00e7\u00e3o din\u00e2mica por temperatura e redimensionamento proporcional<\/figcaption><\/figure>\n<p>O \u00fanico requisito \u00e9 a imagem de fundo. Uma fotografia frontal de qualidade m\u00e9dia, um recorte t\u00e9cnico do manual ou mesmo um desenho vetorial simples servem; o que importa \u00e9 que os componentes fiquem nas posi\u00e7\u00f5es corretas para que os fluxos fa\u00e7am sentido.<\/p>\n<h2 id=\"desempenho\">Desempenho e boas pr\u00e1ticas<\/h2>\n<p>Um esquema animado corre sempre em cima do dashboard, por isso vale a pena ter em conta quatro pontos:<\/p>\n<ol>\n<li><strong>Otimiza a imagem de fundo.<\/strong> \u00c9 o fator com mais peso. Uma imagem entre 1000 e 1400&nbsp;px de largura, em JPG ou WebP e abaixo de 400&nbsp;KB, \u00e9 mais do que suficiente para ecr\u00e3s comuns.<\/li>\n<li><strong>Usa o modo de baixo desempenho quando necess\u00e1rio.<\/strong> A op\u00e7\u00e3o <code>low_performance<\/code> desativa os efeitos mais pesados (desfoques) e mant\u00e9m as anima\u00e7\u00f5es flu\u00eddas em Raspberry Pi e tablets antigos.<\/li>\n<li><strong>Prefere limiares a estados vazios.<\/strong> Em vez de animar sempre, usa <code>threshold<\/code> para que os fluxos s\u00f3 apare\u00e7am quando existe consumo real \u2014 o dashboard fica mais informativo e menos ruidoso.<\/li>\n<li><strong>Guarda a configura\u00e7\u00e3o em JSON.<\/strong> Antes de altera\u00e7\u00f5es grandes, exporta a configura\u00e7\u00e3o: qualquer experi\u00eancia fica revers\u00edvel em segundos.<\/li>\n<\/ol>\n<div class=\"hbc-callout hbc-callout--tip\">\n\t<span class=\"hbc-callout__icon\">OK<\/span><\/p>\n<p>Se o cart\u00e3o aparecer sem as anima\u00e7\u00f5es, o problema quase nunca \u00e9 a configura\u00e7\u00e3o: verifica se o recurso est\u00e1 registado como <code>JavaScript module<\/code> e se o <em>cache<\/em> do navegador n\u00e3o est\u00e1 a servir a vers\u00e3o antiga do ficheiro.<\/p>\n<\/div>\n<h2 id=\"conclusao\">Conclus\u00e3o<\/h2>\n<p>O Bomba de Calor Card preenche uma lacuna concreta do Home Assistant: transformar dados t\u00e9rmicos dispersos numa representa\u00e7\u00e3o visual que se percebe num relance. N\u00e3o substitui o trabalho de integra\u00e7\u00e3o nem a configura\u00e7\u00e3o das entidades \u2014 \u00e9, isso sim, a camada que faltava por cima delas.<\/p>\n<p>O projeto est\u00e1 publicado sob licen\u00e7a MIT, com documenta\u00e7\u00e3o em portugu\u00eas e ingl\u00eas, e distribui-se como plugin de frontend na categoria <strong>Lovelace<\/strong> do HACS. Podes us\u00e1-lo, modific\u00e1-lo e distribu\u00ed-lo livremente, sem garantias por parte do autor.<\/p>\n<div class=\"hbc-cta\">\n<h3>Reposit\u00f3rio e documenta\u00e7\u00e3o<\/h3>\n<p>Instru\u00e7\u00f5es completas, imagens de exemplo e o ficheiro <code>bomba-calor-card.js<\/code> est\u00e3o no GitHub. Os ficheiros de imagem usados neste artigo (BombaGold.png e pumpgold.png) podem ser reutilizados como base.<\/p>\n<div class=\"hbc-cta__actions\">\n\t\t<a class=\"holo-btn\" href=\"https:\/\/github.com\/sfelectronica\/bomba-calor-card\" target=\"_blank\" rel=\"noopener\">Ver no GitHub<\/a><br \/>\n\t\t<a class=\"holo-btn\" href=\"https:\/\/my.home-assistant.io\/redirect\/hacs_repository\/?owner=sfelectronica&amp;repository=bomba-calor-card&amp;category=plugin\" target=\"_blank\" rel=\"noopener\">Abrir no HACS<\/a>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Guia completo do Bomba de Calor Card: um cart\u00e3o Lovelace para Home Assistant com esquemas hidr\u00e1ulicos animados, ventiladores, tanques e efeito de chama. Instala\u00e7\u00e3o por HACS, configura\u00e7\u00e3o em YAML e boas pr\u00e1ticas de desempenho.<\/p>\n","protected":false},"author":1,"featured_media":13,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[8,9,6,10,7,11],"class_list":["post-19","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-home-assistant","tag-bomba-de-calor","tag-cartao-personalizado","tag-hacs","tag-interface","tag-lovelace","tag-yaml"],"_links":{"self":[{"href":"https:\/\/sfelectronica.com\/bit\/wp-json\/wp\/v2\/posts\/19","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sfelectronica.com\/bit\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sfelectronica.com\/bit\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sfelectronica.com\/bit\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sfelectronica.com\/bit\/wp-json\/wp\/v2\/comments?post=19"}],"version-history":[{"count":1,"href":"https:\/\/sfelectronica.com\/bit\/wp-json\/wp\/v2\/posts\/19\/revisions"}],"predecessor-version":[{"id":29,"href":"https:\/\/sfelectronica.com\/bit\/wp-json\/wp\/v2\/posts\/19\/revisions\/29"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sfelectronica.com\/bit\/wp-json\/wp\/v2\/media\/13"}],"wp:attachment":[{"href":"https:\/\/sfelectronica.com\/bit\/wp-json\/wp\/v2\/media?parent=19"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sfelectronica.com\/bit\/wp-json\/wp\/v2\/categories?post=19"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sfelectronica.com\/bit\/wp-json\/wp\/v2\/tags?post=19"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}