{"id":789,"date":"2025-09-21T17:06:17","date_gmt":"2025-09-21T17:06:17","guid":{"rendered":"https:\/\/protolinker.com\/?post_type=docs&#038;p=789"},"modified":"2025-09-23T09:54:43","modified_gmt":"2025-09-23T09:54:43","password":"","slug":"what-is-a-script","status":"publish","type":"docs","link":"https:\/\/protolinker.com\/pt\/documentation\/what-is-a-script\/","title":{"rendered":"O que \u00e9 um script"},"content":{"rendered":"<p class=\"wp-block-paragraph\" style=\"\">Um <strong>script<\/strong> no Protolinker \u00e9 um pequeno trecho de l\u00f3gica personalizada que permite <strong>processar ou transformar dados<\/strong> antes que sejam transmitidos.<\/p>\n\n\n<p class=\"wp-block-paragraph\" style=\"\">Enquanto as <strong>tags<\/strong> armazenam os valores brutos e os <strong>links<\/strong> os movem entre os protocolos, os scripts oferecem a flexibilidade de adaptar esses valores \u00e0s suas necessidades espec\u00edficas.<\/p>\n\n\n<p class=\"wp-block-paragraph\" style=\"\">Em resumo, os scripts permitem adicionar intelig\u00eancia ao tratamento dos dados dentro do Protolinker.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<h2 class=\"wp-block-heading\" id=\"why-scripts-are-useful\"><strong>Porque Scripts s\u00e3o uteis<\/strong><\/h2>\n\n\n<p class=\"wp-block-paragraph\" style=\"\">Nem todos os dispositivos e sistemas utilizam os dados da mesma forma. \u00c0s vezes, \u00e9 necess\u00e1rio:<\/p>\n\n\n<ul class=\"wp-block-list wp-block-list\">\n<li>Converter unidades (ex: Celsius \u2192 Fahrenheit).<\/li>\n\n\n\n<li>Escalonar valores (ex: sensor bruto 253 \u2192 25,3 \u00b0C).<\/li>\n\n\n\n<li>Aplicar limites ou faixas (ex: limitar um valor a 100).<\/li>\n\n\n\n<li>Filtrar ou limpar dados com ru\u00eddo.<\/li>\n\n\n\n<li>Implementar l\u00f3gica simples (ex: converter uma entrada 0\/1 em \u201cOFF\/ON\u201d).<\/li>\n<\/ul>\n\n\n<p class=\"wp-block-paragraph\" style=\"\">Os scripts oferecem a flexibilidade para realizar tudo isso sem precisar modificar os dispositivos ou os pr\u00f3prios protocolos.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<h2 class=\"wp-block-heading\" id=\"how-scripts-work-in-protolinker\"><strong>Como os Scripts funcionam no Protolinker<\/strong><\/h2>\n\n\n<p class=\"wp-block-paragraph\" style=\"\">Atualmente, \u00e9 poss\u00edvel usar qualquer linguagem de script ou bin\u00e1rio como script, desde que seja compat\u00edvel com o sistema operacional host e todas as depend\u00eancias estejam instaladas. Basta selecionar o arquivo do script (pode ser Python, Bash, JavaScript ou at\u00e9 mesmo um bin\u00e1rio), e especificar o comando que o sistema precisa para execut\u00e1-lo, por exemplo, python para arquivos Python ou sh para scripts Bash, entre outros.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"scripts-with-tags\"><strong>Scripts para Tags<\/strong><\/h3>\n\n\n<p class=\"wp-block-paragraph\" style=\"\">Um script pode ser associado a uma <strong>tag<\/strong> para que:<\/p>\n\n\n<ul class=\"wp-block-list wp-block-list\">\n<li>Quando a tag receber um valor do seu protocolo, o script transforme esse valor antes de armazen\u00e1-lo ou aplic\u00e1-lo.<\/li>\n\n\n\n<li>Quando a tag enviar dados, o script ajuste o valor antes do envio, garantindo que todos os links recebam o novo valor processado.<\/li>\n<\/ul>\n\n\n<p class=\"wp-block-paragraph\" style=\"\"><strong>Exemplo:<\/strong><\/p>\n\n\n<p class=\"wp-block-paragraph\" style=\"\">Registrador Modbus bruto 40001 = 253 \u2192 Script divide por 10 \u2192 Valor da tag = 25,3 \u00b0C.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<h3 class=\"wp-block-heading\" id=\"scripts-with-links\"><strong>Scripts para Links<\/strong><\/h3>\n\n\n<p class=\"wp-block-paragraph\" style=\"\">Um script tamb\u00e9m pode ser aplicado a um <strong>link<\/strong> para que:<\/p>\n\n\n<ul class=\"wp-block-list wp-block-list\">\n<li>O valor da tag de origem seja modificado durante a transmiss\u00e3o para a tag de destino.<\/li>\n\n\n\n<li>Isso \u00e9 \u00fatil quando voc\u00ea deseja que a tag permane\u00e7a com o valor bruto, mas ainda assim adapte os dados antes que cheguem a outro protocolo. Dessa forma, os outros links dessa tag continuar\u00e3o recebendo o dado original, e apenas o link especificado ter\u00e1 o valor adaptado.<\/li>\n<\/ul>\n\n\n<p class=\"wp-block-paragraph\" style=\"\"><strong>Exemplo:<\/strong><\/p>\n\n\n<p class=\"wp-block-paragraph\" style=\"\">Tag de origem temperature = 25,3 \u00b0C \u2192 Script do link converte para Fahrenheit \u2192 Tag de destino sensor\/temperature_f = 77,5 \u00b0F.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<h2 class=\"wp-block-heading\" id=\"example-scenarios\"><strong>Cen\u00e1rio de exemplo<\/strong><\/h2>\n\n\n<ul class=\"wp-block-list wp-block-list\">\n<li>\n<strong>Convers\u00e3o de unidade:<\/strong> pressure_kpa (do sensor) \u2192 script converte para pressure_psi.<\/li>\n\n\n\n<li>\n<strong>Mapeamento de status:<\/strong> valor da Tag 0 \u2192 script retorna \u201cSTOP\u201d; valor 1 \u2192 \u201cRUN\u201d.<\/li>\n\n\n\n<li>\n<strong>Filtragem de dados:<\/strong> script suaviza flutua\u00e7\u00f5es r\u00e1pidas antes de enviar para o MQTT.<\/li>\n<\/ul>\n\n\n<p class=\"wp-block-paragraph\" style=\"\"><\/p>","protected":false},"excerpt":{"rendered":"<p>A script in Protolinker is a small piece of custom logic that allows you to process or transform data before it is passed along. While tags hold raw values and links move them between protocols, scripts give you the flexibility to adapt those values to your specific needs. In short, scripts let you add intelligence &hellip;<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"doc_category":[17],"doc_tag":[],"class_list":["post-789","docs","type-docs","status-publish","hentry","doc_category-scripts"],"year_month":"2026-07","word_count":396,"total_views":0,"reactions":{"happy":0,"normal":0,"sad":0},"author_info":{"name":"beraldoigor","author_nicename":"beraldoigor","author_url":"https:\/\/protolinker.com\/pt\/author\/beraldoigor\/"},"doc_category_info":[{"term_name":"Scripts","term_url":"https:\/\/protolinker.com\/pt\/docs-category\/scripts\/"}],"doc_tag_info":[],"_links":{"self":[{"href":"https:\/\/protolinker.com\/pt\/wp-json\/wp\/v2\/docs\/789","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/protolinker.com\/pt\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/protolinker.com\/pt\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/protolinker.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/protolinker.com\/pt\/wp-json\/wp\/v2\/comments?post=789"}],"version-history":[{"count":0,"href":"https:\/\/protolinker.com\/pt\/wp-json\/wp\/v2\/docs\/789\/revisions"}],"wp:attachment":[{"href":"https:\/\/protolinker.com\/pt\/wp-json\/wp\/v2\/media?parent=789"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/protolinker.com\/pt\/wp-json\/wp\/v2\/doc_category?post=789"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/protolinker.com\/pt\/wp-json\/wp\/v2\/doc_tag?post=789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}