Sisällysluettelo
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:ssa
laite 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.