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
    281

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

  • Die neue ioBroker Webseite ist online!
    BluefoxB
    Bluefox
    11
    1
    265

Test Adapter Aura

Geplant Angeheftet Gesperrt Verschoben Visualisierung
176 Beiträge 30 Kommentatoren 15.5k Aufrufe 40 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.
  • AgrippinenserA Agrippinenser

    das ist mein Stand :

    home.jpg
    Phone.jpg Energie.jpg Solar.jpg

    LG

    icebearI
    icebearI
    icebear
    schrieb am zuletzt editiert von
    #120

    @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 2 Antworten Letzte Antwort
    0
    • B beetle-fan

      Ich zitiere mich mal selbst 😇 :

      Ich würde gerne ein älteres iPad Air als Dashboard-Gerät nutzen. Wenn ich das Dashboard über die URL aufrufe steht da allerdings immer "nicht verbunden" und es zeigt nichts an? An meinem iPad Pro funktioniert es hingegen, genauso wie am Laptop. Hat jemand eine Idee, woran das liegen kann?

      Also nochmal: wenn ich dir URL öffne, zeigt das iPad zwar die Aura Oberfläche, aber nicht das Dashboard, Status oben rechts sagt "nicht verbunden". Alle Geräte sind natürlich im gleichen Netzwerk.

      D
      D
      dering
      schrieb am zuletzt editiert von
      #121

      @beetle-fan ist Aura per http oder https erreichbar?
      Wenn https, dann würde ich Mal ohne Zertifikat testen.

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

      1 Antwort Letzte Antwort
      0
      • B
        B
        beetle-fan
        schrieb am zuletzt editiert von
        #122

        Zugriff per http.

        Ich konnte das Problem aber lösen: im Web-Adapter musste ich die Option "Reine Web-Sockets (iobroker.ws) verwenden" deaktivieren. Nun wird das Dashboard angezeigt.

        Danke trotzdem!

        1 Antwort Letzte Antwort
        0
        • 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
          #123

          @icebear sagte:

          Darf ich dich mal fragen welche Adapter bzw

          gerne:-) also das ist eher ein über viele Jahre immer mal wieder hier und dort angepasstes Bastelwerk - aber es funktioniert. Ich schaue gleich mal drüber um persönlichen Kram rauszunehmen und wenn ich mich dann noch traue poste ich.
          Adapter war TR064.

          Grüße vom Rhein @Colonia Claudia Ara Agrippinensium

          1 Antwort Letzte Antwort
          0
          • 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

                                          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

                                          339

                                          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