Tabcounter für Chrome für Home Assistant
Worum geht es?
Anzahl offen Chrome Tabs in Home Assistant anzeigen können.
Wie habe ich es gemacht?
Aufgrund des Wechsels auf Manifest V3 musste ich die Extension überarbeiten. Ich habe stattdessen mit ChatGPT o4-mini-high gearbeitet und die Extension im Dialog entwickelt.
manifest.jpsn
{
"manifest_version": 3,
"name": "Chrome Tabs to Home Assistant",
"version": "1.2",
"description": "Sendet die Anzahl offener Tabs an Home Assistant bei jeder Aenderung",
"permissions": [
"tabs"
],
"host_permissions": [
"http://ha:8123/*"
],
"background": {
"service_worker": "background.js"
},
"content_security_policy": {
"extension_pages": "script-src 'self'; object-src 'self'; connect-src http://ha:8123"
}
}
background.json
const HA_URL = "http://ha:8123/api/states/input_number.tabcounter";
const HA_TOKEN = "my little secret" ;
// Funktion zum Senden der aktuellen Tab-Anzahl
async function sendTabCount() {
try {
const tabs = await chrome.tabs.query({});
const count = tabs.length;
const payload = {
state: count.toString(),
attributes: { count: count }
};
const resp = await fetch(HA_URL, {
method: "POST",
headers: {
"Authorization": `Bearer ${HA_TOKEN}`,
"Content-Type": "application/json"
},
body: JSON.stringify(payload)
});
if (!resp.ok) {
console.error("HA-Update fehlgeschlagen:", resp.status, resp.statusText);
}
} catch (err) {
console.error("Fehler beim Senden der Tab-Anzahl:", err);
}
}
// Listener für Tab-Eröffnung
chrome.tabs.onCreated.addListener(() => {
sendTabCount();
});
// Listener für Tab-Schließung
chrome.tabs.onRemoved.addListener(() => {
sendTabCount();
});
// Nur senden, wenn mehr als 5 Tabs offen sind
chrome.runtime.onStartup.addListener(async () => {
const tabs = await chrome.tabs.query({});
if (tabs.length > 5) {
sendTabCount();
}
});
chrome.runtime.onInstalled.addListener(async () => {
const tabs = await chrome.tabs.query({});
if (tabs.length > 5) {
sendTabCount();
}
});