CORREIOS - Sistema de rastreio no Home Assistant + adicionar, excluir e notificações telegram (nodered+card homeassistant)

Isso, algo no token ele retornou:

payload: “401: Unauthorized”

Tenta gerar um novo, quando gero o codigo eu gero com o meu token com uma parte apagada e o ip, ai quando copiar o codigo precisa colocar o mesmo token que vc criou ou criar mais um. Nas proximas atualizações eu coloco o codigo no comentario e sem o token dai fica mais fácil

1 curtida

Eu jafiz isso gerei novo token mesmo assim continua. eu olhei log e vi token não e o que estou usando e antigo e como se não tivesse atualizando quando clico pra iniciar la em cima.

2 curtidas

Atualizei o código de novo, mas acho que é algo do token. Exclui, gera outro e clica no botão de novo. Tenta inserir um rastreio diferente e tenta apagar ele para ver se vai

1 curtida

@kelvinrafaeli está lendo minha mente rsrsrs
estava pensando alguns dias atrás em fazer algo semelhante

parabéns mano ficou top!

1 curtida

Valeu meu querido, quiser fazer um video pode usar o código e fazer alterações que quiser, fica até melhor para quem não tem conhecimento

CÓDIGO NODE-RED ATUALIZADO
  • Adicionado filtro para não criar sensores vazios, todos os dias as 2 e pouco da madrugada parece que o site fica fora por alguns minutos, o que estava criando um sensor sem status e estava avisando no telegram. Com esse filtro não vai atualizar o sensor se as informações estiverem vazias
1 curtida

Pequei codigo atualizado, gerei um novo token e agora sim ficou perfeito.
incliu e excluiu e consulta e da status objeto.

so falta incluir a foto do produto kkkkk brincadeira ficou muito bom.
olha que e uma ideia assim patroa ja saberia o que chegou kkkkk

parabéns app top esse.

2 curtidas

Opa, posso pensar sim em uma maneira assim que tiver um tempinho rsrsrsrs

1 curtida

Funciona perfeitamente! Parabens pela iniciativa.

Fiz algumas modificações para a exibição do card no homeassistant com mushroom e pop-up, segue exemplos abaixo.

Tela com os objetos:

Tela para adicionar (pop-up):
image

Tela para excluir (pop-up):
image

Unica coisa que não funcionou legal foram as notificações, por algum motivo a cada “verificação” da “API” está gerando uma nova notificação, vou dar uma olhada com calma nisso e tentar implementar uma nova função para notificar apenas os objetos que tenho prioridade para acompanhar. (nem tudo preciso de notificação).

1 curtida

Funciona para rastrear encomendas enviadas pela Shopee Xpress (serviço de entregas da Shopee Brasil) ?

1 curtida

@guilherme-cespedes Top emmm, compartilha ai o código do card gostei bastante do resultado.

Das notificações para mim só estou recebendo quando realmente um objeto possui o seu status alterado, pode ser que essa atualização não está no código veja se está assim:

Se não estiver assim pode ser que esqueci de atualizar o código aqui no fórum rsrsrs, mas final de semana atualizo pois estou em viajem.

Eu até tinha deixado para avisar somente quando saiu para entrega, porém voltei atrás, alguns rastreio eu estou inserindo e eles ainda não estão disponíveis então quando os correios registram recebo a notificação.

@IceDragon se eles fornecerem código de rastreio dos CORREIOS é possível sim, só inserir. Caso não seja pelos correios não irá funcionar

Esse aqui é o codigo do cartão que utilizo
*Não se esqueça de alterar os inputs e sensores… eu precisei alterar os mesmos para outros nomes para funcionar melhor no meu HA.

type: vertical-stack
cards:
  - type: horizontal-stack
    cards:
      - type: custom:mushroom-template-card
        primary: Novo
        badge_icon: mdi:plus
        secondary: Rastreamento
        icon: mdi:package-variant-closed-plus
        fill_container: true
        layout: horizontal
        icon_color: green
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Adicionar Rastreio
              right_button: Salvar
              right_button_action:
                service: input_button.press
                data:
                  entity_id: input_button.correios_salvar
              content:
                type: entities
                entities:
                  - entity: input_select.correios_notificacao
                    name: Quem vai receber as notificações?
                    icon: mdi:bell-ring
                  - entity: input_text.correios_rastreio
                    name: Qual o Código de Rastreamento?
                    icon: mdi:package-variant-closed
                  - entity: input_text.correios_nome_objeto
                    name: Qual nome do Objeto?
                    icon: mdi:form-textbox
      - type: custom:mushroom-template-card
        primary: Excluir
        secondary: Rastreamento
        icon: mdi:package-variant-closed-remove
        icon_color: red
        badge_icon: mdi:delete
        layout: horizontal
        multiline_secondary: false
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Excluir Rastreio
              right_button: Excluir
              right_button_action:
                service: input_button.press
                data:
                  entity_id: input_button.correios_excluir
              content:
                type: entities
                entities:
                  - entity: input_text.correios_rastreio
                    name: Qual o Código de Rastreamento?
                    icon: mdi:package-variant-closed
  - type: custom:gap-card
    height: 15
  - type: custom:button-card
    layout: icon_name
    name: Objetos Cadastrados
    icon: mdi:package-variant-closed
    styles:
      grid:
        - grid-template-areas: '"n i"'
        - grid-template-columns: 1fr 20%
      icon:
        - align-self: end
        - color: var(--text-primary-color)
        - height: 35px
      card:
        - padding: 4px
        - height: 40px
        - background: var(--primary-color)
      name:
        - color: var(--text-primary-color)
        - justify-self: start
        - padding-left: 10%
        - font-weight: 400
        - font-size: 18px
  - type: custom:auto-entities
    card:
      type: grid
      columns: 1
      square: false
    card_param: cards
    show_empty: false
    filter:
      include:
        - entity_id: sensor.correiosobjeto_*
          options:
            type: custom:mushroom-template-card
            card_mod:
              style: |
                ha-card { 
                  --ha-card-background: none; 
                }
            entity: this.entity_id
            primary: '{{ state_attr(''this.entity_id'', ''friendly_name'') }}'
            secondary: >-
              {% if states['this.entity_id'].state == '[]' %} Objeto Aguardando
              Postagem nos Correios.  {% elif states['this.entity_id'].state ==
              "[{}]" %}Sincronizando com sistema dos correios {% else %}

              {{ state_attr('this.entity_id', 'status')|join() }}

              {{ state_attr('this.entity_id', 'data')|join() }}

              {{ state_attr('this.entity_id', 'local')|join() }}

              {{ state_attr('this.entity_id', 'destino')|join() }}

              {% endif %}
            icon: >-
              {% if states['this.entity_id'].state == "['Objeto entregue ao
              destinatário']" %}mdi:package-variant-closed-check {% elif
              states['this.entity_id'].state == "['Objeto postado']"
              %}mdi:store-plus {% elif states['this.entity_id'].state == "[]"
              %}mdi:package-variant-closed-remove {% elif
              states['this.entity_id'].state == "[{}]" %}mdi:refresh {% elif
              states['this.entity_id'].state == "['Objeto saiu para entrega ao
              destinatário']" %}mdi:human-dolly {% elif
              states['this.entity_id'].state == "['Objeto recebido pelos
              Correios do Brasil']" %}mdi:flag-variant {% elif
              states['this.entity_id'].state == "['Objeto em trânsito - por
              favor aguarde']" %}mdi:truck{% endif %}
            icon_color: >-
              {% if states['this.entity_id'].state == "['Objeto entregue ao
              destinatário']" %}green {% elif states['this.entity_id'].state ==
              "[]" %}red {% elif states['this.entity_id'].state == "[{}]" %}red
              {% elif states['this.entity_id'].state != "['Objeto entregue ao
              destinatário']" %}yellow{% endif %}
            multiline_secondary: true
            badge_icon: >-
              {% if states['this.entity_id'].state == "['Objeto entregue ao
              destinatário']" %}mdi:check-bold {% elif
              states['this.entity_id'].state == "['Objeto postado']" %}mdi:share
              {% elif states['this.entity_id'].state == "[]" %}mdi:alert-box {%
              elif states['this.entity_id'].state == "['Objeto saiu para entrega
              ao destinatário']" %}mdi:share {% elif
              states['this.entity_id'].state == "['Objeto recebido pelos
              Correios do Brasil']" %}mdi:map-marker {% elif
              states['this.entity_id'].state == "['Objeto em trânsito - por
              favor aguarde']" %}mdi:share{% endif %}
            badge_color: >-
              {% if states['this.entity_id'].state == "['Objeto entregue ao
              destinatário']" %}green {% elif states['this.entity_id'].state !=
              "['Objeto entregue ao destinatário']" %}grey{% endif %}
            tap_action:
              action: more-info
    sort:
      method: last_changed
      count: 10
      reverse: true

Quanto ao fluxo está igual siim, foi alguma coisa que alterei que fod*** com as notificações :man_facepalming:

Eu implementei um atributo “notificação” quanto cadastrado um novo objeto. Esse atributo é preenchido com uma campo de select e possui três opções:
1-) Sim (para notificar todas atualização)
2-) Não (para não notificar)
3-) Saiu para entrega (para notificar apenas quando sair para entrega)

Problema é que não sei como capturar esse atributo e repassar ele quando tem atualização no objeto.

Com esse atributo funcional é só filtrar com uma function ou switch antes de enviar a notificação.

1 curtida

@guilherme-cespedes entendi, acho que é bem tranquilo de fazer. Vou utilizar seu card e tendo montar essa opção, porém acho que mais para semana que vem como estou viajando a trabalho, não vou ter tempo.

Além de colocar um atributo em cada sensor dos objetos, utilizei o input select para direcionar as notificações… Então antes de enviar ele faz a leitura do status do input.

Bom que se der algum erro também e começar a gerar notificações basta selecionar no input “Nenhuma” que vai parar as notificações até que seja possível verificar o que está acontecendo.

@guilherme-cespedes fiz as alterações aqui, deu certinho com o debug, vou verificar com o rastreio real mas acho que funciona, teste ai e me avisa qualquer coisa:

[{"id":"9c2c50fdc6329aff","type":"group","z":"e3f8c2a2b98f267c","name":"Incluir rastreio","style":{"label":true},"nodes":["9549acd579d12e6d","5731e180e117e905","1574ea28746987cc","3571a466290dd999","ffe2a88abdc1039f","9cfcdeb8ece55726","aa96ba9a06a7ccb7","d1e012e2f876c02a","cb123282ef6ad690","5d32837d47a24b86","165707cbed3c57ba","7d7f8d54fc47be85","2ecdd1cb1b70d706","e909433d2148b52b"],"x":14,"y":79,"w":1572,"h":202},{"id":"9549acd579d12e6d","type":"function","z":"e3f8c2a2b98f267c","g":"9c2c50fdc6329aff","name":"Headers","func":"msg.url = \"https://www.linkcorreios.com.br/?id=\" + msg.rastreio\nmsg.headers = {\n    \"User-Agent\": \"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/50.0.2661.102 Safari/537.36\",\n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":600,"y":180,"wires":[["5731e180e117e905"]]},{"id":"5731e180e117e905","type":"http request","z":"e3f8c2a2b98f267c","g":"9c2c50fdc6329aff","name":"Site","method":"GET","ret":"txt","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":730,"y":180,"wires":[["1574ea28746987cc"]]},{"id":"1574ea28746987cc","type":"html","z":"e3f8c2a2b98f267c","g":"9c2c50fdc6329aff","name":"Status","property":"payload","outproperty":"status","tag":"#page > main > div.container.margin_30_5 > div > div > div.singlepost > ul:nth-child(3) > li:nth-child(1) > b","ret":"text","as":"single","x":850,"y":180,"wires":[["cb123282ef6ad690"]]},{"id":"3571a466290dd999","type":"api-current-state","z":"e3f8c2a2b98f267c","g":"9c2c50fdc6329aff","name":"Rastreio","server":"db1ab0af.caa65","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_text.correios_rastreio","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"rastreio","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":100,"y":180,"wires":[["9cfcdeb8ece55726","2ecdd1cb1b70d706"]]},{"id":"ffe2a88abdc1039f","type":"server-state-changed","z":"e3f8c2a2b98f267c","g":"9c2c50fdc6329aff","name":"SALVAR","server":"db1ab0af.caa65","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_button.correios_salvar","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","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,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":100,"y":120,"wires":[["3571a466290dd999"]]},{"id":"9cfcdeb8ece55726","type":"api-call-service","z":"e3f8c2a2b98f267c","g":"9c2c50fdc6329aff","name":"Limpar texto","server":"db1ab0af.caa65","version":5,"debugenabled":false,"domain":"input_text","service":"set_value","areaId":[],"deviceId":[],"entityId":["input_text.correios_nome_objeto","input_text.correios_rastreio"],"data":"{\"value\":\"\"}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":110,"y":240,"wires":[["e909433d2148b52b"]]},{"id":"aa96ba9a06a7ccb7","type":"function","z":"e3f8c2a2b98f267c","g":"9c2c50fdc6329aff","name":"Criar sensor","func":"let arrayRastreio = flow.get(\"rastreio\") || [];\narrayRastreio.push(msg.rastreio);\nflow.set(\"rastreio\", arrayRastreio);\n\n\nlet arrayObjeto = flow.get(\"nome_objeto\") || [];\narrayObjeto.push(msg.nome_objeto);\nflow.set(\"nome_objeto\", arrayObjeto);\n\nlet arrayNotificacao = flow.get(\"notificacao\") || [];\narrayNotificacao.push(msg.notificacao);\nflow.set(\"notificacao\", arrayNotificacao);\n\nmsg.entity_id = 'sensor.correios_' + msg.rastreio.toUpperCase()\n\nmsg.payload = {\n    data: {\n        state: msg.status,\n        attributes: {\n            rastreio: msg.rastreio,\n            status: msg.status,\n            notificacao: msg.notificacao,\n            data: msg.data,\n            local: msg.local,\n            destino: msg.destino,\n            friendly_name: msg.nome_objeto.toUpperCase() + ' - ' + msg.rastreio.toUpperCase(),\n        }\n    }\n};\n\nreturn msg\n\nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1370,"y":180,"wires":[["d1e012e2f876c02a"]]},{"id":"d1e012e2f876c02a","type":"ha-api","z":"e3f8c2a2b98f267c","g":"9c2c50fdc6329aff","name":"","server":"db1ab0af.caa65","version":1,"debugenabled":false,"protocol":"http","method":"post","path":"/api/states/{{entity_id}}","data":"","dataType":"json","responseType":"json","outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"results"}],"x":1510,"y":180,"wires":[[]]},{"id":"cb123282ef6ad690","type":"html","z":"e3f8c2a2b98f267c","g":"9c2c50fdc6329aff","name":"Data","property":"payload","outproperty":"data","tag":"#page > main > div.container.margin_30_5 > div > div > div.singlepost > ul:nth-child(3) > li:nth-child(2)","ret":"text","as":"single","x":970,"y":180,"wires":[["5d32837d47a24b86"]]},{"id":"5d32837d47a24b86","type":"html","z":"e3f8c2a2b98f267c","g":"9c2c50fdc6329aff","name":"Local","property":"payload","outproperty":"local","tag":"#page > main > div.container.margin_30_5 > div > div > div.singlepost > ul:nth-child(3) > li:nth-child(3)","ret":"text","as":"single","x":1090,"y":180,"wires":[["7d7f8d54fc47be85"]]},{"id":"165707cbed3c57ba","type":"api-current-state","z":"e3f8c2a2b98f267c","g":"9c2c50fdc6329aff","name":"Nome objeto","server":"db1ab0af.caa65","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_text.correios_nome_objeto","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"nome_objeto","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":450,"y":180,"wires":[["9549acd579d12e6d"]]},{"id":"7d7f8d54fc47be85","type":"html","z":"e3f8c2a2b98f267c","g":"9c2c50fdc6329aff","name":"Destino","property":"payload","outproperty":"destino","tag":"#page > main > div.container.margin_30_5 > div > div > div.singlepost > ul:nth-child(3) > li:nth-child(4)","ret":"text","as":"single","x":1220,"y":180,"wires":[["aa96ba9a06a7ccb7"]]},{"id":"2ecdd1cb1b70d706","type":"api-current-state","z":"e3f8c2a2b98f267c","g":"9c2c50fdc6329aff","name":"Notificação","server":"db1ab0af.caa65","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_select.correios_notificacao","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"notificacao","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":290,"y":180,"wires":[["165707cbed3c57ba"]]},{"id":"e909433d2148b52b","type":"api-call-service","z":"e3f8c2a2b98f267c","g":"9c2c50fdc6329aff","name":"Limpar select","server":"db1ab0af.caa65","version":5,"debugenabled":false,"domain":"input_select","service":"select_option","areaId":[],"deviceId":[],"entityId":["input_select.correios_notificacao"],"data":"{\"option\":\"Sim\"}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":290,"y":240,"wires":[[]]},{"id":"db1ab0af.caa65","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30,"areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true},{"id":"59c36af566d4029d","type":"group","z":"e3f8c2a2b98f267c","name":"Excluir rastreio","style":{"label":true},"nodes":["db5c987b7e696064","4febf3bd26fad49c","4b0ab60bec7f04fc","5d7bac7076c26c14","e5c9df6836b50f1d","8f7030e0d6bbba28","de8e4bb006d84feb","7cc65c764aa14994","efe0bc54cb85f05f","0fe4128c59a913e6"],"x":14,"y":319,"w":932,"h":222},{"id":"db5c987b7e696064","type":"http request","z":"e3f8c2a2b98f267c","g":"59c36af566d4029d","name":"","method":"DELETE","ret":"txt","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":550,"y":360,"wires":[[]]},{"id":"4febf3bd26fad49c","type":"function","z":"e3f8c2a2b98f267c","g":"59c36af566d4029d","name":"Headers","func":"msg.headers = {\n    \"User-Agent\": \"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/50.0.2661.102 Safari/537.36\",\n    \"Authorization\": \"Bearer \"+flow.get(\"token\"),\n}\n\nmsg.url = 'http://'+flow.get(\"ip\")+'/api/states/sensor.correios_' + msg.rastreio\n\n\nvar index = flow.get(\"rastreio\").indexOf(msg.rastreio);\nvar rastreio = flow.get(\"rastreio\");\nvar nome_objeto = flow.get(\"nome_objeto\");\nvar notificacao = flow.get(\"notificacao\")\n\nif (index !== -1) {\n    rastreio.splice(index, 1);\n    flow.set(\"rastreio\", rastreio)\n    nome_objeto.splice(index, 1);\n    flow.set(\"nome_objeto\",nome_objeto)\n    notificacao.splice(index, 1);\n    flow.set(\"notificacao\", notificacao)\n}\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":400,"y":360,"wires":[["db5c987b7e696064"]]},{"id":"4b0ab60bec7f04fc","type":"server-state-changed","z":"e3f8c2a2b98f267c","g":"59c36af566d4029d","name":"EXCLUIR","server":"db1ab0af.caa65","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_button.correios_excluir","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","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,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":100,"y":360,"wires":[["e5c9df6836b50f1d","5d7bac7076c26c14"]]},{"id":"5d7bac7076c26c14","type":"api-current-state","z":"e3f8c2a2b98f267c","g":"59c36af566d4029d","name":"Rastreio","server":"db1ab0af.caa65","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_text.correios_rastreio","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"rastreio","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":260,"y":360,"wires":[["4febf3bd26fad49c"]]},{"id":"e5c9df6836b50f1d","type":"api-call-service","z":"e3f8c2a2b98f267c","g":"59c36af566d4029d","name":"Limpar texto","server":"db1ab0af.caa65","version":5,"debugenabled":false,"domain":"input_text","service":"set_value","areaId":[],"deviceId":[],"entityId":["input_text.correios_nome_objeto","input_text.correios_rastreio"],"data":"{\"value\":\"\"}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":110,"y":420,"wires":[[]]},{"id":"8f7030e0d6bbba28","type":"switch","z":"e3f8c2a2b98f267c","g":"59c36af566d4029d","name":"= Objeto entregue ao destinatário","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"['Objeto entregue ao destinatário']","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":420,"y":500,"wires":[["efe0bc54cb85f05f"]]},{"id":"de8e4bb006d84feb","type":"function","z":"e3f8c2a2b98f267c","g":"59c36af566d4029d","name":"Headers","func":"msg.headers = {\n    \"User-Agent\": \"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/50.0.2661.102 Safari/537.36\",\n    \"Authorization\": \"Bearer \" + flow.get(\"token\"),\n}\n\nmsg.url = 'http://' + flow.get(\"ip\") + '/api/states/sensor.correios_' + msg.data.new_state.attributes.rastreio\n\nvar index = flow.get(\"rastreio\").indexOf(msg.data.new_state.attributes.rastreio);\nvar rastreio = flow.get(\"rastreio\");\nvar nome_objeto = flow.get(\"nome_objeto\");\n\nif (index !== -1) {\n    rastreio.splice(index, 1);\n    flow.set(\"rastreio\", rastreio)\n    nome_objeto.splice(index, 1);\n    flow.set(\"nome_objeto\", nome_objeto)\n    notificacao.splice(index, 1);\n    flow.set(\"notificacao\", notificacao)\n}\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":700,"y":500,"wires":[["7cc65c764aa14994"]]},{"id":"7cc65c764aa14994","type":"http request","z":"e3f8c2a2b98f267c","g":"59c36af566d4029d","name":"","method":"DELETE","ret":"txt","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":850,"y":500,"wires":[[]]},{"id":"efe0bc54cb85f05f","type":"delay","z":"e3f8c2a2b98f267c","g":"59c36af566d4029d","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"minutes","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":595,"y":500,"wires":[["de8e4bb006d84feb"]],"l":false},{"id":"0fe4128c59a913e6","type":"server-state-changed","z":"e3f8c2a2b98f267c","g":"59c36af566d4029d","name":"Excluir automaticamente","server":"db1ab0af.caa65","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"correios_","entityidfiltertype":"regex","outputinitially":false,"state_type":"str","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,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":150,"y":500,"wires":[["8f7030e0d6bbba28"]]},{"id":"070006aaf7517e6b","type":"group","z":"e3f8c2a2b98f267c","name":"DEV","style":{"label":true},"nodes":["fefff27a2a61466d","451572464a90aa8e","2c26becce38fc104","93e2b66f0ba9efd0","edb857bbce6ba34e","b256fa66553e9def","36bf0881461878b6","92a0738061c8c9a4","0f6b8aea8b3bccfd","1f13cde22ac1ebd0","53adf4fb7beb825c","cdf0cc7fedbc0b40","c0ad9eb653f545e8"],"x":14,"y":939,"w":752,"h":262},{"id":"fefff27a2a61466d","type":"inject","z":"e3f8c2a2b98f267c","g":"070006aaf7517e6b","name":"Revemor Rastreio","props":[{"p":"rastreio","v":"","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":150,"y":980,"wires":[["451572464a90aa8e"]]},{"id":"451572464a90aa8e","type":"function","z":"e3f8c2a2b98f267c","g":"070006aaf7517e6b","name":"Remover do array","func":"var index = flow.get(\"rastreio\").indexOf(msg.rastreio);\nvar rastreio = flow.get(\"rastreio\")\n\n\nif (index !== -1) {\n    rastreio.splice(index, 1);\n    flow.set(\"rastreio\",rastreio)\n}\nreturn msg;\n\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":350,"y":980,"wires":[["2c26becce38fc104"]]},{"id":"2c26becce38fc104","type":"debug","z":"e3f8c2a2b98f267c","g":"070006aaf7517e6b","name":"remover array","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":540,"y":980,"wires":[]},{"id":"93e2b66f0ba9efd0","type":"inject","z":"e3f8c2a2b98f267c","g":"070006aaf7517e6b","name":"Listar","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":110,"y":1040,"wires":[["edb857bbce6ba34e"]]},{"id":"edb857bbce6ba34e","type":"template","z":"e3f8c2a2b98f267c","g":"070006aaf7517e6b","name":"Listar array","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{{flow.rastreio}}\n{{flow.nome_objeto}}\n{{flow.notificacao}}","output":"str","x":270,"y":1040,"wires":[["b256fa66553e9def"]]},{"id":"b256fa66553e9def","type":"debug","z":"e3f8c2a2b98f267c","g":"070006aaf7517e6b","name":"listar array","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":450,"y":1040,"wires":[]},{"id":"36bf0881461878b6","type":"inject","z":"e3f8c2a2b98f267c","g":"070006aaf7517e6b","name":"Zerar Array","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":1100,"wires":[["92a0738061c8c9a4"]]},{"id":"92a0738061c8c9a4","type":"function","z":"e3f8c2a2b98f267c","g":"070006aaf7517e6b","name":"Limpar  array","func":"var clear_rastreio = flow.get(\"rastreio\");\nclear_rastreio = [] || [];\nflow.set(\"rastreio\", clear_rastreio);\n\nvar clear_nome_objeto = flow.get(\"nome_objeto\");\nclear_nome_objeto = [] || [];\nflow.set(\"nome_objeto\", clear_nome_objeto);\n\nvar clear_notificacao = flow.get(\"notificacao\");\nclear_notificacao = [] || [];\nflow.set(\"notificacao\", clear_notificacao);\n\nreturn msg;\n\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":270,"y":1100,"wires":[["0f6b8aea8b3bccfd"]]},{"id":"0f6b8aea8b3bccfd","type":"debug","z":"e3f8c2a2b98f267c","g":"070006aaf7517e6b","name":"array limpo","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":450,"y":1100,"wires":[]},{"id":"1f13cde22ac1ebd0","type":"function","z":"e3f8c2a2b98f267c","g":"070006aaf7517e6b","name":"Headers","func":"msg.headers = {\n    \"User-Agent\": \"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/50.0.2661.102 Safari/537.36\",\n    \"Authorization\": \"Bearer \"+flow.get(\"token\"),\n}\n\nmsg.url = 'http://'+flow.get(\"ip\")+'/api/states/sensor.correios_' + msg.rastreio\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":300,"y":1160,"wires":[["53adf4fb7beb825c"]]},{"id":"53adf4fb7beb825c","type":"http request","z":"e3f8c2a2b98f267c","g":"070006aaf7517e6b","name":"","method":"DELETE","ret":"txt","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":470,"y":1160,"wires":[["cdf0cc7fedbc0b40"]]},{"id":"cdf0cc7fedbc0b40","type":"debug","z":"e3f8c2a2b98f267c","g":"070006aaf7517e6b","name":"remover sensor","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":640,"y":1160,"wires":[]},{"id":"c0ad9eb653f545e8","type":"inject","z":"e3f8c2a2b98f267c","g":"070006aaf7517e6b","name":"Deletar sensor","props":[{"p":"rastreio","v":"OX031380405BR","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":140,"y":1160,"wires":[["1f13cde22ac1ebd0"]]},{"id":"a668d2a6552407c2","type":"group","z":"e3f8c2a2b98f267c","name":"Atualizações dos rastreios ","style":{"label":true},"nodes":["084b5f1332720326","8dde2aa9142e679e","f7a38f88dfdce579","ed0c702176a57b25","e65678a6745a86dd","9aa60d15af1779fa","8ed049d5c397ba19","dab835fedbea6607","f5db9a8fc64bcb77","a047528886a8b5a9","8f07d7dd95c95b25"],"x":4,"y":699,"w":1462,"h":82},{"id":"084b5f1332720326","type":"function","z":"e3f8c2a2b98f267c","g":"a668d2a6552407c2","name":"Headers","func":"for (var i = 0; i < flow.get(\"rastreio\").length; i++) {\n    msg.url = \"https://www.linkcorreios.com.br/?id=\" + flow.get(\"rastreio\")[i]\n    msg.headers = {\n        \"User-Agent\": \"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/50.0.2661.102 Safari/537.36\",\n    }\n\n    msg.rastreio = flow.get(\"rastreio\")[i]\n    msg.nome_objeto = flow.get(\"nome_objeto\")[i]\n    msg.notificacao = flow.get(\"notificacao\")[i]\n\n    flow.get(\"rastreio\")[i] + 1;\n\n    node.send([msg]); \n}\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":160,"y":740,"wires":[["8dde2aa9142e679e"]]},{"id":"8dde2aa9142e679e","type":"http request","z":"e3f8c2a2b98f267c","g":"a668d2a6552407c2","name":"Site","method":"GET","ret":"txt","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":290,"y":740,"wires":[["a047528886a8b5a9"]]},{"id":"f7a38f88dfdce579","type":"html","z":"e3f8c2a2b98f267c","g":"a668d2a6552407c2","name":"Status","property":"payload","outproperty":"status","tag":"#page > main > div.container.margin_30_5 > div > div > div.singlepost > ul:nth-child(3) > li:nth-child(1) > b","ret":"text","as":"single","x":590,"y":740,"wires":[["ed0c702176a57b25"]]},{"id":"ed0c702176a57b25","type":"html","z":"e3f8c2a2b98f267c","g":"a668d2a6552407c2","name":"Data","property":"payload","outproperty":"data","tag":"#page > main > div.container.margin_30_5 > div > div > div.singlepost > ul:nth-child(3) > li:nth-child(2)","ret":"text","as":"single","x":710,"y":740,"wires":[["e65678a6745a86dd"]]},{"id":"e65678a6745a86dd","type":"html","z":"e3f8c2a2b98f267c","g":"a668d2a6552407c2","name":"Local","property":"payload","outproperty":"local","tag":"#page > main > div.container.margin_30_5 > div > div > div.singlepost > ul:nth-child(3) > li:nth-child(3)","ret":"text","as":"single","x":830,"y":740,"wires":[["9aa60d15af1779fa"]]},{"id":"9aa60d15af1779fa","type":"html","z":"e3f8c2a2b98f267c","g":"a668d2a6552407c2","name":"Destino","property":"payload","outproperty":"destino","tag":"#page > main > div.container.margin_30_5 > div > div > div.singlepost > ul:nth-child(3) > li:nth-child(4)","ret":"text","as":"single","x":960,"y":740,"wires":[["8f07d7dd95c95b25"]]},{"id":"8ed049d5c397ba19","type":"ha-api","z":"e3f8c2a2b98f267c","g":"a668d2a6552407c2","name":"","server":"db1ab0af.caa65","version":1,"debugenabled":false,"protocol":"http","method":"post","path":"/api/states/{{entity_id}}","data":"","dataType":"json","responseType":"json","outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"results"}],"x":1390,"y":740,"wires":[[]]},{"id":"dab835fedbea6607","type":"inject","z":"e3f8c2a2b98f267c","g":"a668d2a6552407c2","name":"Atualiza de 1 em 1 min ","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":true,"onceDelay":"5","topic":"","payload":"","payloadType":"date","x":65,"y":740,"wires":[["084b5f1332720326"]],"l":false},{"id":"f5db9a8fc64bcb77","type":"function","z":"e3f8c2a2b98f267c","g":"a668d2a6552407c2","name":"Atualizar sensor","func":"msg.entity_id = 'sensor.correios_' + msg.rastreio.toUpperCase();\n\nmsg.payload = {\n    data: {\n        state: msg.status,\n        attributes: {\n            rastreio: msg.rastreio,\n            status: msg.status,\n            data: msg.data,\n            notificacao: msg.notificacao,\n            local: msg.local,\n            destino: msg.destino,\n            friendly_name: msg.nome_objeto.toUpperCase() + ' - ' + msg.rastreio.toUpperCase(),\n        }\n    }\n};\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1240,"y":740,"wires":[["8ed049d5c397ba19"]]},{"id":"a047528886a8b5a9","type":"delay","z":"e3f8c2a2b98f267c","g":"a668d2a6552407c2","name":"","pauseType":"rate","timeout":"2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"3","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":440,"y":740,"wires":[["f7a38f88dfdce579"]]},{"id":"8f07d7dd95c95b25","type":"function","z":"e3f8c2a2b98f267c","g":"a668d2a6552407c2","name":"!= Null","func":"if (msg.data.length === 0) {\n    msg.data[0] = null;\n    return [msg, null];\n}\nelse {\n    return [null, msg];\n}\n","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1090,"y":740,"wires":[[],["f5db9a8fc64bcb77"]]},{"id":"be8b76885aeaf41d","type":"group","z":"e3f8c2a2b98f267c","name":"Mudança de status","style":{"label":true},"nodes":["4aedb6c884bda563","2433e8dde2cbf370","6ffba8f50819f7a3","85fd666ef97460bb","68ad6a2786362f5b","4f26f8a762107df7","888005b681c08be4","4f26842d07fd7ff8"],"x":14,"y":559,"w":1332,"h":122},{"id":"4aedb6c884bda563","type":"server-state-changed","z":"e3f8c2a2b98f267c","g":"be8b76885aeaf41d","name":"Aviso mudança de status","server":"db1ab0af.caa65","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"correios_","entityidfiltertype":"regex","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":false,"for":"","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":150,"y":620,"wires":[["2433e8dde2cbf370"]]},{"id":"2433e8dde2cbf370","type":"function","z":"e3f8c2a2b98f267c","g":"be8b76885aeaf41d","name":"!= Null","func":"if (msg.data.new_state.attributes.data.length === 0) {\n    msg.data.new_state.attributes.data[0] = null;\n    return [msg, null];\n}\nelse {\n    return [null, msg];\n}\n","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":330,"y":620,"wires":[[],["6ffba8f50819f7a3"]]},{"id":"6ffba8f50819f7a3","type":"switch","z":"e3f8c2a2b98f267c","g":"be8b76885aeaf41d","name":"Notificacao = Sim / Saiu para entrega","property":"data.new_state.attributes.notificacao","propertyType":"msg","rules":[{"t":"eq","v":"Sim","vt":"str"},{"t":"eq","v":"Saiu para entrega","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":550,"y":620,"wires":[["68ad6a2786362f5b"],["4f26f8a762107df7"]]},{"id":"85fd666ef97460bb","type":"link out","z":"e3f8c2a2b98f267c","g":"be8b76885aeaf41d","name":"link out 19","mode":"link","links":["0d20d93e76ce11d7","f04403206e76f318"],"x":955,"y":600,"wires":[]},{"id":"68ad6a2786362f5b","type":"template","z":"e3f8c2a2b98f267c","g":"be8b76885aeaf41d","name":"Todas notificações","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"📦 {{{data.new_state.attributes.friendly_name}}} \n__\n\n{{{data.new_state.attributes.status}}}\n\n{{{data.new_state.attributes.data}}}\n\n{{{data.new_state.attributes.destino}}}\n\n{{{data.new_state.attributes.local}}}\n\n\n","output":"str","x":830,"y":600,"wires":[["85fd666ef97460bb"]]},{"id":"4f26f8a762107df7","type":"switch","z":"e3f8c2a2b98f267c","g":"be8b76885aeaf41d","name":"= Objeto saiu para entrega ao destinatário'","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"['Objeto saiu para entrega ao destinatário']","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":910,"y":640,"wires":[["888005b681c08be4"]]},{"id":"888005b681c08be4","type":"template","z":"e3f8c2a2b98f267c","g":"be8b76885aeaf41d","name":"Saiu para entrega","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"📦 {{{data.new_state.attributes.friendly_name}}} \n__\n\n{{{data.new_state.attributes.status}}}\n\n{{{data.new_state.attributes.data}}}\n\n{{{data.new_state.attributes.destino}}}\n\n{{{data.new_state.attributes.local}}}\n\n\n","output":"str","x":1190,"y":640,"wires":[["4f26842d07fd7ff8"]]},{"id":"4f26842d07fd7ff8","type":"link out","z":"e3f8c2a2b98f267c","g":"be8b76885aeaf41d","name":"link out 20","mode":"link","links":["0d20d93e76ce11d7","f04403206e76f318"],"x":1305,"y":640,"wires":[]}]
1 curtida

@kelvinrafaeli parece que está funcionando bem… Pelo menos aqui pra mim…

Obrigado!

1 curtida

Show! Fiz estou utilizando em conjunto com os card que postou ficou muito bom.

Falando nisso, você tem outros cards “diferentões” com mushroom? Não usava ele mas vi que as possibilidades são infinitas rsrsrs

TOP… Funcionou aqui…

Como faço para receber notificações pelo telegram? (já tenho o mesmo configurado no HA). Porem, sou meio leigo ainda.,

Qual deles vc usa?

Eu tenho o node-red-contrib-telegrambot-home

Nele vc coloca o node notify:

image

Coloca no final do nó

image