Pāriet uz saturu

SmartHome - GPS datu noteikšana

Lasīšanas laiks 4 protokols

Atjaunināts - marts 10, 2025

Ja vēlaties noteikt GPS datus, izmantojot SmartHome, piemēram, lai pieprasītu vietējos laikapstākļu datus, to var izdarīt ar Teltonika RUTX50 maršrutētāju bez papildu aparatūras vai programmatūras ar Homematic / RaspberryMatic.

Pamati

Teltonika maršrutētāji RUTX... ļauj sūtīt un saņemt SMS, izmantojot aktivizēto SIM karti. Ir iespējams arī nosūtīt atrašanās vietas datus, atbildot uz SMS ar saturu "Parole gps„.

Ienākošo SMS sarakstu un SMS saturu var apskatīt, izmantojot HTTP pieprasījumu. Pašreizējos ģeogrāfiskā garuma un platuma datus var nolasīt no SMS, kas saņemta, atbildot uz SMS pieprasījumu.

Tagad tos var tālāk apstrādāt, izmantojot skriptu SmarttHome automatizācijas sistēmā, izmantojot HomeMatic vai RaspberryMatic. Ceļojot pastāvīgi mainīgos ģeodatus var izmantot pastāvīgi atjauninātiem laikapstākļu pieprasījumiem, pamatojoties uz pašreizējo atrašanās vietu, piemēram, izmantojot bezmaksas pakalpojumu no openweathermap.org izmantot.

Pakalpojumu sniedzēja SMS iestatījumi

Atkarībā no pakalpojumu sniedzēja maršrutētājā izmantotā SIM karte var būt jāaktivizē SMS saņemšanai. Parasti to veic attiecīgajos iestatījumos pēc pieteikšanās pakalpojumu sniedzēja tīmekļa vietnē.

Lai gan tā sauktos vairāku karšu piedāvājumus var izmantot zvanīšanai un zvanīšanai visās ierīcēs, kas aprīkotas ar šādu SIM karti, SMS tiek atbalstītas tikai VIENĀ no SIM kartēm!

Iestatīšana - Teltonika maršrutētājs

Pakalpojumi - Mobilo sakaru pakalpojumi - SMS vārti

  • Mobilā ziņa/saņemt iestatījumus - Ieslēgts
  • Lietotājvārds: Pieteikšanās vārds
  • Parole: LoginPassword

Pakalpojumi - Ievade/izvade - Post/Get

  • I/O Post/Get Settings - Ieslēgts
  • Lietotājvārds: Pieteikšanās vārds
  • Parole: LoginPassword

Iestatīšana - RaspberryMatic

CUx dēmona instalēšana

CUx dēmons ir papildinājums, kas nodrošina HomeMatic / RaspberryMatic virtuālās ierīces, ko var izmantot kā mazāk apgrūtinošu sistēmas izsaukumu aizstājēju, piemēram, SMS ziņojumu nosūtīšanai uz maršrutētāju, izmantojot HTTP pieprasījumu.

Papildierīce tiek instalēta sadaļā Iestatījumi - Papildu programmatūra, kur varat lejupielādēt papildierīces failu, noklikšķinot uz pogas. Izvēlieties failu attiecīgajā datora lejupielādes mapē un noklikšķiniet uz pogas Uzstādīt var ielādēt un uzstādīt centrā.

CUx dēmons - Ierīces izveide

CUx dēmons tiek izsaukts, izmantojot System, noklikšķinot uz pogas CUx dēmons.

Noklikšķiniet uz pogas augšējā labajā stūrī Ierīces atver saskarni. Augšējā kreisajā stūrī, sadaļā CUxD ierīces tips, no tālāk dotā saraksta tiek izvēlēts šāds Sistēma izvēlēts.

Funkcija Exec ir izvēlēts, laukā Nosaukums tiek ievadīts atbilstošs apzīmējums, piem.,. GPSun pēc tam noklikšķiniet uz pogas Ierīces izveide CCUierīce ir saglabāta.

Pēc tam izveidotā ierīce tiek parādīta labajā logā ar tās ID, piemēram, CUX2801001, un to var adresēt skriptos, izmantojot šo ID.

Skripti

SMS nosūtīšana GPS datu izvadei

Informācija kvadrātiekavās jāaizstāj ar saviem datiem:

string url="'http://[Maršrutētāja IP]/cgi-bin/sms_send?username=[[Lietotājvārds]&password=[parole]&number=[Starptautiskais tālruņa numurs]&text=[Parole gps]'“;
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - "#url);

Lūdzu, ņemiet vērā, ka virkne ir ietverta ar dubultajām (") UN vienreizējām (') komatām!

Šis skripts tiek izmantots programmā, kas jāizveido. GPS_Loc_Update un nākamais skripts, kas savukārt izsauc programmu GPS_Data, tiek aizkavēts par 30 sekundēm, lai gaidītu, kamēr tiks saņemta SMS ar PÜS datiem:

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

Programma GPS_Loc_Update var izpildīt reizi dienā vai īsākos intervālos atkarībā no prasībām, izmantojot laika kontroli.

Izvades SMS saraksts

Lai nolasītu GPS datus, maršrutētājam tiek pieprasīts izvadīt SMS sarakstu, izmantojot HTTP pieprasījumu.

Šim skriptam ir nepieciešami divi DRAWING CHAIN tipa mainīgie, kas jārada sadaļā Settings - System variables (Iestatījumi - Sistēmas mainīgie) apakšā, noklikšķinot uz pogas New (Jauns):

  • W_Lat (ģeogrāfiskā platuma saglabāšanai)
  • W_Lon (ģeograrpiskā garuma saglabāšanai)

Skripta saturs (rindas ar sākuma Izsaukuma zīme ir komentāri; WriteLine-Instrukcijas tiek izmantotas tikai izejas kontrolei, un tās var dzēst):

var url = "http://[Maršrutētāja IP]/cgi-bin/sms_list?username=[[Lietotājvārds]&password=[parole]“;

! Mainīgo deklarēšana
var posValueStart;
var posValueEnd;
var pos;
var data;
var posStart;
var posEnd; string stderr; string stdout;

! WGET komanda HTTP pieprasījuma virknes pārsūtīšanai uz maršrutētāju
system.Exec("wget -q -O - '"#url#"'", &stdout, &stderr);

! Vaicājuma rezultāta izvadīšana pārbaudei
WriteLine(stdout);

! Indekss: 1
! Datums: Fri Jan 26 11:01:02 2024
! Nosūtītājs: +49xxxxxxxxxxxxxxx
! Teksts: Fiksācijas laiks: 2024-01-26, 11:01:01 Ģeogrāfiskais platums: 54.834682 Ģeogrāfiskais garums: 12.040196 http://maps.google.com/?
! q=54.834682,12.040196&om=1speed:0
! Statuss: lasīt

! GPS datu nolasīšana
pos = 0;
! Meklējamās vērtības sākuma pozīcija
posStart = 'Ģeogrāfiskais platums: ';
! Meklējamās vērtības beigu atrašanās vieta
posEnd = ' Garuma garums: ';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart;
! ir meklētā virkne:
string Latitude = stdout.Substr(posValueStart, posValueEnd);
! Virknes (rakstzīmju virknes) konvertēšana skaitlī ar peldošo komata punktu
var lat = Latitude.ToFloat();
! Ģeogrāfiskā garuma izvadīšana pārbaudei
WriteLine("Platums");WriteLine(Platums);

! Ģeogrāfiskā garuma saglabāšana mainīgajā W_Lat
dom.GetObject('W_Lat').State(lat);

pos = 0;
posStart = 'Ģeogrāfiskais garums: ';
posEnd = ' http';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart;
string Garuma garums = stdout.Substr(posValueStart, posValueEnd);
lon = Longitude.ToFloat();
WriteLine("Ģeogrāfiskais garums");WriteLine(lon);

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

Programmā nav izpildes nosacījuma, jo tā tiek iniciēta ar iepriekš minētās programmas vai skripta palīdzību.

Ģeogrāfisko informāciju tagad var izmantot, lai meklētu laikapstākļu datus par šo atrašanās vietu. Šim nolūkam tiek izveidota cita programma, kas tiek periodiski palaista, izmantojot laika kontroli, un, izmantojot skriptu, ievada abas vērtības iepriekšminētā meteoroloģisko datu pakalpojuma HTTP pieprasījuma rindā, tādējādi pieprasījumā ņemot vērā mainīgās atrašanās vietas.

Programma W_Data_OWM

URL sastādīšana

! GPS_Data aizpildīto mainīgo ielāde W_Lat un W_Lon un piešķirot mainīgajiem url_1 un 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);

! Sastādiet URL, izmantojot mainīgo saturu no url_1 un url_2
! [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] ir laika apstākļu pakalpojuma API atslēga, kas saņemta pēc reģistrācijas.
var url = "https://api.openweathermap.org/data/2.5/weather?lat="#url_1#"&lon="#url_2#"&appid=[xxxxxxxxxxxxxxxxxxxxxxxxx]&units=metric";
! Pilnas virknes izvadīšana pārbaudei
WriteLine(url);

Pēc tam seko tā pati procedūra mainīgo deklarēšanai, WGET komanda, vaicājuma rezultāta izvadīšana pārbaudei un vēlamo laikapstākļu datu nolasīšanai (sk. Dokumentācija) saskaņā ar procedūru, kas aprakstīta GPS datiem.

Atbildēt

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti kā *

lvLatvian
We've detected you might be speaking a different language. Do you want to change to:
en_US English
de_DE German
en_US English
fr_FR French
sv_SE Swedish
es_ES Spanish
pt_PT Portuguese
it_IT Italian
nl_NL Dutch
nb_NO Norwegian
fi Finnish
da_DK Danish
cs_CZ Czech
hu_HU Hungarian
el Greek
ru_RU Russian
tr_TR Turkish
ja Japanese
lt_LT Lithuanian
lv Latvian
sl_SI Slovenian
sk_SK Slovak
Close and do not switch language