ct-open-source / ct-smart-home Goto Github PK
View Code? Open in Web Editor NEWA ready-to-use Node-RED setup for home automation
Home Page: https://ct.de/smarthome
License: GNU General Public License v2.0
A ready-to-use Node-RED setup for home automation
Home Page: https://ct.de/smarthome
License: GNU General Public License v2.0
Hello,
I get this error message when I want to install other interfaces.
Failed to load node catalogue.
Check the browser console for more information
I created the container under QNAP with the YAML.
The containers MQTT and ZIGBee were deleted manually.
After that the container is installed in network mode Bridge
I tryed to start the docker on a Raspberry Pi with Raspbian Stretch/Hypriotos and run every time into strange problems with starting all dockers. A tested Raspberry Pi sample configuration with less problems would be nice.
Hi,
when the start.sh script tries to find a USB dongle for zigbee, it checks the vendor ID of Texas Instruments (0451).
I have a Conbee II stick, which is build by Dresden Electronik and has a different vendor ID (1cf1).
Replacing 0451 by 1cf1 for the initial run of the script worked fine for me.
Could you add the Dresden Electronik ID to the check in start.sh?
Thanks!
Hello,
after updating my system via ./start.sh update nodered doesn't start anymore and reports the following error (zigbee2mqtt and mqtt updated well):
fatal error in , line 0
#unreachable code
#failuremessage object: 0x7ec6023c
illegal instruction
Any idea what the root cause might be?
(Sorry I'm new to github and docker)
Thanks!
Hi all,
I'm new with docker, so I followed the instructions on git-hub step by step. Starting with a Zip-copy of the repository I build up a directory on my raspi. Building the container seems to work, because a "docker ps" shows the status of ctnodered and eclipse-mosquitto as "up".
So I assume, that the images are working - however I fail to open a connection via web browser. I checked a couple of URLs and port without any success (localhost, 172.17.0.0, :1883, :9001).
so at the end the question is: how do I access mqtt and Node-Red ?
I have no external devices via Zigbee etc. connected, at the end I want to read out some values of my heating control over the network via wget.
Some version info:
Docker Version 19.03.6
docker-compose version 1.25.4
Although the project is not brand new I hope for feedback.
Cheers Uli
New status a couple of hours later:
I repeated the procedure from scratch again - but now I started the start.sh script with sudo. After that I checked the container with portainer and now a complete url for node-red is displayed - and it works. So the original problem is resolved, no idea why.
It seems to be essential to create the container as superuser. However it is quite hard to find out the reason of "not working".
Now I will start my trials with node-red.
Please check your docker-compose file:
ct-Smart-Home/docker-compose.yml
Lines 13 to 16 in 1e37ed3
It seems you have some redundant settings. I also recommend not running the container privileged unless really, really needed. In most cases you can achieve the wanted effect by adding some capabilities and mounts for your specific needs.
May i kindly ask for a new release "latest-16" supporting Node.js version 16.
I like to use node "node-red-contrib-tuya-smart-device" (s. So können Sie mit Node-Red einfach Smart-Home-Geräte von Tuya ohne Cloud steuern | c't Magazin). But it needs V16.
With this tool it would be easy to create push message and get other data transfer possibilities to mobilephones.
I get following error message when installing new modules in node red (e.g. node-red-contrib-denon):
npm WARN locking Error: EACCES: permission denied, open '/usr/src/node-red/_locks/staging-accc372ed0ccb0d8.lock'
npm WARN locking /usr/src/node-red/_locks/staging-accc372ed0ccb0d8.lock failed { Error: EACCES: permission denied, open '/usr/src/node-red/_locks/staging-accc372ed0ccb0d8.lock'
npm WARN locking stack: 'Error: EACCES: permission denied, open '/usr/src/node-red/_locks/staging-accc372ed0ccb0d8.lock'',
npm WARN locking errno: -13,
npm WARN locking code: 'EACCES',
npm WARN locking syscall: 'open',
npm WARN locking path: '/usr/src/node-red/_locks/staging-accc372ed0ccb0d8.lock' }
npm ERR! path /usr/src/node-red/_locks/staging-accc372ed0ccb0d8.lock
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall open
npm ERR! Error: EACCES: permission denied, open '/usr/src/node-red/_locks/staging-accc372ed0ccb0d8.lock'
npm ERR! { Error: EACCES: permission denied, open '/usr/src/node-red/_locks/staging-accc372ed0ccb0d8.lock'
npm ERR! stack: 'Error: EACCES: permission
Could you please update the docker-compose.yml file to grand permission
Thanks a lot!
Hi,
i pulled the actual master (with docker-compose.yml version 3.6) as i´m keen to use the zigbee2mqtt frontend instead of the zigbee2mqttAsisstent.
so, port 1881 is defined in start.sh and in docker-compose.yml but it is not working.
Áctual i can´t find a reason for that (or any log entry hint). Only thing i found is, that the network_mode setting "host" ist back in docker-compose-yml.
Any suggestion for next analyse - step would be very appreciated :-)
best regards
After install you can't remove app and containers from container station anymore. Only a de- and reinstall of container-station helped to get rid of this. Tried on cmd line with docker app uninstall - QNAP docker don't support the param "app".
I can not use the whole solution because I am unable to install docker-compose an my Pi3 with Raspbian.
If I execute sudo pip install docker-compose
I always get this response:
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-Sjc79O/pynacl/
I already re-installed the Raspbian OS. But still the same problem.
Am I the only one with this issue?
Dear all,
after updating, mqtt service cannot be connected any more, neither internally (node-red/Zigbee2Mqtt) nor externally (e.g. MQTTool). Log:
mqtt_1 | 0: New connection from 172.19.0.2 on port 1883.
mqtt_1 | 0: Client has exceeded timeout, disconnecting.
And yes: allow_anonymous true
Other hints from similar "issues" already tried out.
Can anyone help out?
Thanks in advance.
Hi
Now that kubernetes is getting into the small end of iot, I'm setting up a kubernetes cluster for home automation and I've been using node red official images for it
Maybe you know maybe not, I'll just put it here for completeness: rancher labs made a stripped down version of k8s called k3s that runs pretty fine on RPIs, check it out
www.k3s.io
Now you guys added a lot of useful modules to node-red that so far I need to add manually to the default image and then re-package it and host it on a personal repo
Have you looked into kubernetes and are you interested in getting it to work?
It could be as easy as modifying the official helm charts to run your image
As the stack for iot gets bigger (node-red, mqtt, influxdb, grafana, home kit, openhab, etc) one RPI is not enough anymore and being able to scale would be beneficial
Hi,
inject nodes trigger at UTC time instead of local time.
System is Debian 9 Stretch in a KVM virtual machine. Debian timezone and date
output are correct:
renne@Homematic:~$ cat /etc/timezone
Europe/Berlin
renne@Homematic:~$ date
Mo 1. Jul 20:55:49 CEST 2019
What' going wrong here?
From my point of view it would be interesting to integrate HTTPS with LetsEncrypt to the NodeRed Container. Possibly additional for Mosquitto.
What would be the right approach here?
Traefik? Or is it possible to issue and integrate the certificates directly into NodeRed?
Based on the situation that this smarthome components should not be available from the Internet, the DNS-challenge option of LetsEncrypt would be interesting.
Would be interesting to have it included into docker-compose file here.
Hallo,
mit dem aktuellen eclipse-mosquitto docker image bekomme ich folgende Fehlermeldungen:
info 2021-03-06 10:01:09: Connecting to MQTT server at mqtt://mqtt
debug 2021-03-06 10:01:09: Using MQTT anonymous login
error 2021-03-06 10:01:15: Not connected to MQTT server!
Wenn ich im dokcer-compose.yml auf eine ältere Version gehe, funktioniert es.
mqtt:
image: "eclipse-mosquitto:1.6"
muss für die latest Version von mosquitto etwas abgeändert werden?
Gruß
Martin
I cannot deploy any flow modifications anymore. The deploy button is simply greyed out (disabled).
I'm running the project on my Pi4 and installed the node-red package node-red-contrib-vcgencmd in order to access the Pi's temperature measure. The installation was successful and the nodes are available:
Additionally the container requires the apk package raspberrypi
to be installed via:
apk add --no-cache raspberrypi
and the compose file amended with
devices:
- /dev/vchiq:/dev/vchiq
However, an error is raised in the debug messages :
Error executing /opt/vc/bin/vcgencmd : Error: Command failed: /opt/vc/bin/vcgencmd measure_temp
With the base images nodered/node-red
(node 10) and nodered/node-red:latest-12
it works out of the box.
FROM nodered/node-red
or
FROM nodered/node-red:latest-12
Do you have any ideas why this is happening ?
Any special setup of the ghcr.io/ct-open-source/ctnodered
:latest image which prevent vcgencmd
to be executed correctly ?
Both user/group 1001 & 1883 do not exist on my system. But in the startup script ownership of the nodered & mqtt directories is set to those. This creates a permissions problem later on.
Did I miss something here? I haven't any mention of these IDs anywhere in the documentation.
Um den neuen Zigbee Stick nutzen zu können, muss docker-compose.yml
um ttyUSB0 erweitert werden.
devices:
- "/dev/ttyACM0:/dev/ttyACM0"
- "/dev/ttyACM1:/dev/ttyACM1"
- "/dev/ttyUSB0:/dev/ttyUSB0"
Infos zu dem Stick:
https://electrolama.com/projects/zig-a-zig-ah/
Hi,
I'm running ct-smart-home on a Pi 4 and I keep experiencing an issue where restarting the nodered container will fail.
docker-compose ps
would tell me that nodered is unhealthy
and nodered would not be accessible via the configured ports. docker-compose logs nodered
would reveal that the container is stuck at the following point:
dbus-daemon[10]: Failed to start message bus: The pid file "/run/dbus/dbus.pid" exists, if the message bus is not running, remove this file
.
Looking at entrypoint.sh
reveals that prior to starting dbus /var/run/dbus.pid
is indeed removed, but not /run/dbus/dbus.pid
. Not sure if some update moved dbus.pid
to the new location ...
I probably could edit entrypint.sh
and build a custom docker image but atm I don't have the time, so I'm going with this quick & dirty workaround, which I apply manually whenever needed:
# container needs to run for this
docker-compose up -d nodered
# remove unhandled dbus pid file
docker-compose exec nodered sh -c 'su-exec root rm -f /run/dbus/dbus.pid'
# restart
docker-compose restart nodered
I would expect that adding somethin like the following line to entrypoint.sh
would fix this issue, but I haven't verified it.
[[ -e /run/dbus/dbus.pid ]] && su-exec root rm -f /run/dbus/dbus.pid
Just wanted to share my observations at this point.
Cheers!
Edit:
Note that I added container_name: nodered
to my docker-compose.yml
, so you will need to adapt my docker-compose commands to your container name.
Hallo ich habe den Artikel in der CT gelesen wie ich das Dashboard mit einem Passwort absichern kann.
Wie ist es möglich in den Container von Node Red ein Terminal zu öffnen und die Einrichtuing vorzunehmen.
Dies ist meine erste erfahrung mit Docker.
Vielen Dank
After updating with "./start.sh update" and "./start.sh fix" node red is not available.
From docker-compose logs:
nodered_1 | #
nodered_1 | # Fatal error in , line 0
nodered_1 | # unreachable code
nodered_1 | #
nodered_1 | #
nodered_1 | #
nodered_1 | #FailureMessage Object: 0x7efae23c
nodered_1 | Illegal instruction
nodered_1 | Starting dbus daemon
nodered_1 | Starting Avahi daemon
nodered_1 | Starting Node-Red
nodered_1 |
nodered_1 |
nodered_1 | #
nodered_1 | # Fatal error in , line 0
nodered_1 | # unreachable code
nodered_1 | #
nodered_1 | #
nodered_1 | #
nodered_1 | #FailureMessage Object: 0x7ea7723c
nodered_1 | Illegal instruction
Can someone help?
Hallo allerseits,
ich versuche das ct-smart-home "out of the box" zu nutzen. Laufen soll es auf einem Raspi 3B+, auf dem schon andere Container erfolgreich laufen (unifi, portainer). Grundsätzlich gehe ich also davon aus, dass docker auf diesem Gerät funktioniert. Raspbian ist aktuell (sudo apt update
/ sudo apt upgrade
durchgeführt).
Nach dem Start sehe ich in Portainer, dass beide Container laufen:
Mosquitto funktioniert wunderbar, er hat mein bisher genutzten, nicht im Container laufenden Mosquitto nahtlos abgelöst. Bei Nodered komme ich aber nicht weiter. In einer Endlosschleife werden im Log Meldungen ausgegeben, deren Ursache ich mit den verschiedenen Suchmaschinen leider nicht auf die Spur gekommen bin. Auch zeigt Portainer keinen Port für diesen Container an, schon mal ein schlechtes Zeichen. Auch über <ip>:1880
finde ich keine Seite zum bedienen von NodeRed.
Was mache ich falsch?
Hier die Fehlermeldung-Endlosschleife:
2019-08-12 15:02:46,198 INFO success: node-red entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
> [email protected] start /usr/src/node-red
> node $NODE_OPTIONS node_modules/node-red/red.js -v $FLOWS "--userDir" "/data"
2019-08-12 15:02:48,011 INFO exited: node-red (exit status 1; not expected)
2019-08-12 15:02:49,020 INFO spawned: 'node-red' with pid 71
Hi there,
I've have following setup:
-Raspi4
-CC2531 ZigBee USB-Stick (flashed with cc2531_default_20190608)
During inital startup I received an error the the zigbeeadmin_01:
"
Starting the containers
Starting ct-smart-home-master_zigbeeadmin_1 ...
ct-smart-home-master_zigbee_1 is up-to-date
ct-smart-home-master_mqtt_1 is up-to-date
ct-smart-home-master_nodered_1 is up-to-date
Starting ct-smart-home-master_zigbeeadmin_1 ... error
ERROR: for ct-smart-home-master_zigbeeadmin_1 Cannot start service zigbeeadmin: driver failed programming external connectivity on endpoint ct-smart-home-master_zigbeeadmin_1 (...): Bind for 0.0.0.0:8880 failed: port is already allocated
ERROR: for zigbeeadmin Cannot start service zigbeeadmin: driver failed programming external connectivity on endpoint ct-smart-home-master_zigbeeadmin_1 (...): Bind for 0.0.0.0:8880 failed: port is already allocated
ERROR: Encountered errors while bringing up the project."
Can you pls help me, what I am doing wrong here.
Thanks a lot,
Tayfun
Hi
many thanks for this interesting project, which encourage me to give it a try ....
Following the instructions i was not able to start the containers.
routecause:
Compose file line 14: network_mode: "host"
The error message point out that host mode is not compatible with port bindings.
Delete the line will fix the problem as the standart network mode will work.
hope this may help other to get started,
sunny regards
Latest tasmota does no longer lets to upgrade to non-tasmota (and older tasmota) versions. The current version you have is good.
The actual container seem not to work with raspberry pi 1.
Is this correct?
Would be nice to document.
Best Regards
Volker
I installed the ct-smart-home project as described on a raspberry pi with buster lite.
Mosquitto does not seem to start.
The zigbee2mqtt log says:
error 2019-12-28 18:10:46: Cannot send message: topic: 'zigbee2mqtt/bridge/log', payload: '{"type":"pairing","message":"interview_successful","meta":{"friendly_name":"0x0017880106362a8a","model":"324131092621","vendor":"Philips","description":"Hue dimmer switch","supported":true}}
info 2019-12-28 18:10:46: Configuring '0x0017880106362a8a'
error 2019-12-28 18:10:49: Not connected to MQTT server!
info 2019-12-28 18:10:49: Succesfully configured '0x0017880106362a8a'
error 2019-12-28 18:10:59: Not connected to MQTT server!
error 2019-12-28 18:11:09: Not connected to MQTT server!
Any idea?
Best Regards
Kai
In the journal i noticed messages
run-docker-runtime\x2drunc-moby-<img-id>runc.YEccej.mount: Succeeded.
every 30 seconds.
Running "/usr/bin/curl --no-buffer --unix-socket /var/run/docker.sock http://foo/events" returns
{
"status": "exec_die",
"id": ***,
"from": "ghcr.io/ct-open-source/ctnodered:latest",
"Type": "container",
"Action": "exec_die",
...
again every 30 seconds.
What's the reason of all this?
I recently started to switch from a home-grown node-red/Zigbee2MQTT/MQTT setup on my Raspberry Pi 3 to the c't-Smart-Home project.
In the process of setting everything up again I noticed that I could not set up access to ZigBee in node-red correctly.
So I started with a fresh installation of the c't-Smart-Home to produce a minimal working example to check if I did something wrong, but it seems that it is simply not working.
Here are the steps that reproduce the problem for me:
There seems to be some communication (as can be seen on the right side), but I cannot see anything obviously wrong.
I will attach the logs of the 3 running containers as well.
Has anyone experienced the same problem and knows what is going on here?
It seems to be quite simple to add persistence to mosquitto. Simply add
persistence true
persistence_location /mosquitto/data
to data/mqtt/config/mosquitto.conf.
But - that doesn't work.
The reason is, that /mosquitto/data isn't mounted to data/mqtt/data, as one could expect.
You have to add
mqtt:
volumes:
- ./data/mqtt/data:/mosquitto/data
explicitly to the docker-compose.yml. Only then the persistence is really persistent.
I try to use the mosquitto.conf
and pass.txt
& acl.txt
inspired by the corresponding article in c‘t. But it does not work. I can not login with username/password.
mosquitto.conf
already existed but was empty. So I just added the reference to /mosquitto/data/pass.txt
.
In the docker Hub documentation it‘s described that the mosquitto.conf
need to be mapped as a volume. But if I open a shell in the container, I can see the file at this path already.
https://hub.docker.com/_/eclipse-mosquitto
How did you do the configuration?
I have exchanged my CC2531 stick with a Slaesh's CC2652RB stick (one of the two recommended adapter at zigbee2mqtt.io).
Unfortunately the serial port with this devices is on my RasPi /dev/ttyUSB0.
Meanwhile I found the correct mapping within docker-compose.yml: Added
- "/dev/ttyUSB0:/dev/ttyUSB0"
at zigbee -> devices and changed port in configuraton.yaml for zigbee to /dev/ttyUSB0 too.
BUT start.sh is not working as there ttyACM* is given at several places. As I am a noob in programming I am not sure how to overcome this.
I started the docker container manually:
docker-compose up -d nodered mqtt zigbee
But now I am not sure what will happen in case I upgrade in the future.
Hi,
I did an ./start.sh update on an existing installation.
Now with each ./start.sh start I get es new zigbee encryption key ...
------cut
pi@pi3:~/ct-Smart-Home $ ./start.sh start
data folder is missing. creating it
touch: 'data/mqtt/config/mosquitto.conf' kann nicht berührt werden: Keine Berechtigung
Zigbee2Mqtt configuration is missing. creating it.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
This is your random Zigbee encryption key:
[0x22, 0x3d, 0x51, 0x25, 0x86, 0x3c, 0xc4, 0xf4, 0xe5, 0x47, 0xe1, 0x30, 0xfc, 0x14, 0xc2, 0x3c]
Store it safely or you will have to repair all of your devices.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Dear experts,
I am facing an issue with serialnode and hope, that you can help me with that. My target is to install node-red-node-serialport (running LaCrosse/ JeeLink) and node-red-contrib-cul (for BusWare CUL stick) but both are failing during installation. I think the relevant entry in log is the following:
1392 verbose stack Error: @serialport/[email protected] install:
prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild
Diggering a little bit deeper with executing "npm install serialnode" within the container it seems for me, that the process fails, as no python environment can be found:
gyp ERR! stack Error: Could not find any Python installation to use
Looking into the docker file of this project, I think, that python3 should also be content of this image and container. Also the $PATH variable in the container looks okay.
Can you help me finishing the serial node-installation within the container?
Hey there, just tried starting your project on my mac. Unfortunately it doesn't work:
2020-01-23 07:37:31.113 system_profiler[64495:3455455] SPUSBDevice: IOCreatePlugInInterfaceForService failed 0xe00002be
No Texas Instruments USB device found.
No Zigbee adaptor found. Not starting Zigbee2MQTT.
Starting the containers
Starting ct-smart-home_mqtt_1 ... error
ERROR: for ct-smart-home_mqtt_1 Cannot start service mqtt: OCI runtime create failed: container_linux.go:346: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/var/lib/docker/volumes/e7000ef713b2b9be09b4698bac7cea0263e49fb782db787c419f13b1672adfa8/_data\\\" to rootfs \\\"/var/lib/docker/overlay2/446810877f5a4509d2d2ae229297a76fd8622f20edf0d72c48c212a25d8ce3ef/merged\\\" at \\\"/var/lib/docker/overlay2/446810877f5a4509d2d2ae229297a76fd8622f20edf0d72c48c212a25d8ce3ef/merged/mosquitto/log\\\" caused \\\"mkdir /var/lib/docker/overlay2/446810877f5a4509d2d2ae229297a76fd8622f20edf0d72c48c212a25d8ce3ef/merged/mosquitto/log: permission denied\\\"\"": unknown
ERROR: for mqtt Cannot start service mqtt: OCI runtime create failed: container_linux.go:346: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/var/lib/docker/volumes/e7000ef713b2b9be09b4698bac7cea0263e49fb782db787c419f13b1672adfa8/_data\\\" to rootfs \\\"/var/lib/docker/overlay2/446810877f5a4509d2d2ae229297a76fd8622f20edf0d72c48c212a25d8ce3ef/merged\\\" at \\\"/var/lib/docker/overlay2/446810877f5a4509d2d2ae229297a76fd8622f20edf0d72c48c212a25d8ce3ef/merged/mosquitto/log\\\" caused \\\"mkdir /var/lib/docker/overlay2/446810877f5a4509d2d2ae229297a76fd8622f20edf0d72c48c212a25d8ce3ef/merged/mosquitto/log: permission denied\\\"\"": unknown
ERROR: Encountered errors while bringing up the project.
I already installed lsusb
through with brew ...
I use ‚Compose V2‘ on my device, so ‚docker-compose’ ist not available and the script fails. As a quickfix, I changed all ‚docker-compose‘ to ‚docker compose‘.
Gibt es Gründe, warum javascript bei der Version 8.x bleibt? Siehe auch:
Hi,
setup works like a charm, but there is one point I don't understand.
Original nodered/node-red container works with user 1000 and also here:
node-red: x :1000:1000:Linux User,,,:/usr/src/node-red:/bin/ash
So why chown with user and group 1001:1001?
I would very happy if anybody can explain... thanks.
Zigbee2Mqtt has a new web frontend that is available on 8080 after a quick configuration. It could be used instead of Zigbee2Mqtt assistant or alongside it.
The node-red dashboard UI interface is available at http://localhost:1880/ui
How have a Traefik container be added to expose the node-red dashboard at for example http://myDomain.local/dashboard
?
Thanks!
Hi,
today I started "./start.sh update" and a new docker image for ctnodered was pulled from the docker hub.
I see there are commits in the devel branch (4 days ago) - these commits make trouble on my system Raspberry Pi.
forces nodered_1 | standard_init_linux.go:207: exec user process caused "exec format error"
see docker-compose logs below
-------snipp
pi@pi3:~/ct-Smart-Home $ ./start.sh update
Shutting down all running containers and removing them.
Stopping ct-smart-home_nodered_1 ... done
Stopping ct-smart-home_mqtt_1 ... done
Stopping ct-smart-home_zigbee_1 ... done
Removing ct-smart-home_nodered_1 ... done
Removing ct-smart-home_mqtt_1 ... done
Removing ct-smart-home_zigbee_1 ... done
Removing network ct-smart-home_default
Pulling current version via git.
remote: Enumerating objects: 14, done.
remote: Counting objects: 100% (14/14), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 14 (delta 2), reused 11 (delta 2), pack-reused 0
Entpacke Objekte: 100% (14/14), Fertig.
Von https://github.com/ct-Open-Source/ct-Smart-Home
2ff0c3a..908e729 devel -> origin/devel
Aktualisiere 2ff0c3a..908e729
Fast-forward
README.md | 2 +-
docker-compose.yml | 8 ++---
docker/ctnodered/Dockerfile | 70 ++++++++++++++++++------------------
docker/ctnodered/Dockerfile.arm | 76 +++++++++++++++++++--------------------
docker/ctnodered/entrypoint.sh | 18 ++++++++++
docker/ctnodered/supervisord.conf | 38 --------------------
start.sh | 6 ++++
7 files changed, 101 insertions(+), 117 deletions(-)
create mode 100644 docker/ctnodered/entrypoint.sh
delete mode 100644 docker/ctnodered/supervisord.conf
Pulling current images.
Pulling mqtt ... done
Pulling nodered ... done
Pulling zigbee ... done
Only starting the containers:
Starting the containers
CPU architecture is: arm
Creating network "ct-smart-home_default" with the default driver
Creating ct-smart-home_zigbee_1 ... done
Creating ct-smart-home_mqtt_1 ... done
Creating ct-smart-home_nodered_1 ... done
pi@pi3:~/ct-Smart-Home $ docker-compose logs
Attaching to ct-smart-home_nodered_1, ct-smart-home_mqtt_1, ct-smart-home_zigbee_1
nodered_1 | standard_init_linux.go:207: exec user process caused "exec format error"
nodered_1 | standard_init_linux.go:207: exec user process caused "exec format error"
nodered_1 | standard_init_linux.go:207: exec user process caused "exec format error"
nodered_1 | standard_init_linux.go:207: exec user process caused "exec format error"
nodered_1 | standard_init_linux.go:207: exec user process caused "exec format error"
nodered_1 | standard_init_linux.go:207: exec user process caused "exec format error"
nodered_1 | standard_init_linux.go:207: exec user process caused "exec format error"
nodered_1 | standard_init_linux.go:207: exec user process caused "exec format error"
nodered_1 | standard_init_linux.go:207: exec user process caused "exec format error"
@merlinschumacher
Please document the versions of the software used in ct-Smart-Home (e.g. node.js) in README.md for debugging purposes (e.g. node-red-contrib-dwd-local-weather needs a nodejs version >= 10.0.0).
Hi, minor issue for documentation
seems that you renamed the setup.sh to start.sh and didn't update the documentation and script help . Might confuse some c't reader - sure not the iX ones.
start.sh options
Usage:
setup.sh update – to update to this copy of the repo
setup.sh start – run all containers
setup.sh stop – stop all containers
setup.sh data – set up the data folder needed for the containers, but run none of them. Useful for personalized setups. Regards Jörk
I wanted to extend the image by inserting the apk package 'raspberrypi' in order to get utilities for reading eg. the temperature of the raspberrypi 4B (eg. vcgencmd).
Before doing so I tried to rebuild from the docker-image/Dockerfile but get plenty of warnings for deprecated npm packages npm WARN deprecated
and builds for the USB module, see full build log below.
Is that not the intended way ?
How do I get the correct package/module dependencies solved ?
I can add the package manually by attaching a bash and enter:
>$ su
>$ apk add --no-cache raspberrypi
>$ exit
Then everything is available under /opt/vc/...
Many thanks in advance
$ docker build -t mynodered ./docker-image/
Sending build context to Docker daemon 7.68kB
Step 1/9 : FROM nodered/node-red:latest-minimal
latest-minimal: Pulling from nodered/node-red
Digest: sha256:28e8c7d46da71cb10107d562547828228ecfabbe75c541cddb4e86d318403a2b
Status: Downloaded newer image for nodered/node-red:latest-minimal
---> 7e5c5b05d0b4
Step 2/9 : COPY entrypoint.sh /usr/src/node-red/entrypoint.sh
---> fe13e683f15b
Step 3/9 : WORKDIR /usr/src/node-red
---> Running in 7171ca8cf0b5
Removing intermediate container 7171ca8cf0b5
---> da125b80ead8
Step 4/9 : USER root
---> Running in de8b44e4f5aa
Removing intermediate container de8b44e4f5aa
---> bd0379cbe54c
Step 5/9 : RUN set -ex && apk add --no-cache avahi-compat-libdns_sd dbus libcap python && apk add --no-cache --virtual dev-packages make g++ avahi-dev eudev eudev-dev bluez-dev build-base linux-headers raspberrypi udev && setcap cap_net_raw+eip $(eval readlink -f `which node`) && chown messagebus:messagebus /var/run/dbus && chown avahi:avahi /var/run/avahi-daemon && sed -i "s/#enable-dbus=yes/enable-dbus=yes/g" /etc/avahi/avahi-daemon.conf && dbus-uuidgen --ensure && npm install node-red-contrib-fritz node-red-contrib-homekit-bridged node-red-contrib-tado-client node-red-dashboard node-red-node-base64 node-red-node-msgpack node-red-node-random node-red-node-suncalc @rdmtc/node-red-contrib-noble --unsafe-perm && apk del dev-packages && npm dedupe && npm cache clean --force
---> Running in 97132ed9b56e
+ apk add --no-cache avahi-compat-libdns_sd dbus libcap python
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/main/armv7/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/community/armv7/APKINDEX.tar.gz
(1/10) Installing dbus-libs (1.12.16-r2)
(2/10) Installing libintl (0.20.1-r2)
(3/10) Installing avahi-libs (0.7-r4)
(4/10) Installing avahi-compat-libdns_sd (0.7-r4)
(5/10) Installing dbus (1.12.16-r2)
Executing dbus-1.12.16-r2.pre-install
(6/10) Installing libbz2 (1.0.8-r1)
(7/10) Installing libffi (3.2.1-r6)
(8/10) Installing gdbm (1.13-r1)
(9/10) Installing sqlite-libs (3.30.1-r1)
(10/10) Installing python2 (2.7.16-r3)
Executing busybox-1.31.1-r9.trigger
OK: 69 MiB in 46 packages
+ apk add --no-cache --virtual dev-packages make g++ avahi-dev eudev eudev-dev bluez-dev build-base linux-headers raspberrypi udev
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/main/armv7/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/community/armv7/APKINDEX.tar.gz
(1/64) Upgrading musl (1.1.24-r0 -> 1.1.24-r1)
(2/64) Installing make (4.2.1-r2)
(3/64) Installing binutils (2.33.1-r0)
(4/64) Installing gmp (6.1.2-r1)
(5/64) Installing isl (0.18-r0)
(6/64) Installing libgomp (9.2.0-r3)
(7/64) Installing libatomic (9.2.0-r3)
(8/64) Installing mpfr4 (4.0.2-r1)
(9/64) Installing mpc1 (1.1.0-r1)
(10/64) Installing gcc (9.2.0-r3)
(11/64) Installing musl-dev (1.1.24-r1)
(12/64) Installing libc-dev (0.7.2-r0)
(13/64) Installing g++ (9.2.0-r3)
(14/64) Installing gdbm-dev (1.13-r1)
(15/64) Installing avahi-compat-howl (0.7-r4)
(16/64) Installing libblkid (2.34-r1)
(17/64) Installing libmount (2.34-r1)
(18/64) Installing pcre (8.43-r0)
(19/64) Installing glib (2.62.5-r0)
(20/64) Installing avahi-glib (0.7-r4)
(21/64) Installing libdaemon (0.14-r2)
(22/64) Installing avahi (0.7-r4)
Executing avahi-0.7-r4.pre-install
(23/64) Installing xz-libs (5.2.4-r0)
(24/64) Installing python3 (3.8.2-r0)
(25/64) Installing gettext-asprintf (0.20.1-r2)
(26/64) Installing libunistring (0.9.10-r0)
(27/64) Installing gettext-libs (0.20.1-r2)
(28/64) Installing libxml2 (2.9.10-r2)
(29/64) Installing gettext (0.20.1-r2)
(30/64) Installing gettext-dev (0.20.1-r2)
(31/64) Installing bzip2-dev (1.0.8-r1)
(32/64) Installing libxml2-utils (2.9.10-r2)
(33/64) Installing libgpg-error (1.36-r2)
(34/64) Installing libgcrypt (1.8.5-r0)
(35/64) Installing libxslt (1.1.34-r0)
(36/64) Installing docbook-xml (4.5-r6)
Executing docbook-xml-4.5-r6.post-install
(37/64) Installing docbook-xsl (1.79.2-r2)
Executing docbook-xsl-1.79.2-r2.post-install
(38/64) Installing linux-headers (4.19.36-r0)
(39/64) Installing pkgconf (1.6.3-r0)
(40/64) Installing libffi-dev (3.2.1-r6)
(41/64) Installing libpcre16 (8.43-r0)
(42/64) Installing libpcre32 (8.43-r0)
(43/64) Installing libpcrecpp (8.43-r0)
(44/64) Installing pcre-dev (8.43-r0)
(45/64) Installing libuuid (2.34-r1)
(46/64) Installing libfdisk (2.34-r1)
(47/64) Installing libsmartcols (2.34-r1)
(48/64) Installing util-linux-dev (2.34-r1)
(49/64) Installing zlib-dev (1.2.11-r3)
(50/64) Installing glib-dev (2.62.5-r0)
(51/64) Installing avahi-dev (0.7-r4)
(52/64) Installing udev-init-scripts (33-r0)
Executing udev-init-scripts-33-r0.post-install
(53/64) Installing eudev-libs (3.2.9-r1)
(54/64) Installing kmod (26-r0)
(55/64) Installing eudev (3.2.9-r1)
(56/64) Installing eudev-dev (3.2.9-r1)
(57/64) Installing bluez-libs (5.52-r0)
(58/64) Installing bluez-dev (5.52-r0)
(59/64) Installing file (5.37-r1)
(60/64) Installing fortify-headers (1.1-r0)
(61/64) Installing build-base (0.5-r1)
(62/64) Installing raspberrypi-libs (0.20190416-r1)
(63/64) Installing raspberrypi (0.20190416-r1)
(64/64) Installing dev-packages (20200317.141848)
Executing busybox-1.31.1-r9.trigger
Executing dbus-1.12.16-r2.trigger
Executing glib-2.62.5-r0.trigger
No schema files found: doing nothing.
Executing eudev-3.2.9-r1.trigger
OK: 279 MiB in 109 packages
+ which node
+ eval readlink -f /usr/local/bin/node
+ readlink -f /usr/local/bin/node
+ setcap cap_net_raw+eip /usr/local/bin/node
+ chown messagebus:messagebus /var/run/dbus
+ chown avahi:avahi /var/run/avahi-daemon
+ sed -i 's/#enable-dbus=yes/enable-dbus=yes/g' /etc/avahi/avahi-daemon.conf
+ dbus-uuidgen --ensure
+ npm install node-red-contrib-fritz node-red-contrib-homekit-bridged node-red-contrib-tado-client node-red-dashboard node-red-node-base64 node-red-node-msgpack node-red-node-random node-red-node-suncalc @rdmtc/node-red-contrib-noble --unsafe-perm
npm WARN deprecated [email protected]: simple-oauth2 v2 is no longer supported. Please upgrade to v3 for further support
npm WARN deprecated [email protected]: This module has moved and is now available at @hapi/wreck. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.
npm WARN deprecated [email protected]: This module has moved and is now available at @hapi/boom. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.
npm WARN deprecated [email protected]: This module has moved and is now available at @hapi/hoek. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.
npm WARN deprecated [email protected]: This module has moved and is now available at @hapi/bourne. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.
> [email protected] install /usr/src/node-red/node_modules/usb
> prebuild-install --verbose || node-gyp rebuild
prebuild-install info begin Prebuild-install version 5.3.3
prebuild-install info looking for cached prebuild @ /root/.npm/_prebuilds/9e6864-usb-v1.6.2-node-v64-linuxmusl-arm.tar.gz
prebuild-install http request GET https://github.com/tessel/node-usb/releases/download/v1.6.2/usb-v1.6.2-node-v64-linuxmusl-arm.tar.gz
prebuild-install http 404 https://github.com/tessel/node-usb/releases/download/v1.6.2/usb-v1.6.2-node-v64-linuxmusl-arm.tar.gz
prebuild-install WARN install No prebuilt binaries found (target=10.19.0 runtime=node arch=arm libc=musl platform=linux)
make: Entering directory '/usr/src/node-red/node_modules/usb/build'
CC(target) Release/obj.target/libusb/libusb/libusb/core.o
CC(target) Release/obj.target/libusb/libusb/libusb/descriptor.o
CC(target) Release/obj.target/libusb/libusb/libusb/hotplug.o
CC(target) Release/obj.target/libusb/libusb/libusb/io.o
CC(target) Release/obj.target/libusb/libusb/libusb/strerror.o
CC(target) Release/obj.target/libusb/libusb/libusb/sync.o
CC(target) Release/obj.target/libusb/libusb/libusb/os/poll_posix.o
CC(target) Release/obj.target/libusb/libusb/libusb/os/threads_posix.o
CC(target) Release/obj.target/libusb/libusb/libusb/os/linux_usbfs.o
CC(target) Release/obj.target/libusb/libusb/libusb/os/linux_udev.o
AR(target) Release/obj.target/usb.a
COPY Release/usb.a
CXX(target) Release/obj.target/usb_bindings/src/node_usb.o
In file included from ../src/helpers.h:3,
from ../src/node_usb.h:21,
from ../src/node_usb.cc:1:
../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker*)':
../../nan/nan.h:2232:62: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
2232 | , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
| ^
In file included from ../src/node_usb.h:14,
from ../src/node_usb.cc:1:
../src/node_usb.cc: At global scope:
/root/.cache/node-gyp/10.19.0/include/node/node.h:573:43: warning: cast between incompatible function types from 'void (*)(v8::Local<v8::Object>)' to 'node::addon_register_func' {aka 'void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)'} [-Wcast-function-type]
573 | (node::addon_register_func) (regfunc), \
| ^
/root/.cache/node-gyp/10.19.0/include/node/node.h:607:3: note: in expansion of macro 'NODE_MODULE_X'
607 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
| ^~~~~~~~~~~~~
../src/node_usb.cc:95:1: note: in expansion of macro 'NODE_MODULE'
95 | NODE_MODULE(usb_bindings, Initialize)
| ^~~~~~~~~~~
../src/node_usb.cc: In function 'void handleHotplug(std::pair<libusb_device*, libusb_hotplug_event>)':
../src/node_usb.cc:151:58: warning: 'v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)' is deprecated [-Wdeprecated-declarations]
151 | Nan::MakeCallback(Nan::New(hotplugThis), "emit", 2, argv);
| ^
In file included from ../src/helpers.h:3,
from ../src/node_usb.h:21,
from ../src/node_usb.cc:1:
../../nan/nan.h:1001:46: note: declared here
1001 | NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
| ^~~~~~~~~~~~
../src/node_usb.cc:151:58: warning: 'v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)' is deprecated [-Wdeprecated-declarations]
151 | Nan::MakeCallback(Nan::New(hotplugThis), "emit", 2, argv);
| ^
In file included from ../src/helpers.h:3,
from ../src/node_usb.h:21,
from ../src/node_usb.cc:1:
../../nan/nan.h:1001:46: note: declared here
1001 | NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
| ^~~~~~~~~~~~
In file included from ../src/node_usb.h:12,
from ../src/node_usb.cc:1:
/root/.cache/node-gyp/10.19.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]':
/root/.cache/node-gyp/10.19.0/include/node/node_object_wrap.h:84:78: required from here
/root/.cache/node-gyp/10.19.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<node::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type]
9502 | reinterpret_cast<Callback>(callback), type);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/.cache/node-gyp/10.19.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]':
../../nan/nan_object_wrap.h:65:61: required from here
/root/.cache/node-gyp/10.19.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type]
CXX(target) Release/obj.target/usb_bindings/src/device.o
In file included from ../src/helpers.h:3,
from ../src/node_usb.h:21,
from ../src/device.cc:1:
../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker*)':
../../nan/nan.h:2232:62: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
2232 | , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
| ^
../src/device.cc: In member function 'void Req::submit(Device*, v8::Local<v8::Function>, uv_work_cb, uv_work_cb)':
../src/device.cc:220:70: warning: cast between incompatible function types from 'uv_work_cb' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
220 | uv_queue_work(uv_default_loop(), &req, backend, (uv_after_work_cb) after);
| ^~~~~
../src/device.cc: In static member function 'static void Req::default_after(uv_work_t*)':
../src/device.cc:237:64: warning: 'v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)' is deprecated [-Wdeprecated-declarations]
237 | Nan::MakeCallback(device, Nan::New(baton->callback), 1, argv);
| ^
In file included from ../src/helpers.h:3,
from ../src/node_usb.h:21,
from ../src/device.cc:1:
../../nan/nan.h:959:46: note: declared here
959 | NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
| ^~~~~~~~~~~~
../src/device.cc:237:64: warning: 'v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)' is deprecated [-Wdeprecated-declarations]
237 | Nan::MakeCallback(device, Nan::New(baton->callback), 1, argv);
| ^
In file included from ../src/helpers.h:3,
from ../src/node_usb.h:21,
from ../src/device.cc:1:
../../nan/nan.h:959:46: note: declared here
959 | NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
| ^~~~~~~~~~~~
In file included from ../src/node_usb.h:12,
from ../src/device.cc:1:
/root/.cache/node-gyp/10.19.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]':
/root/.cache/node-gyp/10.19.0/include/node/node_object_wrap.h:84:78: required from here
/root/.cache/node-gyp/10.19.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<node::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type]
9502 | reinterpret_cast<Callback>(callback), type);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/.cache/node-gyp/10.19.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]':
../../nan/nan_object_wrap.h:65:61: required from here
/root/.cache/node-gyp/10.19.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type]
CXX(target) Release/obj.target/usb_bindings/src/transfer.o
In file included from ../src/helpers.h:3,
from ../src/node_usb.h:21,
from ../src/transfer.cc:1:
../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker*)':
../../nan/nan.h:2232:62: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
2232 | , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
| ^
../src/transfer.cc: In function 'void handleCompletion(Transfer*)':
../src/transfer.cc:126:72: warning: 'v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)' is deprecated [-Wdeprecated-declarations]
126 | Nan::MakeCallback(self->handle(), Nan::New(self->v8callback), 3, argv);
| ^
In file included from ../src/helpers.h:3,
from ../src/node_usb.h:21,
from ../src/transfer.cc:1:
../../nan/nan.h:959:46: note: declared here
959 | NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
| ^~~~~~~~~~~~
../src/transfer.cc:126:72: warning: 'v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)' is deprecated [-Wdeprecated-declarations]
126 | Nan::MakeCallback(self->handle(), Nan::New(self->v8callback), 3, argv);
| ^
In file included from ../src/helpers.h:3,
from ../src/node_usb.h:21,
from ../src/transfer.cc:1:
../../nan/nan.h:959:46: note: declared here
959 | NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
| ^~~~~~~~~~~~
In file included from ../src/node_usb.h:12,
from ../src/transfer.cc:1:
/root/.cache/node-gyp/10.19.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]':
/root/.cache/node-gyp/10.19.0/include/node/node_object_wrap.h:84:78: required from here
/root/.cache/node-gyp/10.19.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<node::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type]
9502 | reinterpret_cast<Callback>(callback), type);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/.cache/node-gyp/10.19.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]':
../../nan/nan_object_wrap.h:65:61: required from here
/root/.cache/node-gyp/10.19.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type]
SOLINK_MODULE(target) Release/obj.target/usb_bindings.node
COPY Release/usb_bindings.node
make: Leaving directory '/usr/src/node-red/node_modules/usb/build'
> @abandonware/[email protected] install /usr/src/node-red/node_modules/@abandonware/bluetooth-hci-socket
> node-pre-gyp install --fallback-to-build
node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp WARN Tried to download(404): https://github.com/abandonware/node-bluetooth-hci-socket/releases/download/0.5.3-5/binding-0.5.3-5-node-v64-linux-arm.tar.gz
node-pre-gyp WARN Pre-built binaries not found for @abandonware/[email protected] and [email protected] (node-v64 ABI, musl) (falling back to source compile with node-gyp)
make: Entering directory '/usr/src/node-red/node_modules/@abandonware/bluetooth-hci-socket/build'
CXX(target) Release/obj.target/binding/src/BluetoothHciSocket.o
In file included from ../src/BluetoothHciSocket.cpp:8:
../node_modules/nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker*)':
../node_modules/nan/nan.h:2298:62: warning: cast between incompatible function types from 'void (*)(uv_work_t*)' {aka 'void (*)(uv_work_s*)'} to 'uv_after_work_cb' {aka 'void (*)(uv_work_s*, int)'} [-Wcast-function-type]
2298 | , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
| ^
In file included from /root/.cache/node-gyp/10.19.0/include/node/node_buffer.h:25,
from ../src/BluetoothHciSocket.cpp:7:
../src/BluetoothHciSocket.cpp: At global scope:
/root/.cache/node-gyp/10.19.0/include/node/node.h:573:43: warning: cast between incompatible function types from 'void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)' {aka 'void (*)(v8::Local<v8::Object>)'} to 'node::addon_register_func' {aka 'void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)'} [-Wcast-function-type]
573 | (node::addon_register_func) (regfunc), \
| ^
/root/.cache/node-gyp/10.19.0/include/node/node.h:607:3: note: in expansion of macro 'NODE_MODULE_X'
607 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
| ^~~~~~~~~~~~~
../src/BluetoothHciSocket.cpp:578:1: note: in expansion of macro 'NODE_MODULE'
578 | NODE_MODULE(binding, BluetoothHciSocket::Init);
| ^~~~~~~~~~~
In file included from /root/.cache/node-gyp/10.19.0/include/node/node.h:63,
from /root/.cache/node-gyp/10.19.0/include/node/node_buffer.h:25,
from ../src/BluetoothHciSocket.cpp:7:
/root/.cache/node-gyp/10.19.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]':
/root/.cache/node-gyp/10.19.0/include/node/node_object_wrap.h:84:78: required from here
/root/.cache/node-gyp/10.19.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<node::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type]
9502 | reinterpret_cast<Callback>(callback), type);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/.cache/node-gyp/10.19.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]':
../node_modules/nan/nan_object_wrap.h:65:61: required from here
/root/.cache/node-gyp/10.19.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type]
SOLINK_MODULE(target) Release/obj.target/binding.node
COPY Release/binding.node
COPY /usr/src/node-red/node_modules/@abandonware/bluetooth-hci-socket/lib/binding/binding.node
TOUCH Release/obj.target/action_after_build.stamp
make: Leaving directory '/usr/src/node-red/node_modules/@abandonware/bluetooth-hci-socket/build'
> @abandonware/[email protected] install /usr/src/node-red/node_modules/@abandonware/noble
> node-gyp rebuild
make: Entering directory '/usr/src/node-red/node_modules/@abandonware/noble/build'
SOLINK_MODULE(target) Release/obj.target/noble.node
COPY Release/noble.node
make: Leaving directory '/usr/src/node-red/node_modules/@abandonware/noble/build'
npm notice created a lockfile as package-lock.json. You should commit this file.
+ [email protected]
+ [email protected]
+ [email protected]
+ [email protected]
+ [email protected]
+ [email protected]
+ [email protected]
+ [email protected]
+ @rdmtc/[email protected]
added 156 packages from 221 contributors in 64.99s
15 packages are looking for funding
run `npm fund` for details
+ apk del dev-packages
WARNING: Ignoring APKINDEX.70f61090.tar.gz: No such file or directory
WARNING: Ignoring APKINDEX.ca2fea5b.tar.gz: No such file or directory
(1/63) Purging dev-packages (20200317.141848)
(2/63) Purging avahi-dev (0.7-r4)
(3/63) Purging gdbm-dev (1.13-r1)
(4/63) Purging avahi-compat-howl (0.7-r4)
(5/63) Purging avahi-glib (0.7-r4)
(6/63) Purging avahi (0.7-r4)
(7/63) Purging eudev-dev (3.2.9-r1)
(8/63) Purging bluez-dev (5.52-r0)
(9/63) Purging bluez-libs (5.52-r0)
(10/63) Purging build-base (0.5-r1)
(11/63) Purging file (5.37-r1)
(12/63) Purging g++ (9.2.0-r3)
(13/63) Purging gcc (9.2.0-r3)
(14/63) Purging binutils (2.33.1-r0)
(15/63) Purging libatomic (9.2.0-r3)
(16/63) Purging make (4.2.1-r2)
(17/63) Purging libc-dev (0.7.2-r0)
(18/63) Purging musl-dev (1.1.24-r1)
(19/63) Purging fortify-headers (1.1-r0)
(20/63) Purging raspberrypi (0.20190416-r1)
(21/63) Purging isl (0.18-r0)
(22/63) Purging mpc1 (1.1.0-r1)
(23/63) Purging mpfr4 (4.0.2-r1)
(24/63) Purging gmp (6.1.2-r1)
(25/63) Purging glib-dev (2.62.5-r0)
(26/63) Purging python3 (3.8.2-r0)
(27/63) Purging bzip2-dev (1.0.8-r1)
(28/63) Purging docbook-xsl (1.79.2-r2)
Executing docbook-xsl-1.79.2-r2.post-deinstall
(29/63) Purging libxslt (1.1.34-r0)
(30/63) Purging docbook-xml (4.5-r6)
Executing docbook-xml-4.5-r6.post-deinstall
(31/63) Purging libxml2-utils (2.9.10-r2)
(32/63) Purging gettext-dev (0.20.1-r2)
(33/63) Purging gettext-asprintf (0.20.1-r2)
(34/63) Purging gettext (0.20.1-r2)
(35/63) Purging libgomp (9.2.0-r3)
(36/63) Purging util-linux-dev (2.34-r1)
(37/63) Purging libfdisk (2.34-r1)
(38/63) Purging libsmartcols (2.34-r1)
(39/63) Purging libuuid (2.34-r1)
(40/63) Purging eudev (3.2.9-r1)
(41/63) Purging udev-init-scripts (33-r0)
(42/63) Purging eudev-libs (3.2.9-r1)
(43/63) Purging glib (2.62.5-r0)
(44/63) Purging libmount (2.34-r1)
(45/63) Purging libblkid (2.34-r1)
(46/63) Purging pcre-dev (8.43-r0)
(47/63) Purging libpcre16 (8.43-r0)
(48/63) Purging libpcre32 (8.43-r0)
(49/63) Purging libpcrecpp (8.43-r0)
(50/63) Purging pcre (8.43-r0)
(51/63) Purging libdaemon (0.14-r2)
(52/63) Purging kmod (26-r0)
(53/63) Purging libxml2 (2.9.10-r2)
(54/63) Purging xz-libs (5.2.4-r0)
(55/63) Purging gettext-libs (0.20.1-r2)
(56/63) Purging libunistring (0.9.10-r0)
(57/63) Purging libgcrypt (1.8.5-r0)
(58/63) Purging libgpg-error (1.36-r2)
(59/63) Purging libffi-dev (3.2.1-r6)
(60/63) Purging linux-headers (4.19.36-r0)
(61/63) Purging zlib-dev (1.2.11-r3)
(62/63) Purging pkgconf (1.6.3-r0)
(63/63) Purging raspberrypi-libs (0.20190416-r1)
Executing busybox-1.31.1-r9.trigger
Executing dbus-1.12.16-r2.trigger
OK: 69 MiB in 46 packages
+ npm dedupe
audited 1904 packages in 4.535s
15 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
+ npm cache clean --force
npm WARN using --force I sure hope you know what you are doing.
Removing intermediate container 97132ed9b56e
---> fc3a5be4b8d3
Step 6/9 : RUN sed -ie "s/'noble'/'@abandonware\/noble'/" node_modules/@rdmtc/node-red-contrib-noble/noble/node-red-contrib-noble.js
---> Running in 323380c4d67f
Removing intermediate container 323380c4d67f
---> 4a9086ea5a11
Step 7/9 : VOLUME /data
---> Running in d800093feaef
Removing intermediate container d800093feaef
---> b78257209e97
Step 8/9 : EXPOSE 1880
---> Running in 795c70612ff3
Removing intermediate container 795c70612ff3
---> 782eac335132
Step 9/9 : CMD ["/bin/sh", "/usr/src/node-red/entrypoint.sh" ]
---> Running in ded43ba252dc
Removing intermediate container ded43ba252dc
---> 5342062c9136
Successfully built 5342062c9136
Successfully tagged mynodered:latest
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.