Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

local_name empty #47

Open
ayasystems opened this issue Jun 13, 2023 · 14 comments
Open

local_name empty #47

ayasystems opened this issue Jun 13, 2023 · 14 comments

Comments

@ayasystems
Copy link

My blu has not local name so all scripts are not working....

Whats the way to rename the local_name of blu device?

Regards

@taulfsime
Copy link
Collaborator

What scan are you doing? Active or passive?

@ayasystems
Copy link
Author

Hi

I'm ussing the follow example:

`/**

  • This script uses the BLE scan functionality in scripting
  • Will look for Shelly BLU devices fingerprints in BLE advertisements
  • Prints device name and address
    */

// Shelly BLU devices:
// SBBT - Shelly BLU Button
// SBDW - Shelly BLU DoorWindow

let ALLTERCO_DEVICE_NAME_PREFIX = ["SBBT", "SBDW"];

let ALLTERCO_MFD_ID_STR = "0ba9";
let BTHOME_SVC_ID_STR = "fcd2";

let SCAN_DURATION = BLE.Scanner.INFINITE_SCAN;
let ACTIVE_SCAN = true;

let SHELLY_BLU_CACHE = {};

function scanCB(ev, res) {
if (ev !== BLE.Scanner.SCAN_RESULT) return;
// skip if there is no service_data member
if (typeof res.service_data === 'undefined' || typeof res.service_data[BTHOME_SVC_ID_STR] === 'undefined') return;
// skip if we have already found this device
if (typeof SHELLY_BLU_CACHE[res.addr] !== 'undefined') return;
//if (typeof res.local_name !== 'string') return;
let shellyBluNameIdx = 0;
console.log(res);
for (shellyBluNameIdx in ALLTERCO_DEVICE_NAME_PREFIX) {
if (res.local_name.indexOf(ALLTERCO_DEVICE_NAME_PREFIX[shellyBluNameIdx]) === 0) {
console.log('New device found:');
console.log('Address: ', res.addr, ' Name: ', res.local_name);
SHELLY_BLU_CACHE[res.addr] = res.local_name;
}
}
}

BLE.Scanner.Start({ duration_ms: SCAN_DURATION, active: true }, scanCB);`

Local name is empty always

Note that i commented the line that checks local_name

image

@taulfsime
Copy link
Collaborator

From what device you are receding this data?

Update the device to latest beta firmware version.

@ayasystems
Copy link
Author

Receiver is:
Shelly PlusPlugS
1.0.0-beta4

Blu button:
image

image

@taulfsime
Copy link
Collaborator

Thanks it's an issue with the beta4, unfortunately you have to wait for fix to use it

@taulfsime
Copy link
Collaborator

Ops, the scanner can be used with stable 0.14.1, just downgrade from the app

@tv4you2016
Copy link

Hello @taulfsime
in "SNGW-BT01","gen" : 2,"fw_id" : "20240425-141307/1.3.0-ga3fdd3d", "ver" : "1.3.0", + Shelly BLU Door Window version 20240408-184602/V1.0.16@716b307b

local name doesn't work either used the https://github.com/ALLTERCO/shelly-script-examples/blob/main/ble-shelly-scanner.js

@sciestep
Copy link

sciestep commented Jun 2, 2024

Hi @taulfsime,
I am getting undefined local name, too, when scanning for Bluetooth devices. I used shelly plus 1pm and 2pm as gateway, in version 1.3.2 and 1.2.2, both getting no local_name, which I use for forwarding to openhab. Firmware on BLU-Device D/W and Motion is also 1.0.16 but also tried with older version 1.0.9-rc
How to fix it or is there a working version, on which I can downgrade?

@taulfsime
Copy link
Collaborator

@sciestep can you post the output of Shelly.GetConfig here?

@sciestep
Copy link

sciestep commented Jun 3, 2024

Hi @taulfsime,
here is the output of http://192.168.0.29/rpc/Shelly.GetConfig

{ "ble": { "enable": true, "rpc": { "enable": true }, "observer": { "enable": true } }, "cloud": { "enable": true, "server": "shelly-80-eu.shelly.cloud:6022/jrpc" }, "cover:0": { "id": 0, "name": "Rolladen Arbeitszimmer EG", "motor": { "idle_power_thr": 2, "idle_confirm_period": 0.25 }, "maxtime_open": 60, "maxtime_close": 60, "initial_state": "stopped", "invert_directions": false, "in_mode": "dual", "swap_inputs": false, "safety_switch": { "enable": false, "direction": "both", "action": "stop", "allowed_move": null }, "power_limit": 2800, "voltage_limit": 280, "undervoltage_limit": 0, "current_limit": 10, "obstruction_detection": { "enable": false, "direction": "both", "action": "stop", "power_thr": 2503, "holdoff": 1 } }, "input:0": { "id": 0, "name": null, "type": "button", "enable": true, "invert": false, "factory_reset": true }, "input:1": { "id": 1, "name": null, "type": "button", "enable": true, "invert": false, "factory_reset": true }, "mqtt": { "enable": false, "server": null, "client_id": "shellyplus2pm-80646fc7a8d4", "user": null, "ssl_ca": null, "topic_prefix": "shellyplus2pm-80646fc7a8d4", "rpc_ntf": true, "status_ntf": false, "use_client_cert": false, "enable_rpc": true, "enable_control": true }, "script:2": { "id": 2, "name": "script_2", "enable": false }, "script:1": { "id": 1, "name": "oh-blu-scanner.js", "enable": true }, "sys": { "device": { "name": "Rolladen Arbeitszimmer EG", "mac": "80646FC7A8D4", "fw_id": "20240522-112837/1.3.2-g34c651b", "discoverable": true, "eco_mode": true, "profile": "cover", "addon_type": null }, "location": { "tz": "Europe/Berlin", "lat": 48.9075, "lon": 9.1371 }, "debug": { "level": 2, "file_level": null, "mqtt": { "enable": false }, "websocket": { "enable": true }, "udp": { "addr": null } }, "ui_data": {}, "rpc_udp": { "dst_addr": null, "listen_port": null }, "sntp": { "server": "time.google.com" }, "cfg_rev": 27 }, "wifi": { "ap": { "ssid": "ShellyPlus2PM-80646FC7A8D4", "is_open": true, "enable": false, "range_extender": { "enable": false } }, "sta": { "ssid": "Vodafone-3984", "is_open": false, "enable": true, "ipv4mode": "static", "ip": "192.168.0.29", "netmask": "255.255.255.0", "gw": "192.168.0.1", "nameserver": null }, "sta1": { "ssid": null, "is_open": true, "enable": false, "ipv4mode": "dhcp", "ip": null, "netmask": null, "gw": null, "nameserver": null }, "roam": { "rssi_thr": -80, "interval": 60 } }, "ws": { "enable": false, "server": null, "ssl_ca": "ca.pem" } }

@taulfsime
Copy link
Collaborator

Thanks, @sciestep.

Could you please open the web page of the device, disable the ble gateway option, reboot the device and check again?

@sciestep
Copy link

sciestep commented Jun 3, 2024

Hi @taulfsime ,
this works, thanks. Local name is defined as String, now:
res.local_name= SBDW-002C
So, I have to decide to send the signal to Cloud or use it in the internal network?

@taulfsime
Copy link
Collaborator

Yeah, as for now you can not change the default scan stared by the firmware which is used to forward the packets to the cloud. If you need only packets from some devices, you can make a map in the script for each bluetooth device as Mac address and its type. furthermore its not good running always active scan because this will drain the battery of the device faster.

@taulfsime
Copy link
Collaborator

@ayasystems Please check the conversation above, I know that probably this isn't the answer you were looking for, but this is how it works for now. Let's close the issue, as it isn't related to the script directly. Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants