目次
更新日 - 2025年3月10日
SmartHomeを使用してGPSデータを測定したい場合、例えば現地の気象データを照会したい場合、Homematic / RaspberryMaticを使用すれば、ハードウェアやソフトウェアを追加することなく、Teltonika RUTX50ルーターで実現できます。
基本
TeltonikaルーターRUTX...は、アクティベートされたSIMカードを介してSMSの送受信を可能にします。また、SMSに応答して位置データを送信することも可能です。パスワードgps„.
受信したSMSリストとSMSの内容は、HTTPリクエストで見ることができます。SMSリクエストに応答して受信したSMSから、現在の経度と緯度のデータを読み取ることができます。
これらのデータは、HomeMaticまたはRaspberryMaticを使用して、SmarttHomeオートメーションシステム内でスクリプトを介してさらに処理することができます。旅行中は、常に変化するジオデータを使用して、現在地に基づき継続的に更新される天候クエリーを行うことができます。 オープンウェザーマップ を利用する。
プロバイダーのSMS設定
プロバイダによっては、ルーターで使用するSIMカードをSMS用にアクティベートする必要があります。これは通常、プロバイダーのウェブサイトにログインした後、関連する設定で行います。
いわゆるマルチカード・オファーは、そのようなSIMカードを搭載したすべてのデバイスで着信や通話が可能だが、SMSはいずれかのSIMカードでしかサポートされていない!
セットアップ - Teltonika ルーター
サービス - モバイルユーティリティ - SMSゲートウェイ
- モバイル投稿/設定取得 有効
- ユーザー名 ログイン名
- パスワード ログインパスワード
サービス - インプット/アウトプット - ポスト/ゲット
- I/Oポスト/設定取得 有効
- ユーザー名 ログイン名
- パスワード ログインパスワード
セットアップ - RaspberryMatic
CUxデーモンのインストール
CUxデーモンは、HomeMatic / RaspberryMatic内に仮想デバイスを提供するアドオンで、HTTPリクエストでルーターにSMSメッセージを送信するなど、システムコールの代わりに負担の少ない方法で使用できます。
AddOnは、Settings(設定)- Additional software(追加ソフトウェア)からインストールされます。 ファイルを選択
をクリックしてください。 インストール
をロードし、センターにインストールすることができる。
CUxデーモン - デバイスの作成
CUxデーモンは、ボタンをクリックしてシステムから呼び出されます。 CUxデーモン
.
右上のボタンをクリック デバイス
インターフェースを開きます。左上の CUxD デバイス・タイプで、以下のリストから選択します。 システム
を選んだ。
機能 エグゼクティブ
を選択すると、名前フィールドに対応する名前が入力される。 GPSをクリックし CCUにデバイスを作成する
デバイスが保存されます。
作成されたデバイスは、右側のウィンドウにID(例:CUX2801001)とともに表示され、このIDを使用してスクリプトでアドレスを指定できます。
スクリプト
GPSデータ出力のSMS送信
角括弧内の情報は、あなた自身のデータに置き換えてください:
string url="'http://[ルーターのIP]/cgi-bin/sms_send?username=[ユーザー名パスワード=[パスワード番号=[国際電話番号]&text=[パスワードgps]'“;
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - "#url);
文字列はダブルカンマ(")とシングルカンマ(')で囲まれていることに注意してください!
このスクリプトは、作成されるプログラムで使用される。 GPS_Loc_Update
そして、GPS_Data プログラムを呼び出す以下のスクリプトは、PÜS データを含む SMS の受信を待つために 30 秒遅延される:
var programObj = dom.GetObject("GPS_Data");
programObj.ProgramExecute();
プログラム GPS_Loc_Update
は、時間制御によって、1日1回、または要件に応じてより短い間隔で実行することができる。

SMSリストの出力
GPSデータを読み出すために、ルーターはHTTPリクエストでSMSリストを出力するよう要求される。
このスクリプトには、DRAWING CHAIN タイプの変数が 2 つ必要です。この変数は、下部の「設定」-「システム変数」で「新規作成」ボタンをクリックして作成する必要があります:
- W_Lat (地理的緯度を保存する)
- W_ロン (地理的経度を格納する)
スクリプトの内容(行頭に 感嘆符 はコメントである; ライトライン-命令は出力制御にのみ使用され、削除可能):
var url = "http://[ルーターのIP]/cgi-bin/sms_list?username=[ユーザー名パスワード=[パスワード]“;
!変数の宣言
var posValueStart;
var posValueEnd;
var pos;
var data;
var posStart;
文字列 stderr; 文字列 stdout;
!HTTPリクエスト文字列をルーターに送信するWGETコマンド
system.Exec("wget -q -O - '"#url#"'", &stdout, &stderr);
!チェック用クエリー結果の出力
WriteLine(stdout);
!インデックス: 1
!日付: Fri Jan 26 11:01:02 2024
!送信者: +49xxxxxxxxxxxxx
!テキスト修正時刻: 2024-01-26, 11:01:01 緯度 54.834682 経度: 12.040196 http://maps.google.com/?
! q=54.834682,12.040196&om=1speed:0
!ステータス: 読み取り
!GPSデータを読む
pos = 0;
!検索された値の先頭の位置
posStart = '緯度: ';
!検索された値の終了位置
posEnd = ' 経度: ';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart;
がお探しの文字列です:
string Latitude = stdout.Substr(posValueStart, posValueEnd);
!ストリング(文字列)を浮動小数点数に変換する。
var lat = Latitude.ToFloat();
!チェックのための地理的経度の出力
WriteLine("緯度");WriteLine(緯度);
!地理的経度を変数に保存 W_Lat
dom.GetObject('W_Lat').State(lat);
pos = 0;
posStart = '経度:';
posEnd = ' http';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart;
string Longitude = stdout.Substr(posValueStart, posValueEnd);
var lon = Longitude.ToFloat();
WriteLine("経度");WriteLine(lon);
dom.GetObject('W_Lon').State(lon);
このプログラムは、上記のプログラムまたはスクリプトによって開始されるため、実行条件は含まれていない。

この地理情報を使って、この場所の気象データを問い合わせることができる。そのために、時間制御によって定期的に起動する別のプログラムを作成し、スクリプトを使用して上記の気象サービスのHTTPリクエスト文字列に2つの値を挿入する。
プログラム W_Data_OWM

URLの構成
!GPS_Dataに格納されている変数をロードする W_Lat そして W_ロン を変数に代入する。 url_1 そして 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を構成する。 url_1 そして url_2
!
var url = "https://api.openweathermap.org/data/2.5/weather?lat="#url_1#"&lon="#url_2#"&appid=[xxxxxxxxxxxxxxx]&units=metric";
!チェック用の完全な文字列の出力
WriteLine(url);
続いて、変数の宣言、WGETコマンド、クエリー結果の出力による確認、希望する気象データの読み出しが同じ手順で行われる。 ドキュメンテーション)は、GPSデータ用に与えられた手順に従ってください。