Falconの思うままに

PASCAL好きが、気ままにマニアックなネタを

Ubuntu22.04でのBluetooth事情

さて、ラズパイが飛んで、Ubuntu22.04にしてる記事を書いてますが、

前の環境の復旧も進めています。

NodeRedからAlexaをBluetoothスピーカーとして音声合成を流していたのですが、

見事バックアップもなくやり直しです。

それで昔書いた記事を自分でみてやっていたのですが、

Ubuntu22.04になっているとbluez-alsaがソースからコンパイルしなくとも

apt installで入るようになっていました。

これは楽です。

aplayでbluetooth向けへ再生する時に使いますね。

それから音声合成界隈も進化しているようで、音声合成させて生成した

wavファイルをnoderedから再生していますが、現在はラズパイでも

いろいろできるんですね。

今回はedge-ttsを使ってみました。

ここから話は脱線しますが、日本語も英語もいけますが、中国語もいけますね。

中国語で作成してみましたが、日本語より自然な感じです。

クオリティが高いです。

やっぱり言語仕様の違いですかね。

中国語の場合、同音異義語が少ないので発音が決まります。

そうアクセント(声調)も決まるので、

日本語のように下を(した)と読んでくれないので、

ひらがなで指示するといったこともないですね。

なので中国語の音声はいい感じです。

 

日本語の場合、この問題は大きくて、誤った読みで読み上げた

Youtubeなんかを見かけますが、子供がそれを信じてしまい

間違った読みを正解として覚えてしまうことがあるのではと

気にかけています。手間がかかるので、校正しないままで流していると

思いますが、あまりに間違った読みがでてくることあります。

人の動画に文句つけてもしようがないですが....(笑)

 

 

ではでは。

 

Ubuntuを22.04にしたらトラブル

Ubuntuを22.4まで上げて順調かと思いきや、トラブル発生。

どうもNodeRedのノードの動きがおかしい。

 

動いていたノードなので、なぜなのかわからない。

というわけで、Node.jsを全削除して入れ直しにかかりました。

ですが、はまりです。

sudo apt install nodejs は入ります。

このVersionは18なのですが、

npmが入らない。

結論は nodeは20でないとnpmが入らないということです。

なのでnodesourceから取得するスクリプトを走らせて

node20にしてからnodered本家のraspi用インストールスクリプトを走らせる

という手順が必要でした。

すると最新のnoderedが入ります。

デーモン起動スクリプトもセットしてくれるので、何かファイルを

いじるということはないのですが、知らないとできない対処です。

 

Upgradeした人限定のトラブルかと思いますがマイナーな事象で

情報が少ない。

これで半日悩んでいました。

 

ではでは。

 

UbuntuをUpgrade

さて、そろそろ自宅のUbuntuが20.04を22.04にしたいなと思っていました。

SSHでLoginするとupgradeコマンドを紹介されています。

 

このコマンドどうなんだろう? まともにできるのか?

と思っていましたが、コマンドを打ち込んでしまいました(笑)

Upgradeが始まりました。

このコマンド、想像どおりコンソールでやったほうがいいです。

SSHからやろうとするといろいろ、問題ありそうです。

リブートで接続切れるからですかね。

(できるのかもしれないですが)

なので、自宅ラズパイの時はモニタつけてやりましたが、

OCI Cloudの場合はシリアルコンソールでやろうかな。

 

ということで、やたら時間がかかりました。

最後に何かエラーがでて更新失敗みたいなメッセージがでてますが、

処理は進んで、無事リブートして22.04のtty出力がでてきました。

 

更からやるより、面倒がないですね。

 

最新のLTSになったのでちょっとうれしいです。

 

ではでは。

OCIでVPN Serverが落ちた。

さて、今朝ですが、自分のVPNへ接続できないことに気づきました。

 

VPN Serverへつながらなかったので、サーバーへログインしてみようと

しました。

ところが、私のVPNサーバーはおひとり様のサーバーですので、

ログインもVPN経由のSSHにしています。 そう外へ公開しているポートは

VPNのサーバーポートしかないのです。

 

まあこの運用ですとSSHへの攻撃が来ないので精神衛生的には大変

よろしいのですが、こういう時には困ります。

それは十分自覚の上なので、OCIのコンソールログインをしようとしました。

最近のOCIはスマホで認証許可を出さないとコンソールへログインできない

2段階になっています。

安心ですね。

それでCloud Shellを起動するとシリアルコンソールがでてきまして、

ログインしようとするとパスワードエラーが何度やっても出てしまいます。

なんだこれ~~~ これができないと詰んでしまいます。(涙)

実はこれ、SSHのログインアカウントとは別なのですよね。

SSHはキーファイルでのログインなのでキーフレーズがあるのですが、

シリアルコンソールの場合、昔からあsるユーザー管理(言い方がいまいち)

なのでpasswdコマンドで設定するパスワードが必要なのです。

Ubuntuを立ち上げた初期状態ですとこのパスワードが未設定なのです。

設定していないものはいくら打ち込んでもパスワードが合うわけがないのです。

設定したはずなのになあ~~~

とお手上げで一日ほおっておきました。

 

VPNを接続するとすんなり接続できてしまいました。

何故? まあこちらとしては何もしていないので、何かしらの

障害が回復したとしか考えられません。

OCIの障害情報をみても何も書かれていないので、自分だけの障害?

みたいです。 そんなこともあるんですね。

 

何はともあれ復帰しまいた。

 

ではでは。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

NodeRedにMermaid

さて、NodeRedのDashboard 2.0ですが、日本で誰も使っていないのか(笑)

というか移行が問題なさ過ぎて記事にもならないのか。

と思っていますが、Versionが1.5まで上がってきました。

それでMermaidですが、1.4なんです。最新のMermaidに折れ線グラフが

取り込まれたので、期待してみましたが、まだ使えません....

自分で更新したいけど手がでない。

 

これが取り込まれると、Mermaidで折れ線のグラフを書けるようになり

NodeRed上でのプログラムでの制御がとってもしやすいと思っています。

自作画面もいいですが、NodeRedの範疇で使える画面ができそうで超絶期待です。

 

ではでは。

 

ラズパイ交換

さて、自宅のラズパイ4ですが、位置を引っ越しするので、

電源を切って移動しました。

ただの移動です。電源を入れても立ち上がってこない....

 

普段ディスプレイを付けていないもんで原因わからず。

しょうがないのでコンソールをディスプレイをつけて

みるとSDカードエラー~~~~

あら、壊れてしまった。あっけないですな。

24時間稼働で3~4年くらいかなあ。

まあよく持ちましたということで、SDカードを交換しました。

実はOSイメージはラズパイ3用で作っておいてあったやつが

あったので、交換しただけです。

立ち上がったのですが、何かがおかしい。

VIを起動してもしばらく考えこんでしまう。

全体的に動作が緩慢な状態になっていました。

まあ、動作が緩慢なのは昔からだからと思っていたのですが、

あまりに遅い。

う~ん。駄目かな? ということで、ボードを交換。

新品で眠っていたやつに交換。

再起動すると、嘘のようにレスポンスがいい!!!

基板に問題があったみたい。

こういうことあるんですねえ。

問題は構築したアプリの復元です。気が重い。

ではでは。

TMS WebCoreとNodeRedの融合

さて,TMS WebCoreでWebページが作れることを折に触れて書いていますが、

本当にすばらしいプロダクトだと実感しました。

 

NodeRedはUI画面をDashboardで作るわけですが、標準のダッシュボード

風でないオリジナル画面が必要になることがあります。(汗)

 

そうなると画面を自作するしかないですが、Reactは使えません(笑)

使えないのは私の力不足な為ですが、じゃあどうするかというと

何か別のものでつくればいいですが、NodeRedは合わせ技が

使えるのです。

NodeRedのUIでIFRAMEを取り込めるノードがあります。

これを使うとその中のページは何でもよくなります。

ここをNodeRedの静的ページコンテンツを表示するようにすれば

ファイルコピーだけでデプロイできます。

MENU体系はNodeRed中身は別の構成です。

 

ここでTMS WebCoreの登場です。

PWA画面を作成できますので、単純な1枚のページとして

作成します。すると中ではWebSocketもRESTも使い放題(笑)

なので、フロントエンドをIFRAMEにはめ込む形になります。

 

複数ページの場合はプロジェクトを複数にすればいい訳です。

 

これはなかなかうまい方法だなと思っています。

バックエンドはもちろんNodeRedでやります。

 

私はこれをさらに、AndroidのネイティブアプリのWebKit

コンポーネント上で表示しているので、NodeRedの画面が

専用アプリのように見えます。

LocalStorageもちゃんと使えます。

 

こちらもDelphiAndroidアプリで作成しました。

そう、Delphi+NodeRedでここまでできるのです。

さらにNodeRed上でPythonを呼び出しているのは秘密(笑)

言語マニアぶりを披露してしまいました...

 

TMS Webcoreは既存の知識を無駄にせず最新の

開発形態にも対応できるすばらしい製品です。

おかげで、仕様の実装に技術的困難はなく、

やりたいことに集中できました。

なんせDelphiで書いてますからね!!

 

Delphiがもっと流行りますように~~~

 

ではでは。