2008年4月アーカイブ
目に見えにくいテクノロジーをご説明してきましたが、今回は、非常にアナログなブログ記事になってます!
今まで社内、社外含めいろいろなイベント時に行なってきたPCに接続された照明をつけたり、扇風機をまわしたりしたデモがありますが、仕組みをご説明します。
(このブログの読者の方は、おそらくCEO石田のブログにあるデモをさわったことがあるかとおもいます。)
それでは、名付けて「ソトカラツケール」(仮称)を紹介します。
「ソトカラツケール」は、SemantiqNodeと連携し、携帯電話や PCのWebブラウザなどで 自宅の家電(照明など)のOn/Off を行えるようにするための機器です。
ソトカラツケール(以下 ST-2) 本体には、USBポートと100Vの電源コンセントが2つあり、このコンセントに電源の制御を行いたい照明等のプラグを差し込みます。
ST-2はUSBケーブルを使ってPCに接続します。その後、SemantiqNodeにプラグインをインストールして有効化すれば、後は以下のようなURLで指定のコンセントの電源をOn/Offできます。
http://snapi.dream.jp/ノード名/@fbx.homeapp.switch/?target=1&turn=on
この例では、1番コンセントに接続された家電をOnにします。
ST-2 の本体は、書籍「簡単!USBで電子制御」の10章「100V電源を制御しよう」を参照し製作しました。
はじめに USB-IOを入手し、さらに秋葉原でパーツを購入。部品リストは以下のようになりました。
| USB-IO | 1,500円 |
| ソリッドステートリレー(二個) | 500円 |
| ヒューズホルダー(二個) | 230円 |
| ヒューズ(二個) | 52円 |
| 電源ソケット(二個) | 152円 |
| ACコード | 100円 |
| ケース | 180円 |
| 合計 | 2,714円 |
USB-IOはPCからの信号を受けて特定の端子(ポート)の電圧を変えることが出来ます。書籍ではこのポートにプッシュボタンとひとつのリレー回路を接続してますが、ST-2 ではふたつのリレー回路を接続しました。USB-IOには最大4つまでリレーを接続することが可能で、つまりはひとつのUSB接続で、4つの電源の制御を行うことができます。

組み立て後配線図や組み立ては先の書籍をごらんいただくとし、ハードウェアの次はソフトウェアです。書籍にあるUSB-IOの制御ライブラリは HSP言語で書かれているため、SemantiqNodeのプラグインの開発言語であるC++言語で新たに書き起こして使用しました。
はじめにスタンドアロン・アプリケーションを作成して ST-2 の動作を確認。それからSemantiqNodeのプラグインを開発し、URLを呼ぶことで照明の制御ができることを確認しました。
ソフトウェア自体の開発は、制御ライブラリを含めて3時間しかかかりませんでした。
SemantiqNodeというプラットフォームを使えば、簡単にこのようなアプリケーションを開発し、運用することができます。
たとえば書籍ではPCを使ってラジコンカーを操作する例が紹介されていますが、SemantiqNodeと連携すれば、携帯電話でラジコンを操作することもすぐにできます(実用的ではないかもしれませんが)
「ソトカラツケール」のプラグインのソースコードはもちろん、USB-IOを制御するライブラリは、プラグインSDKのリリースの際に公開いたしますので、どうぞお楽しみに。
こんにちは、DreamHUBチームです。
Webカメラplugin用のwindowにて不具合が報告されました。
以下のWebカメラ用の画面を開き、「OK、キャンセル」をクリックした後に、Windowから応答が返ってこなくなることがあります。

この不具合を解消するには、新しいSemantiqNodeをインストールしてください。(4/14にリリースしたVersionより、さらに1つ新しいVersionになります)
不具合を修正したSemantiqNodeはコントロールパネルからインストール
Webカメラをご利用のユーザの皆様には大変申し訳ありません。
お手数ですが、コントロールパネルから新Versionをインストールしてください。
どうぞよろしくお願いします。
現在,対応しているメールソフトは
・OutlookExpress
・Thunderbird 2
となっていますが、ほかのメールソフトについても順次対応して行く予定です。
ただし、今回のベータとして出していますのは,メーラによって様々な書式が存在するため,正式リリースに向けて幅広いパターンで動作するべく、不具合があった場合はできるだけテストにご協力いただきたく思っております。
■サービス概要
- 最新バージョンへのアップ
- タスクトレイアプリにてメール検索のアドオンの有効化
- タスクトレイアプリにて索引作成
- PCや、携帯,iPod touchまたはwiiのブラウザからメール検索し、返信が出来ます
■メール検索のURL
メール検索はこちら:http://dream.jp/mysearch/mail/
(同じURLにてPC、携帯,iPod touch、wiiに対応しています。)
SemantiqNodeとの通信にはhttpを使用します。APIを使用するときはCGIを呼び出すのと同様の方法を用い、パラメータをクエリーに指定し、特定のCGIを呼び出します。APIの実行結果はhttpレスポンスのbody部分で受け取ります。その際の文字コードはUTF-8を利用します。
※説明では簡単に記載するために、GET形式を使っておりますが、実際にはPOST形式を使ってクエリーを送信します。
クエリーには必須パラメータとしてactionキーがあり、実行するアクションを指定します。さらにアクションに必要なパラメータについてもクエリーで指定します。
API
- 認証
- SemantiqNodeをインストールしたPCに対して認証を行ないます。
- ファイル一覧
- 指定したフォルダ内のファイル一覧を取得します。
- ファイル取得
- 特定のファイルを取得します。
- デスクトップ検索
- Googleデスクトップと連携し、検索結果を取得します。
- メール検索
- OutlookExpressやThunderbird 2で受信したメールを検索します。
- MySearch用に開発し、JavaScriptからSemantiqNodeへアクセスするためのライブラリを用意しています。
ダウンロードはこちらSemantiqNode フォトCGI
http://dream.jp/mysearch/javascripts/snodeapi.js
- ブログパーツ用CGI。公開ディレクトリの「photos」フォルダにある画像一覧をXML形式にて返します。
説明、ダウンロードはこちら
http://blog.dream.jp/2008/04/20080418-7.html
- ブログパーツ向けに以下のCGIをご利用ください。公開ディレクトリの「photos」フォルダにある画像一覧をXML形式にて返します。
- 最大15のファイルをXML形式にてランダムにて返します。
利用方法
- http://snapi.dream.jp/blog/snphoto.cgi?snhost=ノード名
http://snapi.dream.jp/blog/snphoto.cgi?snhost=dreamhubblog_node
ここではメール検索を行なうためのAPIの説明をします。
リクエスト方法
- HTTP
- パラメータ必須
ホストパラメータ
- ホスト:http://snapi.dream.jp/
- ノード名:アクセスしたいノード名
引数
- action:sn.search.query
- q:検索キーワード
- page:ページ番号
- type:mail
http://snproxy.dream.jp/sn/dreamhubblog-node/do?action=sn.search.query&q=DTI&type=mail
レスポンス
- JSONP形式
{
"response":{
"action":"sn.search.query","info":{
"page":"1","pages":"14","allitems":"210"
},
"items":[
{
"href":"mail: OE_00000000014_TEST.dbx_0e3ae844_0e56c028",
"from":{ "name":"minako tanaka "},
"subject":"blogの確認",
"snippet":"This is a test.",
"prop":{
"datetime":"Fri, 11 Apr 2008 17:24:30 +0900",
"contenttype":"message/rfc822"
}
} ],
"mestat":{ "status":"200","message":"" }
}
});
ここではデスクトップ検索を行なうためのAPIの説明をします。
リクエスト方法
- HTTP
- パラメータ必須
ホストパラメータ
- ホスト:http://snapi.dream.jp/
- ノード名:アクセスしたいノード名
引数
- action:sn.search.query
- q:検索キーワード
- page:ページ番号
アクセス例
http://snproxy.dream.jp/sn/dreamhubblog-node/do?action=sn.search.query&q=DTI&page=1
レスポンス
- JSONP形式
{
"response":{
"action":"sn.search.query","info":{
"page":"1","pages":"9","allitems":"126"
},
"items":[
{
"href":"/_file/C/Documents+and+Settings/Taro+Tanaka/test.txt",
"displaypath":"C:/Documents and Settings/Taro Tanaka/デスクトップ/test.txt",
"name":"test.txt",
"snippet":"This is a test.",
"prop":{
"contenttype":"text/plain",
"datetime":"2008-04-07 15:00:00",
"size":"231"
}
} ],
"mestat":{ "status":"200","message":"" }
}
});
ここではファイルの取得を行なうためのAPIの説明をします。
リクエスト方法
- HTTP
- パラメータ必須
ホストパラメータ
- ホスト:http://snapi.dream.jp/
- ノード名:アクセスしたいノード名
引数
- action:sn.file.get
- path:アクセスするファイル名(パス含む)
アクセス例
http://snapi.dream.jp/sn/dreamhubblog-node/_pub/do?action=sn.file.get
&path=/_pub/photos/yama.jpg
レスポンス
- 指定のファイルのContent-Typeでバイナリ形式でファイルが返ります。ファイルが存在しない場合は、404エラーが返ります。
ここではファイル一覧の取得を行なうためのAPIの説明をします。
リクエスト方法
- HTTP
- パラメータ必須
ホストパラメータ
- ホスト:http://sngate.dream.jp/
- ノード名:アクセスしたいノード名
引数
- action:sn.file.getList
- path:アクセスするディレクトリ
- rformat:戻りのフォーマット
- JSON
- JSONP
http://snapi.dream.jp/sn/dreamhubblog-node/_pub/do?action=sn.file.getList
&path=/_pub/photos/&rformat=JSONP
レスポンス
- httpレスポンスのbody部にjson形式またはjsonp形式にて格納されます。
element名 説明 action 実行したaction名を返します info 現在のページ、最大ページ数、全ファイル数を返します items セッションIDを表示します href:相対パス+ファイル名を表示します displaypath:相対パスを表示します name:Unicodeでのファイル名を表示します prop ContentType,作成日,ファイルサイズを表示します mestat messageとstatus elementを保持します status エラーの種類や状態を表します
例:JSON形式
{
"response":{
"action":"sn.file.getList",
"info":{
"page":"1",
"pages":"1",
"allitems":"1"
},
"items":[{
"href":"/_pub/photos/yama.jpg",
"displaypath":"%u002f",
"name":"%u0079%u0061%u006d%u0061%u002e%u006a%u0070%u0067",
"displayname":"",
"prop":{
"contenttype":"image/jpeg",
"datetime":"2007-10-19 01:19:02",
"size":"292479"
}
}],
"mestat":{
"status":"200",
"message":""
}
}
}
例:JSONP形式
onJSONP(
{
"response":{
"action":"sn.file.getList",
"info":{
"page":"1",
"pages":"1",
"allitems":"1"
},
"items":[{
"href":"/_pub/photos/yama.jpg",
"displaypath":"%u002f",
"name":"%u0079%u0061%u006d%u0061%u002e%u006a%u0070%u0067",
"displayname":"",
"prop":{
"contenttype":"image/jpeg",
"datetime":"2007-10-19 01:19:02",
"size":"292479"
}
}],
"mestat":{
"status":"200",
"message":""
}
}
}
);
SemantiqNodeにログインするための認証APIについてご説明します。プライベート領域へアクセスさせるためには認証が必要になります。
リクエスト方法
- HTTP
- パラメータ必須
ホストパラメータ
- ホスト:http://sngate.dream.jp/
- ノード名:アクセスしたいノード名
引数
- action:auth
- egid:メールアドレス
- password:SemantiqNodeパスワード
- rformat:戻りのフォーマット
- JSON
- JSONP
http://sngate.dream.jp/dreamhubblog-node/?action=auth
&egid=taro_dti@dream.jp&password=abcd123&rformat=JSONP
レスポンス
- httpレスポンスのbody部にjson形式またはjsonp形式にて格納されます。
element名 説明 account メールアドレスを返します prop 親elementに関係したプロパティを保持します sessid セッションIDを表示します mestat messageとstatus elementを保持します status エラーの種類や状態を表します
例:JSON形式
{ 'account':'taro_dti@dream.jp', 'prop':{ 'sessid':'925412b370f619fcc5926c77f79571cf', 'timeout':'300' }, 'mestat':{ 'status':'200' } }
例:JSONP形式
onJSONPAuth(
{
'account':'taro_dti@dream.jp',
'prop':{
'sessid':'925412b370f619fcc5926c77f79571cf',
'timeout':'300'
},
'mestat':{
'status':'200'
}
}
);
こんにちは、DreamHUBチームです。
現在、SemantiqNodeにはアクセスチケットという機能がありますが (自分のPCにあるファイルを外部の他ネットワークからもアクセスできるURLを生成する) 、画像赤枠内に生成されるURLが正しく生成されない場合があるという事象が報告されております。
・赤枠内に生成される不正なURLの例
/sn/あなたのノード名/_pub/@sn.file.ticket/RVGC0EXADilX/xx.zip
・赤枠内に生成される正しいURLの例
http://snapi.dream.jp/sn/xxxxxx/_pub/@sn.file.ticket/RVGC0EXADilX/xx.zip
※"xxxxxx" には、あなたのマイノード名が表示されます。
ユーザの皆様にはご迷惑をおかけしてしまい誠に申し訳ありません。
実際に不正なURLを多くの知人に伝えてしまった事例など、不便な思いをされたユーザ様からのご連絡もいただいており、重ねてお詫び申しあげます。
この不具合につきましては、早急に対応することで現在動いており、近日中に発表する次バージョンにて必ず修正されることをお約束します。それまではご迷惑をお掛けしてしまい大変恐縮ですが、生成されたURLが不正でないことをご確認の上、ご利用ください。
不正なURLが生成された場合には、以下の対応手順にて回避していただきますようお願い申し上げます。
◆赤枠内に不正なURLが生成された場合の対応手順
①:タスクトレイにあるSemantiqNodeアイコンにて、右クリックし「終了」を選択
②:" C:\Program Files\FreeBit\SemantiqNode " にある「SNodeApp.exe」をクリック
③:タスクトレイにSemantiqNodeアイコンが表示されるのでダブルクリック
④:SemantiqNodeのwindowが開く
⑤:アクセスチケットのタブにてURLが正しく表示される
すでにお気づきの方もいるかもしれませんが、このブログを携帯電話のブラウザーからもアクセスできるようになりました!
URLは、http://blog.dream.jp/ でパソコンと同じなのですが、携帯ブラウザーを識別して携帯用のページに切り替わるようになっています。
このページ左側にQRコードを置いていますので、携帯電話のバーコードリーダーで読み取っていただければ簡単にアクセスできます。

携帯電話からアクセスできると、移動中や外出時にチェックできて本当に便利です。
コメントも入力できますので、ぜひ使ってみてください。
