Přeskočit na obsah

SmartHome - Určení údajů GPS

Doba čtení 4 minuty

Aktualisiert – Březen 10, 2025

Pokud chcete zjišťovat data GPS pomocí SmartHome, např. pro dotazování na místní údaje o počasí, lze to realizovat pomocí routeru Teltonika RUTX50 bez dalšího hardwaru nebo softwaru s Homematic / RaspberryMatic.

Základy

Routery Teltonika RUTX... umožňují odesílání a příjem SMS prostřednictvím aktivované SIM karty. Je také možné odesílat údaje o poloze jako odpověď na SMS s obsahem "Heslo gps„.

Seznam příchozích SMS a obsah SMS lze zobrazit prostřednictvím požadavku HTTP. Aktuální údaje o zeměpisné délce a šířce lze vyčíst z SMS přijatých jako odpověď na požadavek SMS.

Ty lze nyní dále zpracovávat pomocí skriptů v rámci automatizačního systému SmarttHome pomocí HomeMatic nebo RaspberryMatic. Při cestování lze neustále se měnící geodata využít k průběžně aktualizovanému dotazu na počasí podle aktuální polohy, např. prostřednictvím bezplatné služby od společnosti openweathermap.org využívat.

Nastavení SMS poskytovatele

V závislosti na poskytovateli může být nutné aktivovat SIM kartu použitou v routeru pro SMS. To se obvykle provádí v příslušných nastaveních po přihlášení na webové stránky poskytovatele.

Zatímco takzvané nabídky s více kartami lze použít k volání a uskutečňování hovorů na všech zařízeních vybavených takovou kartou SIM, SMS jsou podporovány pouze na JEDNÉ z karet SIM!

Nastavení - Směrovač Teltonika

Služby - Mobilní nástroje - SMS brána

  • Nastavení mobilních příspěvků / Získat nastavení - Povoleno
  • Uživatelské jméno: Přihlašovací jméno
  • Heslo: LoginPassword

Služby - Vstup/výstup - Post/Get

  • I/O Post/Get Settings - Povoleno
  • Uživatelské jméno: Přihlašovací jméno
  • Heslo: LoginPassword

Nastavení - RaspberryMatic

Instalace démona CUx

Démon CUx je doplněk, který poskytuje virtuální zařízení v rámci HomeMatic / RaspberryMatic, které lze použít jako méně náročnou náhradu systémových volání, např. pro odesílání SMS zpráv do směrovače prostřednictvím požadavku HTTP.

AddOn se instaluje přes Nastavení - Další software, kde si můžete stáhnout soubor AddOn kliknutím na tlačítko. Vyberte soubor v příslušné složce pro stahování v počítači a klikněte na tlačítko Instalace lze načíst a nainstalovat do střediska.

Démon CUx - Vytvoření zařízení

Démon CUx se vyvolá prostřednictvím systému kliknutím na tlačítko Démon CUx.

Klikněte na tlačítko vpravo nahoře Zařízení otevře rozhraní. V levém horním rohu v části Typ zařízení CUxD se z níže uvedeného seznamu vybere následující možnost Systém vybrané.

Funkce Exec je vybráno, do pole Název se zadá odpovídající označení, např. GPSa pak klikněte na tlačítko Vytvoření zařízení v jednotce CCUzařízení je uloženo.

Vytvořené zařízení se pak v pravém okně zobrazí se svým ID, např. CUX2801001, a ve skriptech jej lze adresovat pomocí tohoto ID.

Skripty

Odesílání SMS pro výstup dat GPS

Informace v hranatých závorkách je třeba nahradit vlastními údaji:

string url="'http://[IP adresa směrovače]/cgi-bin/sms_send?username=[[Uživatelské jméno]&password=[heslo]&number=[Mezinárodní telefonní číslo]&text=[Heslo gps]'“;
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - "#url);

Upozorňujeme, že řetězec je uzavřen dvojitými (") A jednoduchými (') uvozovkami!

Tento skript se používá v programu, který má být vytvořen. GPS_Loc_Update a následující skript, který zase volá program GPS_Data, se zpozdí o 30 sekund, aby se počkalo na přijetí SMS s údaji PÜS:

var programObj = dom.GetObject("GPS_Data");
programObj.ProgramExecute();

Program GPS_Loc_Update lze provádět jednou denně nebo v kratších intervalech, v závislosti na požadavcích, pomocí časového řízení.

Výstupní seznam SMS

Aby bylo možné vyčíst údaje GPS, je směrovač požádán o vypsání seznamu SMS prostřednictvím požadavku HTTP.

Tento skript vyžaduje dvě proměnné typu DRAWING CHAIN, které je třeba vytvořit v části Nastavení - Systémové proměnné v dolní části kliknutím na tlačítko Nový:

  • W_Lat (pro uložení zeměpisné šířky)
  • W_Lon (pro uložení zeměpisné délky)

Obsah skriptu (řádky s počátečními Vykřičník jsou komentáře; WriteLine-Pokyny se používají pouze pro řízení výstupu a lze je smazat):

var url = "http://[IP adresa směrovače]/cgi-bin/sms_list?username=[Uživatelské jméno]&password=[heslo]“;

! Deklarace proměnných
var posValueStart;
var posValueEnd;
var pos;
var data;
var posStart;
var posEnd; string stderr; string stdout;

! Příkaz WGET pro přenos řetězce požadavků HTTP do směrovače
system.Exec("wget -q -O - '"#url#"'", &stdout, &stderr);

! Výstup výsledku dotazu pro kontrolu
WriteLine(stdout);

! Index: 1
! Datum: pá 26. ledna 11:01:02 2024
! Odesílatel: +49xxxxxxxxxxxxx
! Text: Čas opravy: 2024-01-26, 11:01:01 Zeměpisná šířka: 54.834682 Zeměpisná délka: 12.040196 http://maps.google.com/?
! q=54.834682,12.040196&om=1speed:0
! Stav: číst

! Čtení dat GPS
pos = 0;
! Poloha začátku hledané hodnoty
posStart = 'Latitude: ';
! Poloha konce hledané hodnoty
posEnd = ' Délka: ';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart;
! je řetězec, který hledáte:
string Latitude = stdout.Substr(posValueStart, posValueEnd);
! Převod řetězce (řetězce znaků) na číslo s pohyblivou řádovou čárkou
var lat = Latitude.ToFloat();
! Výstup zeměpisné délky pro kontrolu
WriteLine("Zeměpisná šířka");WriteLine(Zeměpisná šířka);

! Uložení zeměpisné délky do proměnné W_Lat
dom.GetObject('W_Lat').State(lat);

pos = 0;
posStart = 'Délka: ';
posEnd = ' http';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart;
string Longitude = stdout.Substr(posValueStart, posValueEnd);
var lon = Longitude.ToFloat();
WriteLine("Zeměpisná délka");WriteLine(lon);

dom.GetObject('W_Lon').State(lon);

Program neobsahuje podmínku pro provedení, protože je iniciován výše uvedeným programem nebo skriptem.

Zeměpisné informace lze nyní použít k dotazování na údaje o počasí pro toto místo. Za tímto účelem se vytvoří další program, který se periodicky spouští prostřednictvím časového řízení a pomocí skriptu vkládá obě hodnoty do řetězce HTTP požadavku výše uvedené meteorologické služby, čímž se v dotazu zohlední měnící se místa.

Program W_Data_OWM

Sestavení adresy URL

! Načítání proměnných vyplněných v GPS_Data W_Lat a W_Lon a přiřazení proměnným 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);

! Sestavte adresu URL pomocí obsahu proměnné z url_1 a url_2
! [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] představuje klíč API meteorologické služby, který obdržíte po registraci.
var url = "https://api.openweathermap.org/data/2.5/weather?lat="#url_1#"&lon="#url_2#"&appid=[xxxxxxxxxxxxxxxxxxxxxxx]&units=metric";
! Výstup celého řetězce pro kontrolu
WriteLine(url);

Následuje stejný postup pro deklaraci proměnných, příkaz WGET, vypsání výsledku dotazu pro kontrolu a načtení požadovaných údajů o počasí (viz. Dokumentace) podle postupu uvedeného pro údaje GPS.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

cs_CZCzech