Kommandoreferenz
Platformio
ttn-lw-cli
baes64tool.py
MQTT
Webhooks
Node-RED
Platformio
-
Installieren mit
python3 -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)"
Es gibt danach den Ordner
.platformio
im Homeverzeichnis. -
Virtuelle Umgebung aktivieren
. ~/.platformio/penv/bin/activate
Nun sollte das Kommando
pio
gefunden werden, am besten malwhich pio
eingeben und danachpio --version
:which pio /home/hhoegl/.platformio/penv/bin/pio pio --version PlatformIO Core, version 6.1.6
-
Nun in das
heltec
Verzeichnis mit dem Beispielprogramm gehen. Dann aufrufen:project init --board heltec_wifi_lora_32
Danach gibt es im
heltec
Verzeichnis einen versteckten Ordner.pio
. In diesem befindet sich z.B. die benötigte LoRa Bibliothek. Ausserdem wurde der Ordner.platformio
im Homeverzeichnis viel grösser (1,6G), da nun der Compiler und das Arduino-Framework für das Heltec Board (ESP32) darin installiert wurden. -
Code kompilieren mit
pio run
-
Code auf das Heltec Board übertragen mit
pio run -t upload
Das angesteckte Heltec Board ist über ein USB Kabel mit dem PC verbunden. Das USB Kabel dient der Stromversorgung und zur Übertragung der seriellen Schnittstelle. Oft kommt man nur als Administrator (
root
) auf diese Schnittstelle. Deswegen erst noch dem gewöhnlichen Anwender ($USER) den Zugriff erlauben mitsudo usermod -a -G dialout $USER
Danach ausloggen/einloggen oder komplett das Linux neu starten. Das Kommando
pio run -t upload
sollte automatisch das richtige serielle Gerät finden. -
Wenn man
pio
nicht mehr braucht deaktiviert man die virtuelle Umgebung mitdeactivate
ttn-lw-cli
Es gibt das Kommandozeilenprogramm ttn-lw-cli
, das alle Funkionen der
TTN Konsole auch über die Kommandozeile erledigen kann. Es ist Teil des
The Things Stack und somit auch Open-Source Software.
https://www.thethingsindustries.com/docs/the-things-stack/interact/cli
Reference: https://www.thethingsindustries.com/docs/reference/cli
Download: https://github.com/TheThingsNetwork/lorawan-stack/releases
Anmelden
Version abfragen
ttn-lw-cli version
The Things Network Command-line Interface: ttn-lw-cli
Version: 3.25.1
Build date: 2023-04-18T08:13:17Z
Git commit: bcfbbc610
Go version: go1.20.3
OS/Arch: linux/amd64
ttn-lw-cli use eu1.cloud.thethings.network
Lokal wird eine Datei .ttn-lw-cli.yml
angelegt.
ttn-lw-cli login
Nun öffnet sich der Browser und zeigt den Auth-Code an. Diesen Code mit Copy/Paste in das Kommandozeilenfenster übertragen.
Danach sollte jedes Kommando funktionieren, z.B.:
ttn-lw-cli applications list
ttn-lw-cli end-devices list heltec-demo
ttn-lw-cli gateways list
Zum Schluss
ttn-lw-cli logout
Downlink
https://www.thethingsindustries.com/docs/devices/downlink-queue-ops
Downlink an Heltec Board schicken (1 Byte Nutzdaten)
Rote LED an
ttn-lw-cli end-devices downlink push heltec-demo eui-70b3d57ed005c674 --frm-payload 01 --priority NORMAL --f-port 1
Rote LED aus
ttn-lw-cli end-devices downlink push heltec-demo eui-70b3d57ed005c674 --frm-payload 00 --priority NORMAL --f-port 1
DevNonce zurücksetzen
Kann manchmal bei OTAA Geräten ganz praktisch sein ...
ttn-lw-cli end-devices reset heltec-demo eui-70b3d57ed005c674 --resets-join-nonces
base64tool.py
Siehe Ordner base64
.
python base64tool.py -B 01 3A
ATo=
python base64tool.py -b ATo=
0x01 0x3a
python base64tool.py -B 00
AA==
MQTT
sudo apt install mosquitto
sudo apt install mosquitto-clients
pip install paho-mqtt
MQTTK
sudo apt install python3-tk
pip install mqttk
Webhooks
# led-on.sh
curl --location \
--header 'Authorization: Bearer '$WORKSHOP_API_KEY \
--header 'Content-Type: application/json' \
--header 'User-Agent: my-integration/my-integration-version' \
--request POST \
--data '{"downlinks":[{ "frm_payload": "AQ==", "f_port": 10, "priority":"NORMAL" }] }' \
https://eu1.cloud.thethings.network/api/v3/as/applications/${appid}/webhooks/${webhookid}/devices/${devid}/down/replace
# led-off.sh
curl --location \
--header 'Authorization: Bearer '$WORKSHOP_API_KEY \
--header 'Content-Type: application/json' \
--header 'User-Agent: my-integration/my-integration-version' \
--request POST \
--data '{"downlinks":[{ "frm_payload": "AA==", "f_port": 10, "priority":"NORMAL" }] }' \
https://eu1.cloud.thethings.network/api/v3/as/applications/${appid}/webhooks/${webhookid}/devices/${devid}/down/replace
Node-RED
-
Man sollte zunächst Node.JS installieren
sudo apt install nodejs
Deshalb erst mal testen ob man
node
schon hat:node Welcome to Node.js v12.22.9. Type ".help" for more information. >
Beenden mit
Strg-D
.Auch mal
npm
eingeben, der sollte mit Node.JS installiert worden sein. -
Nun mit
npm
das Node-RED Programm installierensudo npm install -g --unsafe-perm node-red
-
Node-RED starten mit
node-red
Das Kommando startet einen Server, der Webseiten ausliefert. Im Web-Browser unter
http://127.0.0.1:1880
findet man die Benutzerschnittstelle. -
In der Benutzerschnittstelle (Web-Browser) von Node-Red installieren (Menue -> Palette verwalten -> Installation).
node-red-dashboard
node-red-contrib-moment
Das Dashboard hat einen eigenen Zugangs-Link unter
http://127.0.0.1:1880/ui
Unter https://nodered.org/docs/getting-started/local findet man auch noch andere Installationsmethoden.