Obsah
Aktualizované - marec 10, 2025
Ak chcete zisťovať údaje GPS pomocou SmartHome, napr. na vyhľadávanie miestnych údajov o počasí, môžete to realizovať pomocou smerovača Teltonika RUTX50 bez ďalšieho hardvéru alebo softvéru s Homematic / RaspberryMatic.
Základy
Routery Teltonika RUTX... umožňujú odosielanie a prijímanie SMS prostredníctvom aktivovanej SIM karty. Je tiež možné odosielať údaje o polohe ako odpoveď na SMS s obsahom "Heslo gps„.
Zoznam prichádzajúcich SMS a obsah SMS možno zobraziť prostredníctvom požiadavky HTTP. Aktuálne údaje o zemepisnej dĺžke a šírke možno prečítať z SMS prijatej ako odpoveď na žiadosť o SMS.
Tie sa teraz dajú ďalej spracovať pomocou skriptu v rámci automatizačného systému SmarttHome pomocou HomeMatic alebo RaspberryMatic. Pri cestovaní možno neustále sa meniace geodáta použiť na priebežne aktualizované vyhľadávanie počasia na základe aktuálnej polohy, napr. prostredníctvom bezplatnej služby od openweathermap.org využiť.
Nastavenia poskytovateľa SMS
V závislosti od poskytovateľa môže byť potrebné aktivovať kartu SIM používanú v routeri na odosielanie správ SMS. Zvyčajne sa to vykonáva v príslušných nastaveniach po prihlásení na webovej stránke poskytovateľa.
Zatiaľ čo takzvané ponuky s viacerými kartami možno používať na volanie a uskutočňovanie hovorov na všetkých zariadeniach vybavených takouto kartou SIM, SMS je podporovaná len na JEDNEJ z kariet SIM!
Nastavenie - Smerovač Teltonika
Služby - Mobilné nástroje - SMS brána
- Mobilné nastavenia príspevku/prílohy - Povolené
- Používateľské meno: Prihlasovacie meno
- Heslo: LoginPassword
Služby - Vstup/výstup - Post/Get
- I/O Post/Get Settings - Povolené
- Používateľské meno: Prihlasovacie meno
- Heslo: LoginPassword
Nastavenie - RaspberryMatic
Inštalácia démona CUx
Démon CUx je doplnok, ktorý poskytuje virtuálne zariadenia v rámci HomeMatic / RaspberryMatic, ktoré možno použiť ako menej náročnú náhradu systémových volaní, napr. na odosielanie SMS správ do smerovača prostredníctvom požiadavky HTTP.
AddOn sa inštaluje cez Nastavenia - Dodatočný softvér, kde si môžete stiahnuť súbor AddOn kliknutím na tlačidlo Vyberte súbor v príslušnom priečinku na stiahnutie v počítači a kliknite na tlačidlo Inštalácia stránky možno načítať a nainštalovať do centra.
Démon CUx - Vytvorenie zariadenia
Démon CUx sa vyvolá prostredníctvom systému kliknutím na tlačidlo Démon CUx.
Kliknite na tlačidlo vpravo hore Zariadenia otvorí rozhranie. Vľavo hore, v časti Typ zariadenia CUxD, sa z nasledujúceho zoznamu vyberie Systém vybrané.
Funkcia Exec je vybraný, do poľa Názov sa zadá príslušné označenie, napr. GPSa potom kliknite na tlačidlo Vytvorenie zariadenia na jednotke CCUzariadenie je uložené.
Vytvorené zariadenie sa potom zobrazí v pravom okne so svojím ID, napr. CUX2801001, a v skriptách ho možno adresovať pomocou tohto ID.
Skripty
Odoslanie SMS pre výstup údajov GPS
Informácie v hranatých zátvorkách je potrebné nahradiť vlastnými údajmi:
string url="'http://[IP adresa smerovača]/cgi-bin/sms_send?username=[Meno používateľa]&heslo=[heslo]&number=[Medzinárodné telefónne číslo]&text=[Heslo gps]'“;
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - "#url);
Upozorňujeme, že reťazec je uzavretý v dvojitých (") A jednoduchých (') úvodzovkách!
Tento skript sa používa v programe, ktorý sa má vytvoriť GPS_Loc_Update a nasledujúci skript, ktorý zase volá program GPS_Data, sa oneskorí o 30 sekúnd, aby sa počkalo na prijatie SMS s údajmi PÜS:
var programObj = dom.GetObject("GPS_Data");
programObj.ProgramExecute();
Program GPS_Loc_Update sa môže vykonávať raz denne alebo v kratších intervaloch v závislosti od požiadaviek, a to prostredníctvom časového riadenia.

Výstupný zoznam SMS
Aby bolo možné načítať údaje GPS, smerovač je požiadaný o odoslanie zoznamu SMS prostredníctvom požiadavky HTTP.
Tento skript vyžaduje dve premenné typu DRAWING CHAIN, ktoré je potrebné vytvoriť v časti Nastavenia - Systémové premenné v dolnej časti kliknutím na tlačidlo Nový:
- W_Lat (na uloženie zemepisnej šírky)
- W_Lon (na uloženie zemepisnej dĺžky)
Obsah skriptu (riadky s úvodným Výkričník sú pripomienky; WriteLine-Pokyny sa používajú len na riadenie výstupu a môžu byť vymazané):
var url = "http://[IP adresa smerovača]/cgi-bin/sms_list?username=[Meno používateľa]&heslo=[heslo]“;
! Deklarácia premenných
var posValueStart;
var posValueEnd;
var pos;
var data;
var posStart;
var posEnd; string stderr; string stdout;
! Príkaz WGET na prenos reťazca požiadaviek HTTP do smerovača
system.Exec("wget -q -O - '"#url#"'", &stdout, &stderr);
! Výstup výsledku dotazu na kontrolu
WriteLine(stdout);
! Index: 1
! Dátum: Pi 26. januára 11:01:02 2024
! Odosielateľ: +49xxxxxxxxxxxxx
! Text: Čas opravy: 2024-01-26, 11:01:01 Zemepisná šírka: 54.834682 Zemepisná dĺžka: 12.040196 http://maps.google.com/?
! q=54.834682,12.040196&om=1speed:0
! Stav: čítanie
! Čítanie údajov GPS
pos = 0;
! Pozícia začiatku hľadanej hodnoty
posStart = 'Latitude: ';
! Pozícia konca hľadanej hodnoty
posEnd = ' Zemepisná dĺžka: ';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart;
! je reťazec, ktorý hľadáte:
string Latitude = stdout.Substr(posValueStart, posValueEnd);
! Prevod reťazca (reťazec znakov) na číslo s pohyblivou rádovou čiarkou
var lat = Latitude.ToFloat();
! Výstup zemepisnej dĺžky na kontrolu
WriteLine("Zemepisná šírka");WriteLine(Zemepisná šírka);
! Uloženie zemepisnej dĺžky do premennej W_Lat
dom.GetObject('W_Lat').State(lat);
pos = 0;
posStart = 'Zemepisná dĺžka: ';
posEnd = ' http';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart;
string Longitude = stdout.Substr(posValueStart, posValueEnd);
var lon = Longitude.ToFloat();
WriteLine("Zemepisná dĺžka");WriteLine(lon);
dom.GetObject('W_Lon').State(lon);
Program neobsahuje podmienku pre vykonanie, pretože je iniciovaný prostredníctvom vyššie uvedeného programu alebo skriptu.

Geografické informácie možno teraz použiť na vyhľadávanie údajov o počasí pre toto miesto. Na tento účel sa vytvorí ďalší program, ktorý sa periodicky spúšťa prostredníctvom časového riadenia a pomocou skriptu vkladá tieto dve hodnoty do reťazca požiadavky HTTP uvedenej meteorologickej služby, čím sa v požiadavke zohľadňujú meniace sa miesta.
Program W_Data_OWM

Zloženie adresy URL
! Načítanie premenných vyplnených v GPS_Data W_Lat a W_Lon a priradenie do premenných url_1 a url_2
var url_1 = dom.GetObject("W_Lat").Value();
WriteLine("Lat=");WriteLine(url_1);
var url_2 = dom.GetObject("W_Lon").Value();
WriteLine("Lon=");WriteLine(url_2);
! Zostavte adresu URL pomocou obsahu premennej z url_1 a url_2
! [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] predstavuje kľúč API meteorologickej služby prijatý po registrácii
var url = "https://api.openweathermap.org/data/2.5/weather?lat="#url_1#"&lon="#url_2#"&appid=[xxxxxxxxxxxxxxxxxxxxxxx]&units=metric";
! Výstup celého reťazca na kontrolu
WriteLine(url);
Nasleduje rovnaký postup deklarovania premenných, príkaz WGET, výstup výsledku dotazu na kontrolu a načítanie požadovaných údajov o počasí (pozri Dokumentácia) podľa postupu uvedeného pre údaje GPS.