Siirry suoraan sisältöön

SmartHome - Määritä GPS-tiedot

Lukuaika 4 minuuttia

Aktualisiert – maaliskuu 10, 2025

Jos haluat määrittää GPS-tiedot SmartHomen avulla, esim. kysyäksesi paikallisia säätietoja, tämä voidaan toteuttaa Teltonika RUTX50 -reitittimellä ilman lisälaitteita tai -ohjelmistoja Homematicin / RaspberryMaticin avulla.

Perusteet

Teltonika-reitittimet RUTX... mahdollistavat tekstiviestien lähettämisen ja vastaanottamisen aktivoidun SIM-kortin kautta. On myös mahdollista lähettää sijaintitietoja vastauksena tekstiviestiin, jonka sisältö on "Salasana gps„.

Saapuneiden tekstiviestien luetteloa ja tekstiviestien sisältöä voidaan tarkastella HTTP-pyynnön kautta. Nykyiset pituus- ja leveyspiiritiedot voidaan lukea tekstiviestipyyntöön vastauksena saadusta tekstiviestistä.

Näitä voidaan nyt käsitellä edelleen SmarttHome-automaatiojärjestelmässä HomeMatic- tai RaspberryMatic-ohjelman avulla. Matkoilla jatkuvasti muuttuvia paikkatietoja voidaan käyttää jatkuvasti päivittyvään, nykyiseen sijaintiin perustuvaan säätilakyselyyn, esim. ilmaisen palvelun kautta osoitteesta openweathermap.org hyödyntää.

Provider SMS-Einstellungen

Je nach Provider muss ggf. noch die im Router eingesetzte SIM-Karte für SMS freigeschaltet werden. Dies geschieht i.d.R. in den zugehörigen Einstellungen nach Einloggen auf der Provider-Webseite.

Während sog. Multi-Card-Angebote das Klingeln und Telefonieren auf allen mit einer solchen SIM-Karte ausgestatteten Geräten umsetzbar ist, wird SMS nur wahlweise auf EINER der SIM-Karten unterstützt!

Asennus - Teltonika-reititin

Palvelut - Mobile Utilities - SMS Gateway

  • Mobile Post/Get Settings - Käytössä
  • Käyttäjätunnus: Kirjautumisnimi
  • Salasana: LoginPassword

Palvelut - Input/Output - Post/Get

  • I/O Post/Get Settings - Käytössä
  • Käyttäjätunnus: Kirjautumisnimi
  • Salasana: LoginPassword

Asennus - RaspberryMatic

Asenna CUx-demoni

CUx-demoni on lisäosa, joka tarjoaa HomeMaticin / RaspberryMaticin sisällä virtuaalisia laitteita, joita voidaan käyttää järjestelmäkutsujen korvaamiseen, esimerkiksi tekstiviestien lähettämiseen reitittimelle HTTP-pyynnön kautta.

AddOn asennetaan Asetukset - Lisäohjelmistot -valikosta, josta voit ladata AddOn-tiedoston napsauttamalla painiketta Valitse tiedosto tietokoneen vastaavassa latauskansiossa ja napsauta painiketta Asenna voidaan ladata ja asentaa keskukseen.

CUx daemon - Luo laite

CUx-demoni kutsutaan Systemin kautta napsauttamalla painiketta CUx-demoni.

Napsauta oikeassa yläkulmassa olevaa painiketta Laitteet avaa käyttöliittymän. Vasemmassa yläkulmassa, CUxD-laitetyypin kohdalla, valitaan alla olevasta luettelosta seuraavat vaihtoehdot Järjestelmä valittu.

Toiminto Exec valitaan, nimikenttään syötetään vastaava nimitys, esim. GPSja napsauta sitten painiketta Laitteen luominen CCU:ssalaite tallennetaan.

Luotu laite näkyy tämän jälkeen tunnuksineen oikeanpuoleisessa ikkunassa, esimerkiksi CUX2801001, ja sitä voidaan käsitellä skripteissä tämän tunnuksen avulla.

Skriptit

Lähetä tekstiviesti GPS-tietojen tulostusta varten

Hakasulkeissa olevat tiedot on korvattava omilla tiedoillasi:

string url="'http://[Reitittimen IP-osoite]/cgi-bin/sms_send?username=[Käyttäjänimi]&salasana=[salasana]&number=[Kansainvälinen puhelinnumero]&text=[Salasana gps]'“;
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - "#url);

Huomaa, että merkkijono on kaksinkertaisten (") JA yksinkertaisten (') pilkkujen ympäröimä!

Tätä komentosarjaa käytetään luotavassa ohjelmassa. GPS_Loc_Update ja seuraava skripti, joka puolestaan kutsuu GPS_Data-ohjelmaa, viivästyy 30 sekunnilla odottamaan PÜS-tiedot sisältävän tekstiviestin saapumista:

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

Ohjelma GPS_Loc_Update voidaan suorittaa kerran päivässä tai lyhyemmin väliajoin tarpeen mukaan aikaohjauksen avulla.

Lähtötekstiviestiluettelo

GPS-tietojen lukemista varten reititintä pyydetään tuottamaan tekstiviestiluettelo HTTP-pyynnöllä.

Tämä skripti vaatii kaksi muuttujaa tyyppiä DRAWING CHAIN, jotka on luotava kohdassa Settings - System variables (Asetukset - Järjestelmämuuttujat) alareunassa napsauttamalla New (Uusi) -painiketta:

  • W_Lat (maantieteellisen leveysasteen tallentamiseksi)
  • W_Lon (maantieteellisen pituusasteen tallentamiseksi)

Käsikirjoituksen sisältö (rivit, joissa on etumerkki Huutomerkki ovat kommentteja; WriteLine-Ohjeita käytetään vain lähtöjen ohjaukseen, ja ne voidaan poistaa):

var url = "http://[Reitittimen IP-osoite]/cgi-bin/sms_list?username=[Käyttäjänimi]&salasana=[salasana]“;

! Muuttujien ilmoittaminen
var posValueStart;
var posValueEnd;
var pos;
var data;
var posStart;
var posEnd; string stderr; string stdout;

! WGET-komento HTTP-pyyntömerkkijonon lähettämiseksi reitittimelle.
system.Exec("wget -q -O - '"#url#"'", &stdout, &stderr);

! Kyselyn tuloksen tulostus tarkistusta varten
WriteLine(stdout);

! Indeksi: 1
! Päiväys: Pe Jan 26 11:01:02 2024
! Lähettäjä: +49xxxxxxxxxxxxxxxxx
! Teksti: 2024-01-26, 11:01:01: Korjaa aika: 2024-01-26, 11:01:01 Leveysaste: 54.834682 Pituuspiiri: 12.040196 http://maps.google.com/?
! q=54.834682,12.040196&om=1speed:0
! Tila: luettu

! Lue GPS-tiedot
pos = 0;
! Haetun arvon alun sijainti
posStart = 'Leveysaste: ';
! Haetun arvon lopun sijainti
posEnd = ' Pituusaste: ';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart;
! on etsimäsi merkkijono:
string Leveysaste = stdout.Substr(posValueStart, posValueEnd);
! Merkkijonon (merkkijono) muuntaminen liukuluvuksi.
var lat = Latitude.ToFloat();
! Maantieteellisen pituusasteen tulo tarkistusta varten
WriteLine("Leveysaste");WriteLine(Leveysaste);

! Maantieteellisen pituuden tallentaminen muuttujaan W_Lat
dom.GetObject('W_Lat').State(lat);

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

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

Ohjelma ei sisällä suoritusehtoa, koska se käynnistetään edellä mainitulla ohjelmalla tai skriptillä.

Maantieteellisiä tietoja voidaan nyt käyttää tämän sijainnin säätietojen kyselyyn. Tätä varten luodaan toinen ohjelma, joka käynnistetään ajoittain ajanohjauksen avulla ja joka lisää nämä kaksi arvoa edellä mainitun sääpalvelun HTTP-pyyntömerkkijonoon skriptin avulla, jolloin muuttuvat sijainnit otetaan huomioon kyselyssä.

Ohjelma W_Data_OWM

URL-osoitteen koostaminen

! GPS_Data-kenttään täytettyjen muuttujien lataaminen W_Lat ja W_Lon ja osoittamalla muuttujille url_1 ja 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);

! Kokoa URL-osoite käyttämällä muuttujien sisältöä osoitteesta url_1 ja url_2
! [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] edustaa sääpalvelun API-avainta, joka on saatu rekisteröinnin jälkeen.
var url = "https://api.openweathermap.org/data/2.5/weather?lat="#url_1#"&lon="#url_2#"&appid=[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]&units=metric";
! Koko merkkijonon tulostus tarkistusta varten
WriteLine(url);

Tätä seuraa sama menettely muuttujien ilmoittamiseksi, WGET-komento, kyselytuloksen tulostaminen tarkistamista varten ja haluttujen säätietojen lukeminen (ks. Dokumentaatio) GPS-tietoja varten annetun menettelyn mukaisesti.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

fiFinnish