LoRa Lite Gateway vorbereiten
- Raspberry Pi 1 gegen Raspberrry Pi 3 austauschen
- Rasbian lite herunterladen
- Das heruntergeladene Image mit einem Imaging-Tool auf eine microSD Karte brennen
- In der boot Partition eine Datei „ssh“ erstellen, um den initialen Zugriff per SSH zu ermöglichen
- Mithilfe eines IP-Scanners die IP-Adresse des Raspberry Pi herausfinden
- Mit PuTTY auf die gefundene IP verbinden
Packet Forwarder einrichten
sudo raspi-config
Unter Interfacing Options P4 SPI auswählen
Git installieren
$ sudo apt get install git
git clone https://github.com/Lora-net/lora_gateway.git
git clone https://github.com/Lora-net/packet_forwarder.git
cd ~/lora_gateway
make all
cd ~/packet_forwarder
make all
In der global_conf und local conf den Port von 1680 auf 1700 ändern
nano ~/packet_forwarder/lora_pkt_fwd/global_conf.json
und
nano ~/packet_forwarder/lora_pkt_fwd/local_conf.json
cd ~/packet_forwarder/lora_pkt_fwd
./lora_pkt_fwd
IP-Symcon einrichten
IP-Symcon nach Anleitung auf dem Pi installieren und eine MQTT Instanz erstellen, welche auf den standartmäßigen Port 1883 lauscht.[b]
Vorbereitung für Chirpstack[/b]
Abhängigkeiten installiern
sudo apt install redis-server redis-tools postgresql
sudo -u postgres psql
create role chirpstack_as with login password 'dbpassword';
create role chirpstack_ns with login password 'dbpassword';
create database chirpstack_as with owner chirpstack_as;
create database chirpstack_ns with owner chirpstack_ns;
\c chirpstack_as
create extension pg_trgm;
create extension hstore;
[i]# Einrichtung der Datenbank überprüfen:[/i]
psql -h localhost -U chirpstack_as -W chirpstack_as
\q
Chirpstack Repository Einrichten
sudo apt install apt-transport-https dirmngr
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1CE2AFD36DBCCA00
sudo echo "deb https://artifacts.chirpstack.io/packages/3.x/deb stable main" | sudo tee /etc/apt/sources.list.d/chirpstack.list
sudo apt update
Bridge
sudo apt install chirpstack-gateway-bridge
[i]# gateway-bridge starten[/i]
sudo systemctl start chirpstack-gateway-bridge
[i]# gateway-bridge beim booten starten[/i]
sudo systemctl enable chirpstack-gateway-bridge
Network-Server
sudo apt install chirpstack-network-server
[i]# network-server starten[/i]
sudo systemctl start chirpstack-network-server
[i]# network-server beim booten starten[/i]
sudo systemctl enable chirpstack-network-server
Die Konfigurationsdatei um die vorher festgelegten Zugangsdaten für die PostgreSQL Datenbanken erweitern
sudo nano /etc/chirpstack-network-server/chirpstack-network-server.toml
[postgresql]
dsn="postgres://chirpstack_ns:dbpassword@localhost/chirpstack_ns?sslmode=disable"
Application-Server
sudo apt install chirpstack-application-server
Die Konfigurationsdateie anpassen und um die PostgreSQL Zugangsdaten erweitern.
Das Secret sollte natürlich besser gewählt werden. Beispielsweise mit dem Befehl openssl rand -base64 32
sudo nano /etc/chirpstack-application-server/chirpstack-application-server.toml
[postgresql]
dsn="postgres://chirpstack_as:dbpassword@localhost/chirpstack_as?sslmode=disable"
[application_server.external_api]
jwt_secret="verysecret"
[i]# application-server starten[/i]
sudo systemctl start chirpstack-application-server
[i]# application-server beim booten starten[/i]
sudo systemctl enable chirpstack-application-server
Pi rebooten
sudo reboot
Mit folgendem Skript könnt ihr die empfangenen Daten in entsprechende Variablen übertragen
Um die empfangenen Werte in Variablen zu übertragen erstellt ihr ein Skript mit folgendem Inhalt
<?php
$data = json_decode($_IPS['VALUE'], true);
foreach($data["object"] as $key => $value) {
$vid = CreateVariableByIdent(IPS_GetParent($_IPS['VARIABLE']), $key, $key, 2);
SetValue($vid, $value);
}
function CreateVariableByIdent($id, $ident, $name, $type, $profile = "") {
$vid = @IPS_GetObjectIDByIdent($ident, $id);
if($vid === false) {
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, $id);
IPS_SetName($vid, $name);
IPS_SetIdent($vid, $ident);
if($profile != "") {
IPS_SetVariableCustomProfile($vid, $profile);
}
}
return $vid;
}
Unter dem Skript fügt ihr ein Ereignis hinzu, welches ausgelöst wird, wenn sich die Value Variable unter dem rx Objekt des Gerätes ändert.