@@ -11,6 +11,9 @@ set -o pipefail
11
11
12
12
# Default configuration can be overloaded from env
13
13
14
+ # To be explicilty added to env
15
+ sudo=" ${sudo:= } "
16
+
14
17
duration=3 # Allocated time in mins until watchdog quit
15
18
16
19
ZPC_COMMAND=" ${ZPC_COMMAND:=/ usr/ bin/ zpc} "
91
94
92
95
log_ ()
93
96
{
94
- [ " $debug " != " " ] && echo || clear || :
97
+ [ " $debug " != " " ] && echo \
98
+ || clear > /dev/null 2>&1 || reset > /dev/null 2>&1 || :
95
99
printf " ${yellow} info: $@ ${nocol} \n"
96
100
}
97
101
@@ -103,18 +107,12 @@ exit_()
103
107
sleep 10
104
108
[ -z $debug ] || sleep 1000
105
109
echo $code > $code_log
106
- screen -S " $name " -X " quit"
110
+ screen -S " $name " -X " quit" || :
111
+ ls -l * .log.tmp && more * .log.tmp | cat
107
112
exit $code
108
113
}
109
114
110
115
111
- die_ ()
112
- {
113
- local code=$(( 1 + 0 $code ))
114
- exit_ $code
115
- }
116
-
117
-
118
116
run_ ()
119
117
{
120
118
local task=" $1 " && shift
@@ -131,12 +129,13 @@ mqtt_()
131
129
pidof mosquitto \
132
130
&& mosquitto_sub \
133
131
-v -t ' #' --remove-retained --retained-only -W 1 \
134
- && break
132
+ || [ 27 = $? ] && break || : # Break on timeout
135
133
sleep .1
136
- done > /dev/null 2>&1
134
+ done
135
+ log_ " mqtt: broker is ready, operating for ${duration} mins"
137
136
mosquitto_sub -v -t ' #' -W $(( 60 * ${duration} ))
138
137
log_ " mqtt: error: Should have finish before ${duration} may need to update it"
139
- die_
138
+ exit_ 10
140
139
}
141
140
142
141
@@ -159,7 +158,7 @@ sub_()
159
158
| head -n1 | grep -F " $expect " 2>&1 > /dev/null \
160
159
|| { printf " ${red} exp: error:: ${expect}${nocol} \n" ;
161
160
cat " $mqtt_sub_log " ;
162
- die_ ; }
161
+ exit_ 11 ; }
163
162
fi
164
163
}
165
164
@@ -179,7 +178,6 @@ pub_()
179
178
180
179
pubsub_ ()
181
180
{
182
- # reset
183
181
echo " "
184
182
[ " " = " $debug " ] || log_ " pubsub_: $@ "
185
183
local pub=" $1 "
@@ -236,13 +234,10 @@ controller_cli_()
236
234
| tail -n 1 | sed -e ' s|PTY: \(.*\)|\1|g' )
237
235
;;
238
236
H)
239
- [ -z $debug ] || log_ " TODO: print HOME_ID: from device: https://github.com/Z-Wave-Alliance/z-wave-stack/issues/732"
240
- sleep 1
241
- while [ ! -e " ${mqtt_log} " ] ; do sleep 1; done
242
- # [ "$homeid" != "" ]
243
- homeid=$( sed -n -e ' s|ucl/by-unid/zw-\(.*\)-\([0-9]*\)/.*|\1|gp' " $mqtt_log " | tail -n1)
237
+ homeid=$( grep ' HOME_ID: ' " ${controller_log} " \
238
+ | tail -n 1 | sed -e ' s|HOME_ID: \(.*\)|\1|g' )
244
239
echo " HOME_ID: ${homeid} "
245
- [ ! -z $homeid ] || die_
240
+ [ ! -z $homeid ] || exit_ 19
246
241
;;
247
242
n)
248
243
contid=$( grep ' NODE_ID: ' " ${controller_log} " \
@@ -319,7 +314,7 @@ zpc_()
319
314
sleep 1
320
315
zpc_cli_ version
321
316
zpc_cli_ help
322
- die_
317
+ exit_ 13
323
318
}
324
319
325
320
@@ -346,8 +341,8 @@ zpc_cli_()
346
341
play_uic_net_add_node_ ()
347
342
{
348
343
log_ " net: controller: Add node (set in learn mode)"
349
- controller_cli_ H | grep " ^HOME_ID: ........$" || die_
350
- controller_cli_ n | grep " ^NODE_ID: " || die_
344
+ controller_cli_ H | grep " ^HOME_ID: ........$" || exit_ 14
345
+ controller_cli_ n | grep " ^NODE_ID: " || exit_ 15
351
346
352
347
sub=" ucl/by-mqtt-client/zpc/ApplicationMonitoring/SupportedCommands"
353
348
pub=" $sub " # Can be anything
@@ -364,7 +359,7 @@ play_uic_net_add_node_()
364
359
homeid=$( sed -n -e ' s|ucl/by-unid/zw-\(.*\)-\([0-9]*\)/.*|\1|gp' " $mqtt_sub_log " )
365
360
contid=$( sed -n -e ' s|ucl/by-unid/zw-\(.*\)-\([0-9]*\)/.*|\2|gp' " $mqtt_sub_log " )
366
361
contunid=" zw-$homeid -$contid "
367
- node_cli_ n | grep ' NODE_ID: 0' || die_
362
+ node_cli_ n | grep ' NODE_ID: 0' || exit_ 16
368
363
node_cli_ l
369
364
370
365
log_ " net: cont: Add node"
@@ -374,7 +369,7 @@ play_uic_net_add_node_()
374
369
count=" 2" # NODEID=0001 is controller , NODEID=0002 is expected node
375
370
expect=" State/SupportedCommands"
376
371
pubsub_ " $pub " " $message " " $sub " " $expect "
377
- node_cli_ H | grep " HOME_ID: ${homeid} " || die_
372
+ node_cli_ H | grep " HOME_ID: ${homeid} " || exit_ 17
378
373
node_cli_ n # Should not be 0
379
374
pub=' '
380
375
sub=$( echo " $sub " | sed -e " s|/+/|/$nodeunid /|g" )
@@ -413,7 +408,7 @@ play_uic_net_remove_node_()
413
408
expect=$( echo " $sub (null)" | sed -e " s|/+/|/$nodeunid /|g" )
414
409
node_cli_ l
415
410
pubsub_ " $pub " " $message " " $sub " " $expect " 3
416
- node_cli_ n | grep ' ^NODE_ID: 0$' || die_
411
+ node_cli_ n | grep ' ^NODE_ID: 0$' || exit_ 18
417
412
}
418
413
419
414
@@ -487,7 +482,9 @@ play_uic_()
487
482
play_ ()
488
483
{
489
484
log_ " play: Wait for zpc mqtt ready"
490
- while ! grep -- " mqtt_wrapper_mosquitto" " ${zpc_log} " ; do sleep 1 ; done
485
+ while ! grep -- " \[mqtt_wrapper_mosquitto\]" " ${zpc_log} " ; do sleep 1 ; done
486
+ while ! grep -- " \[mqtt_client\] Connection to MQTT broker" " ${zpc_log} " ; do sleep 1 ; done
487
+
491
488
controller_cli_ h
492
489
node_cli_ h
493
490
@@ -501,12 +498,17 @@ setup_()
501
498
local project=" z-wave-stack-binaries"
502
499
local url=" https://github.com/Z-Wave-Alliance/${project} "
503
500
local pattern=" $project -*.tar.gz" # TODO: Bump latest release
504
- pattern=" $project -25.1.0-25-g3b1e09d-Linux.tar.gz"
501
+ local rev=" 25.1.0-26-g29d304"
502
+ pattern=" $project -${rev} -Linux.tar.gz"
505
503
506
504
mkdir -p " ${project} " && cd " ${project} "
507
505
file -E " ${pattern} " \
508
506
|| gh release download -R " $url " --pattern " $pattern "
509
507
tar xvfz " ${project} " * .tar.gz
508
+ # TODO: https://github.com/eclipse-mosquitto/mosquitto/issues/3267
509
+ mosquitto_pub --version \
510
+ || which mosquitto_pub \
511
+ || $sudo apt install mosquitto-clients
510
512
}
511
513
512
514
@@ -515,6 +517,17 @@ default_()
515
517
usage_
516
518
sleep 1
517
519
520
+ log_ " Setup check, if failing please setup using:"
521
+ echo " sudo=sudo $0 setup_"
522
+
523
+ [ " " = " $debug " ] || set
524
+
525
+ screen --version
526
+
527
+ # TODO: https://github.com/eclipse-mosquitto/mosquitto/issues/3267
528
+ mosquitto_pub --version \
529
+ || which mosquitto_pub
530
+
518
531
log_ " z-wave-stack-binaries: Check presence in ${z_wave_stack_binaries_bin_dir} "
519
532
file -E " ${z_wave_stack_binaries_bin_dir} /" * " REALTIME" * " .elf"
520
533
sleep 2
576
589
cat " ${mqtt_log} "
577
590
578
591
code=$( cat ${code_log} || echo 254)
579
- exit 0$code
592
+ exit_ 0$code
580
593
}
581
594
582
595
0 commit comments