It's hard to know what's wrong exactly. Clearly the hub is connecting to the puck. You did say sometimes it works. I'm using an RPi3 and the built in bluetooth. This is what I get using the same code for the hub. I can do it 10 times in a row and it's reliable:
Config loaded
MQTT Connected
<HTTPProxy> Bleno State poweredOn
<HTTPProxy> Bleno.startAdvertising Success
<HTTPProxy> Bleno.setServices Success
Scanning started...
MQTT>/ble/write/c7:6e:71:2e:0e:90/nus/nus_tx => "digitalPulse(LED3, 1, 1000);\n"
Service 6e400001b5a3f393e0a9e50e24dcca9e
Characteristic 6e400002b5a3f393e0a9e50e24dcca9e
<Connect> Connected. Getting Services...
<Connect> found service: 6e400001b5a3f393e0a9e50e24dcca9e
<Connect> found characteristic: 6e400002b5a3f393e0a9e50e24dcca9e
<Connect> Writing "digitalPulse(LED3, 1, 1000);\n"...
<Connect> wrote data: 20 bytes
<Connect> wrote data: 9 bytes
<Connect> disconnected!
Scanning restarted...
Have you updated the firmware in your puck? What version?
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
It's hard to know what's wrong exactly. Clearly the hub is connecting to the puck. You did say sometimes it works. I'm using an RPi3 and the built in bluetooth. This is what I get using the same code for the hub. I can do it 10 times in a row and it's reliable:
Have you updated the firmware in your puck? What version?