iobroker.govee-smart 2.25.0 → 2.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -6
- package/admin/custom/assets/{Components-In74j2ht.js → Components-w0QA4FhO.js} +1 -1
- package/admin/custom/assets/{_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1-CLCw0dNA.js → _virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1-Dayhf9LN.js} +1 -1
- package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-DecTDlzy.js → _virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-Q750blla.js} +1 -1
- package/admin/custom/assets/{hostInit-Cmw7ulsR.js → hostInit-DEyR60YG.js} +1 -1
- package/admin/custom/assets/{index-MRuFAo9G.js → index-Com6aJvl.js} +1 -1
- package/admin/custom/assets/{mf-entry-bootstrap-0-633ac19d.js → mf-entry-bootstrap-0-1f80f1ea.js} +2 -2
- package/admin/custom/assets/virtualExposes-3u9YIQvx.js +1 -0
- package/admin/custom/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__ConfigCustomGoveeSegmentSet__customComponents_js-vgGtWo_J.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__ConfigCustomGoveeSegmentSet__customComponents_js-DzIm1BK4.js} +1 -1
- package/admin/custom/assets/virtual_mf-exposes-ssr___mfe_internal__ConfigCustomGoveeSegmentSet__customComponents_js-DFcaLv6I.js +2 -0
- package/admin/custom/assets/{virtual_mf-exposes___mfe_internal__ConfigCustomGoveeSegmentSet__customComponents_js-C7O5eIs8.js → virtual_mf-exposes___mfe_internal__ConfigCustomGoveeSegmentSet__customComponents_js-B6C5JMB_.js} +2 -2
- package/admin/custom/customComponents.js +1 -1
- package/admin/custom/mf-manifest.json +1 -1
- package/build/lib/cloud-retry.js +10 -1
- package/build/lib/cloud-retry.js.map +2 -2
- package/build/lib/device-manager.js.map +2 -2
- package/build/lib/handlers/connection-state.js.map +2 -2
- package/build/lib/handlers/state-change-router.js.map +2 -2
- package/build/lib/http-client.js +7 -3
- package/build/lib/http-client.js.map +2 -2
- package/build/main.js +61 -6
- package/build/main.js.map +2 -2
- package/io-package.json +14 -14
- package/package.json +4 -4
- package/admin/custom/assets/virtualExposes-CXwuEsa-.js +0 -1
- package/admin/custom/assets/virtual_mf-exposes-ssr___mfe_internal__ConfigCustomGoveeSegmentSet__customComponents_js-BgPf41kP.js +0 -2
package/README.md
CHANGED
|
@@ -94,6 +94,10 @@ This adapter's MQTT authentication and BLE-over-LAN (ptReal) protocol implementa
|
|
|
94
94
|
Placeholder for the next version (at the beginning of the line):
|
|
95
95
|
### **WORK IN PROGRESS**
|
|
96
96
|
-->
|
|
97
|
+
### 2.26.0 (2026-08-22)
|
|
98
|
+
|
|
99
|
+
- Fixed: Stopping or restarting the instance now really ends the cloud connection; the adapter no longer keeps updating datapoints for a moment after it has shut down.
|
|
100
|
+
|
|
97
101
|
### 2.25.0 (2026-08-12)
|
|
98
102
|
|
|
99
103
|
- Redesigned connection setup: one card for the Cloud API key, account login and 2FA, with live connection status and a guided verification-code step.
|
|
@@ -111,12 +115,6 @@ This adapter's MQTT authentication and BLE-over-LAN (ptReal) protocol implementa
|
|
|
111
115
|
|
|
112
116
|
- Test release during the move to ioBroker Admin 8.
|
|
113
117
|
|
|
114
|
-
### 2.22.0 (2026-07-23)
|
|
115
|
-
|
|
116
|
-
- A Govee app device group of the "same mode" type no longer appears as a phantom, uncontrollable device in the object tree.
|
|
117
|
-
- Seven more Govee models join the catalog, from Edison bulbs to a ceiling fan. They start as experimental — enable them in the adapter settings to try them.
|
|
118
|
-
- Sensors that reach the cloud through a Govee gateway now show which gateway they are connected through, instead of an empty IP field.
|
|
119
|
-
|
|
120
118
|
[Older changelogs can be found there](CHANGELOG_OLD.md)
|
|
121
119
|
|
|
122
120
|
## Support
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-
|
|
1
|
+
import{t as e}from"./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-Q750blla.js";import{$r as t,Gr as n,Ia as r,Ka as i,La as a,Ri as o,Yr as s,Zr as c,ai as l,bi as u,di as d,fo as f,in as p,ri as m}from"./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DZlcx9fi.js";import{t as h}from"./SegmentWizard-Dhn-y8Qf.js";f();function g(e,t){let n=(n,r)=>e.sendTo(t,`mqttAuth`,{action:n,email:r.email,password:r.password,code:r.code});return{testLogin:e=>n(`test`,e),requestCode:e=>n(`requestCode`,e)}}function _(e,t){let[n,r]=i.useState({cloud:!1,mqtt:!1,verifyPending:!1});return i.useEffect(()=>{if(!e)return;let n=`${t}.info.cloudConnected`,i=`${t}.info.mqttConnected`,a=`${t}.info.verificationPending`,o=!0,s=(e,t)=>{o&&r(e=>({...e,cloud:!!(t!=null&&t.val)}))},c=(e,t)=>{o&&r(e=>({...e,mqtt:!!(t!=null&&t.val)}))},l=(e,t)=>{o&&r(e=>({...e,verifyPending:!!(t!=null&&t.val)}))};return Promise.resolve(e.getState(n)).then(e=>s(n,e)).catch(()=>void 0),Promise.resolve(e.getState(i)).then(e=>c(i,e)).catch(()=>void 0),Promise.resolve(e.getState(a)).then(e=>l(a,e)).catch(()=>void 0),Promise.resolve(e.subscribeState(n,s)).catch(()=>void 0),Promise.resolve(e.subscribeState(i,c)).catch(()=>void 0),Promise.resolve(e.subscribeState(a,l)).catch(()=>void 0),()=>{o=!1,e.unsubscribeState(n,s),e.unsubscribeState(i,c),e.unsubscribeState(a,l)}},[e,t]),n}function v(e){switch(e){case`ok`:return`success`;case`verifyRequired`:case`codeSent`:return`info`;case`codeInvalid`:case`codeRejected`:case`needCredentials`:case`throttled`:return`warning`;default:return`error`}}function y(e){return e===`verifyRequired`||e===`codeSent`||e===`codeInvalid`||e===`codeRejected`}function b({on:e,testId:t}){return r(c,{component:`span`,"data-testid":t,"data-on":e?`true`:`false`,sx:{display:`inline-block`,width:12,height:12,borderRadius:`50%`,flexShrink:0,bgcolor:e?`success.main`:`action.disabled`}})}function x(e){let{socket:f,namespace:h,values:x,onChange:S}=e,{apiKey:C,email:w,password:T,code:E}=x,D=i.useMemo(()=>g(f,h),[f,h]),O=_(f,h),[k,A]=i.useState(``),[j,M]=i.useState(null),[N,P]=i.useState(!1),[F,I]=i.useState({apiKey:C,email:w,password:T,code:E});i.useEffect(()=>{I(e=>{let t={...e},n=!1;return e.apiKey!==C&&(t.apiKey=C,n=!0),e.email!==w&&(t.email=w,n=!0),e.password!==T&&(t.password=T,n=!0),e.code!==E&&(t.code=E,n=!0),n?t:e})},[C,w,T,E]);let L=(e,t,n)=>{I(e=>({...e,[t]:n})),S(e,n)};i.useEffect(()=>{O.verifyPending&&P(!0)},[O.verifyPending]);let R=(e,...t)=>p.t(e,...t),z=e=>{M({status:e,text:R(`gsw_conn_st_${e}`)}),y(e)&&P(!0)},B=async()=>{A(`login`);try{let e=await D.testLogin({email:F.email,password:F.password,code:F.code});z(e.status)}catch{z(`loginFailed`)}finally{A(``)}},V=async()=>{A(`code`);try{let e=await D.requestCode({email:F.email,password:F.password});z(e.status)}catch{z(`loginFailed`)}finally{A(``)}},H=F.email.trim()!==``&&F.password.trim()!==``;return a(c,{sx:{maxWidth:640},children:[a(o,{direction:`row`,spacing:1.5,sx:{py:1,alignItems:`center`},children:[r(b,{on:!0,testId:`dot-lan`}),a(c,{children:[r(s,{variant:`subtitle2`,children:R(`gsw_conn_lan_title`)}),r(s,{variant:`body2`,color:`text.secondary`,children:R(`gsw_conn_lan_desc`)})]})]}),r(d,{}),a(o,{direction:`row`,spacing:1.5,sx:{py:1.5,alignItems:`flex-start`},children:[r(c,{sx:{pt:1},children:r(b,{on:O.cloud,testId:`dot-cloud`})}),a(c,{sx:{flexGrow:1},children:[r(s,{variant:`subtitle2`,children:R(`gsw_conn_cloud_title`)}),r(s,{variant:`body2`,color:`text.secondary`,sx:{mb:1},children:R(`gsw_conn_cloud_desc`)}),r(n,{fullWidth:!0,size:`small`,type:`password`,label:R(`gsw_conn_apikey_label`),value:F.apiKey,onChange:e=>L(`apiKey`,`apiKey`,e.target.value),autoComplete:`off`})]})]}),r(d,{}),a(o,{direction:`row`,spacing:1.5,sx:{py:1.5,alignItems:`flex-start`},children:[r(c,{sx:{pt:1},children:r(b,{on:O.mqtt,testId:`dot-mqtt`})}),a(c,{sx:{flexGrow:1},children:[r(s,{variant:`subtitle2`,children:R(`gsw_conn_rt_title`)}),r(s,{variant:`body2`,color:`text.secondary`,sx:{mb:1},children:R(`gsw_conn_rt_desc`)}),a(o,{spacing:1,children:[r(n,{fullWidth:!0,size:`small`,label:R(`gsw_conn_email_label`),value:F.email,onChange:e=>L(`goveeEmail`,`email`,e.target.value),autoComplete:`off`}),r(n,{fullWidth:!0,size:`small`,type:`password`,label:R(`gsw_conn_password_label`),value:F.password,onChange:e=>L(`goveePassword`,`password`,e.target.value),autoComplete:`off`}),r(c,{children:r(t,{variant:`contained`,size:`small`,disabled:!H||k!==``,onClick:()=>void B(),startIcon:k===`login`?r(m,{size:16,color:`inherit`}):void 0,children:R(`gsw_conn_connect_btn`)})}),r(l,{in:N,unmountOnExit:!0,children:a(o,{spacing:1,sx:{mt:1,pl:1,borderLeft:`2px solid`,borderColor:`divider`},children:[r(s,{variant:`body2`,color:`text.secondary`,children:R(`gsw_conn_2fa_hint`)}),r(n,{fullWidth:!0,size:`small`,label:R(`gsw_conn_code_label`),value:F.code,onChange:e=>L(`mqttVerificationCode`,`code`,e.target.value),slotProps:{htmlInput:{maxLength:8}},autoComplete:`off`}),a(o,{direction:`row`,spacing:1,children:[r(t,{variant:`outlined`,size:`small`,disabled:!H||k!==``,onClick:()=>void V(),startIcon:k===`code`?r(m,{size:16,color:`inherit`}):void 0,children:R(`gsw_conn_request_btn`)}),r(t,{variant:`contained`,size:`small`,disabled:!H||F.code.trim()===``||k!==``,onClick:()=>void B(),startIcon:k===`login`?r(m,{size:16,color:`inherit`}):void 0,children:R(`gsw_conn_verify_btn`)})]})]})})]})]})]}),j&&r(u,{severity:v(j.status),sx:{mt:1},onClose:()=>M(null),children:j.text})]})}f();var S=class extends e{renderItem(t,n){let i=this.props.oContext,a=`${i.adapterName}.${i.instance}`,o=t=>{let n=e.getValue(this.props.data,t);return typeof n==`string`?n:``};return r(x,{socket:i.socket,namespace:a,values:{apiKey:o(`apiKey`),email:o(`goveeEmail`),password:o(`goveePassword`),code:o(`mqttVerificationCode`)},onChange:(e,t)=>void this.onChange(e,t)})}};f();var C={ConnectionConfig:S,SegmentWizardConfig:class extends e{renderItem(e,t){let n=this.props.oContext,i=`${n.adapterName}.${n.instance}`;return r(h,{socket:n.socket,namespace:i})}}};export{C as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./vite-preload-helper-B7qeedMF.js";var t={react:async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DZlcx9fi.js`).then(e=>(e.mo(),e.po)),[],import.meta.url),"react/jsx-runtime":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DZlcx9fi.js`).then(e=>e.Ra),[],import.meta.url),"react-dom":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DZlcx9fi.js`).then(e=>(e.Ga(),e.Wa)),[],import.meta.url),"react-dom/client":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-DorNDPFL.js`).then(e=>e.n),[],import.meta.url),"@mui/material":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DZlcx9fi.js`).then(e=>e.zi),[],import.meta.url),"@mui/icons-material":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DZlcx9fi.js`).then(e=>e.wr),[],import.meta.url),"@iobroker/gui-components":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__prebuild___mf_0_iobroker_mf_1_gui_mf_2_components__prebuild__-BDv6bShr.js`),[],import.meta.url),"@iobroker/json-config":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-
|
|
1
|
+
import{t as e}from"./vite-preload-helper-B7qeedMF.js";var t={react:async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DZlcx9fi.js`).then(e=>(e.mo(),e.po)),[],import.meta.url),"react/jsx-runtime":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DZlcx9fi.js`).then(e=>e.Ra),[],import.meta.url),"react-dom":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DZlcx9fi.js`).then(e=>(e.Ga(),e.Wa)),[],import.meta.url),"react-dom/client":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-DorNDPFL.js`).then(e=>e.n),[],import.meta.url),"@mui/material":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DZlcx9fi.js`).then(e=>e.zi),[],import.meta.url),"@mui/icons-material":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DZlcx9fi.js`).then(e=>e.wr),[],import.meta.url),"@iobroker/gui-components":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__prebuild___mf_0_iobroker_mf_1_gui_mf_2_components__prebuild__-BDv6bShr.js`),[],import.meta.url),"@iobroker/json-config":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-Q750blla.js`).then(e=>e.n),[],import.meta.url)},n={react:{name:`react`,version:`19.2.8`,scope:[`default`],loaded:!1,eager:!1,from:`ConfigCustomGoveeSegmentSet`,canLiveRebind:!0,async get(){n.react.loaded=!0;let{react:e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"react/jsx-runtime":{name:`react/jsx-runtime`,version:`19.2.8`,scope:[`default`],loaded:!1,eager:!1,from:`ConfigCustomGoveeSegmentSet`,canLiveRebind:!0,async get(){n[`react/jsx-runtime`].loaded=!0;let{"react/jsx-runtime":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"react-dom":{name:`react-dom`,version:`19.2.8`,scope:[`default`],loaded:!1,eager:!1,from:`ConfigCustomGoveeSegmentSet`,canLiveRebind:!0,async get(){n[`react-dom`].loaded=!0;let{"react-dom":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"react-dom/client":{name:`react-dom/client`,version:`19.2.8`,scope:[`default`],loaded:!1,eager:!1,from:`ConfigCustomGoveeSegmentSet`,canLiveRebind:!0,async get(){n[`react-dom/client`].loaded=!0;let{"react-dom/client":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@mui/material":{name:`@mui/material`,version:`9.3.1`,scope:[`default`],loaded:!1,eager:!1,from:`ConfigCustomGoveeSegmentSet`,canLiveRebind:!0,async get(){n[`@mui/material`].loaded=!0;let{"@mui/material":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@mui/icons-material":{name:`@mui/icons-material`,version:`9.3.1`,scope:[`default`],loaded:!1,eager:!1,from:`ConfigCustomGoveeSegmentSet`,canLiveRebind:!0,async get(){n[`@mui/icons-material`].loaded=!0;let{"@mui/icons-material":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@iobroker/gui-components":{name:`@iobroker/gui-components`,version:`10.1.0`,scope:[`default`],loaded:!1,eager:!1,from:`ConfigCustomGoveeSegmentSet`,canLiveRebind:!1,async get(){n[`@iobroker/gui-components`].loaded=!0;let{"@iobroker/gui-components":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@iobroker/json-config":{name:`@iobroker/json-config`,version:`9.0.22`,scope:[`default`],loaded:!1,eager:!1,from:`ConfigCustomGoveeSegmentSet`,canLiveRebind:!0,async get(){n[`@iobroker/json-config`].loaded=!0;let{"@iobroker/json-config":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}}},r=[];export{r as usedRemotes,n as usedShared};
|