Tartalomjegyzék
Frissítve - március 10, 2025
Ha a SmartHome segítségével szeretne GPS adatokat meghatározni, pl. a helyi időjárási adatok lekérdezéséhez, ez egy Teltonika RUTX50 routerrel további hardver vagy szoftver nélkül megvalósítható a Homematic / RaspberryMatic segítségével.
Alapok
A Teltonika RUTX... routerek lehetővé teszik az SMS küldését és fogadását az aktivált SIM-kártyán keresztül. Lehetőség van a pozícióadatok küldésére is, válaszul egy SMS-re, amelynek tartalma "Jelszó gps„.
A bejövő SMS-ek listája és az SMS-ek tartalma HTTP-kéréssel megtekinthető. Az aktuális hosszúsági és szélességi adatok kiolvashatók az SMS-kérésre válaszul kapott SMS-ből.
Ezeket mostantól a SmarttHome automatizálási rendszeren belül a HomeMatic vagy a RaspberryMatic segítségével szkript segítségével tovább lehet feldolgozni. Utazás közben a folyamatosan változó geoadatok felhasználhatók az aktuális hely alapján folyamatosan frissülő időjárás-lekérdezéshez, pl. a következő ingyenes szolgáltatáson keresztül openweathermap.org felhasználni.
Szolgáltató SMS beállításai
A szolgáltatótól függően előfordulhat, hogy az útválasztóban használt SIM-kártyát aktiválni kell az SMS-hez. Ez általában a szolgáltató weboldalára való bejelentkezés után a megfelelő beállításoknál történik.
Míg az úgynevezett többkártyás ajánlatokkal az összes ilyen SIM-kártyával felszerelt eszközön lehet hívásokat kezdeményezni és telefonálni, addig az SMS csak EGY SIM-kártyán támogatott!
Beállítás - Teltonika Router
Szolgáltatások - Mobil segédprogramok - SMS Gateway
- Mobil postázás/beállítások - Engedélyezve
- Felhasználónév: Bejelentkezési név
- Jelszó: LoginPassword
Szolgáltatások - Input/Output - Post/Get
- I/O Post/Get Settings - Engedélyezve
- Felhasználónév: Bejelentkezési név
- Jelszó: LoginPassword
Beállítás - RaspberryMatic
CUx démon telepítése
A CUx démon egy olyan kiegészítő, amely virtuális eszközöket biztosít a HomeMatic / RaspberryMatic-on belül, amelyek a rendszerhívások kevésbé megterhelő helyettesítőjeként használhatók, például SMS üzenetek küldésére a routerre HTTP kérésen keresztül.
Az AddOn telepítése a Beállítások - További szoftverek menüponton keresztül történik, ahol az AddOn fájlt a gombra kattintva töltheti le. Fájl kiválasztása a számítógép megfelelő letöltési mappájában, és kattintson a gombra Telepítse a betölthető és telepíthető a központba.
CUx démon - Eszköz létrehozása
A CUx démon a Rendszer segítségével hívható elő a gombra kattintva. CUx démon.
Kattintson a jobb felső sarokban lévő gombra Eszközök megnyitja a felületet. A bal felső sarokban, a CUxD eszköztípus alatt a következő listából választhatunk Rendszer kiválasztva.
A funkció Végrehajtó van kiválasztva, a megfelelő megnevezés kerül beírásra a Név mezőbe, pl. GPSmajd kattintson a gombra Eszköz létrehozása a CCU-na készülék elmentésre kerül.
A létrehozott eszköz ezután a jobb oldali ablakban megjelenik az azonosítójával, pl. CUX2801001, és a szkriptekben ennek az azonosítónak a használatával lehet megszólítani.
Szkriptek
SMS küldése a GPS-adatok kimenetéhez
A szögletes zárójelben lévő adatokat saját adatokkal kell helyettesíteni:
string url="'http://[Az útválasztó IP címe]/cgi-bin/sms_send?username=[Felhasználónév]&password=[jelszó]&number=[Nemzetközi telefonszám]&text=[Jelszó gps]'“;
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - "#url);
Kérjük, vegye figyelembe, hogy a karakterláncot dupla (") ÉS szimpla (') idézőjelek zárják!
Ezt a szkriptet a létrehozandó programban kell használni GPS_Loc_Update és a következő szkript, amely viszont a GPS_Data programot hívja, 30 másodperccel késleltetve van, hogy megvárja a PÜS-adatokat tartalmazó SMS megérkezését:
var programObj = dom.GetObject("GPS_Data");
programObj.ProgramExecute();
Program GPS_Loc_Update az igényektől függően naponta egyszer vagy rövidebb időközönként, idővezérléssel is végrehajtható.

Kimeneti SMS lista
A GPS-adatok kiolvasásához az útválasztótól az SMS-listát HTTP-kérésen keresztül kell kérni.
Ehhez a szkripthez két DRAWING CHAIN típusú változóra van szükség, amelyeket a Beállítások - Rendszer változók menüpont alatt kell létrehozni az Új gombra kattintva:
- W_Lat (a földrajzi szélesség mentéséhez)
- W_Lon (a földrajzi hosszúság mentéséhez)
A forgatókönyv tartalma (sorok vezető Felkiáltójel a megjegyzések; WriteLine-Az utasítások csak a kimenet vezérlésére szolgálnak, és törölhetők):
var url = "http://[[Az útválasztó IP címe]/cgi-bin/sms_list?username=[Felhasználónév]&password=[jelszó]“;
! A változók deklarálása
var posValueStart;
var posValueEnd;
var pos;
var data;
var posStart;
var posEnd; string stderr; string stdout;
! WGET parancs a HTTP-kérelmi karakterlánc továbbítására az útválasztónak
system.Exec("wget -q -O - '"#url#"'", &stdout, &stderr);
! A lekérdezés eredményének kimenete az ellenőrzéshez
WriteLine(stdout);
! Index: 1
! Dátum: péntek jan 26 11:01:02 2024
! Feladó: +49xxxxxxxxxxxxxxxxxxx
! Szöveg: 2024-01-26, 11:01:01 Szélesség: 54.834682 Hosszúság: 12.040196 http://maps.google.com/?
! q=54.834682,12.040196&om=1speed:0
! Állapot: olvasott
! GPS adatok olvasása
pos = 0;
! A keresett érték kezdetének pozíciója
posStart = 'Szélesség: ';
! A keresett érték végének pozíciója
posEnd = ' Hosszúság: ';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart;
! a keresett karakterlánc:
string Latitude = stdout.Substr(posValueStart, posValueEnd);
! A karakterlánc (karakterlánc) átalakítása lebegőpontos számmá
var lat = Latitude.ToFloat();
! A földrajzi hosszúság kimenete az ellenőrzéshez
WriteLine("Szélesség");WriteLine(Szélesség);
! A földrajzi hosszúság elmentése a változóban W_Lat
dom.GetObject('W_Lat').State(lat);
pos = 0;
posStart = 'Hosszúság: ';
posEnd = ' http';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart;
string Longitude = stdout.Substr(posValueStart, posValueEnd);
var lon = Longitude.ToFloat();
WriteLine("Longitude");WriteLine(lon);
dom.GetObject('W_Lon').State(lon);
A program nem tartalmaz végrehajtási feltételt, mivel a fenti program vagy szkript indítja el.

A földrajzi információk most már felhasználhatók az adott hely időjárási adatainak lekérdezésére. Ehhez egy másik programot hozunk létre, amely az idővezérlésen keresztül periodikusan elindul, és egy szkript segítségével beilleszti a két értéket a fent említett időjárási szolgáltatás HTTP-kérelmi karakterláncába, így a lekérdezésben figyelembe veszi a változó helyszíneket.
Program W_Data_OWM

Az URL összeállítása
! A GPS_Data változóinak betöltése W_Lat és W_Lon és a változókhoz rendelve url_1 és 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);
! Állítsa össze az URL-t a változó tartalmának felhasználásával a url_1 és url_2
! [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] az időjárás-szolgáltatás API-kulcsa, amelyet a regisztráció után kapott.
var url = "https://api.openweathermap.org/data/2.5/weather?lat="#url_1#"&lon="#url_2#"&appid=[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]&units=metric";
! A teljes karakterlánc kimenete az ellenőrzéshez
WriteLine(url);
Ezt követi ugyanaz az eljárás a változók deklarálására, a WGET parancs, a lekérdezés eredményének kiírása az ellenőrzéshez és a kívánt időjárási adatok kiolvasása (ld. Dokumentáció) a GPS-adatokra megadott eljárás szerint.