İçindekiler tablosu
Güncellendi - 10 Mart 2025
SmartHome kullanarak GPS verilerini belirlemek istiyorsanız, örneğin yerel hava durumu verilerini sorgulamak için, bu, Homematic / RaspberryMatic ile ek donanım veya yazılım olmadan bir Teltonika RUTX50 yönlendirici ile gerçekleştirilebilir.
Temel Bilgiler
Teltonika yönlendiriciler RUTX... etkinleştirilen SIM kart aracılığıyla SMS gönderilmesini ve alınmasını sağlar. İçeriğe sahip bir SMS'e yanıt olarak konum verilerini göndermek de mümkündür "Şifre gps„.
Gelen SMS listesi ve SMS içeriği HTTP isteği ile görüntülenebilir. SMS talebine yanıt olarak alınan SMS'ten güncel enlem ve boylam verileri okunabilir.
Bunlar artık HomeMatic veya RaspberryMatic kullanılarak SmarttHome otomasyon sistemi içinde komut dosyası aracılığıyla daha fazla işlenebilir. Seyahat ederken, sürekli değişen coğrafi veriler, mevcut konuma dayalı olarak sürekli güncellenen bir hava durumu sorgusu için kullanılabilir, örn. openweathermap.org kullanmak.
Sağlayıcı SMS ayarları
Sağlayıcıya bağlı olarak, yönlendiricide kullanılan SIM kartın SMS için etkinleştirilmesi gerekebilir. Bu genellikle sağlayıcı web sitesinde oturum açtıktan sonra ilgili ayarlarda yapılır.
Sözde çoklu kart teklifleri, bu tür bir SIM karta sahip tüm cihazlarda arama yapmak ve arama yapmak için kullanılabilirken, SMS yalnızca SIM kartlardan BİRİNDE desteklenir!
Kurulum - Teltonika Yönlendirici
Hizmetler - Mobil Yardımcı Programlar - SMS Geçidi
- Mobil Gönderi/Ayarları Al - Etkin
- Kullanıcı adı: Giriş adı
- Şifre: LoginPassword
Hizmetler - Giriş/Çıkış - Gönder/Getir
- I/O Gönder/Ayarları Al - Etkin
- Kullanıcı adı: Giriş adı
- Şifre: LoginPassword
Kurulum - RaspberryMatic
CUx arka plan programını yükleme
CUx daemon, HomeMatic / RaspberryMatic içinde sistem çağrıları için daha az külfetli bir yedek olarak kullanılabilen sanal cihazlar sağlayan bir eklentidir, örneğin bir HTTP isteği aracılığıyla yönlendiriciye SMS mesajları göndermek için.
AddOn, Ayarlar - Ek yazılım aracılığıyla yüklenir; burada AddOn dosyasını düğmesine tıklayarak indirebilirsiniz Dosya seçiniz bilgisayarın ilgili indirme klasörüne yerleştirin ve düğmesine tıklayın Kurulum merkeze yüklenebilir ve kurulabilir.
CUx daemon - Aygıt oluşturma
CUx arka plan programı Sistem üzerinden düğmesine tıklanarak çağrılır CUx arka plan programı.
Sağ üstteki düğmeye tıklayın Cihazlar arayüzü açar. Sol üstte, CUxD cihaz türü altında, aşağıdaki listeden aşağıdakiler seçilir Sistem seçildi.
Fonksiyon Yönetici seçildiğinde, Ad alanına karşılık gelen bir tanımlama girilir, örn. GPSve ardından düğmesine tıklayın CCU üzerinde cihaz oluşturmacihaz kaydedilir.
Oluşturulan cihaz daha sonra sağ taraftaki pencerede kimliğiyle birlikte görünür, örneğin CUX2801001 ve bu kimlik kullanılarak komut dosyalarında adreslenebilir.
Senaryolar
GPS veri çıkışı için SMS gönderme
Köşeli parantez içindeki bilgiler kendi verilerinizle değiştirilmelidir:
string url="'http://[Yönlendiricinin IP'si]/cgi-bin/sms_send?username=[KullanıcıAdı]&password=[şifre]&number=[Uluslararası telefon numarası]&text=[Şifre gps]'“;
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - "#url);
Lütfen dizenin çift (") VE tek (') ters virgül içine alındığına dikkat edin!
Bu komut dosyası oluşturulacak programda kullanılır GPS_Loc_Update ve GPS_Data programını çağıran aşağıdaki kod, PÜS verilerini içeren SMS'in alınmasını beklemek için 30 saniye geciktirilir:
var programObj = dom.GetObject("GPS_Data");
programObj.ProgramExecute();
Program GPS_Loc_Update zaman kontrolü ile günde bir kez veya gereksinimlere bağlı olarak daha kısa aralıklarla yürütülebilir.

Çıktı SMS listesi
GPS verilerini okumak için, yönlendiriciden HTTP isteği yoluyla SMS listesinin çıktısını alması istenir.
Bu komut dosyası, Yeni düğmesine tıklayarak alttaki Ayarlar - Sistem değişkenleri altında oluşturulması gereken ÇİZİM ZİNCİRİ türünde iki değişken gerektirir:
- W_Lat (coğrafi enlemi kaydetmek için)
- W_Lon (coğrafi boylamı saklamak için)
Senaryonun içeriği (satır başları Ünlem işareti yorumlardır; WriteLine-Talimatlar sadece çıkış kontrolü için kullanılır ve silinebilir):
var url = "http://[Yönlendiricinin IP'si]/cgi-bin/sms_list?username=[KullanıcıAdı]&password=[şifre]“;
! Değişkenlerin bildirilmesi
var posValueStart;
var posValueEnd;
var pos;
var veri;
var posStart;
var posEnd; string stderr; string stdout;
! HTTP istek dizesini yönlendiriciye iletmek için WGET komutu
system.Exec("wget -q -O - '"#url#"'", &stdout, &stderr);
! Kontrol için sorgu sonucunun çıktısı
WriteLine(stdout);
! Dizin: 1
! Tarih: Fri Jan 26 11:01:02 2024
! Gönderen: +49xxxxxxxxxxx
! Metin: Düzeltme zamanı: 2024-01-26, 11:01:01 Enlem: 54.834682 Boylam: 12.040196 http://maps.google.com/?
! q=54.834682,12.040196&om=1speed:0
! Durum: okundu
! GPS verilerini okuyun
pos = 0;
! Aranan değerin başlangıcının konumu
posStart = 'Enlem: ';
! Aranan değerin sonunun konumu
posEnd = ' Boylam: ';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart;
! aradığınız dizedir:
string Latitude = stdout.Substr(posValueStart, posValueEnd);
! Dizenin (karakter dizisi) kayan nokta sayısına dönüştürülmesi
var lat = Latitude.ToFloat();
! Kontrol için coğrafi boylam çıktısı
WriteLine("Latitude");WriteLine(Latitude);
! Coğrafi boylamı değişkene kaydetme W_Lat
dom.GetObject('W_Lat').State(lat);
pos = 0;
posStart = 'Boylam: ';
posEnd = ' http';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart;
string Boylam = stdout.Substr(posValueStart, posValueEnd);
var lon = Longitude.ToFloat();
WriteLine("Boylam");WriteLine(lon);
dom.GetObject('W_Lon').State(lon);
Program, yukarıdaki program veya komut dosyası aracılığıyla başlatıldığı için yürütme için bir koşul içermez.

Coğrafi bilgi artık bu konum için hava durumu verilerini sorgulamak için kullanılabilir. Bunu yapmak için, zaman kontrolü yoluyla periyodik olarak başlatılan ve bir komut dosyası kullanarak yukarıda belirtilen hava durumu hizmetinin HTTP istek dizesine iki değeri ekleyen ve böylece sorguda değişen konumları dikkate alan başka bir program oluşturulur.
Program W_Data_OWM

URL oluşturma
! GPS_Data'da doldurulan değişkenlerin yüklenmesi W_Lat ve W_Lon ve değişkenlere atama url_1 ve 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);
! URL'yi aşağıdaki değişken içeriklerini kullanarak oluşturun url_1 ve url_2
! [xxxxxxxxxxxxxxxxxxxxxxxxxxxxx] kayıttan sonra alınan hava durumu hizmetinin API anahtarını temsil eder
var url = "https://api.openweathermap.org/data/2.5/weather?lat="#url_1#"&lon="#url_2#"&appid=[xxxxxxxxxxxxxxxxxxxxx]&units=metric";
! Kontrol için tam dizenin çıktısı
WriteLine(url);
Bunu, değişkenlerin bildirilmesi, WGET komutu, istenen hava durumu verilerinin kontrol edilmesi ve okunması için sorgu sonucunun çıktısının alınması için aynı prosedür takip eder (bkz. Dokümantasyon) GPS verileri için verilen prosedüre göre.