Skip to content

Commit a411f7b

Browse files
authored
Update fast-search-card.js
1 parent daad6e4 commit a411f7b

File tree

1 file changed

+28
-16
lines changed

1 file changed

+28
-16
lines changed

dist/fast-search-card.js

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9082,24 +9082,31 @@ class FastSearchCard extends HTMLElement {
90829082
// NEU: Timer by ID laden
90839083
async getTimerById(timerId) {
90849084
try {
9085-
// Korrekte WebSocket-Anfrage für Home Assistant Scheduler
9086-
const schedules = await this._hass.callWS({
9087-
type: 'call_service',
9088-
domain: 'scheduler',
9089-
service: 'list',
9090-
service_data: {}
9085+
// Verwende die Timer aus der bereits geladenen Liste
9086+
if (this.lastLoadedTimers) {
9087+
const timer = this.lastLoadedTimers.find(t => t.schedule_id === timerId);
9088+
if (timer) {
9089+
console.log('✅ Timer aus Cache gefunden:', timer);
9090+
return timer;
9091+
}
9092+
}
9093+
9094+
// Fallback: Nochmal alle Timer laden
9095+
const allSchedules = await this._hass.callWS({
9096+
type: 'scheduler'
90919097
});
90929098

9093-
// Alternative: Falls das nicht funktioniert, versuchen Sie:
9094-
// const schedules = this._hass.states;
9095-
// return Object.values(schedules).find(s => s.entity_id.includes(timerId));
9099+
return allSchedules.find(s => s.schedule_id === timerId);
90969100

9097-
return schedules.find(s => s.schedule_id === timerId);
90989101
} catch (error) {
90999102
console.error('Fehler beim Laden des Timers:', error);
91009103

9101-
// Fallback: Timer-Daten aus der aktuellen Liste holen
9102-
return this.getCurrentTimerFromList(timerId);
9104+
// Minimal-Timer-Objekt für Edit-Zwecke
9105+
return {
9106+
schedule_id: timerId,
9107+
action: 'turn_off', // Default-Aktion
9108+
name: 'Timer'
9109+
};
91039110
}
91049111
}
91059112

@@ -9711,7 +9718,6 @@ class FastSearchCard extends HTMLElement {
97119718
console.log(`🔧 Timer bearbeiten: ${timerId}`);
97129719

97139720
try {
9714-
// Timer-Daten laden (Sie müssen diese Funktion ggf. implementieren)
97159721
const timer = await this.getTimerById(timerId);
97169722
if (!timer) {
97179723
console.error('Timer nicht gefunden');
@@ -9725,16 +9731,22 @@ class FastSearchCard extends HTMLElement {
97259731
entityId: entityId
97269732
};
97279733

9728-
// Container finden
9734+
// KORRIGIERT: Container als OBJEKT übergeben, nicht als entityId
97299735
const parentContainer = this.shadowRoot.querySelector(`#timer-section-${entityId}`);
97309736

9737+
// KORRIGIERT: Verwende ITEM-Objekt statt Container
9738+
const itemObj = {
9739+
id: entityId,
9740+
name: 'Timer Edit' // Dummy-Objekt für Time Picker
9741+
};
9742+
97319743
// Bestehenden Minimal Time Picker anzeigen
9732-
this.showMinimalTimePicker(parentContainer, timer.action || 'turn_off', entityId, false);
9744+
this.showMinimalTimePicker(itemObj, timer.action || 'turn_off', parentContainer, false);
97339745

97349746
} catch (error) {
97359747
console.error('❌ Fehler beim Bearbeiten:', error);
97369748
}
9737-
}
9749+
}
97389750

97399751
getNextExecution(timer) {
97409752
// Zuerst prüfen ob next_execution Attribut vorhanden ist

0 commit comments

Comments
 (0)