diff --git a/app/diario-bordo.html b/app/diario-bordo.html
index 9002e62..abe1dd6 100644
--- a/app/diario-bordo.html
+++ b/app/diario-bordo.html
@@ -6073,11 +6073,11 @@ async function bmsProbeWebBluetooth(deviceId,deviceName){
let notifyChar=null,writeChar=null;
for(const c of chars){
const p=c.properties;
- const propsStr=[p.notify&&'notify',p.indicate&&'indicate',p.write&&'write',p.writeWithoutResponses&&'wnr',p.read&&'read'].filter(Boolean).join(',');
+ const propsStr=[p.notify&&'notify',p.indicate&&'indicate',p.write&&'write',p.writeWithoutResponse&&'wnr',p.read&&'read'].filter(Boolean).join(',');
const cu=c.uuid.toLowerCase();
setBleDiag(` ${cu.slice(4,8)} [${propsStr}]`,'info');
if(!notifyChar&&(p.notify||p.indicate))notifyChar=c;
- if(!writeChar&&(p.write||p.writeWithoutResponses))writeChar=c;
+ if(!writeChar&&(p.write||p.writeWithoutResponse))writeChar=c;
}
if(!notifyChar||!writeChar){setBleDiag('Sem chars notify+write','err');return false}
setBleDiag(`Notify=${notifyChar.uuid.slice(4,8)} Write=${writeChar.uuid.slice(4,8)}`,'ok');
@@ -6094,7 +6094,7 @@ async function bmsProbeWebBluetooth(deviceId,deviceName){
setBleDiag('Notify ativo · iniciando wake...','ok');
await new Promise(r=>setTimeout(r,500));
try{
- const fn=writeChar.properties.writeWithoutResponses?'writeValueWithoutResponse':'writeValue';
+ const fn=writeChar.properties.writeWithoutResponse?'writeValueWithoutResponse':'writeValue';
await writeChar[fn](new Uint8Array([0x5A,0x5A,0x5A,0x5A]));
setBleDiag('Wake 5A x4 enviado','info');
}catch(e){setBleDiag('Wake skip: '+e.message,'info')}
@@ -6107,7 +6107,7 @@ async function bmsProbeWebBluetooth(deviceId,deviceName){
for(const p of PROTOCOLS){
try{
setBleDiag(`→ TX ${p.name}`,'info');
- const fn=writeChar.properties.writeWithoutResponses?'writeValueWithoutResponse':'writeValue';
+ const fn=writeChar.properties.writeWithoutResponse?'writeValueWithoutResponse':'writeValue';
await writeChar[fn](new Uint8Array(p.bytes));
setBleDiag(`✔ write ${p.name} OK`,'info');
await new Promise(r=>setTimeout(r,2500));
@@ -6440,7 +6440,7 @@ async function removeBluetoothDevice(id){
renderBluetoothCard();
}
-const APP_VERSION='1.10.12';
+const APP_VERSION='1.10.13';
function renderBluetoothCard(){
const el=document.getElementById('bt-list');
const supportEl=document.getElementById('bt-support');
diff --git a/server/public/index.html b/server/public/index.html
index 9002e62..abe1dd6 100644
--- a/server/public/index.html
+++ b/server/public/index.html
@@ -6073,11 +6073,11 @@ async function bmsProbeWebBluetooth(deviceId,deviceName){
let notifyChar=null,writeChar=null;
for(const c of chars){
const p=c.properties;
- const propsStr=[p.notify&&'notify',p.indicate&&'indicate',p.write&&'write',p.writeWithoutResponses&&'wnr',p.read&&'read'].filter(Boolean).join(',');
+ const propsStr=[p.notify&&'notify',p.indicate&&'indicate',p.write&&'write',p.writeWithoutResponse&&'wnr',p.read&&'read'].filter(Boolean).join(',');
const cu=c.uuid.toLowerCase();
setBleDiag(` ${cu.slice(4,8)} [${propsStr}]`,'info');
if(!notifyChar&&(p.notify||p.indicate))notifyChar=c;
- if(!writeChar&&(p.write||p.writeWithoutResponses))writeChar=c;
+ if(!writeChar&&(p.write||p.writeWithoutResponse))writeChar=c;
}
if(!notifyChar||!writeChar){setBleDiag('Sem chars notify+write','err');return false}
setBleDiag(`Notify=${notifyChar.uuid.slice(4,8)} Write=${writeChar.uuid.slice(4,8)}`,'ok');
@@ -6094,7 +6094,7 @@ async function bmsProbeWebBluetooth(deviceId,deviceName){
setBleDiag('Notify ativo · iniciando wake...','ok');
await new Promise(r=>setTimeout(r,500));
try{
- const fn=writeChar.properties.writeWithoutResponses?'writeValueWithoutResponse':'writeValue';
+ const fn=writeChar.properties.writeWithoutResponse?'writeValueWithoutResponse':'writeValue';
await writeChar[fn](new Uint8Array([0x5A,0x5A,0x5A,0x5A]));
setBleDiag('Wake 5A x4 enviado','info');
}catch(e){setBleDiag('Wake skip: '+e.message,'info')}
@@ -6107,7 +6107,7 @@ async function bmsProbeWebBluetooth(deviceId,deviceName){
for(const p of PROTOCOLS){
try{
setBleDiag(`→ TX ${p.name}`,'info');
- const fn=writeChar.properties.writeWithoutResponses?'writeValueWithoutResponse':'writeValue';
+ const fn=writeChar.properties.writeWithoutResponse?'writeValueWithoutResponse':'writeValue';
await writeChar[fn](new Uint8Array(p.bytes));
setBleDiag(`✔ write ${p.name} OK`,'info');
await new Promise(r=>setTimeout(r,2500));
@@ -6440,7 +6440,7 @@ async function removeBluetoothDevice(id){
renderBluetoothCard();
}
-const APP_VERSION='1.10.12';
+const APP_VERSION='1.10.13';
function renderBluetoothCard(){
const el=document.getElementById('bt-list');
const supportEl=document.getElementById('bt-support');
diff --git a/server/public/sw.js b/server/public/sw.js
index cb41661..da916c4 100644
--- a/server/public/sw.js
+++ b/server/public/sw.js
@@ -1,7 +1,7 @@
// Shivao Service Worker — offline real
// Estratégia: shell precachado, tiles cache-first, windy network-first, /api passa direto.
// Versão usada nos cache names — bumpa essa string pra invalidar caches antigos em deploys.
-const VERSION = 'shivao-v1.10.12';
+const VERSION = 'shivao-v1.10.13';
const SHELL_CACHE = `shivao-shell-${VERSION}`;
const TILES_CACHE = 'shivao-tiles-v1'; // separado pra não invalidar tiles em update do shell
const WINDY_CACHE = `shivao-windy-${VERSION}`;