Merge branch 'master' into patch-1

This commit is contained in:
Andres Gongora 2024-10-01 11:52:23 +02:00 committed by GitHub
commit c3c2c4e950
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
24 changed files with 157 additions and 77 deletions

View file

@ -14,7 +14,7 @@ Meshtastic® is a project that enables you to use inexpensive LoRa radios as a l
### Features
- Long range ([_254km record by kboxlabs_](/docs/overview/range-tests#current-ground-record-254km))
- Long range ([_331km record by MartinR7 & alleg_](/docs/overview/range-tests#current-ground-record-331km))
- No phone required for mesh communication
- Decentralized communication - no dedicated router required
- Encrypted communication

View file

@ -19,9 +19,47 @@ values={[
<TabItem value="ground">
#### Ground
#### Current Ground Record: 331km
##### Current Ground Record: 254km
- **Range:** 331km (205 miles)
- **Record Holders:** _MartinR7_ & _alleg_
- **Source:** [reddit](https://www.reddit.com/r/meshtastic/comments/1fnduwo/mountain_to_mountain_331_km/)
<h5 id="modem-settings-331">Modem Settings</h5>
Default Very Long Slow
- **Frequency:** 868MHz
- **Bandwidth:** 62.5
- **Spread Factor:** 12
- **Coding Rate:** 4/8
<h5 id="node-a-331">Node A</h5>
- **Device:** [RAK4631 Core](/docs/hardware/devices/rak-wireless/wisblock/core-module/?rakcore=RAK4631)+[RAK19003](/docs/hardware/devices/rak-wireless/wisblock/base-board/?rakbase=RAK19003)+[RAK1906](/docs/hardware/devices/rak-wireless/wisblock/peripherals/?rakmodules=Sensors#rak1906-environment-sensor)+[INA219](/docs/configuration/module/telemetry/#currently-supported-sensor-types)
- **Firmware Version:** 2.3.6
- **Antenna:** 55cm collinear 868mhz (AliExpress)
<h5 id="node-b-331">Node B</h5>
- **Device:** [RAK4631 Core](/docs/hardware/devices/rak-wireless/wisblock/core-module/?rakcore=RAK4631)+[RAK19003](/docs/hardware/devices/rak-wireless/wisblock/base-board/?rakbase=RAK19003)+[RAK1901](/docs/hardware/devices/rak-wireless/wisblock/peripherals/?rakmodules=Sensors#rak1901-temperature-and-humidity-sensor)
- **Firmware Version:** 2.4.2
- **Antenna:** RAKARJ17
<img src="/img/records/MartinR7-XARC.webp" alt="Node A" />
<img src="/img/records/MartinR7-Sneznik.webp" alt="Node B" />
<img src="/img/records/MartinR7-map.webp" alt="Map" />
<img src="/img/records/MartinR7-map2.webp" alt="Map2" />
<img src="/img/records/MartinR7-path.webp" alt="Path" />
<img src="/img/records/MartinR7-message-trace.webp" alt="Trace" />
#### Previous Ground Record: 254km
- **Range:** 254km (158 miles)
- **Record Holders:** _kboxlabs_
@ -91,9 +129,7 @@ Default Long_Fast
<TabItem value="air">
#### Air
##### Current Air Record: 206km
#### Current Air Record: 206km
- **Range:** 206km (128 miles)
- **Record Holders:** _StarWatcher, CVR, rook, kboxlabs_

View file

@ -87,6 +87,12 @@ us on [Discord](https://discord.com/invite/ktMAKGBnBs) to add your group.
- [Mesh Finland Discord](https://discord.com/invite/GHnaVAjqed)
- [Mesh Finland Website](https://mesh-finland.github.io)
- [MeshAbout](https://www.meshabout.fi/)
## France
- [Collectif Meshtastic France](https://www.facebook.com/groups/meshtastic.france)
- [Réseau Gaulix - Telegram](https://t.me/+bkCEaiI-i-Q2ZTBk)
## Germany
@ -104,6 +110,7 @@ us on [Discord](https://discord.com/invite/ktMAKGBnBs) to add your group.
## Italy
- [Meshtastic Italia Community](https://t.me/meshtastic_italia_community)
- [Mesh_ITA Discord Server](https://discord.gg/ETFmtyzbFT)
## Japan
@ -126,6 +133,11 @@ us on [Discord](https://discord.com/invite/ktMAKGBnBs) to add your group.
- [Meshtastic Poland Matrix Space](https://matrix.to/#/#meshtasticpl:matrix.org)
## Slovenia
- [MeshNet.si](https://meshnet.si)
- [Slovenian Amature Radio Discord](https://discord.gg/uHDDE734DD)
## Spain
- [Meshtastic España](https://t.me/meshtastic_esp)
@ -230,6 +242,7 @@ us on [Discord](https://discord.com/invite/ktMAKGBnBs) to add your group.
- [Austin Mesh](https://austinmesh.org/)
- [Cypress, Texas Meshtastic Club](https://discord.gg/KzuwNRwE6q)
- [DFW / North Texas Mesh](https://discord.gg/jyzYRTtyMD)
### Wisconsin

View file

@ -188,5 +188,5 @@ For an open source solution you could use [uMap](https://umap.openstreetmap.de/e
Visit [uMap](https://umap.openstreetmap.de/en/) in your preffered language.
1. Click on "Create a map"
2. Click on the "Import data"-Icon or press CRTL + I.
2. Click on the "Import data"-Icon or press CTRL + I.
3. Choose your rangetest.csv and click "Import". The dataformat is recognized and the locations are imported onto the map.

View file

@ -12,7 +12,8 @@ The Remote Hardware Module allows to read, write and watch GPIO pins on a remote
:::info
While configuring this module may be available in clients, setting and reading GPIO's is currently only possible using the [Meshtastic Python CLI](/docs/software/python/cli)
For firmware versions > 2.5.3, this module requires you to compile your own firmware and remove the `-DMESHTASTIC_EXCLUDE_REMOTEHARDWARE=1` build flag in `platformio.ini`.
Additionally, while configuring this module may be available in clients, setting and reading GPIO's is currently only possible using the [Meshtastic Python CLI](/docs/software/python/cli)
:::

View file

@ -22,7 +22,7 @@ Supported sensors connected to the I2C bus of the device will be automatically d
| BMP180 | 0x76, 0x77 | Temperature and barometric pressure |
| BMP280 | 0x76, 0x77 | Temperature and barometric pressure |
| BME280 | 0x76, 0x77 | Temperature, barometric pressure and humidity |
| BME680 | 0x76, 0x77 | Temperature, barometric pressure, humidity and air resistance |
| BME68x | 0x76, 0x77 | Temperature, barometric pressure, humidity and air resistance |
| MCP9808 | 0x18 | Temperature |
| INA260 | 0x40, 0x41, 0x43 | Current and Voltage |
| INA219 | 0x40, 0x41, 0x43 | Current and Voltage |

View file

@ -143,8 +143,8 @@ If you'd like to contribute information for your country, click the "Edit this p
| ----------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Serbia | EU_868<br />EU_433 | |
| Singapore | SG_923 | [IMDA Regulations](https://www.imda.gov.sg/-/media/imda/files/regulation-licensing-and-consultations/ict-standards/telecommunication-standards/radio-comms/imdatssrd.pdf) |
| Slowakia | EU_868<br />EU_433 | |
| Slowenia | EU_868<br />EU_433 | |
| Slovakia | EU_868<br />EU_433 | [Slovak regulations](https://eur-lex.europa.eu/legal-content/SK/TXT/PDF/?uri=CELEX:32022D0180) |
| Slovenia | EU_868<br />EU_433 | |
| Spain | EU_868<br />EU_433 | |
| Sweden | EU_868<br />EU_433 | |
| Switzerland | EU_868<br />EU_433 | |

View file

@ -14,8 +14,6 @@ queryString="heltecESP32V3"
defaultValue="GPS"
values={[
{label: 'GPS Module', value: 'GPS'},
{label: 'Keyboard', value: 'Keyboard'},
{label: 'Buzzer', value: 'Buzzer'},
]}>
<TabItem value="GPS">
@ -23,10 +21,9 @@ values={[
### Introduction
This informational guide outlines the process of enhancing the Heltec ESP32 V3 board by integrating the GT-U7 GPS Module. The addition of this module provides precise GPS capabilities and a real-time clock (RTC), eliminating the need for WiFi or a smartphone for time tracking. This enhancement is particularly beneficial for the mesh, where tracking the duration since the last seen device is crucial.
However, it's important to note that the GPS module increases the power demand of your node. We'll address this by detailing how to incorporate a switch or an NPN 2N2222 transistor into your setup. This enables firmware-controlled power management, conserving battery life without sacrificing functionality.
This guide outlines the process of enhancing the Heltec ESP32 V3 board by integrating a GT-U7 GPS Module, although almost any supported GNSS module can be integrated in the same way. The addition of this module provides precise GPS capabilities and a real-time clock (RTC), eliminating the need for WiFi or a smartphone for time tracking. This enhancement is particularly beneficial for the mesh, where tracking the duration since the last seen device is crucial.
It is important to note that the GPS module increases the power demand of the node. This guide details the incorporation of a switch or an NPN 2N2222 transistor to enable firmware-controlled power management, conserving battery life without compromising functionality.
However, it's important to note that the GPS module increases the power demand of the node. This guide helps to address this by detailing how to incorporate a switch or an N-channel MOSFET into the setup. This enables additional firmware-controlled power management, conserving more battery life than the soft-sleep option without sacrificing functionality.
### Benefits
@ -35,35 +32,68 @@ It is important to note that the GPS module increases the power demand of the no
### Power Consumption Considerations
The GT-U7 module is known for its high power consumption, which can potentially shorten the battery lifespan of the node. To mitigate this, two approaches are recommended:
The GT-U7 module is known for its high power consumption, which can potentially shorten the battery lifespan of the node. To mitigate this, three approaches are recommended:
- **Manual Switch**: A simple on/off switch for the GPS module, allowing for manual power management.
- **NPN 2N2222 Transistor**: Facilitates automatic power control through the firmware, enabling the device to turn off the GPS module based on specific conditions or after a set period.
- **Through-hole MOSFET**: Facilitates automatic power control through the firmware, enabling the device to turn off the GPS module based on specific conditions or after a set period.
- **SMD MOSFET**: As above, but in a smaller volume and space envelope and with a marginally lower power consumption when in use.
### Notes on previous versions of these instructions
Previous versions of these instructions specified using a 2N2222a power transistor to control the power. In addition, it showed the transistor being used to control the power from the "high side" (i.e. between the Heltec Vcc and the GPS Vin). While this method will work for some boards, it is not ideal to use an NPN transistor to switch the "high side" of the load like this.
The current version of the guide now instructs using either a surface mount or through-hole MOSFET to switch the ground ("low side") of the GPS module. This allows the MOSFET to operate in the fully saturated condition, and MOSFETs will have a lower power consumption themselves than a power transistor. As the ground for the two parts will now be isolated, it is important that no parts of the GPS module, the antenna or any shielding shell are able to contact the ground for the Heltec board.
### Materials Needed
- Heltec ESP32 V3 board
- GT-U7 GPS Module
- NPN 2N2222 Transistor
- (Optional) Through-hole MOSFET (note: these are harder to find in small packages than SMD MOSFETS, but any that can operate on 3.3V will be suitable, e.g. 2N7000, BS170)
- (Optional) Surface Mount MOSFET (note: any suitable N-channel MOSFET can be used, e.g. SI2312, AO3400a, 2N7002)
- Wires and soldering equipment
- (Optional) Switch for manual power control
### Instructions
### Instructions (Through-Hole MOSFET)
1. Solder a cable from the TXD slot on the GPS module to GPIO 48 on Heltec board. (You may choose your own GPIO pin)
2. Solder a cable from the RXD slot on the GPS module to GPIO 47 on Heltec board. (You may choose your own GPIO pin)
3. Solder a cable from the GND slot on the GPS module to GND pin on Heltec board.
4. Solder a cable from left leg of NPN 2N2222 Transistor to VCC skit on GPS module.
5. Solder a cable from Right leg of NPN 2N2222 Transistor to 3V/5V pin on Heltec board.
6. Solder a cable from Middle leg of NPN 2N2222 Transistor to GPIO 48 of Heltec board. (You may choose your own GPIO pin)
Note: these instructions assume a 2N7000 MOSFET is used. For other parts, always check the data sheet!
1. Solder a wire from the TXD pin on the GPS module to GPIO 48 on Heltec board. (Another GPIO pin may be chosen)
2. Solder a wire from the RXD pin on the GPS module to GPIO 47 on Heltec board. (Another GPIO pin may be chosen)
3. Solder a wire from the VCC pin on the GPS module to 3V/5V pin pin on Heltec board.
4. Solder a wire from Right leg (lead 3, Drain) of NPN MOSFET to GND on GPS module.
5. Solder a wire from Left leg (lead 1, Source) of NPN MOSFET to GND on Heltec board.
6. Solder a wire from Middle leg (lead 2, Gate) of NPN MOSFET to GPIO 48 of Heltec board. (Another GPIO pin may be chosen)
7. Go to Meshtastic app > Radio Configurations > Position
8. Set GPS_RX_PIN to 48 (This will communicate to the TXD slot on the GPS)
9. Set GPS_TX_PIN to 47 (This will communicate to the RXD slot on the GPS)
8. Set GPS_RX_PIN to 48 (This will communicate to the TXD pin on the GPS)
9. Set GPS_TX_PIN to 47 (This will communicate to the RXD pin on the GPS)
10. Set PIN_GPS_EN to 46 (This will allow the meshtastic firmware to turn off the power on the GPS board with the user button of the Heltec Board by pressing it 3 times)
### Wiring Diagram
### Wiring Diagram - Through-Hole
![HeltecESP32V3-gps-module](/img/hardware/HeltecESP32V3-gps-module.webp)
![HeltecESP32V3-gps-module](/img/hardware/heltec/Heltec_ESP32V3_GPS_module_low-side.webp)
### Instructions (Surface Mount MOSFET)
Note: these instructions assume an SI2312 MOSFET is used. For other parts, always check the data sheet!
1. Solder a wire from the TXD pin on the GPS module to GPIO 48 on Heltec board. (Another GPIO pin may be chosen)
2. Solder a wire from the RXD pin on the GPS module to GPIO 47 on Heltec board. (Another GPIO pin may be chosen)
3. Solder a wire from the GND pin on the GPS module to middle pin of the SI 2312 MOSFET
4. Solder a wire from the VCC pin of the GPS module to o 3V/5V pin on Heltec board.
5. Solder a wire from Left leg of SI2312 MOSFET to GPIO 46 on the Heltec board.
6. Solder a wire from Right leg of SI2312 MOSFET to the empty solder spot on the heltec board (see pictures).
7. Go to Meshtastic app > Radio Configurations > Position
8. Set GPS_RX_PIN to 48 (This will communicate to the TXD pin on the GPS)
9. Set GPS_TX_PIN to 47 (This will communicate to the RXD pin on the GPS)
10. Set PIN_GPS_EN to 46 (This will allow the meshtastic firmware to turn off the power on the GPS board with the user button of the Heltec Board by pressing it 3 times)
11. Ensure that the ground on the GPS module does not contact the ground of the Heltec board, or any other component linked to the Heltec ground. This includes antenna covers, battery connectors, etc. Failure to ensure they are separated may lead to the MOSFET being bypassed.
### Photographs and Diagrams - SMD
![HeltecESP32V3-gps-module](/img/hardware/heltec/Heltec_ESP32V3_SMDMosfetDiagram.webp)
![HeltecESP32V3-gps-module](/img/hardware/heltec/Heltec_ESP32V3_SMDMosfetInPlace.webp)
![HeltecESP32V3-gps-module](/img/hardware/heltec/Heltec_ESP32V3_SMDMOSFET_GPSInPlace.webp)
### Troubleshooting Tips
@ -75,21 +105,7 @@ If the location is not accurate, walk around to allow the GPS to properly lock o
### Conclusion
By following this guide, you can enhance your Heltec ESP32 V3 board with valuable GPS capabilities and an RTC, while effectively managing power consumption. Whether for a hobby project or a more serious application, these additions significantly expand the potential of your device.
</TabItem>
<TabItem value="Keyboard">
## Keyboard
Coming Soon
</TabItem>
<TabItem value="Buzzer">
## Buzzer
Coming Soon
By following this guide, the Heltec ESP32 V3 board can be enhanced with valuable GPS capabilities and an RTC, while effectively managing power consumption. Whether for a hobby project or a more serious application, these additions significantly expand the potential of the device.
</TabItem>
</Tabs>

View file

@ -38,7 +38,7 @@ values={[
:::info
Capsule Sensor V3 uses WirelessBoot mode to upload firmware, exchange information, and print logs through WiFi.
That is, whether you update the firmware locally or via the Web, You need to get the device into WirelssBoot state first.
That is, whether you update the firmware locally or via the Web, You need to get the device into WirelessBoot state first.
:::
Refer to this link for how to upload firmware for Capsule Sensor V3: [**Wireless Boot**](https://docs.heltec.org/en/node/esp32/capsule_sensor_v3/wireless_boot.html#).

View file

@ -222,6 +222,15 @@ All-in-one development device with LoRa, WiFi, BT, touchscreen, accelerometer, g
| :------------------- | :--------------- | :----- | :--: | :-: | :-: |
| [unPhone](./unPhone) | ESP32-S3-WROOM-1 | RF950W | YES | 5.0 | NO |
### [Seeed Wio-WM1110](./seeed-studio/wm1110)
nRF52840-based development boards with GPS, and multiple ports to attach sensors.
| Name | MCU | Radio | WiFi | BT | GPS |
| :------------------------------------------------------------------------ | :------- | :----- | :--: | :-: | :-: |
| [Seeed Wio-WM1110 Dev Kit](./seeed-studio/wm1110?wm1110=wio-sdk-wm1110) | nRF52840 | LR1110 | YES | 5.3 | YES |
| [Seeed Wio Tracker 1110](./seeed-studio/wm1110?wm1110=wio-tracker-wm1110) | nRF52840 | LR1110 | YES | 5.3 | YES |
## [Chatter](./chatter)
DIY kit with ESP32, LoRa chip, and optional GPS. Designed for STEM education.
@ -229,3 +238,9 @@ DIY kit with ESP32, LoRa chip, and optional GPS. Designed for STEM education.
| Name | MCU | Radio | WiFi | BT | GPS |
| :------------------- | :---- | :----- | :--: | :-: | :-: |
| [Chatter](./chatter) | ESP32 | LLCC68 | YES | 4.2 | No |
### Radio Master
| Name | MCU | Radio | WiFi | BT | GPS |
| :-------------------- | :--------------- | :----- | :--: | :-: | :-: |
| Bandit Nano ExpressLRS 900 | ESP32 | SX1276 + SKY66122 PA/LNA +30db TX, +16db RX ) | ? | YES | NO |

View file

@ -7,12 +7,14 @@ sidebar_position: 3
## How to Contribute
Contributing translations to the Meshtastic Apple app helps make the project accessible to a wider audience. Follow these steps to add translations for a new language:
Contributing translations to the Meshtastic Apple app helps make the project accessible to a wider audience. The Meshtastic Apple app uses [string catalogs](https://developer.apple.com/documentation/xcode/localizing-and-varying-text-with-a-string-catalog) in Xcode to manage translations.
1. **Fork the Repository**: Start by forking the [Meshtastic-Apple repository](<https://github.com/meshtastic/Meshtastic-Apple/tree/main>) to your GitHub account.
2. **Create a Language Folder**: In your forked repository, create a new folder for your language using the language code followed by `.lproj`. For example, for German, create a folder named `de.lproj`.
3. **Copy the Localizable.strings File**: Navigate to the [English strings folder](<https://github.com/meshtastic/Meshtastic-Apple/blob/main/en.lproj/Localizable.strings>) and copy the `Localizable.strings` file. Paste this file into the folder you created in the previous step.
4. **Translate the Strings**: Open the `Localizable.strings` file in your language folder and translate the English strings into your language. Be sure to maintain the format of the file.
5. **Create a Pull Request**: Once you've completed the translation, create a new pull request from your forked repository to the main Meshtastic-Apple repository. Title the pull request appropriately (e.g., "Add German Translation") and describe the changes you've made.
If you would like to update the translations for a locale or add a new language, follow these steps.
Your contribution will be reviewed, and upon approval, your translation will be included in the next release of the Meshtastic Apple app. Thank you for helping expand the reach of Meshtastic!
1. Start by forking the [Meshtastic-Apple repository](<https://github.com/meshtastic/Meshtastic-Apple/tree/main>) to your GitHub account.
2. Clone the project and open the `Meshtastic.xcworkspace`
3. Select the `Localizable.xcstrings` file in the project navigator.
4. Follow the steps outlined [here](https://developer.apple.com/documentation/xcode/localizing-and-varying-text-with-a-string-catalog) for adding or updating translations.
5. Create a PR on the project with your changes.
Your contribution will be reviewed, and upon approval, your translation will be included in the next release of the Meshtastic Apple app. Thank you for helping expand the reach of Meshtastic!

View file

@ -44,7 +44,7 @@ sensor:
- name: "Node 1 Battery Voltage"
unique_id: "node_1__battery_voltage"
state_topic: "msh/2/json/LongFast/!67ea9400"
state_topic: "msh/US/2/json/LongFast/!67ea9400"
state_class: measurement
value_template: >-
{% if value_json.from == 4038675309 and
@ -60,7 +60,7 @@ sensor:
- name: "Node 1 Battery Percent"
unique_id: "node_1_battery_percent"
state_topic: "msh/2/json/LongFast/!67ea9400"
state_topic: "msh/US/2/json/LongFast/!67ea9400"
state_class: measurement
value_template: >-
{% if value_json.from == 4038675309 and value_json.payload.battery_level is defined %}
@ -73,7 +73,7 @@ sensor:
- name: "Node 1 ChUtil"
unique_id: "node_1_chutil"
state_topic: "msh/2/json/LongFast/!67ea9400"
state_topic: "msh/US/2/json/LongFast/!67ea9400"
state_class: measurement
value_template: >-
{% if value_json.from == 4038675309 and value_json.payload.channel_utilization is defined %}
@ -85,7 +85,7 @@ sensor:
- name: "Node 1 AirUtilTX"
unique_id: "node_1_airutiltx"
state_topic: "msh/2/json/LongFast/!67ea9400"
state_topic: "msh/US/2/json/LongFast/!67ea9400"
state_class: measurement
value_template: >-
{% if value_json.from == 4038675309 and value_json.payload.air_util_tx is defined %}
@ -104,7 +104,7 @@ sensor:
- name: "Node 1 Temperature"
unique_id: "node_1_temperature"
state_topic: "msh/2/json/LongFast/!67ea9400"
state_topic: "msh/US/2/json/LongFast/!67ea9400"
state_class: measurement
value_template: >-
{% if value_json.from == 4038675309 and value_json.payload.temperature is defined %}
@ -121,7 +121,7 @@ sensor:
- name: "Node 1 Humidity"
unique_id: "node_1_humidity"
state_topic: "msh/2/json/LongFast/!67ea9400"
state_topic: "msh/US/2/json/LongFast/!67ea9400"
state_class: measurement
value_template: >-
{% if value_json.from == 4038675309 and value_json.payload.relative_humidity is defined %}
@ -134,7 +134,7 @@ sensor:
- name: "Node 1 Pressure"
unique_id: "node_1_pressure"
state_topic: "msh/2/json/LongFast/!67ea9400"
state_topic: "msh/US/2/json/LongFast/!67ea9400"
state_class: measurement
value_template: >-
{% if value_json.from == 4038675309 and value_json.payload.barometric_pressure is defined %}
@ -149,7 +149,7 @@ sensor:
- name: "Node 1 Gas Resistance"
unique_id: "node_1_gas_resistance"
state_topic: "msh/2/json/LongFast/!67ea9400"
state_topic: "msh/US/2/json/LongFast/!67ea9400"
state_class: measurement
value_template: >-
{% if value_json.from == 4038675309 and value_json.payload.gas_resistance is defined %}
@ -167,7 +167,7 @@ sensor:
```yaml
- name: "Node 1 Messages"
unique_id: "node_1_messages"
state_topic: "msh/2/json/LongFast/!67ea9400"
state_topic: "msh/US/2/json/LongFast/!67ea9400"
value_template: >-
{% if value_json.from == 4038675309 and value_json.payload.text is defined %}
{{ value_json.payload.text }}
@ -187,7 +187,7 @@ alias: Update Node 1 location
description: Update Meshtastic node when corresponding MQTT messages are seen.
trigger:
- platform: mqtt
topic: msh/2/json/LongFast/!67ea9400
topic: msh/US/2/json/LongFast/!67ea9400
payload: "on"
value_template: |-
{% if value_json.from == 4038675309 and
@ -216,7 +216,7 @@ Home Assistant entities can be created for any data type that is published to MQ
### Configure With Your Topic & Node ID's
- In every entity, replace `msh/2/json/LongFast/!67ea9400` with the topic your node publishes to. In this example, `!67ea9400` refers to the node that has mqtt enabled on the mesh and is publishing to the broker.
- In every entity, replace `msh/US/2/json/LongFast/!67ea9400` with the topic your node publishes to. In this example, `!67ea9400` refers to the node that has mqtt enabled on the mesh and is publishing to the broker.
- In every entity replace `4038675309` with the node number of the radio you wish to monitor. In this example `4038675309` is the node on the mesh with environment sensors and telemetry that I wish to observe. Node numbers can be found by monitoring the output in MQTT Explorer, listening with the MQTT addon or by using the Python CLI with `meshtastic --info`.
@ -227,7 +227,7 @@ Copy and paste these entities then change `name`, `unique_id`, `from`, and `stat
```yaml
- name: "Node 2 Messages"
unique_id: "node_2_messages"
state_topic: "msh/2/json/LongFast/!67ea9400"
state_topic: "msh/US/2/json/LongFast/!67ea9400"
value_template: >-
{% if value_json.from == 695318008 and value_json.payload.text is defined %}
{{ value_json.payload.text }}
@ -279,7 +279,7 @@ Add the following code to your automations.yaml file. Be sure to modify the `to
description: any message with an @Tropho will send to mobile device
trigger:
- platform: mqtt
topic: msh/2/json/LongFast/!67ea9400
topic: msh/US/2/json/LongFast/!67ea9400
condition:
- condition: template
value_template: "{{ trigger.payload_json.payload.text | regex_search('@Tropho') }}"
@ -336,7 +336,7 @@ This automation will check the send box for changes. After typing a message, ei
data:
qos: 0
retain: false
topic: msh/2/json/mqtt/!67ea9400
topic: msh/US/2/json/mqtt/!67ea9400
payload: >-
{"from":1743426560,"type":"sendtext","payload":"{{
states('input_text.meshtastic_send_box') }}"}

View file

@ -30,19 +30,16 @@ When MQTT is enabled, the Meshtastic device simply uplinks and/or downlinks ever
### MQTT [Topics](https://www.hivemq.com/blog/mqtt-essentials-part-5-mqtt-topics-best-practices)
If no specific [root topic](/docs/configuration/module/mqtt#root-topic) is configured, the default root topic will be `msh/`.
Each device that is connected to MQTT will publish its MQTT state (`online`/`offline`) to:
If no specific [root topic](/docs/configuration/module/mqtt#root-topic) is configured, the default root topic will be `msh/REGION`.
`msh/2/stat/USERID`, where `USERID` is the node ID of the gateway device (the one connected to MQTT).
For each channel where uplink and/or downlink is enabled, two other topics might be used:
For each channel where uplink and/or downlink is enabled, two topics might be used:
#### Protobufs topic
A gateway node will uplink and/or downlink raw ([protobuf](https://developers.google.com/protocol-buffers)) MeshPackets to the topic:
`msh/2/e/CHANNELNAME/USERID`, where `CHANNELNAME` is the name of the channel (firmware versions prior to 2.3.0 will publish to a topic with `/c/` in the place of `/e/`).
`msh/REGION/2/e/CHANNELNAME/USERID`, where `CHANNELNAME` is the name of the channel (firmware versions prior to 2.3.0 will publish to a topic with `/c/` in the place of `/e/`).
For example: `msh/2/e/LongFast/!abcd1234`
For example: `msh/US/2/e/LongFast/!abcd1234`
The payload is a raw protobuf, whose definitions for Meshtastic can be found [here](https://github.com/meshtastic/protobufs/blob/master/meshtastic). Reference guides for working with protobufs in several popular programming languages can be found [here](https://protobuf.dev/reference/). Looking at the MQTT traffic with a program like `mosquitto_sub` will tell you it's working, but you won't get much useful information out of it. For example:
@ -61,7 +58,7 @@ JSON is not supported on the nRF52 platform.
If [JSON is enabled](/docs/configuration/module/mqtt#json-enabled), packets from the following [port numbers](/docs/development/firmware/portnum) are serialized to JSON: `TEXT_MESSAGE_APP`, `TELEMETRY_APP`, `NODEINFO_APP`, `POSITION_APP`, `WAYPOINT_APP`, `NEIGHBORINFO_APP`, `TRACEROUTE_APP`, `DETECTION_SENSOR_APP`, `PAXCOUNTER_APP` and `REMOTE_HARDWARE_APP`. These are then forwarded to the topic:
`msh/2/json/CHANNELNAME/USERID`.
`msh/US/2/json/CHANNELNAME/USERID`.
An example of a received `NODEINFO_APP` message:
@ -103,9 +100,9 @@ If the message received contains valid JSON in the payload, the JSON is deserial
#### JSON downlink to instruct a node to send a message
You can also send a JSON message to the topic `msh/2/json/mqtt/` to instruct a gateway node to send a message to the mesh.
You can also send a JSON message to the topic `msh/US/2/json/mqtt/` to instruct a gateway node to send a message to the mesh.
To make this work, ensure that your node has a Meshtastic channel configured called "mqtt". Enable Downlink. The PSK can be random and doesn't matter. This channel allows the node to listen to messages on the `msh/2/json/mqtt/` topic.
To make this work, ensure that your node has a Meshtastic channel configured called "mqtt". Enable Downlink. The PSK can be random and doesn't matter. This channel allows the node to listen to messages on the `msh/US/2/json/mqtt/` topic.
Reboot your device after creating this channel.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB