Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Gelöst] Skript Lichtzählen verweigert Namen Homematic-Geräte

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    343

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

[Gelöst] Skript Lichtzählen verweigert Namen Homematic-Geräte

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
1 Beiträge 1 Kommentatoren 273 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • malorossM Online
    malorossM Online
    maloross
    schrieb am zuletzt editiert von
    #1

    Meine bisher funktionierenden Skripte zum Zählen von div. Verbrauchern (Licht, Zwischenstecker), zeigen mir die Namen meiner Homematic-Geräte nicht mehr an. Raumnamen und Anzahl werden korrekt angezeigt.

    Es geht um das Skript hier aus dem Forum (Lichter zählen), dass ich meine Bedürfnissen leicht angepasst habe:

    ! var logging = true; ! //Variablen deklarieren var idAnzahlEin = 'Beleuchtung.Anzahl_ein', idAnzahl = 'Beleuchtung.Anzahl', idText = 'Beleuchtung.Text', idRaum = 'Beleuchtung.Raum', idAnsage = 'Beleuchtung.Ansage'; ! // Status erstellen createState(idAnzahl, { type: 'number', name: 'Anzahl aller Lichter', min: 0, def: 0, role: 'value' }); createState(idAnzahlEin, { type: 'number', name: 'Anzahl der eingeschalteten Lichter', min: 0, def: 0, role: 'value' }); createState(idText, { type: 'string', name: 'Eingeschaltete Lichter', desc: 'Namen der eingeschalteten Lichter', def: ' ', role: 'value' }); createState(idAnsage, { type: 'string', name: 'Eingeschaltete Lichter (Ansage)', desc: 'Namen der eingeschalteten Lichter (für Ansage aufbereitet)', def: ' ', role: 'value' }); createState(idRaum, { type: 'string', name: 'Räume mit eingeschalteten Lichter', desc: 'Namen der Räume, in denen Lichter eingeschaltet sind', def: ' ', role: 'value' }); ! //Variablen der Geräte deklarieren var cacheSelectorState = $('channel[state.id=*.STATE](functions="Licht")'); var cacheSelectorLevel = $('channel[state.id=*.LEVEL](functions="Licht")'); var cacheSelectorHue = $('channel[state.id=*.ON](functions="Licht")'); var cacheSelectorSwitch1 = $('channel[state.id=*.Switch_1](functions="Licht")'); var cacheSelectorSwitch2 = $('channel[state.id=*.Switch_2](functions="Licht")'); ! function checkDevices(obj) { var anzahlLichterAn = 0; var anzahlLichter = 0; var textLichterAn = []; var textRaum = []; if (logging) { log('++++++ Lichter Anzahl ++++ '); log('#### SCHALTER ##### '); } ! cacheSelectorState.each(function(id, i) { var obj = getObject(id); var name = getObject(id).common.name; var status = getState(id).val; var devicename = name.substring(0, name.indexOf(".STATE")); var raumname = getObject(id, "rooms"); ! if (logging) { log('-------'); log('Kanal: ' + name); log('Status: ' + status); } if (status) { ++anzahlLichterAn; textLichterAn.push(devicename); textRaum.push(raumname.enumNames); } ++anzahlLichter; }); ! cacheSelectorSwitch1.each(function(id, i) { var obj = getObject(id); var name = getObject(id).common.name; var status = getState(id).val; var devicename = name; var raumname = getObject(id, "rooms"); ! if (logging) { log('-------'); log('Kanal: ' + name); log('Status: ' + status); } if (status) { ++anzahlLichterAn; textLichterAn.push(devicename); textRaum.push(raumname.enumNames); } ++anzahlLichter; }); ! cacheSelectorSwitch2.each(function(id, i) { var obj = getObject(id); var name = getObject(id).common.name; var status = getState(id).val; var devicename = name; var raumname = getObject(id, "rooms"); ! if (logging) { log('-------'); log('Kanal: ' + name); log('Status: ' + status); } if (status) { ++anzahlLichterAn; textLichterAn.push(devicename); textRaum.push(raumname.enumNames); } ++anzahlLichter; }); ! // Array mit Lichternamen sortieren textLichterAn.sort(); textRaum.sort(); if (logging) log("Text: " + textLichterAn); if (logging) log("Anzahl Lichter: " + anzahlLichter + " # davon Lichter an: " + anzahlLichterAn); setState(idText, textLichterAn.join(', ')); setState(idAnzahlEin, textLichterAn.length); setState(idAnzahl, anzahlLichter); setState(idRaum, textRaum.join(', ')); } ! // Trigger cacheSelectorState.on(function(obj) { if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); checkDevices(); }); cacheSelectorSwitch1.on(function(obj) { if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); checkDevices(); }); cacheSelectorSwitch2.on(function(obj) { if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); checkDevices(); }); ! cacheSelectorHue.on(function(obj) { if (logging) log('Auslösende HUE: ' + obj.id + ': ' + obj.state.val); checkDevices(); }); cacheSelectorLevel.on(function(obj) { if (logging) log('Auslösender Dimmer: ' + obj.id + ': ' + obj.state.val); checkDevices(); }); ! function main() { setTimeout(function() { if (logging) log('Auslöser Skriptstart'); checkDevices(); }, 2000); } ! main(); // Skriptstart-Auslöser ! // Aufbereitung für Ansage function strip_tags(data) { var rueckgabe = data.replace(/( |<([^>]+)>)/ig, " "); return (rueckgabe); } ! on(idText, function(obj) { var text = obj.state.val; text = (getState(idAnzahl).val > 0) ? 'Lichter eingeschaltet: ' + strip_tags(text) : 'Alle Lichter sind ausgeschaltet'; setState(idAnsage, text); }); !

    Auch Frauen können sich für Technik begeistern! ;)

    Equipment:
    diverse HM-, HMIP-, Aeotec- Tradfri- Sonos- und Fibaro-Geräte, Master-/Slavesystem auf 2 Raspi4, NAS

    1 Antwort Letzte Antwort
    0
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen


    Support us

    ioBroker
    Community Adapters
    Donate

    623

    Online

    32.7k

    Benutzer

    82.5k

    Themen

    1.3m

    Beiträge
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
    ioBroker Community 2014-2025
    logo
    • Anmelden

    • Du hast noch kein Konto? Registrieren

    • Anmelden oder registrieren, um zu suchen
    • Erster Beitrag
      Letzter Beitrag
    0
    • Home
    • Aktuell
    • Tags
    • Ungelesen 0
    • Kategorien
    • Unreplied
    • Beliebt
    • GitHub
    • Docu
    • Hilfe