Weiter zum Inhalt
  • Home
  • Aktuell
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Visualisierung
  4. Test Adapter Aura

NEWS

  • NEWS: Neu im Admin, zentrale Verwaltung für Passwörter und Schlüssel
    BluefoxB
    Bluefox
    18
    1
    332

  • Neue Adresse: die ioBroker-Webseite liegt jetzt auf iobroker.com
    BluefoxB
    Bluefox
    3
    1
    281

  • Die neue ioBroker Webseite ist online!
    BluefoxB
    Bluefox
    12
    1
    288

Test Adapter Aura

Geplant Angeheftet Gesperrt Verschoben Visualisierung
183 Beiträge 30 Kommentatoren 16.2k Aufrufe 41 Beobachtet
  • Ä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.
  • icebearI icebear

    @Agrippinenser said:

    das ist mein Stand :

    Darf ich dich mal fragen welche Adapter bzw. welches Script du nutzt um die Telefone von der FB abzufragen bzw anzuzeigen?

    AgrippinenserA
    AgrippinenserA
    Agrippinenser
    schrieb am zuletzt editiert von Agrippinenser
    #124

    @icebear sagte:

    Script du nutzt um die Telefone von der FB abzufragen bzw anzuzeigen?

    Wir nutzen ein Telefonbuch mit gesperrten Nummern und zudem 29 Rufnummernbereiche. Mehr als 30 lässt AVM nicht zu. Bei Anruf wird die eingehende Nummer mit den Sperrlisten abgeglichen, abgewiesen und in die Liste der gesperrtem eingetragen.
    Alle anderen Anrufer kommen durch und ein hinterlegtes Bild wird zu Anzeige aktualisiert.
    Der Status der einzelnen Telefone wird aus den "tr-064.0.callmonitor.toPauseState*" ermittelt.
    Bilder liegen in einem NAS-Verzeichnis.

    Wie oben gesagt habe ich über die Jahre hinweg daran gebastelt und vieles kann sehr wahrscheinlich verbessert werden. Tipps nehme ich gerne an .
    LG

    Verwendetes CSS

    @keyframes yellow-blink {
     0%,50% {filter: drop-shadow(0px 0px 4px #FFDB3B) drop-shadow(0px 0px 4px #FFDB3B) drop-shadow(0px 0px 4px #FFDB3B); }
     51% {filter: none;}
    }
    .gelbblink {  
     animation: yellow-blink 2s infinite;
    }
    @keyframes red-blink {
    0%,50% {filter: drop-shadow(0px 0px 4px #f13164) drop-shadow(0px 0px 4px #f13164) drop-shadow(0px 0px 4px #f13164); }
     51% {filter: none;}
    }
    .rotblink {  
     animation: red-blink 2s infinite;
    }
    .red { color:#f44336 !important; }
    .deeporange { color:#ff5722 !important; }
    .lime { color:#cddc39 !important; }
    .lightgreen { color:#8bc34a !important; }
    .yellow { color:#ffeb3b !important; }
    .white { color:#f8f8f8 !important; }
    .grey { color:#9e9e9e !important; }
    

    Skript Rufbehandlung

    
    //const moment = require('moment');
    const fs = require('fs');
    
    //let idrufegesperrt = "0_userdata.0.vis.Tabellen.eingehendgesperrt";
    let idrufegesperrt = '0_userdata.0.Telefon.gesperrteAnrufe';
    let idAnrufe = '0_userdata.0.Telefon.Anrufe';
    let jsontab = [];
    
    // zur Anzeige in VIS
    createState(
       idrufegesperrt,
       JSON.stringify(jsontab),
       false,
       { type: 'string', name: 'unerwuenschte Anrufe' },
       function () {},
    );
    createState(idAnrufe, JSON.stringify(jsontab), false, { type: 'string', name: 'Anrufe' }, function () {});
    
    const maxUnerwuenschteAnrufer = 99; // Tabelleneinträge begrenzen
    const maxAnrufe = 99; // Tabelleneinträge begrenzen
    
    const vorwahl = '0xxxxx';
    // MSN, Gerätename, Anruf auf Alexa ausgeben
    const arrAnschluss = [
       { AnschlussNr: '11111', Name: 'Anschluss 0', Ansage: false },
       { AnschlussNr: '2222', Name: 'Anschluss 1', Ansage: false },
       { AnschlussNr: '33333', Name: 'Anschluss 2', Ansage: false },
       { AnschlussNr: '4444', Name: 'Anschluss 3', Ansage: true },
       { AnschlussNr: '5555', Name: 'Anschluss 4, Ansage: false },
       { AnschlussNr: '6666', Name: 'Anschluss 5', Ansage: false },
       { AnschlussNr: '7777', Name: 'Anschluss 6', Ansage: false },
       { AnschlussNr: '8888', Name: 'Anschluss 7', Ansage: true },
       { AnschlussNr: '9999', Name: 'Anschluss 8', Ansage: true },
       { AnschlussNr: '00000', Name: 'Anschluss 9', Ansage: true }
    ];
    
    var push = true; // Ausgabe Pushover
    var clog = true; // Ausgabe ins Logfile
    
    var AnruferName = ''; // Name des Anrufern
    var AnruferNummer = ''; // Nummer des Anrufern
    var AnschlussName = ''; // Bezeichnug des Hausanschlusses
    var AnschlussNummer = ''; // Nummer des Hausanschlusses
    
    
    on({ id: 'tr-064.0.callmonitor.inbound.json' /*json*/, change: 'any' }, function (obj) {
    
       var jObj = JSON.parse(obj.state.val);
    
       AnruferNummer = jObj.caller; // Nummer des Anrufers
       AnruferName = jObj.callerName; //Name des Anrufers
       AnschlussNummer = jObj.callee.replace(vorwahl, ''); //eigene Nummer ohne Vorwahl
       AnschlussName = AName(AnschlussNummer); //Bezeichnung des Telefonanschlusses
    
       //Anrufer nicht im Telefonbuch, dann Ansage der eingehenden Nummer
       if (AnruferNummer.length > 0 && AnruferName.length == 0) {
           AnruferName = AnruferNummer;
       } else {
           // Anfufer sendet keine Nummer
           if (AnruferNummer.length == 0) {
               AnruferName = 'verdeckter Anrufer';
           }
       }
    
       // wenn Anrufer gesperrt dann Spaemmer in Tabelle speichern und ggf. Pushnachricht
       if (istRufnummernbereichgesperrt(AnruferNummer) || istSperrTelefonbuch(AnruferName)) {
           const jsonObj = JSON.parse(getState(idrufegesperrt).val);
           const jsontrimmed = jsonObj.slice(-maxUnerwuenschteAnrufer);
    
           jsontrimmed.push({
               id: Date.now(),
               _type: jObj._type,
               timestamp: jObj.timestamp,
               caller: jObj.caller,
               callee: jObj.callee,
               calleeName: jObj.calleeName,
           });
    
           jsontrimmed.sort((a, b) => b.id - a.id);
           setState(idrufegesperrt, JSON.stringify(jsontrimmed));
    
           if (push) {
               var nachricht =
                   'von: <font color="#ff4d00">' +
                   AnruferName +
                   '</font>\n' +
                   'Nr.: <font color="#ff4d00">' +
                   AnruferNummer +
                   '</font>\n' +
                   'auf: <font color="#ff4d00">' +
                   AnschlussName +
                   '</font>';
               fPush(nachricht, 'Anruf', 'intermission');
           }
    
           //Bild von Synology/Kontakte auf gemountetes Verzeichnis legen
           BildVisualisieren('spammer');
    
           return;
       }
       
       if (push) {
           var nachricht =
               'von: <font color="#00CD00">' +
               AnruferName +
               '</font>\n' +
               'Nr.: <font color="#00CD00">' +
               AnruferNummer +
               '</font>\n' +
               'auf: <font color="#00CD00">' +
               AnschlussName +
               '</font>';
           fPush(nachricht, 'Anruf', 'intermission');
       }
    
       //Bild von Synology/Kontakte auf gemountetes Verzeichnis legen
       BildVisualisieren(AnruferNummer);
    });
    
    //----------------------------------------------------------------------------------------------------------------
    // Tabelle Anrufe aktualisieren
    // ---------------------------------------------------------------------------------------
    on({ id: 'tr-064.0.calllists.all.json', change: 'any' }, function (calllistsobj) {
    
       // Neue Anrufdaten einlesen
       const call = JSON.parse(calllistsobj.state.val)[0];
    
       // Bestehende Anrufliste einlesen
       const anrufe = JSON.parse(getState(idAnrufe).val || '[]');
    
       // Richtung / Modus bestimmen
       let modus = '';
       
       if (call.path.length > 0) {
           modus = '<span class=\"deeporange\">#AB</span>';
       } else if (call.device === 'Anrufbeantworter') {
           modus = '<span class=\"grey\">-AB</span>';
       } else if (call.sym === '>') {
           modus = '<span class=\"yellow\">-IN</span>';
       } else if (call.sym === '<') {
           modus = '<span class=\"lightgreen\">OUT</span>';
       } else if (call.sym === 'x') {
           modus = '<span class=\"grey\">-X-</span>';
       }
       
       // Name bestimmen, fall nicht vorhanden Nummer eintragen
       const name = call.name && call.name.length > 0
           ? call.name
           : call.called;
    
       // Neuen Anruf hinzufügen
       anrufe.push({
           id: Date.now(),
           Richtung: modus,
           Zeit: call.date,
           Name: name,
           Dauer: call.duration
       });
    
       // Neueste Anrufe zuerst und auf maxAnrufe begrenzen
       anrufe.sort((a, b) => b.id - a.id);
       const anrufeBegrenzt = anrufe.slice(0, maxAnrufe);
    
       // Speichern
       setState(idAnrufe, JSON.stringify(anrufeBegrenzt));
    
       //Bild des Anrufers durch Platzhalter ersetzten
       BildVisualisieren('frei');
    
    });
    
    // Funktionen ---------------------------------------------------------------------------------------
    
    /**
    * @param {string} eingehend Nummer
    */
    function BildVisualisieren(eingehend) {
       const SynoPath = '/mnt/synology/kontakte/';
       const CheckSynology = SynoPath + '0000000000.jpg';
       const SynoDown = '/home/iobroker/Synology_offline.jpg';
    
       var anrufer = eingehend;
    
       if (fs.existsSync(CheckSynology)) { 
           if (clog) {
               console.log('150-Synology gemountet');
           }
    
           // Anrufer sendet keine Nummer
           if (anrufer.length == 0) {
               const bild = fs.readFileSync(SynoPath + 'unterdrueckt.jpg');
               writeFile('vis-2.0', '/RHv2/images/anrufer.jpg', bild, function (error) {});
               if (clog) {
                   console.log('156-unterdrueckt');
               }
           }
    
           // unbekannter Anrufer
           else if (!fs.existsSync(SynoPath + anrufer + '.jpg')) {
               const bild = fs.readFileSync(SynoPath + 'unbekannt.jpg');
               writeFile('vis-2.0', '/RHv2/images/anrufer.jpg', bild, function (error) {
                   console.log(error);
               });
               if (clog) {
                   console.log('165-unbekannt.jpg kopiert');
               }
           }
    
           // Anrufer bekannt
           else {
               const bild = fs.readFileSync(SynoPath + anrufer + '.jpg');
               writeFile('vis-2.0', '/RHv2/images/anrufer.jpg', bild, function (error) {});
               if (clog) {
                   console.log('172-' + anrufer + '.jpg kopiert');
               }
           }
       } else {
           if (clog) {
               console.log('175-Synology nicht gemountet');
           }
           var datei = fs.readFileSync(SynoDown);
           writeFile('vis-2.0', '/RHv2/images/anrufer.jpg', datei, function (error) {});
       }
    }
    
    /**
    * @param {string} eingehend
    */
    function AName(eingehend) {
       for (var i = 0; i < arrAnschluss.length; i++) {
           if (arrAnschluss[i].AnschlussNr === eingehend) {
               return arrAnschluss[i].Name;
           }
       }
    }
    
    function istAnschlussansagen(eingehend) {
       for (var i = 0; i < arrAnschluss.length; i++) {
           if (arrAnschluss[i].AnschlussNr === eingehend) {
               return arrAnschluss[i].Ansage;
           }
       }
    }
    
    /*
    * Prüft über ioBroker-Selektoren, ob die Nummer in einer Rufumleitung/Sperre liegt
    * @param {string} eingehend - Anrufernummer
    * @returns {boolean} True falls gesperrt
    */
    function istRufnummernbereichgesperrt(eingehend) {
       let treffer = false;
       // Durchläuft alle FritzBox-Rufumleitungen/Sperren effizient
       $('tr-064.0.callForwarding.*').each((id) => {
           const obj = getObject(id);
           if (!obj || !obj.common || !obj.common.name) return;
    
           const parts = obj.common.name.split(' ');
           // Erwartetes Format: "fromNumber [NUMMER] -> ..."
           if (parts[0] === 'fromNumber' && parts[2] === '->') {
               const sperrNummer = parts[1];
               if (eingehend.startsWith(sperrNummer)) {
                   if (clog) {console.log(`Nummer unerwünscht: ${eingehend} - FritzBox-Filter: ${sperrNummer}`);}
                   treffer = true;
               }
           }
       });
       
       return treffer;
    }
    
    /*
    * Prüft ob die Nummer im Sperr-Telefonbuch vorhanden ist
    * @param {string} eingehend - Anrufernummer
    * @returns {boolean} True falls gesperrt
    */
    function istSperrTelefonbuch(eingehend) {
       var treffer = false;
       if (eingehend.startsWith('*')) {
           if (clog) {
               console.log('226-gesperrter Anrufer: ' + eingehend);
           }
           treffer = true;
       }
       return treffer;
    }
    
    /**
    * @param {string} Nachricht
    * @param {string} Titel
    * @param {string} Sound
    */
    function fPush(message, titel, sound) {
       if (clog) {
           console.log('250-Pushover:=' + titel);
       }
       sendTo('pushover.0', {
           message: message,
           title: titel,
           sound: sound,
           priority: 0,
           file: '',
           html: 1,
       });
    }
    
    

    Status Telefone

    
    const Phones = "0_userdata.0.Telefon.phones";
    
    // Vorgegebene Texte für die jeweiligen IDs
    const PHONE_MAPPING = {
       "toPauseState-10": "Phone1",
       "toPauseState-11": "Phone2",
       "toPauseState-12": "Phone3",
       "toPauseState-13": "Phone4",
       "toPauseState-14": "Phone5"
    };
    
    // Kombiniertes Mapping für Text und CSS-Klasse je nach Status
    const STATUS_CONFIG = {
       "ring":    { text: "klingelt",  css: "gelbblink" },
       "connect": { text: "verbunden", css: "red" },
       "end":     { text: "frei",      css: "lightgreen" }
    };
    
    // Generiert das ID-Array automatisch aus den Keys von PHONE_MAPPING
    const triggerIds = Object.keys(PHONE_MAPPING).map(key => `tr-064.0.callmonitor.${key}`);
    on({ id: triggerIds, change: 'any' }, function() {
    
       const anrufe = [];
    
       for (const [key, textName] of Object.entries(PHONE_MAPPING)) {
           const stateId = `tr-064.0.callmonitor.${key}`;
           const currentStatus = getState(stateId).val; // Liefert "ring", "connect" oder "end"
    
           // Holt die Konfiguration für den aktuellen Status (Fallback auf leere Standardwerte)
           const config = STATUS_CONFIG[currentStatus] || { text: "", css: "" };
    
           // HTML dynamisch mit der passenden CSS-Klasse zusammenbauen
           const statusHtml = config.css 
               ? `<span class="${config.css}">${config.text}</span>` 
               : `<span>${config.text}</span>`;
    
           anrufe.push({
               phone: textName,
               Status: statusHtml
           });
       }
    
       setState(Phones, JSON.stringify(anrufe));
    });
    
    
    

    Grüße vom Rhein @Colonia Claudia Ara Agrippinensium

    1 Antwort Letzte Antwort
    0
    • D
      D
      darkiop
      Most Active
      schrieb am zuletzt editiert von
      #125

      @dering Zuerst vielen Dank für deine Arbeit. Ein tolles Projekt!
      Aufgrund kaum vorhandener Zeit ist das Thema und VIS in der letzten Zeit total heruntergefallen, wir haben uns einfach mit IOB Mobile eine funktionale Plattform zusammen geklickt. Mit deinen Projekt hat auch das Tablet wieder eine Chance ;)

      Ich taste mich gerade langsam ran, hier ein paar Dinge die mir aufgefallen sind (v0.56.3):

      • MacOS -> Evtl. CMD anstelle von STRG
      • Wird das Custom CSS nicht für HTML Widgets gelesen?
      • Mit welchem Widget Zeige ich common.states am besten an? Beispiel unten.
      • Breite von Widget "Abschnittstitel" nicht einstellbar?
      • Widget-Typ: "Wert-Anzeige" ist nicht Widget Auswahl unter "Neues Widget"
          "states": {
            "303": "Aus",
            "2291": "Batterie Standby",
            "2292": "Batterie laden",
            "2293": "Batterie entladen",
            "3664": "Notladebetrieb",
            "16777213": "Information liegt nicht vor"
          },
      

      ioBroker Object Explorer: https://forum.iobroker.net/topic/84117/iobroker-object-explorer-dashboard-zum-verwalten-von-dps?_=1789113045261 | Proxmox-ioBroker-Redis-HA Doku: https://forum.iobroker.net/topic/47478/dokumentation-einer-proxmox-iobroker-redis-ha-umgebung

      D 1 Antwort Letzte Antwort
      0
      • L
        L
        lesiflo
        Most Active
        schrieb am zuletzt editiert von
        #126

        @darkiop

        Mit welchem Widget Zeige ich common.states am besten an? -> Mit dem Widget "Auswahlfeld" und "Dropdown ausblenden" aktivieren.

        image.jpeg

        1 Antwort Letzte Antwort
        0
        • D darkiop

          @dering Zuerst vielen Dank für deine Arbeit. Ein tolles Projekt!
          Aufgrund kaum vorhandener Zeit ist das Thema und VIS in der letzten Zeit total heruntergefallen, wir haben uns einfach mit IOB Mobile eine funktionale Plattform zusammen geklickt. Mit deinen Projekt hat auch das Tablet wieder eine Chance ;)

          Ich taste mich gerade langsam ran, hier ein paar Dinge die mir aufgefallen sind (v0.56.3):

          • MacOS -> Evtl. CMD anstelle von STRG
          • Wird das Custom CSS nicht für HTML Widgets gelesen?
          • Mit welchem Widget Zeige ich common.states am besten an? Beispiel unten.
          • Breite von Widget "Abschnittstitel" nicht einstellbar?
          • Widget-Typ: "Wert-Anzeige" ist nicht Widget Auswahl unter "Neues Widget"
              "states": {
                "303": "Aus",
                "2291": "Batterie Standby",
                "2292": "Batterie laden",
                "2293": "Batterie entladen",
                "3664": "Notladebetrieb",
                "16777213": "Information liegt nicht vor"
              },
          
          D
          D
          dering
          schrieb am zuletzt editiert von
          #127

          @darkiop Erstelle gerne für Bugs oder Features am besten jeweils ein eigenes issue in github. Dann ist es für mich einfacher die Sachen umzusetzen.
          Fragen passen hier rein :).

          Wird das Custom CSS nicht für HTML Widgets gelesen?

          Dem HTML Widget kannst du ein separates CSS geben. Ich denke aber, wenn du die richtigen tags nutzt, sollte das CSS aus dem Backend auch dort angewandt werden.

          Breite von Widget "Abschnittstitel" nicht einstellbar?

          Über den kleinen Pfeil rechts unten kannst du alle Widgets in der Größe verändern:
          image.jpeg

          Widget-Typ: "Wert-Anzeige" ist nicht Widget Auswahl unter "Neues Widget"

          Wert-Anzeige versteckt sich hinter Messwerte. Da hast du aber recht, das ist nicht ganz synchron. Sollte ich mal angleichen.

          Wer einen Kaffee spendieren will: https://paypal.me/HermannDering

          D 2 Antworten Letzte Antwort
          1
          • D dering

            @darkiop Erstelle gerne für Bugs oder Features am besten jeweils ein eigenes issue in github. Dann ist es für mich einfacher die Sachen umzusetzen.
            Fragen passen hier rein :).

            Wird das Custom CSS nicht für HTML Widgets gelesen?

            Dem HTML Widget kannst du ein separates CSS geben. Ich denke aber, wenn du die richtigen tags nutzt, sollte das CSS aus dem Backend auch dort angewandt werden.

            Breite von Widget "Abschnittstitel" nicht einstellbar?

            Über den kleinen Pfeil rechts unten kannst du alle Widgets in der Größe verändern:
            image.jpeg

            Widget-Typ: "Wert-Anzeige" ist nicht Widget Auswahl unter "Neues Widget"

            Wert-Anzeige versteckt sich hinter Messwerte. Da hast du aber recht, das ist nicht ganz synchron. Sollte ich mal angleichen.

            D
            D
            darkiop
            Most Active
            schrieb am zuletzt editiert von
            #128

            @dering sagte:

            Über den kleinen Pfeil rechts unten kannst du alle Widgets in der Größe verändern:

            Je nach Zeilenhöhe und Variante war der etwas schwer zu "finden". Danke ;)

            Issues & Ideen dann auf github.

            ioBroker Object Explorer: https://forum.iobroker.net/topic/84117/iobroker-object-explorer-dashboard-zum-verwalten-von-dps?_=1789113045261 | Proxmox-ioBroker-Redis-HA Doku: https://forum.iobroker.net/topic/47478/dokumentation-einer-proxmox-iobroker-redis-ha-umgebung

            1 Antwort Letzte Antwort
            0
            • D dering

              @darkiop Erstelle gerne für Bugs oder Features am besten jeweils ein eigenes issue in github. Dann ist es für mich einfacher die Sachen umzusetzen.
              Fragen passen hier rein :).

              Wird das Custom CSS nicht für HTML Widgets gelesen?

              Dem HTML Widget kannst du ein separates CSS geben. Ich denke aber, wenn du die richtigen tags nutzt, sollte das CSS aus dem Backend auch dort angewandt werden.

              Breite von Widget "Abschnittstitel" nicht einstellbar?

              Über den kleinen Pfeil rechts unten kannst du alle Widgets in der Größe verändern:
              image.jpeg

              Widget-Typ: "Wert-Anzeige" ist nicht Widget Auswahl unter "Neues Widget"

              Wert-Anzeige versteckt sich hinter Messwerte. Da hast du aber recht, das ist nicht ganz synchron. Sollte ich mal angleichen.

              D
              D
              darkiop
              Most Active
              schrieb am zuletzt editiert von
              #129

              @dering sagte:

              Dem HTML Widget kannst du ein separates CSS geben. Ich denke aber, wenn du die richtigen tags nutzt, sollte das CSS aus dem Backend auch dort angewandt werden.

              Leider nicht - aber ich kann gerne nochmal testen.

              ioBroker Object Explorer: https://forum.iobroker.net/topic/84117/iobroker-object-explorer-dashboard-zum-verwalten-von-dps?_=1789113045261 | Proxmox-ioBroker-Redis-HA Doku: https://forum.iobroker.net/topic/47478/dokumentation-einer-proxmox-iobroker-redis-ha-umgebung

              1 Antwort Letzte Antwort
              0
              • AgrippinenserA
                AgrippinenserA
                Agrippinenser
                schrieb am zuletzt editiert von
                #130

                Wie wird denn am einfachsten ein Vis-Image8 umgesetzt. 20 Bilder sollen je State-Wert eingeblendet werden.

                Grüße vom Rhein @Colonia Claudia Ara Agrippinensium

                AgrippinenserA 1 Antwort Letzte Antwort
                0
                • AgrippinenserA Agrippinenser

                  Wie wird denn am einfachsten ein Vis-Image8 umgesetzt. 20 Bilder sollen je State-Wert eingeblendet werden.

                  AgrippinenserA
                  AgrippinenserA
                  Agrippinenser
                  schrieb am zuletzt editiert von
                  #131

                  .. den Pfad des Bildes in einen Datenpunkt schreiben und das Bild-Widget entsprechend konfigurieren. Datenpunkt /Pfad zum Bild/ dann bei Bedarf entsprechend anpassen.

                  Grüße vom Rhein @Colonia Claudia Ara Agrippinensium

                  1 Antwort Letzte Antwort
                  0
                  • AgrippinenserA
                    AgrippinenserA
                    Agrippinenser
                    schrieb am zuletzt editiert von
                    #132

                    Bild der Heizkurve wird nun bei Änderung aktualisiert ..

                    image.jpeg

                    Grüße vom Rhein @Colonia Claudia Ara Agrippinensium

                    1 Antwort Letzte Antwort
                    0
                    • D
                      D
                      dering
                      schrieb am zuletzt editiert von
                      #133

                      Super, dass du auf eine Lösung gekommen bist :)

                      Wer einen Kaffee spendieren will: https://paypal.me/HermannDering

                      1 Antwort Letzte Antwort
                      0
                      • AgrippinenserA
                        AgrippinenserA
                        Agrippinenser
                        schrieb am zuletzt editiert von
                        #134

                        finde ich auch :-) Vielen Dank für AURA !

                        Grüße vom Rhein @Colonia Claudia Ara Agrippinensium

                        1 Antwort Letzte Antwort
                        0
                        • AgrippinenserA
                          AgrippinenserA
                          Agrippinenser
                          schrieb am zuletzt editiert von
                          #135

                          wie bekommt man die abgeschnittenen Untertitel im Frontend weg?

                          Frontend:
                          image.jpeg

                          Editor:
                          image.jpeg

                          Grüße vom Rhein @Colonia Claudia Ara Agrippinensium

                          D 1 Antwort Letzte Antwort
                          0
                          • AgrippinenserA Agrippinenser

                            wie bekommt man die abgeschnittenen Untertitel im Frontend weg?

                            Frontend:
                            image.jpeg

                            Editor:
                            image.jpeg

                            D
                            D
                            dering
                            schrieb am zuletzt editiert von
                            #136

                            @Agrippinenser erstelle dazu Mal ein issue inkl Widget export

                            Wer einen Kaffee spendieren will: https://paypal.me/HermannDering

                            L 1 Antwort Letzte Antwort
                            0
                            • D dering

                              @Agrippinenser erstelle dazu Mal ein issue inkl Widget export

                              L
                              L
                              lesiflo
                              Most Active
                              schrieb am zuletzt editiert von
                              #137

                              @dering sagte:

                              @Agrippinenser erstelle dazu Mal ein issue inkl Widget export

                              Das wäre gut. Aktuell muß man das Widget grösser ziehen um es passend zu bekommen. Schöner wäre es wenn sich der Zeilenabstand dem Widget anpasst.

                              1 Antwort Letzte Antwort
                              0
                              • P
                                P
                                ple
                                schrieb am zuletzt editiert von
                                #138

                                Junge Junge, da hast du aber was auf die Beine gestellt. Respekt.
                                Bin auch durch zufall drauf gekommen. Eigentlich sollte Grok-build mir eben was zusammenhacken mit REACT und so ne kram.
                                Da ich MCP gelesen hatte, habe ich direkt mal Grok-build drauf losgelassen. iobroker war eh schon angebunden per mcp, weil er mir schöne Scripte schreibt und das logging überprüft.
                                Nach so 3 Minuten war das Dashboard und 2 Räumen + Technik fertig. Die meisten States kommen aus dem KNX Bereich, das konnte er einfach mappen.
                                Was mir fehlt, da ich nicht mal einen runden Kreis zeichnen kann ;-), sind so Vorlagen, die man immer wiederverwenden kann und wenn man die Vorlage abändert, sich alle andere sich auch ändern. Sowas hatte mich immer gestört.
                                Gibt es schon eine Sammlung an Widgets, die man einfach importieren kann? Ich fang so ne Card beim Home Assistant recht cool, wo im Hintergrund ein Graph war von Temperatur z.b. und dann noch andere Werte wie Feuchte, CO2, Behaglichkeit usw.

                                Mal so als Idee, da ja immer das Problem ist mit mobil unterwegs und ich will auf die Vis drauf zugreifen.
                                Kennt schon wer Supabase? Ich nutze das für andere Sachen, aber es wäre ja schon cool, wenn man die States, die man in der Vis benutzt eventuell mit Supabase synchronisiert und über die Supabase adresse die Vis bedienen könnte, also grob gesagt ;-) Ich hatte auch mal die überlegung meine Agenten auf den SQL Adapter loszulassen um Supabase zu integrieren, dann bräuchte man keine Influx mehr. RLS und Sicherheit wäre auch relativ einfach anbindbar. Supabase hat auch einen MCP Server, macht es recht einfach für die KI.

                                Was ich die Tage noch mal testen will ist folgendes. Ich habe Grok-Bot, das ist eine VM in der Cloud. Man kann sich Bots anlegen, die dann irgendwas machen sollen.
                                Aktuell habe ich einen, der hat Netbird installiert und verbindet sich mit meiner VM wo der iobroker drauf läuft. Wenn ich den Bot (1 Agent) sage, gib mir alle Temperaturen aus dem Haus, dann holt er diese und gibt mir die im Chatfentster aus. Der Bot greift per MCP auf dem iobroker.
                                Ich mache mir jetzt einen 2ten Bot, der soll die Skills haben, die Visualisierung zu ändern, hat dann auch zugriff auf den MCP vom iobroker und Aura. Dann kann ich mit dem Bot chatten, was er ändern soll und ich kann meine Vis unterwegs bauen oder auch ändern, und das per Chat. Ist halt mein Mitarbeiter für VIS :-)
                                Nur mal so ein Gedanke für andere, die Grok Bot nicht kennen :-)
                                Ja, ich kenne auch Claude, habe aber zum proggen mit Grok-build bessere Ergebnisse erzielt und bei weit aus weniger Tokens.

                                Intel Nuc + Proxmox

                                1 Antwort Letzte Antwort
                                0
                                • icebearI
                                  icebearI
                                  icebear
                                  schrieb am zuletzt editiert von
                                  #139

                                  Ich hab jetzt auch mal die Zeit gefunden und hab MCP bei mir eingerichtet und aktiviert.
                                  Ich muß sagen, was ich beim ersten Test gesehen hab find ich schon beeindruckend, ich hab ähnlich wie @jojo58 Claude als erstes einen MCP-Test Tab anlegen lassen. Das ging ruckzuck, dann habe ich Claude gesagt er möge mir ein Widget für mein Nuki-Türschloss erstellen: Prompt > "Erstelle im MCP Tab ein Widget für mein NUKI Türschloss, verwende dafür die Datenpunkte aus der nuki-extended Instanz" und nach einigen Bestätigungen und ca 2,5 min später war schwupdiwup das Widget auf dem MCP-Test Tab erstellt.

                                  nuki-aura.png

                                  @dering Respekt für deine Arbeit, wirklich grandiose Leistung und vielen Dank dafür.

                                  1 Antwort Letzte Antwort
                                  2
                                  • P
                                    P
                                    ple
                                    schrieb am zuletzt editiert von
                                    #140

                                    Wirklich spannend was man per MCP so machen kann.
                                    Mal ein Beispiel, weil ich keine Einstellung dazu gefunden habe.
                                    Ich wollte, dass neben den Menübutton das aktive Menü steht und nicht ein statischer Text.

                                    image.jpeg

                                    Grok-Bot hat dann mal eben das hier gemacht. Der html Teil ist eigentlich über.
                                    image.jpeg

                                    Naja, das war leider nicht alles, was er gemacht hatte. Er hat noch CustomCSS eingefügt, da man sonst den Titel nicht ausblenden kann, oder ich habe die Funktion nicht gefunden. Custom CSS und Javascript muss ich für den Bot noch sperren, es soll ja erstmal die Standard Einstellungen versuchen.

                                    Vielleicht wäre die Funktion was für ein kommendes Update, dass man neben den Menüpunkt die aktive Sektion anzeigt, ohne auf einen Datenpunkt zu verweisen.

                                    Habe mir noch einen weiteren Bot eingerichtet, der die VIS auf Unstimmigkeiten prüft. Verrückte neue Welt.
                                    image.jpeg

                                    Intel Nuc + Proxmox

                                    1 Antwort Letzte Antwort
                                    0
                                    • flkontaktF
                                      flkontaktF
                                      flkontakt
                                      schrieb am zuletzt editiert von
                                      #141

                                      Hallo zusammen, ich hoffe es hat jemand einen Tipp für mich:

                                      Ich möchte mir icons z.B. aus dem Adapter Pirate-Weather anzeigen lassen, habe hierfür das Widget Bild gewählt. Wenn ich den Datenpunkt eintrage, erhalte ich die Meldung Ladefehler, siehe auch Bilder. Die icons snd im Objektbau verfügbar, werden unter Dateien angezeigt, sind auch per direkter URL aufrufbar. Was kann/muss ich hier tun, um die Bilder angezeigt zu bekommen? Vielen Dank!

                                      image.jpeg

                                      image.jpeg

                                      image.jpeg

                                      image.jpeg

                                      D 1 Antwort Letzte Antwort
                                      0
                                      • flkontaktF flkontakt

                                        Hallo zusammen, ich hoffe es hat jemand einen Tipp für mich:

                                        Ich möchte mir icons z.B. aus dem Adapter Pirate-Weather anzeigen lassen, habe hierfür das Widget Bild gewählt. Wenn ich den Datenpunkt eintrage, erhalte ich die Meldung Ladefehler, siehe auch Bilder. Die icons snd im Objektbau verfügbar, werden unter Dateien angezeigt, sind auch per direkter URL aufrufbar. Was kann/muss ich hier tun, um die Bilder angezeigt zu bekommen? Vielen Dank!

                                        image.jpeg

                                        image.jpeg

                                        image.jpeg

                                        image.jpeg

                                        D
                                        D
                                        dering
                                        schrieb am zuletzt editiert von
                                        #142

                                        @flkontakt Öffne im Frontend mal die Console (F12). Wird dort ein Fehler angezeigt?

                                        Wer einen Kaffee spendieren will: https://paypal.me/HermannDering

                                        flkontaktF 1 Antwort Letzte Antwort
                                        0
                                        • D dering

                                          @flkontakt Öffne im Frontend mal die Console (F12). Wird dort ein Fehler angezeigt?

                                          flkontaktF
                                          flkontaktF
                                          flkontakt
                                          schrieb am zuletzt editiert von
                                          #143

                                          @dering sagte:

                                          @flkontakt Öffne im Frontend mal die Console (F12). Wird dort ein Fehler angezeigt?

                                          Hier der Screenshot, hatte es bereits hier https://github.com/hdering/ioBroker.aura/issues/519 angefragt, bin da aber leider auch nicht weitergekommen

                                          image.jpeg

                                          JoJo58J 1 Antwort Letzte Antwort
                                          0

                                          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                          Registrieren Anmelden
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          476

                                          Online

                                          33.1k

                                          Benutzende

                                          83.8k

                                          Themen

                                          1.4m

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

                                          • Du hast noch kein Konto? Registrieren

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