Meraki meets TouchDesigner

# はじめに
:::note info
この記事は[Cisco Systems Japan Advent Calendar 2023]( https://qiita.com/advent-calendar/2023/cisco)の9日目の記事となります。
:::

2017年版: https://qiita.com/advent-calendar/2017/cisco
2018年版: https://qiita.com/advent-calendar/2018/cisco
2019年版: https://qiita.com/advent-calendar/2019/cisco
2020年版 1枚目: https://qiita.com/advent-calendar/2020/cisco
2020年版 2枚目: https://qiita.com/advent-calendar/2020/cisco2
2021年版 1枚目https://qiita.com/advent-calendar/2021/cisco
2021年版 2枚目https://qiita.com/advent-calendar/2021/cisco2
2022年版(1,2): https://qiita.com/advent-calendar/2022/cisco
2023年版: https://qiita.com/advent-calendar/2023/cisco<---こちら

# 何をしたの
Merakiは、単なるネットワーク機器ではなく、最近では[Meraki MTシリーズ](https://meraki.cisco.com/ja-jp/products/sensors/)というクラウド管理型環境IoTセンサーをラインナップに持っています。温度、湿度、水濡れ、空気品質、騒音、ドアの開閉、さらに最近では電力使用量も測定できる製品があり環境センシングを提供しています。
この環境から得られるさまざまなデータを何か表現に利用できないかと思い挑戦してみました。

Meraki MT機器から取得可能なデータを活用し、インタラクティブ体験を提供可能なツール(TouchDesigner)と連携させてみました。今回は、MQTTとWebhooksを利用した、Meraki機器(MT14/MR44)からツール(TouchDesigner)へのデータ送信方法いろいろ検討してみました。こちらの記事が皆さんの何か表現、クリエイティビティのきっかけになれば幸いです。

# TouchDesignerとは？どんなことができるの？

TouchDesignerはインスタレーション、プロジェクションマッピングやメディアアート、などで活用されている開発環境です。
カナダのトロントに本社があるDerivativeにより提供。コードが書けなくても、「Node」（ノード）と呼ばれるブロックをつなぎ合わせていくことで開発可能なため、プログラミング経験のない方でも学びやすいという特徴あり。ビジュアルプログラミング言語。

類似するツール(クリエイティブコーディング)
Unity, Unreal Engine, Processing, openFrameworks, (MAX)

- 代表的な会社Moment Factory
https://momentfactory.com/work/destinations/public-spaces/shinjuku-station-tokyo
- 代表的な作品まとめサイト
https://note.com/toyoshimorioka/n/na64a76d04429
- 学習コンテンツも豊富
https://www.youtube.com/@TDSW-online
GitHub: https://github.com/narumin256/tdsw_youtubehttps://yoppa.org/


# 利用したもの
- Meraki MT14
- MR44
- Laptop MacBook Pro 14inch (Apple M1 Pro)
- [mosquitto](https://mosquitto.org/)
- [TouchDesigner](https://derivative.ca/)
- [ngrok](https://ngrok.com/)

MT MQTT Setup Guide
https://documentation.meraki.com/MT/MT_General_Articles/MT_MQTT_Setup_Guide

Meraki Webhooks
https://documentation.meraki.com/General_Administration/Other_Topics/Webhooks



# MQTT
MQTTを利用し、MT14から取得したデータ（温度、湿度、総揮発性有機化合物、周辺雑音、PM2.5）を取得することができます。
どんなデータが取れるかについては、以下にMQTTの設定ガイドがありますのでぜひご参考ください。
MT MQTT Setup Guide
https://documentation.meraki.com/MT/MT_General_Articles/MT_MQTT_Setup_Guide

Laptop上にMQTTのBroker(mosquitto)をインストール、MQTTのSubscriberとしてTouchDesignerのMQTT_Client_DATを利用しTouchDesigner上にデータを送ります。
TouchDesignerのダウンロードとインストールは多くの記事があるので割愛します。

TouchDesignerのMQTTについてのドキュメント
https://derivative.ca/UserGuide/MQTT
https://docs.derivative.ca/index.php?title=MQTT_Client_DAT

取得したデータについては、うまいことデータ配列処理、取得してください！（放任、笑）

構成図

![スクリーンショット 2023-12-08 20.25.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2319558/146e8719-c5ce-6494-2b3f-3adb340e33de.png)

Meraki Dashboard上でMQTTブローカーの設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2319558/4cb6011c-5b17-7c9c-657e-46b998e631dc.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2319558/8783f316-b03a-a864-ba7f-6173d129d16a.png)

# Webhooks
Wenhooksを利用した方法について説明します。TouchDesigner内ではWeb Server DATを使用して通信を行います
外部サービスをWeb Requestで連携させるため、[ngrok](https://ngrok.com/) を使用します
[**ngrok**](https://ngrok.com/)はローカルサーバを外部からアクセスできるようにするサービスです。[@mininobu さんの記事](https://qiita.com/mininobu/items/b45dbc70faedf30f484e)にもまとめられています。手順通りにやれば特別な知識がなくても動くので、ぜひ試してみてください。本当に簡単でした。しかも

構成図
![スクリーンショット 2023-12-08 19.57.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2319558/7718ca64-4bda-4dc7-c066-9c66656f8428.png)

「ネットワーク全体 > 設定 > アラート」ページから設定されたアラートは、 Webhook としても外部Webサーバに送信されます。Meraki アラートには JSON 形式のメッセージが含まれており、一意の URL (ngrok)に送信され、そこからTouchDesigner上のWeb Server DATで建てたローカルホストへフォワーディングします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2319558/2a736a4c-03ec-a964-0caf-e1e05d696408.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2319558/dc727757-dab3-1d05-6051-996c7e162172.png)


# さいごに

ここまでくれば、データのチューニング(Merakiからどのようなデータを取得するか）と創造力を発揮(TouchDesigner上での開発)して表現方法を検討！

今後、TouchDesigner上での表現について検討していきたいと思います。
Mreraki MTセンサーを空間演出のセンサーとして簡単に活用できると思い可能性を感じました。
気づきMerakiのMTシリーズに加速度センサなどあれば、もっと表現の幅が広がり面白いなと思いました。(MerakiのMT製品群に今後も期待！とはいえ、サードパーティ連携すればMeraki MRがGWになって可能)

最後まで本記事を読んでくださりありがとうございました。

# 免責事項
本サイトおよび対応するコメントにおいて表明される意見は、投稿者本人の個人的意見であり、シスコの意見ではありません。本サイトの内容は、情報の提供のみを目的として掲載されており、シスコや他の関係者による推奨や表明を目的としたものではありません。各利用者は、本Webサイトへの掲載により、投稿、リンクその他の方法でアップロードした全ての情報の内容に対して全責任を負い、本Web サイトの利用に関するあらゆる責任からシスコを免責することに同意したものとします。