<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>2022/06/11 on Yano&#39;s digital garage</title>
    <link>https://www.bravotouring.com/~yano/archives/2022/06/11/</link>
    <description>Recent content in 2022/06/11 on Yano&#39;s digital garage</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 11 Jun 2022 15:33:11 +0900</lastBuildDate>
    <atom:link href="https://www.bravotouring.com/~yano/archives/2022/06/11/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>IRKit独立</title>
      <link>https://www.bravotouring.com/~yano/diary/it/20220611_irkit.htm</link>
      <pubDate>Sat, 11 Jun 2022 15:33:11 +0900</pubDate>
      <guid>https://www.bravotouring.com/~yano/diary/it/20220611_irkit.htm</guid>
      <description>&lt;p&gt;2014年1月から12800台が生産され、2017年11月25日に&lt;span class=&#34;Warning&#34;&gt;完売&lt;/span&gt;した&lt;a href=&#34;http://getirkit.com/&#34;&gt;IRKit&lt;/a&gt;だが、なんと4月に&lt;a href=&#34;https://maaash.jp/2022/04/deprecating-irkit/&#34;&gt;サービス終了&lt;/a&gt;の案内が出ていた事に気づいた。&lt;/p&gt;&#xA;&lt;table align=&#34;right&#34; class=&#34;Panorama&#34;&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;img alt=&#34;IRKit&#34; src=&#34;https://www.bravotouring.com/~yano/images/2016/20160414_irkit.jpg&#34;/&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td class=&#34;PhotoMemo&#34;&gt;2016年に購入したIRKit&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.bravotouring.com/~yano/diary/it/20160411_irkit.htm&#34;&gt;2016年に調達&lt;/a&gt;した手元の&lt;span class=&#34;Tradename&#34;&gt;IRKit&lt;/span&gt;も&lt;a href=&#34;https://www.bravotouring.com/~yano/diary/it/20220310_irkit.htm&#34;&gt;3月に復活&lt;/a&gt;したばかりだが、最初にサーバに接続してからでないと&lt;span class=&#34;Warning&#34;&gt;&#34;Device HTTP API&#34;すら使えなくなる&lt;/span&gt;という事で、打つ手なし。&lt;/p&gt;&#xA;&lt;p&gt;と思いきや、&#xA;&lt;blockquote cite=&#34;https://maaash.jp/2022/04/deprecating-irkit/&#34;&gt;幸いにもIRKitのファームウェアはオープンソースであり、この問題を解決してくれた方がいらっしゃいます。 こちらのpull request https://github.com/irkit/device/pull/6 を書き込むと useCloudControl という設定をfalseにしてビルドすることで、サーバに接続する機能を停止します。この時ローカルネットワークは使えます。&lt;/blockquote&gt;という救済策が案内されていたので、早速 &lt;a href=&#34;https://github.com/acourreges/device&#34;&gt;GitHub - acourreges/device&lt;/a&gt; からファームウェアを入手してファームアップにトライ。&lt;/p&gt;&#xA;&lt;p&gt;出荷時に設定されるWi-Fiアクセスポイントのパスワードとバージョン情報を適当に設定して、&lt;span class=&#34;Software&#34;&gt;arduino-1.8.10&lt;/span&gt;でアップロード。&lt;/p&gt;&#xA;&lt;p&gt;しかし、&lt;span class=&#34;Tradename&#34;&gt;IRKit&lt;/span&gt;は再起動しても一向にLEDが赤明滅にならず。青点灯して消灯となってしまったのでRebootを繰り返しているものと思っていたのだが、アクセスポイントの接続状態をチェックしたところ以前の設定通り自宅のWiFiに繋がっていることが判明。&lt;span class=&#34;Software&#34;&gt;ping&lt;/span&gt;でも応答があるし、&lt;span class=&#34;Software&#34;&gt;curl&lt;/span&gt;にも従前通り反応。レスポンスヘッダのServer行で出力されるバージョンでもファームアップできていることが確認できた。&lt;/p&gt;&#xA;&lt;p&gt;というわけで、自宅のWiFi接続情報が消えてなかったので、ファームアップしてもファクトリーリセットではないという事らしい。&lt;/p&gt;&#xA;&lt;p&gt;ただavahi-browseに反応しなくなっていたので、setupMDNSだけはuseCloudControlの設定に依らず効くように変更し、最終的に変更点は以下の通り。&#xA;&lt;blockquote class=&#34;Log&#34;&gt;&#xA;yano@GT110b:~/IRKit$ git clone https://github.com/acourreges/device.git&lt;br/&gt;&#xA;yano@GT110b:~/IRKit$ cd ~/IRKit/device&lt;br/&gt;&#xA;yano@GT110b:~/IRKit/device$ vi firmware/src/IRKit/GSwifi.cpp firmware/src/IRKit/IRKit.ino firmware/src/IRKit/cert.h&lt;br/&gt;&#xA;yano@GT110b:~/IRKit/device$ git diff -b&lt;br/&gt;&#xA;diff --git a/firmware/src/IRKit/GSwifi.cpp b/firmware/src/IRKit/GSwifi.cpp&lt;br/&gt;&#xA;index b6ed100..97713bf 100644&lt;br/&gt;&#xA;--- a/firmware/src/IRKit/GSwifi.cpp&lt;br/&gt;&#xA;+++ b/firmware/src/IRKit/GSwifi.cpp&lt;br/&gt;&#xA;@@ -1093,7 +1093,7 @@ int8_t GSwifi::startLimitedAP () {&lt;br/&gt;&#xA;     command(PB(&#34;AT+NSET=192.168.1.1,255.255.255.0,192.168.1.1&#34;,1), GSCOMMANDMODE_NORMAL);&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;     // password area overwritten in factory&lt;br/&gt;&#xA;-    cmd = PB(&#34;AT+WPAPSK=IRKitXXXX,XXXXXXXXXX&#34;,1);&lt;br/&gt;&#xA;+    cmd = PB(&#34;AT+WPAPSK=IRKit41D9,2041357304&#34;,1);&lt;br/&gt;&#xA;     strcpy( cmd+10, hostname() );&lt;br/&gt;&#xA;     cmd[19] = &#39;,&#39;;&lt;br/&gt;&#xA;     command(cmd, GSCOMMANDMODE_NORMAL, GS_TIMEOUT_LONG);&lt;br/&gt;&#xA;diff --git a/firmware/src/IRKit/IRKit.ino b/firmware/src/IRKit/IRKit.ino&lt;br/&gt;&#xA;index 2351b59..1342f0a 100644&lt;br/&gt;&#xA;--- a/firmware/src/IRKit/IRKit.ino&lt;br/&gt;&#xA;+++ b/firmware/src/IRKit/IRKit.ino&lt;br/&gt;&#xA;@@ -315,14 +315,14 @@ void connect() {&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;     if (gs.isListening()) {&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;+        // start mDNS&lt;br/&gt;&#xA;+        gs.setupMDNS();&lt;br/&gt;&#xA;+&lt;br/&gt;&#xA;         if (!config::useCloudControl) {&lt;br/&gt;&#xA;             // No WAN access, we don&#39;t need to validate key, we&#39;re ready.&lt;br/&gt;&#xA;             IR_state( IR_IDLE );&lt;br/&gt;&#xA;             on_irkit_ready();&lt;br/&gt;&#xA;         } else {&lt;br/&gt;&#xA;-            // start mDNS&lt;br/&gt;&#xA;-            gs.setupMDNS();&lt;br/&gt;&#xA;-&lt;br/&gt;&#xA;             if (keys.isAPIKeySet() &amp;&amp; ! keys.isValid()) {&lt;br/&gt;&#xA;                 irkit_httpclient_post_door();&lt;br/&gt;&#xA;             }&lt;br/&gt;&#xA;diff --git a/firmware/src/IRKit/cert.h b/firmware/src/IRKit/cert.h&lt;br/&gt;&#xA;index cf6dcb3..01fc839 100644&lt;br/&gt;&#xA;--- a/firmware/src/IRKit/cert.h&lt;br/&gt;&#xA;+++ b/firmware/src/IRKit/cert.h&lt;br/&gt;&#xA;@@ -20,7 +20,7 @@&lt;br/&gt;&#xA; #include &#34;GSwifi_const.h&#34;&lt;br/&gt;&#xA;&lt;br/&gt;&#xA; // deviceapi.getirkit.com&lt;br/&gt;&#xA;-prog_uchar der[] PROGMEM = {&lt;br/&gt;&#xA;+const char der[] PROGMEM = {&lt;br/&gt;&#xA;     ESCAPE, &#39;W&#39;,&lt;br/&gt;&#xA;     0x30, 0x82, 0x2, 0xed, 0x30, 0x82, 0x2, 0x56,&lt;br/&gt;&#xA;     0xa0, 0x3, 0x2, 0x1, 0x2, 0x2, 0x9, 0x0,&lt;br/&gt;&#xA;diff --git a/firmware/src/IRKit/config.h b/firmware/src/IRKit/config.h&lt;br/&gt;&#xA;index 2888117..89fa3f6 100644&lt;br/&gt;&#xA;--- a/firmware/src/IRKit/config.h&lt;br/&gt;&#xA;+++ b/firmware/src/IRKit/config.h&lt;br/&gt;&#xA;@@ -31,13 +31,13 @@ namespace config {&lt;br/&gt;&#xA;     } LedFeedbackProfile;&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;     // Defines what kind of LED profile you want.&lt;br/&gt;&#xA;-    const LedFeedbackProfile ledFeedback = LED_QUIET;&lt;br/&gt;&#xA;+    const LedFeedbackProfile ledFeedback = LED_VERBOSE;&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;     // Enables/disables cloud-control through the &#34;deviceapi.getirkit.com&#34; server.&lt;br/&gt;&#xA;     // If you use your IRKit device exclusively over your LAN, you can disable&lt;br/&gt;&#xA;     // this option: the device won&#39;t send regular polling requests to the cloud server.&lt;br/&gt;&#xA;     // This also lets you setup your device without internet access (no need for a valid device key).&lt;br/&gt;&#xA;-    const bool useCloudControl = true;&lt;br/&gt;&#xA;+    const bool useCloudControl = false;&lt;br/&gt;&#xA;&lt;br/&gt;&#xA; }&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;yano@GT110b:~/IRKit/device$&lt;/blockquote&gt;&#xA;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
