UlfFrench prisoner illustration

Meshtastic & Home Automation

uffessmart.homes

Om SitenOm MigUffe på Discord

Visa Meshtastic-meddelanden i Home Assistant

Den här guiden visar hur du tar emot Meshtastic-meddelanden via MQTT i Home Assistant och visar de senaste tre meddelandena på en dashboard.

Förutsättningar

  • En Meshtastic-nod med internetanslutning, till exempel via Wi-Fi eller en ansluten app.
  • En MQTT-broker som både Meshtastic-noden och Home Assistant kan ansluta till.
  • MQTT-integrationen installerad och ansluten till samma broker i Home Assistant.

1. Aktivera MQTT på Meshtastic-noden

I Meshtastic-appen öppnar du nodens Settings / Module settings / MQTT (menynamnen kan skilja sig mellan appversioner) och:

  1. Aktiverar MQTT och anger adress och eventuell inloggning till din broker.
  2. Aktiverar Uplink för den kanal vars meddelanden ska skickas till MQTT.
  3. Aktiverar JSON så att meddelandena publiceras i ett format som Home Assistant kan läsa.

Ändra inte Downlink om du bara vill visa meddelanden i Home Assistant. Downlink behövs inte för den här guiden.

2. Lägg till MQTT-sensorerna i Home Assistant

Lägg mqtt: och template: på samma toppnivå i Home Assistant-konfigurationen. MQTT-sensorn ligger under mqtt: sensor:. Ersätt !xxxxxxxx med nodens ID.

Exemplet nedan är inställt för Meshtastic-kanalen Priv, inte LongFast. Om du använder LongFast ändrar du Priv i state_topic till LongFast och ändrar value_json.channel == 1 till kanalens index i din Meshtastic-konfiguration. Om LongFast är din primära kanal är indexet vanligtvis 0. Du kan även byta namn på sensorn och dess entitets-ID från Priv till LongFast för att hålla namnen tydliga.

mqtt:
  sensor:
    - name: "Meshtastic Priv Meddelande"
      unique_id: "meshtastic_priv_meddelande"
      state_topic: "msh/2/json/Priv/!xxxxxxxx"
      value_template: >-
        {% if value_json is defined and value_json.type in ['text', 'sendtext'] and value_json.channel == 1 and value_json.payload is defined and value_json.payload.text is defined %}
          {{ value_json.payload.text }}
        {% else %}
          {{ states('sensor.meshtastic_priv_meddelande') }}
        {% endif %}
      icon: "mdi:message-lock-outline"

template:
  - trigger:
      - platform: state
        entity_id: sensor.meshtastic_priv_meddelande
    sensor:
      - name: "Meshtastic Senaste 3 Meddelanden"
        unique_id: "meshtastic_senaste_3_meddelanden"
        icon: mdi:message-text-clock
        state: >
          {% set msgs = this.attributes.meddelanden | default([], true) %}
          {{ msgs[0] if msgs | length > 0 else 'Inga meddelanden' }}
        attributes:
          meddelanden: >-
            {% set current = this.attributes.meddelanden | default([], true) %}
            {% set new_msg = states('sensor.meshtastic_priv_meddelande') %}
            {% if new_msg not in ['unavailable', 'unknown', 'none', ''] and (current | length == 0 or current[0] != new_msg) %}
              {{ ([new_msg] + current)[:3] }}
            {% else %}
              {{ current }}
            {% endif %}

Använd Kontrollera konfiguration och starta om Home Assistant när du har sparat ändringarna. MQTT-sensorn tar emot meddelanden från det angivna topicet. Mallen sparar upp till tre av de senaste meddelandetexterna i attributet meddelanden och lägger inte till samma text igen direkt efter sig själv.

3. Visa meddelandena på en dashboard

Lägg till ett Markdown-kort på dashboarden med följande innehåll för att visa de tre senaste meddelandena:

Rubriken i kortet nedan säger Privata Meddelanden. Om du använder LongFast ändrar du den texten till exempelvis Meddelanden på LongFast.

type: markdown
content: |
  <ha-icon icon="mdi:message-text"></ha-icon> **Senaste Privata Meddelandena**

  {% set msgs = state_attr('sensor.meshtastic_senaste_3_meddelanden', 'meddelanden') -%}
  {% if msgs and msgs | length > 0 -%}
    {%- for msg in msgs %}
    - {{ msg }}
    {%- endfor %}
  {%- else -%}
    Inga meddelanden än.
  {%- endif %}

Felsökning och integritet

  • Kontrollera att noden och Home Assistant ansluter till samma broker.
  • Kontrollera att MQTT är aktiverat, att Uplink och JSON är aktiverade på Meshtastic-kanalen och att state_topic innehåller rätt nod-ID.
  • Se till att noden har internetanslutning och att den faktiskt tar emot meddelanden på kanalen.
  • Publik MQTT innebär att publicerade paket kan vara åtkomliga för andra. Skicka inte känslig information och kontrollera kanalens kryptering och MQTT-inställningar innan du delar trafik.