Bidirectional communication (two-way communication) between Browser Dashboard and Raspberry Pi with Node Red

Hallo zusammen,

ich brauche eurer Schwarmwissen: Ich würde gerne eine bidirektionale Kommunikation (Gegensprechen) zwischen Browser Dashboard und Raspberry Pi mit Node Red umsetzen.

Detailbeschreibung:

Raspberry Pi 4 Bookworm mit angeschlossenem USB Mikrofon und USB Lautsprecher
PC mit Browser mit angeschlossenem USB Mikrofon und USB Lautsprecher

Die einzelnen Bauteile funktionieren, ich kann diese über das Linux Terminal oder auch über Node Red ansprechen.

Vorrausetzung dass der Browser das Mikrofon freigibt ist HTTPS, welches ich implemeniert habe.

So sieht mein Aufbau aus, wenn im Dashboard der Start Button gedrückt wird, dann soll die Übertragung beginnen, bei Stop stoppen:

In Node Red habe ich bereits vieles ausprobiert und Stunden damit verbracht, bin aber leider nicht zum Ziel gekommen.

Hier mal einer der Versuche (so funktioniert es nicht):

Eingesetzte Nodes: UI_Microfone und Dashboard, Ansteuerug am Pi über "arecord" und "aplay".

Kann mir bitte jemand helfen und ein paar Tips geben?

Danke schonmal an die Community!

Mandy

Translation:


Hello everyone,

I need your swarm knowledge: I would like to implement a bidirectional communication (intercom) between browser dashboard and Raspberry Pi with Node Red.

Detailed description:

Raspberry Pi 4 Bookworm with connected USB microphone and USB speaker

PC with browser with connected USB microphone and USB speaker

The individual components work, I can address them via the Linux terminal or via Node Red.

The prerequisite that the browser releases the microphone is HTTPS, which I have implemented.

This is what my setup looks like, if the start button is pressed in the dashboard, then the transfer should start, stop at stop:

--- IMAGE ---

In Node Red I have already tried a lot and spent hours with it, but unfortunately I did not reach the goal.

Here's one of the attempts (it doesn't work that way):

--- IMAGE ---

Used nodes: UI_Microfone and Dashboard, control on the Pi via "arecord" and "aplay".

Can someone please help me and give me some tips?

Thanks to the community!

Mandy


@norobot

English : As this is an English speaking forum - it might pay to use a translator - and of course, welcome to the forums

German : Da dies ein englischsprachiges Forum ist, könnte es sich auszahlen, einen Übersetzer zu verwenden - und natürlich willkommen in den Foren

Note: I also modified title

Both arecord and aplay are file based. This would imply that you need to create a file on the node red instance, copy that file to the raspberry and have aplay play it on the raspberry. This would need to be done in reverse for recording the microphone on the raspberry.

You might be better off using some audio streaming protocol to transfer audio data in realtime. A quick google gave me this page - perhaps one of those are natively supported by node red.

Thanks for translating and the hint that "arecord" und "aplay" is just for file play and recording, not for streaming. i tried to install node-red-contrib-webrtc - this seems to be good for my problem. Unfortunately I am not able to install this on my Node Red installation. There is the following failure coming up after the try to install this Node over Palette Manager (it is a Raspberry Pi 4 with Bookworm):

-----------------------------------------------------------

2024-12-01T16:49:15.255Z Installieren : node-red-contrib-rtmp 1.0.4

2024-12-01T16:49:14.778Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --omit=dev --engine-strict node-red-contrib-rtmp@1.0.4

2024-12-01T16:49:31.570Z [out]

2024-12-01T16:49:31.570Z [out] added 20 packages, and removed 2 packages in 16s

2024-12-01T16:49:31.589Z rc=0

-----------------------------------------------------------

2024-12-01T17:00:21.033Z Installieren : node-red-contrib-webrtc 0.0.2

2024-12-01T17:00:20.625Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --omit=dev --engine-strict node-red-contrib-webrtc@0.0.2

2024-12-01T17:00:31.753Z [err] npm warn deprecated domexception@1.0.1: Use your platform's native DOMException instead

2024-12-01T17:01:59.624Z [err] npm error code 1

2024-12-01T17:01:59.626Z [err] npm error path /home/divis/.node-red/node_modules/wrtc

2024-12-01T17:01:59.627Z [err] npm error command failed

2024-12-01T17:01:59.628Z [err] npm error command sh -c node scripts/download-prebuilt.js

2024-12-01T17:01:59.630Z [err] npm error /bin/sh: 1: node-pre-gyp: not found

2024-12-01T17:01:59.638Z [err] npm error A complete log of this run can be found in: /home/divis/.npm/_logs/2024-12-01T17_00_20_895Z-debug-0.log

2024-12-01T17:01:59.665Z rc=1

Do somebody know how to fix this problem?

Install build-essential
sudo apt install build-essential

Though I am not sure that will fix it.

Hello thank for replying, I tried to install build-essential. It is already installed :frowning:

did you look in the log file?

It seems there are two errors:

and

it's not clear which one is actually causing the problem.

This is the whole content of the log file:

0 verbose cli /usr/bin/node /usr/bin/npm
1 info using npm@10.8.2
2 info using node@v20.18.1
3 silly config load:file:/usr/lib/node_modules/npm/npmrc
4 silly config load:file:/home/divis/.node-red/.npmrc
5 silly config load:file:/home/divis/.npmrc
6 silly config load:file:/usr/etc/npmrc
7 verbose title npm install node-red-contrib-webrtc@0.0.2
8 verbose argv "install" "--no-audit" "--no-update-notifier" "--no-fund" "--save" "--save-prefix" "~" "--omit" "dev" "--engine-strict" "node-red-contrib-webrtc@0.0.2"
9 verbose logfile logs-max:10 dir:/home/divis/.npm/_logs/2024-12-01T17_00_20_895Z-
10 verbose logfile /home/divis/.npm/_logs/2024-12-01T17_00_20_895Z-debug-0.log
11 silly packumentCache heap:562036736 maxSize:140509184 maxEntrySize:70254592
12 silly logfile start cleaning logs, removing 1 files
13 silly logfile done cleaning log files
14 silly idealTree buildDeps
15 silly fetch manifest node-red-contrib-webrtc@0.0.2
16 silly packumentCache full:https://registry.npmjs.org/node-red-contrib-webrtc cache-miss
17 http fetch GET 200 https://registry.npmjs.org/node-red-contrib-webrtc 958ms (cache revalidated)
18 silly packumentCache full:https://registry.npmjs.org/node-red-contrib-webrtc set size:3139 disposed:false
19 silly placeDep ROOT node-red-contrib-webrtc@0.0.2 OK for: node-red-project@0.0.1 want: 0.0.2
20 silly fetch manifest peerjs@git+https://github.com/moritonal/peerjs.git#node
21 silly fetch manifest random-sentence@^1.0.4
22 silly packumentCache full:https://registry.npmjs.org/random-sentence cache-miss
23 http fetch GET 200 https://registry.npmjs.org/random-sentence 605ms (cache revalidated)
24 silly packumentCache full:https://registry.npmjs.org/random-sentence set size:14616 disposed:false
25 silly placeDep ROOT peerjs@1.2.0 OK for: node-red-contrib-webrtc@0.0.2 want: git+https://github.com/moritonal/peerjs.git#node
26 silly placeDep ROOT random-sentence@1.0.4 OK for: node-red-contrib-webrtc@0.0.2 want: ^1.0.4
27 silly fetch manifest @types/node@^13.7.4
28 silly packumentCache full:https://registry.npmjs.org/@types%2fnode cache-miss
29 silly fetch manifest @types/webrtc@^0.0.26
30 silly packumentCache full:https://registry.npmjs.org/@types%2fwebrtc cache-miss
31 silly fetch manifest @types/websocket@^1.0.0
32 silly packumentCache full:https://registry.npmjs.org/@types%2fwebsocket cache-miss
33 http fetch GET 200 https://registry.npmjs.org/@types%2fnode 183ms (cache revalidated)
34 silly packumentCache full:https://registry.npmjs.org/@types%2fnode set size:9446085 disposed:false
35 silly fetch manifest @types/ws@^7.2.1
36 silly packumentCache full:https://registry.npmjs.org/@types%2fws cache-miss
37 http fetch GET 200 https://registry.npmjs.org/@types%2fwebrtc 663ms (cache revalidated)
38 silly packumentCache full:https://registry.npmjs.org/@types%2fwebrtc set size:65487 disposed:false
39 silly fetch manifest binarypack@0.0.4
40 silly packumentCache full:https://registry.npmjs.org/binarypack cache-miss
41 http fetch GET 200 https://registry.npmjs.org/@types%2fws 100ms (cache revalidated)
42 silly packumentCache full:https://registry.npmjs.org/@types%2fws set size:161374 disposed:false
43 silly fetch manifest eventemitter3@^4.0.0
44 silly packumentCache full:https://registry.npmjs.org/eventemitter3 cache-miss
45 http fetch GET 200 https://registry.npmjs.org/@types%2fwebsocket 796ms (cache revalidated)
46 silly packumentCache full:https://registry.npmjs.org/@types%2fwebsocket set size:61781 disposed:false
47 silly fetch manifest filereader@^0.10.3
48 silly packumentCache full:https://registry.npmjs.org/filereader cache-miss
49 http fetch GET 200 https://registry.npmjs.org/eventemitter3 90ms (cache revalidated)
50 silly packumentCache full:https://registry.npmjs.org/eventemitter3 set size:86060 disposed:false
51 silly fetch manifest js-binarypack@0.0.9
52 silly packumentCache full:https://registry.npmjs.org/js-binarypack cache-miss
53 http fetch GET 200 https://registry.npmjs.org/filereader 148ms (cache revalidated)
54 silly packumentCache full:https://registry.npmjs.org/filereader set size:4367 disposed:false
55 silly fetch manifest node-blob@0.0.2
56 silly packumentCache full:https://registry.npmjs.org/node-blob cache-miss
57 http fetch GET 200 https://registry.npmjs.org/binarypack 555ms (cache revalidated)
58 silly packumentCache full:https://registry.npmjs.org/binarypack set size:5712 disposed:false
59 silly fetch manifest node-fetch@^2.6.0
60 silly packumentCache full:https://registry.npmjs.org/node-fetch cache-miss
61 http fetch GET 200 https://registry.npmjs.org/node-fetch 123ms (cache revalidated)
62 silly packumentCache full:https://registry.npmjs.org/node-fetch set size:896010 disposed:false
63 silly fetch manifest peerjs-js-binarypack@1.0.1
64 silly packumentCache full:https://registry.npmjs.org/peerjs-js-binarypack cache-miss
65 http fetch GET 200 https://registry.npmjs.org/js-binarypack 587ms (cache revalidated)
66 silly packumentCache full:https://registry.npmjs.org/js-binarypack set size:6648 disposed:false
67 silly fetch manifest webrtc-adapter@^7.5.0
68 silly packumentCache full:https://registry.npmjs.org/webrtc-adapter cache-miss
69 http fetch GET 200 https://registry.npmjs.org/webrtc-adapter 94ms (cache revalidated)
70 silly packumentCache full:https://registry.npmjs.org/webrtc-adapter set size:437340 disposed:false
71 silly fetch manifest websocket@^1.0.31
72 silly packumentCache full:https://registry.npmjs.org/websocket cache-miss
73 http fetch GET 200 https://registry.npmjs.org/node-blob 591ms (cache revalidated)
74 silly packumentCache full:https://registry.npmjs.org/node-blob set size:5546 disposed:false
75 silly fetch manifest wrtc@^0.4.4
76 silly packumentCache full:https://registry.npmjs.org/wrtc cache-miss
77 http fetch GET 200 https://registry.npmjs.org/websocket 75ms (cache revalidated)
78 silly packumentCache full:https://registry.npmjs.org/websocket set size:108843 disposed:false
79 silly fetch manifest ws@^7.2.1
80 silly packumentCache full:https://registry.npmjs.org/ws cache-miss
81 http fetch GET 200 https://registry.npmjs.org/ws 78ms (cache revalidated)
82 silly packumentCache full:https://registry.npmjs.org/ws set size:403597 disposed:false
83 silly fetch manifest clamp@^1.0.1
84 silly packumentCache full:https://registry.npmjs.org/clamp cache-miss
85 http fetch GET 200 https://registry.npmjs.org/clamp 94ms (cache revalidated)
86 silly packumentCache full:https://registry.npmjs.org/clamp set size:5060 disposed:false
87 silly fetch manifest random-lorem@^1.0.4
88 silly packumentCache full:https://registry.npmjs.org/random-lorem cache-miss
89 http fetch GET 200 https://registry.npmjs.org/peerjs-js-binarypack 560ms (cache revalidated)
90 silly packumentCache full:https://registry.npmjs.org/peerjs-js-binarypack set size:29953 disposed:false
91 silly fetch manifest random-natural@^1.0.3
92 silly packumentCache full:https://registry.npmjs.org/random-natural cache-miss
93 http fetch GET 200 https://registry.npmjs.org/wrtc 556ms (cache revalidated)
94 silly packumentCache full:https://registry.npmjs.org/wrtc set size:236920 disposed:false
95 http fetch GET 200 https://registry.npmjs.org/random-lorem 527ms (cache revalidated)
96 silly packumentCache full:https://registry.npmjs.org/random-lorem set size:14559 disposed:false
97 http fetch GET 200 https://registry.npmjs.org/random-natural 542ms (cache revalidated)
98 silly packumentCache full:https://registry.npmjs.org/random-natural set size:12601 disposed:false
99 silly fetch manifest encoding@^0.1.0
100 silly packumentCache full:https://registry.npmjs.org/encoding cache-miss
101 http fetch GET 200 https://registry.npmjs.org/encoding 89ms (cache revalidated)
102 silly packumentCache full:https://registry.npmjs.org/encoding set size:17833 disposed:false
103 silly fetch manifest bufferutil@^4.0.1
104 silly packumentCache full:https://registry.npmjs.org/bufferutil cache-miss
105 http fetch GET 200 https://registry.npmjs.org/bufferutil 60ms (cache revalidated)
106 silly packumentCache full:https://registry.npmjs.org/bufferutil set size:49090 disposed:false
107 silly fetch manifest utf-8-validate@^5.0.2
108 silly packumentCache full:https://registry.npmjs.org/utf-8-validate cache-miss
109 http fetch GET 200 https://registry.npmjs.org/utf-8-validate 82ms (cache revalidated)
110 silly packumentCache full:https://registry.npmjs.org/utf-8-validate set size:75205 disposed:false
111 silly placeDep node_modules/peerjs @types/node@13.13.52 OK for: peerjs@1.2.0 want: ^13.7.4
112 silly placeDep ROOT @types/webrtc@0.0.26 OK for: peerjs@1.2.0 want: ^0.0.26
113 silly placeDep ROOT @types/websocket@1.0.10 OK for: peerjs@1.2.0 want: ^1.0.0
114 silly placeDep ROOT @types/ws@7.4.7 OK for: peerjs@1.2.0 want: ^7.2.1
115 silly placeDep ROOT binarypack@0.0.4 OK for: peerjs@1.2.0 want: 0.0.4
116 silly placeDep ROOT eventemitter3@4.0.7 OK for: peerjs@1.2.0 want: ^4.0.0
117 silly placeDep ROOT filereader@0.10.3 OK for: peerjs@1.2.0 want: ^0.10.3
118 silly placeDep ROOT js-binarypack@0.0.9 OK for: peerjs@1.2.0 want: 0.0.9
119 silly placeDep ROOT node-blob@0.0.2 OK for: peerjs@1.2.0 want: 0.0.2
120 silly placeDep ROOT node-fetch@2.7.0 OK for: peerjs@1.2.0 want: ^2.6.0
121 silly placeDep ROOT peerjs-js-binarypack@1.0.1 OK for: peerjs@1.2.0 want: 1.0.1
122 silly placeDep ROOT webrtc-adapter@7.7.1 OK for: peerjs@1.2.0 want: ^7.5.0
123 silly placeDep ROOT websocket@1.0.35 OK for: peerjs@1.2.0 want: ^1.0.31
124 silly placeDep ROOT wrtc@0.4.7 OK for: peerjs@1.2.0 want: ^0.4.4
125 silly placeDep node_modules/peerjs ws@7.5.10 OK for: peerjs@1.2.0 want: ^7.2.1
126 silly fetch manifest buffercursor@>=0.0.3
127 silly packumentCache full:https://registry.npmjs.org/buffercursor cache-miss
128 silly fetch manifest whatwg-url@^5.0.0
129 silly packumentCache full:https://registry.npmjs.org/whatwg-url cache-miss
130 silly fetch manifest rtcpeerconnection-shim@^1.2.15
131 silly packumentCache full:https://registry.npmjs.org/rtcpeerconnection-shim cache-miss
132 http fetch GET 200 https://registry.npmjs.org/whatwg-url 105ms (cache revalidated)
133 silly packumentCache full:https://registry.npmjs.org/whatwg-url set size:153452 disposed:false
134 silly fetch manifest sdp@^2.12.0
135 silly packumentCache full:https://registry.npmjs.org/sdp cache-miss
136 http fetch GET 200 https://registry.npmjs.org/rtcpeerconnection-shim 578ms (cache revalidated)
137 silly packumentCache full:https://registry.npmjs.org/rtcpeerconnection-shim set size:76046 disposed:false
138 silly fetch manifest debug@^2.2.0
139 silly packumentCache full:https://registry.npmjs.org/debug cache-miss
140 http fetch GET 200 https://registry.npmjs.org/buffercursor 594ms (cache revalidated)
141 silly packumentCache full:https://registry.npmjs.org/buffercursor set size:16865 disposed:false
142 silly fetch manifest es5-ext@^0.10.63
143 silly packumentCache full:https://registry.npmjs.org/es5-ext cache-miss
144 http fetch GET 200 https://registry.npmjs.org/debug 76ms (cache revalidated)
145 silly packumentCache full:https://registry.npmjs.org/debug set size:188929 disposed:false
146 silly fetch manifest typedarray-to-buffer@^3.1.5
147 silly packumentCache full:https://registry.npmjs.org/typedarray-to-buffer cache-miss
148 http fetch GET 200 https://registry.npmjs.org/es5-ext 142ms (cache revalidated)
149 silly packumentCache full:https://registry.npmjs.org/es5-ext set size:221731 disposed:false
150 silly fetch manifest yaeti@^0.0.6
151 silly packumentCache full:https://registry.npmjs.org/yaeti cache-miss
152 http fetch GET 200 https://registry.npmjs.org/sdp 641ms (cache revalidated)
153 silly packumentCache full:https://registry.npmjs.org/sdp set size:88230 disposed:false
154 silly fetch manifest domexception@^1.0.1
155 silly packumentCache full:https://registry.npmjs.org/domexception cache-miss
156 http fetch GET 200 https://registry.npmjs.org/typedarray-to-buffer 125ms (cache revalidated)
157 silly packumentCache full:https://registry.npmjs.org/typedarray-to-buffer set size:38803 disposed:false
158 http fetch GET 200 https://registry.npmjs.org/yaeti 110ms (cache revalidated)
159 silly packumentCache full:https://registry.npmjs.org/yaeti set size:18016 disposed:false
160 http fetch GET 200 https://registry.npmjs.org/domexception 109ms (cache revalidated)
161 silly packumentCache full:https://registry.npmjs.org/domexception set size:16884 disposed:false
162 silly placeDep ROOT buffercursor@0.0.12 OK for: binarypack@0.0.4 want: >=0.0.3
163 silly fetch manifest verror@^1.4.0
164 silly packumentCache full:https://registry.npmjs.org/verror cache-miss
165 http fetch GET 200 https://registry.npmjs.org/verror 79ms (cache revalidated)
166 silly packumentCache full:https://registry.npmjs.org/verror set size:50044 disposed:false
167 silly placeDep ROOT verror@1.10.1 OK for: buffercursor@0.0.12 want: ^1.4.0
168 silly fetch manifest assert-plus@^1.0.0
169 silly packumentCache full:https://registry.npmjs.org/assert-plus cache-miss
170 silly fetch manifest core-util-is@1.0.2
171 silly packumentCache full:https://registry.npmjs.org/core-util-is cache-miss
172 silly fetch manifest extsprintf@^1.2.0
173 silly packumentCache full:https://registry.npmjs.org/extsprintf cache-miss
174 http fetch GET 200 https://registry.npmjs.org/core-util-is 88ms (cache revalidated)
175 silly packumentCache full:https://registry.npmjs.org/core-util-is set size:7163 disposed:false
176 http fetch GET 200 https://registry.npmjs.org/assert-plus 97ms (cache revalidated)
177 silly packumentCache full:https://registry.npmjs.org/assert-plus set size:16135 disposed:false
178 http fetch GET 200 https://registry.npmjs.org/extsprintf 100ms (cache revalidated)
179 silly packumentCache full:https://registry.npmjs.org/extsprintf set size:16093 disposed:false
180 silly placeDep ROOT whatwg-url@5.0.0 OK for: node-fetch@2.7.0 want: ^5.0.0
181 silly fetch manifest tr46@~0.0.3
182 silly packumentCache full:https://registry.npmjs.org/tr46 cache-miss
183 silly fetch manifest webidl-conversions@^3.0.0
184 silly packumentCache full:https://registry.npmjs.org/webidl-conversions cache-miss
185 http fetch GET 200 https://registry.npmjs.org/tr46 80ms (cache revalidated)
186 silly packumentCache full:https://registry.npmjs.org/tr46 set size:41044 disposed:false
187 http fetch GET 200 https://registry.npmjs.org/webidl-conversions 108ms (cache revalidated)
188 silly packumentCache full:https://registry.npmjs.org/webidl-conversions set size:41857 disposed:false
189 silly placeDep ROOT clamp@1.0.1 OK for: random-sentence@1.0.4 want: ^1.0.1
190 silly placeDep ROOT random-lorem@1.0.4 OK for: random-sentence@1.0.4 want: ^1.0.4
191 silly placeDep ROOT random-natural@1.0.3 OK for: random-sentence@1.0.4 want: ^1.0.3
192 silly fetch manifest random-char@^1.0.4
193 silly packumentCache full:https://registry.npmjs.org/random-char cache-miss
194 silly fetch manifest random-syllable@^1.0.1
195 silly packumentCache full:https://registry.npmjs.org/random-syllable cache-miss
196 silly fetch manifest max-safe-int@^1.0.0
197 silly packumentCache full:https://registry.npmjs.org/max-safe-int cache-miss
198 http fetch GET 200 https://registry.npmjs.org/random-syllable 114ms (cache revalidated)
199 silly packumentCache full:https://registry.npmjs.org/random-syllable set size:7745 disposed:false
200 silly fetch manifest random-integral@^1.0.3
201 silly packumentCache full:https://registry.npmjs.org/random-integral cache-miss
202 http fetch GET 200 https://registry.npmjs.org/max-safe-int 135ms (cache revalidated)
203 silly packumentCache full:https://registry.npmjs.org/max-safe-int set size:4234 disposed:false
204 http fetch GET 200 https://registry.npmjs.org/random-integral 153ms (cache revalidated)
205 silly packumentCache full:https://registry.npmjs.org/random-integral set size:12564 disposed:false
206 http fetch GET 200 https://registry.npmjs.org/random-char 582ms (cache revalidated)
207 silly packumentCache full:https://registry.npmjs.org/random-char set size:12568 disposed:false
208 silly placeDep ROOT random-char@1.0.4 OK for: random-lorem@1.0.4 want: ^1.0.4
209 silly placeDep ROOT random-syllable@1.0.1 OK for: random-lorem@1.0.4 want: ^1.0.1
210 silly fetch manifest is-nil@^1.0.1
211 silly packumentCache full:https://registry.npmjs.org/is-nil cache-miss
212 silly fetch manifest is-object@^1.0.1
213 silly packumentCache full:https://registry.npmjs.org/is-object cache-miss
214 silly fetch manifest to-str@^1.0.0
215 silly packumentCache full:https://registry.npmjs.org/to-str cache-miss
216 http fetch GET 200 https://registry.npmjs.org/is-object 89ms (cache revalidated)
217 silly packumentCache full:https://registry.npmjs.org/is-object set size:11586 disposed:false
218 silly fetch manifest to-integer@^1.0.1
219 silly packumentCache full:https://registry.npmjs.org/to-integer cache-miss
220 http fetch GET 200 https://registry.npmjs.org/is-nil 113ms (cache revalidated)
221 silly packumentCache full:https://registry.npmjs.org/is-nil set size:7190 disposed:false
222 http fetch GET 200 https://registry.npmjs.org/to-str 160ms (cache revalidated)
223 silly packumentCache full:https://registry.npmjs.org/to-str set size:5765 disposed:false
224 http fetch GET 200 https://registry.npmjs.org/to-integer 89ms (cache revalidated)
225 silly packumentCache full:https://registry.npmjs.org/to-integer set size:8791 disposed:false
226 silly placeDep ROOT is-nil@1.0.1 OK for: random-char@1.0.4 want: ^1.0.1
227 silly placeDep ROOT is-object@1.0.2 OK for: random-char@1.0.4 want: ^1.0.1
228 silly placeDep ROOT to-str@1.0.0 OK for: random-char@1.0.4 want: ^1.0.0
229 silly fetch manifest is-function@^1.0.1
230 silly packumentCache full:https://registry.npmjs.org/is-function cache-miss
231 silly fetch manifest is-symbol@^1.0.1
232 silly packumentCache full:https://registry.npmjs.org/is-symbol cache-miss
233 http fetch GET 200 https://registry.npmjs.org/is-function 80ms (cache revalidated)
234 silly packumentCache full:https://registry.npmjs.org/is-function set size:8525 disposed:false
235 http fetch GET 200 https://registry.npmjs.org/is-symbol 92ms (cache revalidated)
236 silly packumentCache full:https://registry.npmjs.org/is-symbol set size:16279 disposed:false
237 silly placeDep ROOT max-safe-int@1.0.0 OK for: random-natural@1.0.3 want: ^1.0.0
238 silly placeDep ROOT random-integral@1.0.3 OK for: random-natural@1.0.3 want: ^1.0.3
239 silly placeDep ROOT to-integer@1.0.1 OK for: random-integral@1.0.3 want: ^1.0.1
240 silly placeDep ROOT is-function@1.0.2 OK for: to-integer@1.0.1 want: ^1.0.1
241 silly placeDep ROOT is-symbol@1.0.4 OK for: to-integer@1.0.1 want: ^1.0.1
242 silly fetch manifest has-symbols@^1.0.2
243 silly packumentCache full:https://registry.npmjs.org/has-symbols cache-miss
244 http fetch GET 200 https://registry.npmjs.org/has-symbols 105ms (cache revalidated)
245 silly packumentCache full:https://registry.npmjs.org/has-symbols set size:18021 disposed:false
246 silly placeDep ROOT has-symbols@1.0.3 OK for: is-symbol@1.0.4 want: ^1.0.2
247 silly placeDep ROOT assert-plus@1.0.0 OK for: verror@1.10.1 want: ^1.0.0
248 silly placeDep ROOT core-util-is@1.0.2 OK for: verror@1.10.1 want: 1.0.2
249 silly placeDep ROOT extsprintf@1.4.1 OK for: verror@1.10.1 want: ^1.2.0
250 silly placeDep ROOT rtcpeerconnection-shim@1.2.15 OK for: webrtc-adapter@7.7.1 want: ^1.2.15
251 silly placeDep ROOT sdp@2.12.0 OK for: webrtc-adapter@7.7.1 want: ^2.12.0
252 silly fetch manifest sdp@^2.6.0
253 silly packumentCache full:https://registry.npmjs.org/sdp cache-hit
254 silly placeDep ROOT bufferutil@4.0.8 OK for: websocket@1.0.35 want: ^4.0.1
255 silly placeDep node_modules/websocket debug@2.6.9 OK for: websocket@1.0.35 want: ^2.2.0
256 silly placeDep ROOT es5-ext@0.10.64 OK for: websocket@1.0.35 want: ^0.10.63
257 silly placeDep ROOT typedarray-to-buffer@3.1.5 OK for: websocket@1.0.35 want: ^3.1.5
258 silly placeDep ROOT utf-8-validate@5.0.10 OK for: websocket@1.0.35 want: ^5.0.2
259 silly placeDep ROOT yaeti@0.0.6 OK for: websocket@1.0.35 want: ^0.0.6
260 silly fetch manifest ms@2.0.0
261 silly packumentCache full:https://registry.npmjs.org/ms cache-miss
262 silly fetch manifest es6-iterator@^2.0.3
263 silly packumentCache full:https://registry.npmjs.org/es6-iterator cache-miss
264 silly fetch manifest es6-symbol@^3.1.3
265 silly packumentCache full:https://registry.npmjs.org/es6-symbol cache-miss
266 http fetch GET 200 https://registry.npmjs.org/es6-symbol 89ms (cache revalidated)
267 silly packumentCache full:https://registry.npmjs.org/es6-symbol set size:32033 disposed:false
268 silly fetch manifest esniff@^2.0.1
269 silly packumentCache full:https://registry.npmjs.org/esniff cache-miss
270 http fetch GET 200 https://registry.npmjs.org/ms 105ms (cache revalidated)
271 silly packumentCache full:https://registry.npmjs.org/ms set size:84885 disposed:false
272 silly fetch manifest next-tick@^1.1.0
273 silly packumentCache full:https://registry.npmjs.org/next-tick cache-miss
274 http fetch GET 200 https://registry.npmjs.org/es6-iterator 115ms (cache revalidated)
275 silly packumentCache full:https://registry.npmjs.org/es6-iterator set size:21756 disposed:false
276 silly fetch manifest is-typedarray@^1.0.0
277 silly packumentCache full:https://registry.npmjs.org/is-typedarray cache-miss
278 http fetch GET 200 https://registry.npmjs.org/esniff 92ms (cache revalidated)
279 silly packumentCache full:https://registry.npmjs.org/esniff set size:29214 disposed:false
280 http fetch GET 200 https://registry.npmjs.org/next-tick 106ms (cache revalidated)
281 silly packumentCache full:https://registry.npmjs.org/next-tick set size:11978 disposed:false
282 http fetch GET 200 https://registry.npmjs.org/is-typedarray 103ms (cache revalidated)
283 silly packumentCache full:https://registry.npmjs.org/is-typedarray set size:3992 disposed:false
284 silly placeDep ROOT es6-iterator@2.0.3 OK for: es5-ext@0.10.64 want: ^2.0.3
285 silly placeDep ROOT es6-symbol@3.1.4 OK for: es5-ext@0.10.64 want: ^3.1.3
286 silly placeDep ROOT esniff@2.0.1 OK for: es5-ext@0.10.64 want: ^2.0.1
287 silly placeDep ROOT next-tick@1.1.0 OK for: es5-ext@0.10.64 want: ^1.1.0
288 silly fetch manifest d@1
289 silly packumentCache full:https://registry.npmjs.org/d cache-miss
290 silly fetch manifest es6-symbol@^3.1.1
291 silly packumentCache full:https://registry.npmjs.org/es6-symbol cache-hit
292 silly fetch manifest d@^1.0.2
293 silly packumentCache full:https://registry.npmjs.org/d cache-miss
294 silly fetch manifest ext@^1.7.0
295 silly packumentCache full:https://registry.npmjs.org/ext cache-miss
296 http fetch GET 200 https://registry.npmjs.org/d 102ms (cache revalidated)
297 silly packumentCache full:https://registry.npmjs.org/d set size:14705 disposed:false
298 silly fetch manifest d@^1.0.1
299 silly packumentCache full:https://registry.npmjs.org/d cache-hit
300 silly fetch manifest event-emitter@^0.3.5
301 silly packumentCache full:https://registry.npmjs.org/event-emitter cache-miss
302 http fetch GET 200 https://registry.npmjs.org/ext 106ms (cache revalidated)
303 silly packumentCache full:https://registry.npmjs.org/ext set size:54802 disposed:false
304 silly fetch manifest type@^2.7.2
305 silly packumentCache full:https://registry.npmjs.org/type cache-miss
306 http fetch GET 200 https://registry.npmjs.org/d 135ms (cache revalidated)
307 silly packumentCache full:https://registry.npmjs.org/d set size:14705 disposed:false
308 silly packumentCache full:https://registry.npmjs.org/d dispose
309 http fetch GET 200 https://registry.npmjs.org/event-emitter 94ms (cache revalidated)
310 silly packumentCache full:https://registry.npmjs.org/event-emitter set size:26690 disposed:false
311 http fetch GET 200 https://registry.npmjs.org/type 101ms (cache revalidated)
312 silly packumentCache full:https://registry.npmjs.org/type set size:78516 disposed:false
313 silly placeDep ROOT d@1.0.2 OK for: es6-iterator@2.0.3 want: 1
314 silly placeDep ROOT type@2.7.3 OK for: d@1.0.2 want: ^2.7.2
315 silly placeDep ROOT ext@1.7.0 OK for: es6-symbol@3.1.4 want: ^1.7.0
316 silly placeDep ROOT event-emitter@0.3.5 OK for: esniff@2.0.1 want: ^0.3.5
317 silly placeDep ROOT is-typedarray@1.0.0 OK for: typedarray-to-buffer@3.1.5 want: ^1.0.0
318 silly placeDep ROOT tr46@0.0.3 OK for: whatwg-url@5.0.0 want: ~0.0.3
319 silly placeDep ROOT webidl-conversions@3.0.1 OK for: whatwg-url@5.0.0 want: ^3.0.0
320 silly placeDep ROOT domexception@1.0.1 OK for: wrtc@0.4.7 want: ^1.0.1
321 silly fetch manifest webidl-conversions@^4.0.2
322 silly packumentCache full:https://registry.npmjs.org/webidl-conversions cache-hit
323 silly placeDep node_modules/domexception webidl-conversions@4.0.2 OK for: domexception@1.0.1 want: ^4.0.2
324 silly placeDep node_modules/websocket ms@2.0.0 OK for: debug@2.6.9 want: 2.0.0
325 silly reify moves {}
326 warn deprecated domexception@1.0.1: Use your platform's native DOMException instead
327 http fetch GET 200 https://codeload.github.com/moritonal/peerjs/tar.gz/62d5ad43cfb721df9688cd61329a4497d61089ed 591ms (cache revalidated)
328 silly packumentCache heap:562036736 maxSize:140509184 maxEntrySize:70254592
329 info run bufferutil@4.0.8 install node_modules/bufferutil node-gyp-build
330 info run utf-8-validate@5.0.10 install node_modules/utf-8-validate node-gyp-build
331 info run wrtc@0.4.7 install node_modules/wrtc node scripts/download-prebuilt.js
332 info run wrtc@0.4.7 install { code: 1, signal: null }
333 verbose stack Error: command failed
333 verbose stack     at promiseSpawn (/usr/lib/node_modules/npm/node_modules/@npmcli/promise-spawn/lib/index.js:22:22)
333 verbose stack     at spawnWithShell (/usr/lib/node_modules/npm/node_modules/@npmcli/promise-spawn/lib/index.js:124:10)
333 verbose stack     at promiseSpawn (/usr/lib/node_modules/npm/node_modules/@npmcli/promise-spawn/lib/index.js:12:12)
333 verbose stack     at runScriptPkg (/usr/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/run-script-pkg.js:77:13)
333 verbose stack     at runScript (/usr/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/run-script.js:9:12)
333 verbose stack     at /usr/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/rebuild.js:329:17
333 verbose stack     at run (/usr/lib/node_modules/npm/node_modules/promise-call-limit/dist/commonjs/index.js:67:22)
333 verbose stack     at /usr/lib/node_modules/npm/node_modules/promise-call-limit/dist/commonjs/index.js:84:9
333 verbose stack     at new Promise (<anonymous>)
333 verbose stack     at callLimit (/usr/lib/node_modules/npm/node_modules/promise-call-limit/dist/commonjs/index.js:35:69)
334 verbose pkgid wrtc@0.4.7
335 error code 1
336 error path /home/divis/.node-red/node_modules/wrtc
337 error command failed
338 error command sh -c node scripts/download-prebuilt.js
339 error /bin/sh: 1: node-pre-gyp: not found
340 silly unfinished npm timer reify 1733072422024
341 silly unfinished npm timer reify:build 1733072516514
342 silly unfinished npm timer build 1733072516516
343 silly unfinished npm timer build:deps 1733072516517
344 silly unfinished npm timer build:run:install 1733072516654
345 silly unfinished npm timer build:run:install:node_modules/bufferutil 1733072516655
346 silly unfinished npm timer build:run:install:node_modules/utf-8-validate 1733072516675
347 silly unfinished npm timer build:run:install:node_modules/wrtc 1733072516687
348 verbose cwd /home/divis/.node-red
349 verbose os Linux 6.6.62+rpt-rpi-v8
350 verbose node v20.18.1
351 verbose npm  v10.8.2
352 verbose exit 1
353 verbose code 1
354 error A complete log of this run can be found in: /home/divis/.npm/_logs/2024-12-01T17_00_20_895Z-debug-0.log

Try this apt-get install node-pre-gyp to install it

That might build wrtc that is also missing:

336 error path /home/divis/.node-red/node_modules/wrtc
337 error command failed
338 error command sh -c node scripts/download-prebuilt.js
339 error /bin/sh: 1: node-pre-gyp: not found

I get the same problem. It is an issue with the node. Possibly it is not compatible with nodejs 20. The node has not been updated in 5 years and there is no link to its github repository, so probably the node has been abandoned. I think you will have to find an alternative solution.

I thought perhaps it was just the fact that the contrib node was calling in an old version of webrtc, but even the latest version of that says the max nodejs is 15, so it is no longer maintained also.