Closed24

FIWARE を試してみる (ラズパイで)

ひさやんひさやん

ググる

https://www.fiware.org/developers/fiware-lab/

ここから登録へ進めてみる。

  • [Create Account]
    • Google Form で用意された簡単なアンケートに回答する
    • メールが届く。そこにはメールそのまま返信することがアカウント確認になり、登録が進むとある
    • 指示通りに返信しても、それに対してエラーメールが返される "Post by non-member to a members-only list"

何か間違えているかしら

  • [Request Community Account]
    • すこし項目が多いけれど入力して登録してみようかな。。。とすすめてみたけど途中に "Confirm that you created a main account for you project in FIWARE Lab." とあるから・・・

いったん help あてにメールで問い合わせてみる。

http://infographic.lab.fiware.org/

このサイトも表示されないし、lab まわりは今は動いていないのかしら?

ひさやんひさやん

Docker を普通に動かすもいいけど、ラズパイ4が転がってたからこれで試してみる。

https://fiware-orion.letsfiware.jp/user/raspberry_pi/

SDカードは手元に16GBのしか見当たらなかった。心許ない気もするけれどいったんすすめる。

まずは OSのイメージををSDカードに

昔は黒い画面で mount したり dd コマンドで書き込んでいたのに、とても便利になりましたね。

※ 32bit にするか 64bit にするか秒悩んだ。とりあえず 64bit を試してうまくいかなかったら 32bit に。
※ 手元に Rapsberry pi 5 はまだ転がってない。いつか試そう。体感スピード早くなるはず。

ひさやんひさやん

いつもの初期設定

ほとんど上記の赤い画面の設定でできた。Wi-Fi のパスワードや初期ユーザーのパスワード設定、ssh ログインの公開鍵指定まで。便利だ。

Raspberry Pi に ssh でログインして・・・

# 最初のおまじない的な
$ sudo apt update
$ sudo apt upgrade
# タイムゾーンは、Raspberry Pi Imager で Asia/Tokyo に設定しちゃってたのかも JST になってた
$ date
Sat 20 Apr 07:59:05 JST 2024
# もし違う場合はこんな感じ
$ sudo timedatectl set-timezone Asia/Tokyo

すなおに docker いれる

https://docs.docker.com/engine/install/debian/

準備作業。ページ中程をまんまコピーして実行。

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

いざインストール。

$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

そしてとりあえずの docker 動作確認。

$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
478afc919002: Pull complete 
Digest: sha256:a1893f68bcec8d0f6b09351b7522e4b546d38b0c9b948cb7e761bece66a5c437
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (arm64v8)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

動いた。

SDカードの空き容量をなんとなく確認&メモ

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.6G     0  1.6G   0% /dev
tmpfs           380M  1.3M  378M   1% /run
/dev/mmcblk0p2   15G  4.9G  8.5G  37% /
tmpfs           1.9G  148K  1.9G   1% /dev/shm
tmpfs           5.0M   16K  5.0M   1% /run/lock
/dev/mmcblk0p1  510M   76M  435M  15% /boot/firmware
tmpfs           380M   40K  380M   1% /run/user/1000

メモリも確認&メモ

$ free -m
               total        used        free      shared  buff/cache   available
Mem:            3792         408        1850          16        1624        3383
Swap:             99           0          99

状況によっては Swap 作った方がいいかもしれない。

ひさやんひさやん

Orion を docker で動かしてみる

https://fiware-orion.letsfiware.jp/user/raspberry_pi/

このページに記載されているまんまに。

$ git clone https://github.com/telefonicaid/fiware-orion.git
$ cd fiware-orion/docker
$ docker build -t orion .
・
・
・
ERROR: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied

したけど、permission denied になった。

docker を root 権限もっていないユーザーが使いにくいままだとおもわれる。

面倒だから sudo してもいいのだけど、ま、ちゃんとしよう。

# docker group があるかどうか確認。あった。
$ cat /etc/group | grep docker
docker:x:991:

# 自分を追加
$ sudo usermod -aG docker [ユーザー名]

$ docker build -t orion .
・
・
・
ERROR: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied

失敗。権限をあてなおすために、ログアウトして再ログイン。

$ docker build -t orion .
・
・ ビルド作業なので数分時間はかかるよ。処理が進んで
・
[+] Building 901.7s (5/7) 
 => [3/5] RUN     apt-get -y update &&     apt-get -y upgrade &&     apt-get -y install       curl       cmake       libs  877.6s
 => => # [ 75%] Building C object src/libmongoc/CMakeFiles/test-libmongoc-lib.dir/tests/test-mongoc-retryable-writes.c.o          
 => => # [ 75%] Building C object src/libmongoc/CMakeFiles/test-libmongoc-lib.dir/tests/test-mongoc-rpc.c.o                      
 => => # [ 75%] Building C object src/libmongoc/CMakeFiles/test-libmongoc-lib.dir/tests/test-mongoc-sample-commands.c.o          
 => => # [ 75%] Building C object src/libmongoc/CMakeFiles/test-libmongoc-lib.dir/tests/test-mongoc-scram.c.o                    
 => => # [ 76%] Building C object src/libmongoc/CMakeFiles/test-libmongoc-lib.dir/tests/test-mongoc-sdam-monitoring.c.o          
 => => # [ 76%] Building C object src/libmongoc/CMakeFiles/test-libmongoc-lib.dir/tests/test-mongoc-sdam.c.o   

なんか失敗したっぽい?

client_loop: send disconnect: Broken pipe

となって、接続も切れた。ラズパイを物理的に電源 OFF/ON して再起動。

ひさやんひさやん

retry 結果

$ cd fiware-orion/docker
$ docker build -t orion .

[+] Building 1537.2s (8/8) FINISHED

約25分くらいで完了した。さっき途中で止まったのは、机の上でラズパイの位置を置き換えたりして、なにか切断があったのかもしれない。深く追及しないことにする。

※ 追求と追及ってどっちがどっちかわからないときってありますよね。

ひさやんひさやん

さて動かそう

$ docker compose up -d

version is obsolet って warning がでるけど、いったん無視する。

そして orion image を pull してる。。。もしかして build しなくてもよかったのかも? あとでまた考えよう。

$  ! orion The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

ってなったから、pull じゃなくて build で正解だったのかもだ。何の指定が足りない?

docker-compose.yml の image を変更。

version: "3" 

services:
  orion:
    # image: fiware/orion
    image: orion:latest
    ports:
      - "1026:1026"
    depends_on:
      - mongo
    command: -dbURI mongodb://mongo

  mongo:
    image: mongo:6.0
    command: --nojournal

再度実行

$ docker compose up -d
[+] Running 2/2
 ✔ Container docker-mongo-1  Started                                                                                         0.0s 
 ✔ Container docker-orion-1  Started 

うごいたぽい

$ docker compose ps
NAME             IMAGE          COMMAND                  SERVICE   CREATED         STATUS                            PORTS
docker-orion-1   orion:latest   "/usr/bin/contextBro…"   orion     2 minutes ago   Up 2 seconds (health: starting)   0.0.0.0:1026->1026/tcp, :::1026->1026/tcp

一応動いた?

$ docker compose logs 

エラーが見える。いきなりデーモンモードはやめよう。丁寧に起動しよう。

$ docker compose down
$ docker compose up

mongo-1  | WARNING: MongoDB requires ARMv8.2-A or higher, and your current system does not appear to implement any of the common features for that!
mongo-1  |   applies to all versions ≥5.0, any of 4.4 ≥4.4.19
mongo-1  |   see https://jira.mongodb.org/browse/SERVER-71772
mongo-1  |   see https://jira.mongodb.org/browse/SERVER-55178
mongo-1  |   see also https://en.wikichip.org/wiki/arm/armv8#ARMv8_Extensions_and_Processor_Features
mongo-1  |   see also https://github.com/docker-library/mongo/issues/485#issuecomment-970864306

mongo がいやがってますな

https://fiware-orion.letsfiware.jp/user/raspberry_pi/

このページを再度確認すると mongo は 4.4 になってた。

docker-compose.yml の image を変更。

version: "3" 

services:
  orion:
    # image: fiware/orion
    image: orion:latest
    ports:
      - "1026:1026"
    depends_on:
      - mongo
    command: -dbURI mongodb://mongo

  mongo:
    image: mongo:4.4
    command: --nojournal
$ docker compose up

mongo-1  | WARNING: MongoDB requires ARMv8.2-A or higher, and your current system does not appear to implement any of the common features for that!
mongo-1  |   applies to all versions ≥5.0, any of 4.4 ≥4.4.19
mongo-1  |   see https://jira.mongodb.org/browse/SERVER-71772
mongo-1  |   see https://jira.mongodb.org/browse/SERVER-55178
mongo-1  |   see also https://en.wikichip.org/wiki/arm/armv8#ARMv8_Extensions_and_Processor_Features
mongo-1  |   see also https://github.com/docker-library/mongo/issues/485#issuecomment-970864306

うごかない。

Warning Message の指示どおりにいったん 4.4.18 を指定

version: "3" 

services:
  orion:
    # image: fiware/orion
    image: orion:latest
    ports:
      - "1026:1026"
    depends_on:
      - mongo
    command: -dbURI mongodb://mongo

  mongo:
    image: mongo:4.4.18
    command: --nojournal
$ docker compose up

うごいったっぽいぞ

docker を daemon mode ではないモードで実行しちゃったので、別で ssh をつないで

$ curl localhost:1026/version
{
"orion" : {
  "version" : "3.12.0-next",
  "uptime" : "0 d, 0 h, 1 m, 24 s",
  "git_hash" : "afcea51e46c878cf72ee78eaf4bb462d881be18f",
  "compile_time" : "Fri Apr 19 23:55:57 UTC 2024",
  "compiled_by" : "root",
  "compiled_in" : "buildkitsandbox",
  "release_date" : "Fri Apr 19 23:55:57 UTC 2024",
  "machine" : "aarch64",
  "doc" : "https://fiware-orion.rtfd.io/",
  "libversions": {
     "boost": "1_74",
     "libcurl": "libcurl/7.88.1 OpenSSL/3.0.11 zlib/1.2.13 brotli/1.0.9 zstd/1.5.4 libidn2/2.3.3 libpsl/0.21.2 (+libidn2/2.3.3) libssh2/1.10.0 nghttp2/1.52.0 librtmp/2.3 OpenLDAP/2.5.13",
     "libmosquitto": "2.0.15",
     "libmicrohttpd": "0.9.76",
     "openssl": "3.0.11",
     "rapidjson": "1.1.0",
     "mongoc": "1.24.3",
     "bson": "1.24.3"
  }
}
}

とりあえず、うごいた。

docker compose up したのは ctrl + c などで停止して、あらためて

$ docker compose up -d

と -d オプションつきであらためて動かしておく。

ラズパイ再起動時の docker 永続化などは、あらためて設定すること。

なお、同じネットワーク内の PC / Mac のWebブラウザで

http://raspberrypi.local:1026/version

を開くと、上記と同じ json が返された。

もちろん host名などは初期設定によると思うけど、基本的にこれで確認できると思う。
ラズパイ側でへんにファイアウォール系が動いてなさげの簡易確認。

ひさやんひさやん

次は WireCloud いれようかなぁ。。。とぐぐると

https://www.letsfiware.jp/wirecloud-how-to-setup/

なんと、こんな日本語のよきページが見つかる。昔に何度か参照させていただいてお世話になった気がしなくもない。

とりあえずラズパイでも一回試しなおそう。

さっきの docker compose でつくった環境はいったん消しちゃう

docker-compose.yml があるディレクトリへ移動
$ cd fiware-orion/docker
$ docker compose down

down は「全部消えてしまえ!」なので、普段使いでは注意すること。
試用をはじめたら、もし停止したい時は docker compose stop を使うか、docker volume の設定をきちんとしてデータを永続化するがおすすめ。たぶんあとで Volume は整理整頓する。

$ mkdir wirecloud
$ cd wirecloud
$ curl -sL https://letsfiware.jp/wirecloud | bash

それなりに時間がかかるので、待つ。 <=== イマココ





=> [build_stage 2/2] RUN apt update &&     apt install -y git curl zip unzip openjdk-8-jdk maven -y --no-install-recommends &&     apt -y clean &&     rm -rf /var/lib/apt/lists  1309.6s
 => => # [INFO]                                                                                                                                                                           
 => => # [INFO] --------------< org.elasticsearch.module:lang-expression >--------------                                                                                                  
 => => # [INFO] Building Module: Language: Expression 2.4.7-SNAPSHOT              [8/45]                                                                                                  
 => => # [INFO] --------------------------------[ jar ]---------------------------------                                                                                                  
 => => # Downloading from elasticsearch-releases: http://maven.elasticsearch.org/releases/org/apache/lucene/lucene-expressions/5.5.4/lucene-expressions-5.5.4.pom                         
 => => # Downloading from oss-snapshots: https://oss.sonatype.org/content/repositories/snapshots/org/apache/lucene/lucene-expressions/5.5.4/lucene-expressions-5.5.4.pom                   
 => [stage-1 2/8] RUN apt update &&     apt install -y openjdk-8-jre gosu -y --no-install-recommends &&     apt -y clean &&     rm -rf /var/lib/apt/lists/*                         195.5s

1309.6s はカウントアップされているから異常終了は指定なさげだけど、195.5s やその他については画面更新されなくなった。停止してるっぽいかもしれない。

この一連はさすがに Raspberry pi 4 には酷な作業だったのか。
もしくは熱暴走しちゃっているのか。
一応の冷却ファンはついてはいるのだけれど。あらためての調査ですかね。

それか Raspberry pi 5 をポチるのが正解だろうな。
性能がアップしてるからアレコレな build にも耐久力が高いはず。
お金で解決!?

ひさやんひさやん

やっぱり失敗に終わった。エラーをメモしておく。

2680.8 [INFO] ------------------------------------------------------------------------
2680.8 [INFO] BUILD FAILURE
2680.8 [INFO] ------------------------------------------------------------------------
2680.9 [INFO] Total time:  39:14 min
2680.9 [INFO] Finished at: 2024-04-20T01:15:44Z
2680.9 [INFO] ------------------------------------------------------------------------
2680.9 [ERROR] Failed to execute goal on project lang-expression: Could not resolve dependencies for project org.elasticsearch.module:lang-expression:jar:2.4.7-SNAPSHOT: Failed to collect dependencies at org.apache.lucene:lucene-expressions:jar:5.5.4: Failed to read artifact descriptor for org.apache.lucene:lucene-expressions:jar:5.5.4: Could not transfer artifact org.apache.lucene:lucene-expressions:pom:5.5.4 from/to elasticsearch-releases (http://maven.elasticsearch.org/releases): maven.elasticsearch.org: Name or service not known: Unknown host maven.elasticsearch.org: Name or service not known -> [Help 1]
・
・
中略
・
・
2681.0 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
2681.0 [ERROR] 
2681.0 [ERROR] After correcting the problems, you can resume the build with the command
2681.0 [ERROR]   mvn <goals> -rf :lang-expression
------
Dockerfile:4
--------------------
   3 |     SHELL ["/bin/bash", "-c"]
   4 | >>> RUN apt update && \
   5 | >>>     apt install -y git curl zip unzip openjdk-8-jdk maven -y --no-install-recommends && \
   6 | >>>     apt -y clean && \
   7 | >>>     rm -rf /var/lib/apt/lists/* && \
   8 | >>>     if [ "$(uname -m)" = "x86_64" ]; then export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"; echo "${JAVA_HOME}"; else export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-arm64/"; echo "${JAVA_HOME}"; fi && \
   9 | >>>     curl -s https://get.sdkman.io | bash && \
  10 | >>>     source "/root/.sdkman/bin/sdkman-init.sh" && \
  11 | >>>     sdk install gradle 3.3 && \
  12 | >>>     git clone -b 2.4 --depth=1 https://github.com/elastic/elasticsearch.git && \
  13 | >>>     cd elasticsearch/ && \
  14 | >>>     mvn clean -e package -DskipTests
  15 |     
--------------------
ERROR: failed to solve: process "/bin/bash -c apt update &&     apt install -y git curl zip unzip openjdk-8-jdk maven -y --no-install-recommends &&     apt -y clean &&     rm -rf /var/lib/apt/lists/* &&     if [ \"$(uname -m)\" = \"x86_64\" ]; then export JAVA_HOME=\"/usr/lib/jvm/java-8-openjdk-amd64/\"; echo \"${JAVA_HOME}\"; else export JAVA_HOME=\"/usr/lib/jvm/java-8-openjdk-arm64/\"; echo \"${JAVA_HOME}\"; fi &&     curl -s https://get.sdkman.io | bash &&     source \"/root/.sdkman/bin/sdkman-init.sh\" &&     sdk install gradle 3.3 &&     git clone -b 2.4 --depth=1 https://github.com/elastic/elasticsearch.git &&     cd elasticsearch/ &&     mvn clean -e package -DskipTests" did not complete successfully: exit code: 1
ひさやんひさやん

ご飯食べる前にあっさりと終わった。

$ ./setup-fiware.sh 
WARN[0000] /home/xxxxxx/FIWARE-Small-Bang-0.4.0/docker-compose.yml: `version` is obsolete 
[+] Running 5/5
 ✔ orion Pulled                                                                                                                                                                       26.1s 
   ✔ ebc3dc5a2d72 Pull complete                                                                                                                                                       10.0s 
   ✔ 4f4fb700ef54 Pull complete                                                                                                                                                        0.9s 
   ✔ 7a63d84ea83d Pull complete                                                                                                                                                       17.4s 
   ✔ f5447bac8f97 Pull complete                                                                                                                                                        2.7s 
[+] Running 3/3
 ✔ Network fiware-small-bang-040_default    Created                                                                                                                                    0.1s 
 ✔ Container fiware-small-bang-040-mongo-1  Started                                                                                                                                   20.8s 
 ✔ Container fiware-small-bang-040-orion-1  Started                                                                                                                                    0.4s 
*** Setup has completed ***
Service URLs:
  Orion: http://192.168.XXX.XXX:1026
Sanity check:
  ngsi version --host orion.local
docs: https://fi-sb.letsfiware.jp/
Please see the .env file for details.

ですが

$ curl http://192.168.11.181:1026/version
curl: (7) Failed to connect to 192.168.11.181 port 1026 after 0 ms: Couldn't connect to server

だめっぽい

$ docker compose ps
WARN[0000] /home/xxxxxx/FIWARE-Small-Bang-0.4.0/docker-compose.yml: `version` is obsolete 
NAME                            IMAGE                     COMMAND                  SERVICE   CREATED          STATUS                                 PORTS
fiware-small-bang-040-mongo-1   mongo:4.4                 "docker-entrypoint.s…"   mongo     17 minutes ago   Restarting (132) 29 seconds ago        
fiware-small-bang-040-orion-1   letsfiware/orion:3.10.1   "sh -c 'rm /tmp/cont…"   orion     16 minutes ago   Up About a minute (health: starting)   0.0.0.0:1026->1026/tcp, :::1026->1026/tcp

$ docker compose logs
WARN[0000] /home/xxxxxx/FIWARE-Small-Bang-0.4.0/docker-compose.yml: `version` is obsolete 
orion-1  | rm: cannot remove '/tmp/contextBroker.pid': No such file or directory
orion-1  | time=2024-04-25T03:15:51.778Z | lvl=ERROR | corr=N/A | trans=N/A | from=N/A | srv=N/A | subsrv=N/A | comp=Orion | op=mongoConnectionPool.cpp[218]:mongoConnect | msg=Database Startup Error (cannot connect to mongo - doing 100 retries with a 1000 millisecond interval)
mongo-1  | 
mongo-1  | WARNING: MongoDB requires ARMv8.2-A or higher, and your current system does not appear to implement any of the common features for that!
mongo-1  |   applies to all versions ≥5.0, any of 4.4 ≥4.4.19
mongo-1  |   see https://jira.mongodb.org/browse/SERVER-71772
orion-1  | time=2024-04-25T03:15:51.778Z | lvl=FATAL | corr=N/A | trans=N/A | from=N/A | srv=N/A | subsrv=N/A | comp=Orion | op=MongoGlobal.cpp[141]:mongoInit | msg=Fatal Error (MongoDB error)
mongo-1  |   see https://jira.mongodb.org/browse/SERVER-55178
mongo-1  |   see also https://en.wikichip.org/wiki/arm/armv8#ARMv8_Extensions_and_Processor_Features
mongo-1  |   see also https://github.com/docker-library/mongo/issues/485#issuecomment-970864306
mongo-1  | 
mongo-1  | /usr/local/bin/docker-entrypoint.sh: line 416:    27 Illegal instruction     "${mongodHackedArgs[@]}" --fork
mongo-1  | 

こまかく調査はやっぱりごはんを食べてから。

ひさやんひさやん

Raspberry Pi 4 は ARM Cortex-A72 で ARMv8-A
Raspberry Pi 5 は ARM Cortex-A76 で ARMv8.2-A 6

ARMv8-A だと Mongo 4.4 は動かないみたいだ。
※ きちんと調べてないけどすくなくとも Docker Image はシンプルな用意がなさそう

Raspberry Pi 5 買うのが簡単な解決っぽいけれど、どうしようかな。

ひさやんひさやん

いったんとめて

$ docker down

これためしてみよう

$ wget https://github.com/themattman/mongodb-raspberrypi-docker/releases/download/r6.0.14-mongodb-raspberrypi-docker-unofficial/mongodb.ce.pi4.r6.0.14-mongodb-raspberrypi-docker-unofficial.tar.gz

$ docker load --input mongodb.ce.pi4.r6.0.14-mongodb-raspberrypi-docker-unofficial.tar.gz 

.env のバージョンを書き換えてみた

$ cat .env
#
# .env file for FIWARE Small Bang
#
VERSION=0.4.0
IP_ADDRESS=192.168.11.181
CONFIG_DIR=./config
DATA_DIR=./data

# Orion

IMAGE_ORION=letsfiware/orion:3.10.1

# MongoDB

#IMAGE_MONGO=mongo:4.4
IMAGE_MONGO=mongodb-raspberrypi4-unofficial-r6.0.14

# Service resources

ORION=orion.local

docker 起動。

$ docker compose up -d

$ curl http://raspberrypi.local:1026/version
{
"orion" : {
  "version" : "3.10.1",
  "uptime" : "0 d, 0 h, 1 m, 53 s",
  "git_hash" : "9a80e06abe7f690901cf1586377acec02d40e303",
  "compile_time" : "Thu Aug 10 10:20:17 UTC 2023",
  "compiled_by" : "root",
  "compiled_in" : "buildkitsandbox",
  "release_date" : "Thu Aug 10 10:20:17 UTC 2023",
  "machine" : "aarch64",
  "doc" : "https://fiware-orion.rtfd.io/en/3.10.1/",
  "libversions": {
     "boost": "1_74",
     "libcurl": "libcurl/7.74.0 OpenSSL/1.1.1n zlib/1.2.12 brotli/1.0.9 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.3.0) libssh2/1.9.0 nghttp2/1.43.0 librtmp/2.3",
     "libmosquitto": "2.0.15",
     "libmicrohttpd": "0.9.76",
     "openssl": "1.1",
     "rapidjson": "1.1.0",
     "mongoc": "1.23.1",
     "bson": "1.23.1"
  }
}
}

とりあえずは動いてるっぽいぞ。

あとで Raspberry Pi 5 はポチろう。MongoDB は 4.4 が安全な気がする。

https://amzn.to/44chZsN

ひさやんひさやん

WireCloud も動かしてみる。config.sh の WIRECLOUD を true に。

$ make clean

$ vi ./config.sh

#!/bin/bash

# Use Cygnus sink (true or false) Default: false
CYGNUS_MONGO=
CYGNUS_MYSQL=
CYGNUS_POSTGRES=
CYGNUS_ELASTICSEARCH=

# Set passowrd for database systems
MYSQL_ROOT_PASSWORD=
POSTGRES_PASSWORD=
ELASTICSEARCH_PASSWORD=

# Use STH-Comet (true or false) Default: false
COMET=

# Use Quantumleap (true or false) Default: false
QUANTUMLEAP=

# Use Perseo (true or false) Default: false
PERSEO=

# Use WireCloud (true or false) Default: false
WIRECLOUD=true

# Use IoT Agent for UltraLight 2.0 (true or false) Default: false
IOTAGENT_UL=

# Use IoT Agent for JSON (true or false) Default: false
IOTAGENT_JSON=

# Specify transport protocol for IoT Agent (HTTP and/or MQTT)
# Use HTTP (true or false) Default: true
IOTAGENT_HTTP=

# Use MQTT (true or false) Default: false
IOTAGENT_MQTT=

# Use node-red (true or false) Default: false
NODE_RED=

# Start containers (true or false) Default: true
START_CONTAINER=

$ ./setup-fiware-sh

また、しばらくまつ。

ひさやんひさやん

なんかちょっと時間かかりすぎてるな。。。また Elastic Search あたりで落ちそうな予感。。。

失敗だ。

ひさやんひさやん

待ちながらいろいろ回遊。

GeoProperty のサンプルは、X と Y だけのものが多いのだけど、Z も許容されているらしい。
みんなだいすき EPSG:4326 + 標高 or 楕円体高 ってかんじかな。地球中心座標ではなさげかな。
標高か楕円体高は、また改めて調査。

https://github.com/FIWARE/context.Orion-LD/blob/develop/doc/manuals-ld/entities-and-attributes.md

In other words, all the types defined by GeoJSON except GeometryCollection. The second field of the value (coordinates) is always an array, but what's inside the array depends on the first field (type). For example, a "Point" is an array of two floats - longitude and latitude - in that order. I said two floats, but there can an optional third float in the array - the Z-value (altitude or elevation).

ひさやんひさやん

やっぱりつまづくなぁ。Raspberry Pi 4。

Raspberry Pi 5 をポチろうかとおもったけど、ファン付きのケースとかACアダプター5Aのとかあれこれ買い足すと 2万円くらいになっちゃうし、N100 搭載のミニPC買った方が安心か悩んでしまいますね。

16Gのメモリと 500GBのSSDがついて 23400円。タイムセールで、ほぼ 2万円のもちらほら。

https://amzn.to/4ddetST

※ G4, G5 に注意したり比較したりしながら

これとか、超かわいい。

https://amzn.to/4dfKObK

27,000円くらい。だがこの1ヶ月で 2,000円くらい値上がりしてますね。円安 orz.

ひさやんひさやん

で、気分転換?に、Macbook Air のいつもつかっている Docker に環境作ってみたら、なんなく起動。

便利だなぁ。

$ curl -sL https://letsfiware.jp/fi-sb | bash
$ cd FIWARE-Small-Bang-0.4.0/
$ vi config.sh
WIRECLOUD=true # に設定
$ ./setup-fiware.sh

$ make createsuperuser # WireCloud の管理者をつくる
ユーザー名とパスワード設定

Mac の Chrome からコンテナへアクセス。デフォルトで 80 番ポートだったからあまり深く考えずに開いた。

右上のサインインから、管理者でログインもでけた。なんてことはなく簡単。

このスクラップは12日前にクローズされました