Skoči na vsebino

SmartHome - Določanje podatkov GPS

Čas branja 4 minute

Posodobljeno - marec 10, 2025

Če želite določiti podatke GPS z uporabo programa SmartHome, npr. za poizvedovanje po lokalnih vremenskih podatkih, lahko to izvedete z usmerjevalnikom Teltonika RUTX50 brez dodatne strojne ali programske opreme s Homematic / RaspberryMatic.

Osnove

Usmerjevalniki Teltonika RUTX... omogočajo pošiljanje in prejemanje sporočil SMS prek aktivirane kartice SIM. Prav tako je mogoče poslati podatke o položaju kot odgovor na sporočilo SMS z vsebino "Geslo gps„.

Seznam prejetih SMS-ov in vsebino SMS-ov si lahko ogledate prek zahteve HTTP. Trenutne podatke o zemljepisni dolžini in širini lahko preberete iz sporočila SMS, prejetega kot odgovor na zahtevo SMS.

Te podatke lahko zdaj nadalje obdelate s skripto v sistemu za avtomatizacijo SmarttHome z uporabo sistema HomeMatic ali RaspberryMatic. Na potovanjih se lahko stalno spreminjajoči geopodatki uporabijo za stalno posodobljeno vremensko poizvedbo glede na trenutno lokacijo, npr. prek brezplačne storitve podjetja openweathermap.org uporabiti.

Nastavitve ponudnika SMS

Odvisno od ponudnika bo morda treba aktivirati kartico SIM, ki se uporablja v usmerjevalniku, za sporočila SMS. To običajno storite v ustreznih nastavitvah po prijavi na spletno mesto ponudnika.

S tako imenovanimi ponudbami z več karticami lahko zvonite in kličete v vseh napravah, ki so opremljene s takšno kartico SIM, sporočila SMS pa so podprta le na JEDNI kartici SIM!

Nastavitev - usmerjevalnik Teltonika

Storitve - Mobilni pripomočki - SMS Gateway

  • Mobilna objava/pridobiti nastavitve - Omogočeno
  • Uporabniško ime: Prijavno ime
  • Geslo: LoginPassword

Storitve - Vnos/iznos - Pošlji/pridobi

  • I/O Post/Get Settings - Omogočeno
  • Uporabniško ime: Prijavno ime
  • Geslo: LoginPassword

Nastavitev - RaspberryMatic

Namestitev demona CUx

Demon CUx je dodatek, ki zagotavlja virtualne naprave v sistemu HomeMatic / RaspberryMatic, ki se lahko uporabljajo kot manj obremenjujoče nadomestilo za sistemske klice, npr. za pošiljanje sporočil SMS usmerjevalniku prek zahteve HTTP.

Dodatek se namesti prek možnosti Nastavitve - Dodatna programska oprema, kjer lahko prenesete datoteko dodatka s klikom na gumb Izberite datoteko v ustrezno mapo za prenos v računalniku in kliknite gumb Namestitev lahko naložite na središče in ga namestite.

Demon CUx - Ustvarjanje naprave

Demon CUx prikličete prek sistema s klikom na gumb Demon CUx.

Kliknite gumb v zgornjem desnem kotu Naprave odpre vmesnik. V zgornjem levem kotu pod vrsto naprave CUxD je s spodnjega seznama izbrano naslednje Sistem izbrani.

Funkcija Izvajalec je izbrana, se v polje Ime vnese ustrezna oznaka, npr. GPSin nato kliknite na gumb Ustvarjanje naprave v CCUnaprava je shranjena.

Ustvarjena naprava se nato v desnem oknu prikaže s svojim ID, npr. CUX2801001, in jo lahko v skriptih naslovite z uporabo tega ID.

Skripti

Pošlji SMS za izhod podatkov GPS

Podatke v oglatih oklepajih je treba nadomestiti z lastnimi podatki:

string url="'http://[IP usmerjevalnika]/cgi-bin/sms_send?username=[Uporabniško ime]&password=[[geslo]&number=[Mednarodna telefonska številka]&text=[Geslo gps]'“;
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - "#url);

Upoštevajte, da je niz zaprt z dvojnimi (") IN enojnimi (') narekovaji!

Ta skripta se uporablja v programu, ki ga je treba ustvariti. GPS_Loc_Update naslednja skripta, ki kliče program GPS_Data, pa je odložena za 30 sekund, da se počaka na prejem sporočila SMS s podatki PÜS:

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

Program GPS_Loc_Update se lahko izvede enkrat na dan ali v krajših časovnih intervalih, odvisno od zahtev, s časovnim nadzorom.

Izhodni seznam SMS

Za branje podatkov GPS se od usmerjevalnika zahteva, da prek zahteve HTTP pošlje seznam SMS.

Ta skripta zahteva dve spremenljivki vrste DRAWING CHAIN, ki ju je treba ustvariti v razdelku Nastavitve - Sistemske spremenljivke na dnu s klikom na gumb Novo:

  • W_Lat (za shranjevanje geografske širine)
  • W_Lon (za shranjevanje geografske dolžine)

Vsebina scenarija (vrstice z vodilnimi Izgovorni znak so pripombe; WriteLine-Navodila se uporabljajo samo za nadzor izhoda in jih je mogoče izbrisati):

var url = "http://[IP usmerjevalnika]/cgi-bin/sms_list?username=[Uporabniško ime]&password=[[geslo]“;

! Izjava spremenljivk
var posValueStart;
var posValueEnd;
var pos;
var data;
var posStart;
var posEnd; string stderr; string stdout;

! Ukaz WGET za prenos niza zahtevkov HTTP v usmerjevalnik
system.Exec("wget -q -O - '"#url#"'", &stdout, &stderr);

! Izpis rezultata poizvedbe za preverjanje
WriteLine(stdout);

! Indeks: 1
! Datum: pet jan 26 11:01:02 2024
! Pošiljatelj: +49xxxxxxxxxxxxx
! Besedilo: Čas popravka: 2024-01-26, 11:01:01 Zemljepisna širina: 54.834682 Zemljepisna dolžina: 12.040196 http://maps.google.com/?
! q=54.834682,12.040196&om=1speed:0
! Stanje: preberi

! Preberi podatke GPS
pos = 0;
! Položaj začetka iskane vrednosti
posStart = 'Zemljepisna širina: ';
! Položaj konca iskane vrednosti
posEnd = ' Dolžina: ';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart;
! je iskani niz:
string Latitude = stdout.Substr(posValueStart, posValueEnd);
! Pretvorba niza (znakovnega niza) v število s plavajočo vejico
var lat = Latitude.ToFloat();
! Izpis geografske dolžine za preverjanje
WriteLine("Zemljepisna širina");WriteLine(Zemljepisna širina);

! Shranjevanje geografske dolžine v spremenljivko W_Lat
dom.GetObject('W_Lat').State(lat);

pos = 0;
posStart = 'Zemljepisna dolžina: ';
posEnd = ' http';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart;
string Zemljepisna dolžina = stdout.Substr(posValueStart, posValueEnd);
var lon = Longitude.ToFloat();
WriteLine("Zemljepisna dolžina");WriteLine(lon);

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

Program ne vsebuje pogoja za izvajanje, saj se sproži z zgornjim programom ali skripto.

Geografske informacije lahko zdaj uporabite za poizvedbo po vremenskih podatkih za to lokacijo. V ta namen se ustvari še en program, ki se periodično zažene prek časovnega nadzora in s pomočjo skripte vstavi obe vrednosti v niz zahtevkov HTTP zgoraj omenjene vremenske storitve, s čimer se v poizvedbi upoštevajo spreminjajoče se lokacije.

Program W_Data_OWM

Sestavljanje URL-ja

! Nalaganje spremenljivk, izpolnjenih v GPS_Data W_Lat in . W_Lon in dodelitev spremenljivkam url_1 in . 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);

! Sestavite naslov URL z uporabo vsebine spremenljivke iz url_1 in . url_2
! [xxxxxxxxxxxxxxxxxxxxxxxxxxxxx] predstavlja ključ API vremenske storitve, ki ga prejmete po registraciji
var url = "https://api.openweathermap.org/data/2.5/weather?lat="#url_1#"&lon="#url_2#"&appid=[xxxxxxxxxxxxxxxxxxxxx]&units=metric";
! Izpis celotnega niza za preverjanje
WriteLine(url);

Temu sledi enak postopek za deklariranje spremenljivk, ukaz WGET, izpis rezultata poizvedbe za preverjanje in branje želenih vremenskih podatkov (glej Dokumentacija) v skladu s postopkom za podatke GPS.

Dodaj odgovor

Vaš e-naslov ne bo objavljen. * označuje zahtevana polja

sl_SISlovenian