diff --git a/xiaoshi-device-ha-info-button.js b/xiaoshi-device-ha-info-button.js
index 2534c83..01c7873 100644
--- a/xiaoshi-device-ha-info-button.js
+++ b/xiaoshi-device-ha-info-button.js
@@ -416,7 +416,6 @@ class XiaoshiHaInfoButton extends LitElement {
_offlineEntities: Array,
_loading: Boolean,
_refreshInterval: Number,
- _dataLoaded: Boolean, //button新元素
theme: { type: String }
};
}
@@ -785,7 +784,6 @@ class XiaoshiHaInfoButton extends LitElement {
this._offlineDevices = [];
this._offlineEntities = [];
this._loading = false;
- this._dataLoaded = false; //button新元素
this._refreshInterval = null;
this.theme = 'on';
}
@@ -801,12 +799,12 @@ class XiaoshiHaInfoButton extends LitElement {
// 设置主题属性
this.setAttribute('theme', this._evaluateTheme());
-
+
// 每300秒刷新一次数据,减少频繁刷新
this._refreshInterval = setInterval(() => {
this._loadUpdateData();
this._loadOfflineDevices();
- }, 3000);
+ }, 300000);
}
_evaluateTheme() {
@@ -983,11 +981,9 @@ class XiaoshiHaInfoButton extends LitElement {
this._offlineDevices = offlineDevices;
this._offlineEntities = offlineEntities;
- this._dataLoaded = true; //button新元素
} catch (error) {
console.error('加载离线设备失败:', error);
this._offlineDevices = [];
- this._dataLoaded = true; //button新元素
}
this._loading = false;
@@ -1219,7 +1215,7 @@ class XiaoshiHaInfoButton extends LitElement {
const regex = new RegExp(`^${regexPattern}$`, 'i'); // 不区分大小写
return regex.test(str);
}
- async _loadUpdateData() {
+ _loadUpdateData() {
if (!this.hass) return;
this._loading = true;
@@ -1544,8 +1540,6 @@ class XiaoshiHaInfoButton extends LitElement {
return html`${backupElements}`;
}
-
-
/*button新元素 开始*/
_handleButtonClick() {
const tapAction = this.config.tap_action;
@@ -1795,7 +1789,7 @@ class XiaoshiHaInfoButton extends LitElement {
const buttonBgColor = transparentBg ? 'transparent' : theme === 'on' ? 'rgb(255, 255, 255, 0.6)' : 'rgb(83, 83, 83, 0.6)';
// 检查是否需要自动隐藏(只有数据加载完成且数量为0时才考虑隐藏)
- const shouldAutoHide = this._dataLoaded && autoHide && warningCount === 0;
+ const shouldAutoHide = autoHide && warningCount === 0;
// 如果需要自动隐藏,返回空div
if (shouldAutoHide) {
@@ -1804,95 +1798,53 @@ class XiaoshiHaInfoButton extends LitElement {
// 渲染按钮
let buttonHtml;
- if (!this._dataLoaded) {
- if (badgeMode) {
- // 角标模式:只显示图标,数量为0时不显示角标
- buttonHtml = html`
-
-
-
- `;
- } else {
- // 普通模式
- // 构建显示文本
- let displayText = buttonText;
-
- // 根据hide_colon参数决定是否显示冒号
- if (!hideColon) {
- displayText += ':';
- } else {
- displayText += ' ';
- }
-
- // 根据hide_zero参数决定是否显示0值
- if (!hideZero) {
- displayText += ' 0';
- } else {
- // 隐藏0值时使用CSS空格占位符,保持布局稳定
- displayText += '\u2002'; // 两个en空格,大约等于数字"0"的宽度
- }
-
- // 应用锁定白色功能
- const iconColor = lockWhiteFg ? 'rgb(255, 255, 255)' : fgColor;
- const textColor = lockWhiteFg ? 'rgb(255, 255, 255)' : fgColor;
-
- buttonHtml = html`
-
- ${!hideIcon ? html`` : ''}
- ${displayText}
-
- `;
- }
+ if (badgeMode) {
+ // 角标模式:只显示图标,根据数量显示角标
+ const hasWarning = warningCount > 0;
+ buttonHtml = html`
+
+
+ ${hasWarning ? html`
${warningCount}
` : ''}
+
+ `;
} else {
- // 数据加载完成后
- if (badgeMode) {
- // 角标模式:只显示图标,根据数量显示角标
- const hasWarning = warningCount > 0;
- buttonHtml = html`
-
-
- ${hasWarning ? html`
${warningCount}
` : ''}
-
- `;
+ // 普通模式:显示文本和数量
+ // 应用锁定白色功能,但预警颜色(红色)不受影响
+ let textColor, iconColor;
+ if (warningCount === 0) {
+ // 非预警状态:根据锁定白色设置决定颜色
+ textColor = lockWhiteFg ? 'rgb(255, 255, 255)' : fgColor;
+ iconColor = lockWhiteFg ? 'rgb(255, 255, 255)' : fgColor;
} else {
- // 普通模式:显示文本和数量
- // 应用锁定白色功能,但预警颜色(红色)不受影响
- let textColor, iconColor;
- if (warningCount === 0) {
- // 非预警状态:根据锁定白色设置决定颜色
- textColor = lockWhiteFg ? 'rgb(255, 255, 255)' : fgColor;
- iconColor = lockWhiteFg ? 'rgb(255, 255, 255)' : fgColor;
- } else {
- // 预警状态:始终使用红色,不受锁定白色影响
- textColor = 'rgb(255, 0, 0)';
- iconColor = lockWhiteFg ? 'rgb(255, 255, 255)' : fgColor;
- }
-
- // 构建显示文本
- let displayText = buttonText;
-
- // 根据hide_colon参数决定是否显示冒号
- if (!hideColon) {
- displayText += ':';
- } else {
- displayText += ' ';
- }
-
- // 根据hide_zero参数和实际数量决定是否显示数量
- if (hideZero && warningCount === 0) {
- // 隐藏0值时使用CSS空格占位符,保持布局稳定
- displayText += '\u2002'; // 两个en空格,大约等于数字"0"的宽度
- } else {
- displayText += ` ${warningCount}`;
- }
-
- buttonHtml = html`
-
- ${!hideIcon ? html`` : ''}
- ${displayText}
-
- `;
+ // 预警状态:始终使用红色,不受锁定白色影响
+ textColor = 'rgb(255, 0, 0)';
+ iconColor = lockWhiteFg ? 'rgb(255, 255, 255)' : fgColor;
}
+
+ // 构建显示文本
+ let displayText = buttonText;
+
+ // 根据hide_colon参数决定是否显示冒号
+ if (!hideColon) {
+ displayText += ':';
+ } else {
+ displayText += ' ';
+ }
+
+ // 根据hide_zero参数和实际数量决定是否显示数量
+ if (hideZero && warningCount === 0) {
+ // 隐藏0值时使用CSS空格占位符,保持布局稳定
+ displayText += '\u2002'; // 两个en空格,大约等于数字"0"的宽度
+ } else {
+ displayText += ` ${warningCount}`;
+ }
+
+ buttonHtml = html`
+
+ ${!hideIcon ? html`` : ''}
+ ${displayText}
+
+ `;
}
return html`