ESP32 x ledcWrite = (xQueueGenericReceive)- assert failed!

 ESP32でledcWriteを使用したら激しく落ちるのです。

 

/home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/queue.c:1442 (xQueueGenericReceive)- assert failed!

 

 PWM部もソースは稼働実績があるんで、コレは後で組み込んだ非同期WebServerの仕業でエラーメッセージからFreeRTOSの排他処理の影響だと思い込み激しく明後日の方向にどハマリ。

 なんのことは無い、初期化の呼び出しを忘れてledcSetup, ledcAttachPinが実行されていないだけでした。

今更だけど知らんかったsshポートフォワード(TeraTerm SSH転送)

 ちょっと前、Postgresqlの設定をテキトーにやって放置していたらコイン採掘スクリプトを仕込まれてしまいまして。サーバがやたら重いのでtopコマンドで見てみたらpostgresアカウントのプロセスが2つ突出していてロードアベレージもエラい高いのです。ポスグレには見たことないアカウントとデータベースが作成されていてcoinがどうたらこうたら。

 やはりネットワークの入り口は厳格にしないとアカンです。はい。

 そんなわけで端末jdbcからDBつなぐ時はfirewalldで一時的に穴あけたりしてましたが、そんなことしなくてもsshでトンネル作成すればlocalhost:5432で接続できることを今更知りました。

ssh -L 5432:localhost:5432 <相手先ホスト> -i "<ssh証明書>" -l <ユーザー名>

 とりあえずOpenSSH-Win32を入れて試してみましたがなんの遜色もありません。OpenSSHが一番負荷に耐えるそうですが、TeraTermでも「設定」→「SSH転送」でサラッとできました。

 

Let's Encryptサーバ引っ越し

DTIからConoHaに引っ越したんでLet's Encyptの証明書も新サーバにお引越し。

CentOS7なんで悩まないw。

yumCertbotをインストールして/etc/letsencrypt以下をシンボリックリンクごと移動。

certbot renew

apacheプラグインが無いと怒られる。

apacheめんどくさいのでnginxにしたんだよね。

なので以下設定ファイルを書き換え。

$sudo vi /etc/letsencrypt/renewal/hoge.hogehoge.jp.conf

[renewalparams]
#installer = apache
#authenticator = apache
authenticator = webroot
installer = None
account = ***********************************
server = https://acme-v02.api.letsencrypt.org/directory
webroot_path = /usr/share/nginx/html,
webroot_map
hoge.hogehoge.jp = /usr/share/nginx/html

 certbot renew --dry-runで確認OK。

fusesource mqtt-client

mavenリポジトリからmqttを探すと一番上にくるのがこれ。(fusesource mqtt-client)

ドキュメントは何処よ。

https://github.com/fusesource/mqtt-client

コネクション切れの時に再接続するらしい。試してないけど。

readme.mdのサンプルを参考に実装してみる。1.16を使うとListerが非推奨になる。1.12はOK。issueにも非推奨のドキュメントが無いとかあるけど回答なし。ソースを覗くとExtendListerなんてものが追加されているのでそっちを使うのでいいのかしらん。

 

 

DTIのServerman@VPSからConoHa引っ越し

MQTT Brokerを試したいんでMosquittoを入れようとしたら、CentOS6用が無い。リポジトリも消滅しているようなんでCentOS7に入れ替えを決行。しかし・・・。

https://www-wp.dream.jp/search.php/?p=23141

結局何やってもyumが失敗するのでいろいろやってみたけど結論的にServerman@VPSのCentOS7は使いもんにならん、ということでConoHaに引っ越し。1GBプランで月額は300円強値上がりしたけど、SSDなんでyumが早い。

移行で躓いたのがjavaでJasperReportを使ったPDF作成が失敗すること。

Caused by: java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser

 どうもフォントが無いといっているようだけど、結論としてはX11がまったく入ってなかったので

yum groupinstall "X Window System"

で解決。

ESP32どハマり アクセスポイントモードでsoftAPにSSIDが指定できん

なんてこたーないんですが、アクセスポイントモードでSSIDが指定できんのにどハマり。

const char* ssid = "hoge-ssid";
const char* passwd = "0000";
    
WiFi.mode(WIFI_AP);
WiFi.softAP(ssid, passwd);

とかやってもESP32-xxxxxxxになってパスワードなしになる。
原因はコレ。

f:id:tdacchi:20200214081904p:plain

WiFiAPClass::softAPのソースを覗いてみたらパスワード8文字以上じゃないとハネられるというオチでした。えへ。
falseでもデフォ指定で動く模様。

ツール>Core Debug Levelを設定するとエラーが出ます。常識?

[E][WiFiAP.cpp:109] softAP(): passphrase too short!

SAMSUNG SHS-2920とEPIC電気錠

2年前にEPICの電気錠を買ったんですが、先月突如電源が入らなくなりまして。

https://www.amazon.co.jp/gp/product/B071S8PFKS/

これ大変便利だったのですが、3万近いのに2年しか持たんとは・・・。なので消耗品と割り切って似たようなSAMSUNG SHS-2920を買いました。開けてみるとほぼ同じ製品でした。OEMなんでしょう、どっちがどっちのか知りませんが。

f:id:tdacchi:20200206085654p:plain

https://www.amazon.co.jp/gp/product/B01EFIW7VW/

取り付け後はこんな感じです。ストライクはまったく同じものだったのでそのまま付け替えです。ドアに段差があるのでホームセンターでゴム板5mmを買って挟んでます。

 

f:id:tdacchi:20200206090034p:plain

正直メーカーロゴが大変気に食わんがやっぱり鍵の締め忘れなし、カードで素早く解錠、忘れても暗証番号でってのはすごい便利です。

さて何年持つでしょう?こいつは物理鍵が無いため壊れると外部からは解錠手段がないので、緊急用の入場手段は確保しておく必要があります。