Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 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. Skripten / Logik
  4. Blockly
  5. Ausgabe Name des Senders

NEWS

  • Der neue Monatsrückblick für Mai und Juni 2026 ist online!
    BluefoxB
    Bluefox
    8
    1
    1.1k

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    10
    1
    3.6k

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    16
    1
    6.3k

Ausgabe Name des Senders

Geplant Angeheftet Gesperrt Verschoben Blockly
44 Beiträge 7 Kommentatoren 1.3k Aufrufe 6 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.
  • matze55M Offline
    matze55M Offline
    matze55
    schrieb am zuletzt editiert von
    #12

    Funktioniert perfekt. Danke für deine Unterstützung.

    Homematic CCU3,-Synology NAS 4TB,- 2 Sonos One,- Gigabyte N4500 8GB DDR4 2TB
    Tapo C210 Cam
    WLED Steuerung über lcdwiki

    1 Antwort Letzte Antwort
    0
    • matze55M Offline
      matze55M Offline
      matze55
      schrieb am zuletzt editiert von
      #13

      Der Code klappte wunderbar jetzt versuche ich das mit dem Picon zu bewerkstelligen.
      Momentaner Stand:

      // Konfiguration: Passe die IP und ggf. die Instanz deines enigma2-Adapters an
      const boxIp = "XXX.XXX.XXX.XX"; // IP-Adresse deines Enigma2-Receivers
      const boxPort = "80";           // Port des OpenWebIF (Standard ist 80)
      const e2Instance = "enigma2.0.enigma2"; // Name deiner Enigma2-Instanz im ioBroker enigma2.0.enigma2.CHANNEL_SERVICEREFERENCE
      
      // Datenpunkt für die generierte URL definieren
      const targetState = "0_userdata.0.gigablue.picon_url";
      createState(targetState, "", {
          name: "Aktuelle Picon URL",
          type: "string",
          role: "text"
      });
      
      // Trigger auf die Servicereferenz des Enigma2-Adapters setzen
      on({id: `${e2Instance}.CHANNEL_SERVICEREFERENCE`, change: "ne"}, function (obj) {
          let sRef = obj.state.val;
          
          if (sRef && sRef.length > 0) {
              // Enigma2 Servicereferenz umwandeln (Doppelpunkte zu Unterstrichen)
              // Am Ende darf kein Doppelpunkt stehen, diesen wegschneiden, falls vorhanden
              if (sRef.endsWith(":")) {
                  sRef = sRef.slice(0, -1);
              }
              let piconName = sRef.replace(/:/g, "_");
              
              // Vollständige URL zusammensetzen
              let piconUrl = `http://${boxIp}:${boxPort}/picon/${piconName}.png`;
              
              // In den erstellten Datenpunkt schreiben
              setState(targetState, piconUrl, true);
              log(`Picon URL aktualisiert: ${piconUrl}`, "info");
          } else {
              // Falls kein Sender aktiv ist oder kein Signal anliegt, leeren
              setState(targetState, "", true);
          }
      });
      

      Bei der Ausgabe im Log zeigt er mir die richtige URL an wo das Picon gespeichert ist, aber in der Ausgabe in 0_userdata.0.gigablue.picon_url zeigt er mir zwar an das :

      http://XXX.XXX.XXX.XX/picon/1:0:1:2EF4:441:1:FFFF0000:0:0:0:.png
      

      Ich bekomme zum Teufel hinten den Doppelpunkt nicht weg. Hat da jemand ein Tip für mich.

      Homematic CCU3,-Synology NAS 4TB,- 2 Sonos One,- Gigabyte N4500 8GB DDR4 2TB
      Tapo C210 Cam
      WLED Steuerung über lcdwiki

      AsgothianA 1 Antwort Letzte Antwort
      0
      • matze55M matze55

        Der Code klappte wunderbar jetzt versuche ich das mit dem Picon zu bewerkstelligen.
        Momentaner Stand:

        // Konfiguration: Passe die IP und ggf. die Instanz deines enigma2-Adapters an
        const boxIp = "XXX.XXX.XXX.XX"; // IP-Adresse deines Enigma2-Receivers
        const boxPort = "80";           // Port des OpenWebIF (Standard ist 80)
        const e2Instance = "enigma2.0.enigma2"; // Name deiner Enigma2-Instanz im ioBroker enigma2.0.enigma2.CHANNEL_SERVICEREFERENCE
        
        // Datenpunkt für die generierte URL definieren
        const targetState = "0_userdata.0.gigablue.picon_url";
        createState(targetState, "", {
            name: "Aktuelle Picon URL",
            type: "string",
            role: "text"
        });
        
        // Trigger auf die Servicereferenz des Enigma2-Adapters setzen
        on({id: `${e2Instance}.CHANNEL_SERVICEREFERENCE`, change: "ne"}, function (obj) {
            let sRef = obj.state.val;
            
            if (sRef && sRef.length > 0) {
                // Enigma2 Servicereferenz umwandeln (Doppelpunkte zu Unterstrichen)
                // Am Ende darf kein Doppelpunkt stehen, diesen wegschneiden, falls vorhanden
                if (sRef.endsWith(":")) {
                    sRef = sRef.slice(0, -1);
                }
                let piconName = sRef.replace(/:/g, "_");
                
                // Vollständige URL zusammensetzen
                let piconUrl = `http://${boxIp}:${boxPort}/picon/${piconName}.png`;
                
                // In den erstellten Datenpunkt schreiben
                setState(targetState, piconUrl, true);
                log(`Picon URL aktualisiert: ${piconUrl}`, "info");
            } else {
                // Falls kein Sender aktiv ist oder kein Signal anliegt, leeren
                setState(targetState, "", true);
            }
        });
        

        Bei der Ausgabe im Log zeigt er mir die richtige URL an wo das Picon gespeichert ist, aber in der Ausgabe in 0_userdata.0.gigablue.picon_url zeigt er mir zwar an das :

        http://XXX.XXX.XXX.XX/picon/1:0:1:2EF4:441:1:FFFF0000:0:0:0:.png
        

        Ich bekomme zum Teufel hinten den Doppelpunkt nicht weg. Hat da jemand ein Tip für mich.

        AsgothianA Offline
        AsgothianA Offline
        Asgothian
        Developer
        schrieb am zuletzt editiert von
        #14

        @matze55 sagte:

        let piconName = sRef.replace(/:/g, "_");

        Dir fehlt da das 'multi'

        sRef.replace(/:/gm, "_"); sollte gehen

        ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
        "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

        1 Antwort Letzte Antwort
        0
        • matze55M Offline
          matze55M Offline
          matze55
          schrieb am zuletzt editiert von
          #15

          Nein geht leider nicht. unter 0_userdata.0.gigablue schreibt er das-->

          http://XXX.XXX.XXX.XX/picon/1:0:1:30:5:85:FFFF0000:0:0:0:.png
          

          richtig sollte es so sein->

          http://XXX.XXX.XXX.XX/picon/1_0_1_30_5_85_FFFF0000_0_0_0.png
          

          Homematic CCU3,-Synology NAS 4TB,- 2 Sonos One,- Gigabyte N4500 8GB DDR4 2TB
          Tapo C210 Cam
          WLED Steuerung über lcdwiki

          1 Antwort Letzte Antwort
          0
          • AsgothianA Offline
            AsgothianA Offline
            Asgothian
            Developer
            schrieb am zuletzt editiert von Asgothian
            #16

            Ok.. gesehen.. ich denke ich würde das so lösen:

            sRef = `${sRef}.png`
            sRef.replace(':.', '.').replace(/:/gm,'_')
            

            getestet habe ich das mit diesem Snippet auf jsfiddle.net:

            const sRef = 'http://XXX.XXX.XXX.XX/picon/1:0:1:30:5:85:FFFF0000:0:0:0:.png'
            console.log(sRef.replace(':.', '.').replace(/:/gm,'_'))
            

            ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
            "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

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

              @matze55

              Ich versteh jetzt dein Problem nicht, du hast doch in den Objekten unter 'enigma2.0.enigma2' alles was du brauchst.

              picon.png

              1 Antwort Letzte Antwort
              0
              • matze55M Offline
                matze55M Offline
                matze55
                schrieb am zuletzt editiert von matze55
                #18

                ja ich weiss habe den Code nur ein wenig abgeändert. jetzt zeigt auch alles an. ich baue mir da eine HTML Tabelle auf, deshalb fragte ich.

                Und danke nochmal

                Homematic CCU3,-Synology NAS 4TB,- 2 Sonos One,- Gigabyte N4500 8GB DDR4 2TB
                Tapo C210 Cam
                WLED Steuerung über lcdwiki

                icebearI 1 Antwort Letzte Antwort
                0
                • matze55M matze55

                  ja ich weiss habe den Code nur ein wenig abgeändert. jetzt zeigt auch alles an. ich baue mir da eine HTML Tabelle auf, deshalb fragte ich.

                  Und danke nochmal

                  icebearI Offline
                  icebearI Offline
                  icebear
                  schrieb am zuletzt editiert von
                  #19

                  @matze55 sagte:

                  ...... ich baue mir da eine HTML Tabelle auf, deshalb fragte ich.

                  Meist du sowas hier?

                  remote_1.png

                  1 Antwort Letzte Antwort
                  0
                  • matze55M Offline
                    matze55M Offline
                    matze55
                    schrieb am zuletzt editiert von
                    #20

                    ja. sieht gut aus

                    Homematic CCU3,-Synology NAS 4TB,- 2 Sonos One,- Gigabyte N4500 8GB DDR4 2TB
                    Tapo C210 Cam
                    WLED Steuerung über lcdwiki

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

                      @matze55

                      Das ganze läuft bei mir auf einem Tablet und ist sowas wie eine Universal Fernbedienung.
                      Ich war es leid 4 oder 5 Fernbedienungen auf dem Tisch liegen zuhaben.
                      Ich steuer damit auch mein FireTv und darüber dann noch Netflix usw.

                      remote_2.png remote_3.png remote_4.png

                      1 Antwort Letzte Antwort
                      0
                      • matze55M Offline
                        matze55M Offline
                        matze55
                        schrieb am zuletzt editiert von
                        #22

                        Ich stehe doch noch ganz am anfang und bin kein Profi was die Sachen hier betrifft. Man bastelt eben hald mal wieder rum. Aber deins sieht gut aus und war bestimmt viel Arbeit.

                        Homematic CCU3,-Synology NAS 4TB,- 2 Sonos One,- Gigabyte N4500 8GB DDR4 2TB
                        Tapo C210 Cam
                        WLED Steuerung über lcdwiki

                        1 Antwort Letzte Antwort
                        0
                        • matze55M Offline
                          matze55M Offline
                          matze55
                          schrieb am zuletzt editiert von
                          #23

                          Ich habe mein tun erweitert und ich habe dank @icebear viel gegoggelt und habe per Ki ein Code mir brutzeln lassen der in der VIS nicht anzeigt. ich habe mir es es per Html ausgeben lassen und auch per Json und zwar betrifft es die EPG Daten aus der Enigma Box.

                          Da meine Box Xml ausspuckt per Obenwebif kann man sie ja per Api abrufen. Ich habe httpget Fehler gehabt und ect.
                          Jetzt zu dem Problem. Die Daten werden sauber gespeicht und auch in den Datenpunkten die in Javascript generiet werden aus der Api sauber gespeichert...aber Anzeige in der VIS nix.
                          Sogar ist im dem Code sind die Tags für CSS intergriert.

                          Kann ich den Code Posten da ja das thema abschweift?

                          Homematic CCU3,-Synology NAS 4TB,- 2 Sonos One,- Gigabyte N4500 8GB DDR4 2TB
                          Tapo C210 Cam
                          WLED Steuerung über lcdwiki

                          OliverIOO 1 Antwort Letzte Antwort
                          0
                          • matze55M matze55

                            Ich habe mein tun erweitert und ich habe dank @icebear viel gegoggelt und habe per Ki ein Code mir brutzeln lassen der in der VIS nicht anzeigt. ich habe mir es es per Html ausgeben lassen und auch per Json und zwar betrifft es die EPG Daten aus der Enigma Box.

                            Da meine Box Xml ausspuckt per Obenwebif kann man sie ja per Api abrufen. Ich habe httpget Fehler gehabt und ect.
                            Jetzt zu dem Problem. Die Daten werden sauber gespeicht und auch in den Datenpunkten die in Javascript generiet werden aus der Api sauber gespeichert...aber Anzeige in der VIS nix.
                            Sogar ist im dem Code sind die Tags für CSS intergriert.

                            Kann ich den Code Posten da ja das thema abschweift?

                            OliverIOO Offline
                            OliverIOO Offline
                            OliverIO
                            schrieb am zuletzt editiert von
                            #24

                            @matze55

                            mach

                            Meine Adapter und Widgets
                            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                            Links im Profil

                            1 Antwort Letzte Antwort
                            0
                            • matze55M Offline
                              matze55M Offline
                              matze55
                              schrieb am zuletzt editiert von matze55
                              #25

                              Code:

                              // --- KONFIGURATION GIGABLUE ENIGMA2 BOX---
                              const BOX_IP = '192.XX.XXX.XX'; // IP deiner Enigma2 Box
                              const TARGET_JSON_DP = '0_userdata.0.enigma2.epg_json'; 
                              const TARGET_HTML_DP = '0_userdata.0.enigma2.epg_html'; 
                              // ---------------------
                              
                              const axios = require('axios');
                              
                              // Datenpunkte erstellen, falls sie fehlen
                              await createStateAsync(TARGET_JSON_DP, { name: 'Enigma2 EPG JSON', type: 'string', role: 'json', read: true, write: false });
                              await createStateAsync(TARGET_HTML_DP, { name: 'Enigma2 EPG HTML für VIS', type: 'string', role: 'html', read: true, write: false });
                              
                              // Holt vollautomatisch die exakte ID des ersten TV-Bouquets
                              async function fetchValidBouquetRef() {
                                  try {
                                      const response = await axios.get(`http://${BOX_IP}/api/getservices`, { timeout: 3000 });
                                      
                                      if (response && response.data && response.data.services) {
                                          const services = response.data.services;
                                          
                                          // Fall 1: API liefert ein direktes Array
                                          if (Array.isArray(services) && services.length > 0) {
                                              return services[0].servicereference;
                                          } 
                                          // Fall 2: API liefert ein verschachteltes Objekt
                                          if (services.servicereference) {
                                              return services.servicereference;
                                          }
                                      }
                                  } catch (e) {
                                      log(`Enigma2: Fehler beim automatischen Bouquet-Abruf: ${e.message}`, 'warn');
                                  }
                                  return null;
                              }
                              
                              function buildHtmlTable(epgData) {
                                  if (!epgData || !epgData.events || !Array.isArray(epgData.events) || epgData.events.length === 0) {
                                      return '<p style="color: #ff5252; padding: 10px;">Keine EPG-Daten empfangen. Bitte Bouquet-Einstellung prüfen.</p>';
                                  }
                              
                                  let html = `
                                  <style>
                                      .e2-epg-table { width: 100%; border-collapse: collapse; font-family: sans-serif; font-size: 14px; color: #ffffff; }
                                      .e2-epg-table tr { border-bottom: 1px solid #444444; }
                                      .e2-epg-table tr:nth-child(even) { background-color: rgba(32,32,32,0.5); }
                                      .e2-epg-table td { padding: 10px 8px; vertical-align: top; }
                                      .e2-ch-name { font-weight: bold; color: #3498db; width: 33%; }
                                      .e2-time { color: #f1c40f; font-weight: bold; width: 33%; white-space: nowrap; }
                                      .e2-title { font-weight: bold; color: #ffffff; margin-bottom: 3px; }
                                      .e2-desc { color: #aaaaaa; font-size: 12px; line-height: 1.3; }
                                  </style>
                                  <table class="e2-epg-table">
                                  `;
                              
                                  epgData.events.forEach(event => {
                                      if (!event.sname || !event.event_title) return;
                              
                                      const startTime = new Date(event.event_start * 1000);
                                      const timeString = startTime.toLocaleTimeString('de-DE', { hour: '2-digit', minute: '2-digit' }) + ' Uhr';
                              
                                      html += `
                                      <tr>
                                          <td class="e2-ch-name">${event.sname}</td>
                                          <td class="e2-time">${timeString}</td>
                                          <td>
                                              <div class="e2-title">${event.event_title}</div>
                                              <div class="e2-desc">${event.event_description || ''}</div>
                                          </td>
                                      </tr>
                                      `;
                                  });
                              
                                  html += '</table>';
                                  return html;
                              }
                              
                              async function updateEPG() {
                                  try {
                                      // 1. Automatisch die korrekte, vom OpenWebif akzeptierte ID ermitteln
                                      const verifiedBref = await fetchValidBouquetRef();
                                      
                                      if (!verifiedBref) {
                                          log('Enigma2 EPG abgebrochen: Es konnte keine gültige Bouquet-Referenz von der Box gelesen werden.', 'error');
                                          return;
                                      }
                              
                                      // 2. Abfrage mit dem vom OpenWebif exakt geforderten Parameter 'bRef'
                                      const url = `http://${BOX_IP}/api/epgnow?bRef=${encodeURIComponent(verifiedBref)}`;
                                      const response = await axios.get(url, { timeout: 5000 });
                                      
                                      if (response && response.status === 200 && response.data) {
                                          const data = response.data;
                              
                                          if (data.result === false) {
                                              log(`Enigma2 meldet Fehler im Payload: ${data.message || 'Unbekannt'}`, 'warn');
                                              return;
                                          }
                              
                                          // 1. JSON speichern
                                          await setStateAsync(TARGET_JSON_DP, JSON.stringify(data), true);
                                          
                                          // 2. HTML generieren und speichern
                                          const htmlTable = buildHtmlTable(data);
                                          await setStateAsync(TARGET_HTML_DP, htmlTable, true);
                                          log('Enigma2 EPG erfolgreich aktualisiert.', 'info');
                                          
                                      } else {
                                          const status = response ? response.status : 'Keine Antwort';
                                          log(`Enigma2 HTTP-Fehler: Status ${status}`, 'warn');
                                      }
                                  } catch (error) {
                                      log(`Enigma2 EPG-Abruf fehlgeschlagen: ${error.message}`, 'warn');
                                  }
                              }
                              
                              // Trigger: Alle 15 Minuten
                              schedule('*/15 * * * *', updateEPG);
                              
                              // Sofortstart beim Speichern
                              updateEPG();
                              

                              Anzeige in VIS nix oder habe ich ein CSS Prob

                              Homematic CCU3,-Synology NAS 4TB,- 2 Sonos One,- Gigabyte N4500 8GB DDR4 2TB
                              Tapo C210 Cam
                              WLED Steuerung über lcdwiki

                              OliverIOO 1 Antwort Letzte Antwort
                              0
                              • matze55M matze55

                                Code:

                                // --- KONFIGURATION GIGABLUE ENIGMA2 BOX---
                                const BOX_IP = '192.XX.XXX.XX'; // IP deiner Enigma2 Box
                                const TARGET_JSON_DP = '0_userdata.0.enigma2.epg_json'; 
                                const TARGET_HTML_DP = '0_userdata.0.enigma2.epg_html'; 
                                // ---------------------
                                
                                const axios = require('axios');
                                
                                // Datenpunkte erstellen, falls sie fehlen
                                await createStateAsync(TARGET_JSON_DP, { name: 'Enigma2 EPG JSON', type: 'string', role: 'json', read: true, write: false });
                                await createStateAsync(TARGET_HTML_DP, { name: 'Enigma2 EPG HTML für VIS', type: 'string', role: 'html', read: true, write: false });
                                
                                // Holt vollautomatisch die exakte ID des ersten TV-Bouquets
                                async function fetchValidBouquetRef() {
                                    try {
                                        const response = await axios.get(`http://${BOX_IP}/api/getservices`, { timeout: 3000 });
                                        
                                        if (response && response.data && response.data.services) {
                                            const services = response.data.services;
                                            
                                            // Fall 1: API liefert ein direktes Array
                                            if (Array.isArray(services) && services.length > 0) {
                                                return services[0].servicereference;
                                            } 
                                            // Fall 2: API liefert ein verschachteltes Objekt
                                            if (services.servicereference) {
                                                return services.servicereference;
                                            }
                                        }
                                    } catch (e) {
                                        log(`Enigma2: Fehler beim automatischen Bouquet-Abruf: ${e.message}`, 'warn');
                                    }
                                    return null;
                                }
                                
                                function buildHtmlTable(epgData) {
                                    if (!epgData || !epgData.events || !Array.isArray(epgData.events) || epgData.events.length === 0) {
                                        return '<p style="color: #ff5252; padding: 10px;">Keine EPG-Daten empfangen. Bitte Bouquet-Einstellung prüfen.</p>';
                                    }
                                
                                    let html = `
                                    <style>
                                        .e2-epg-table { width: 100%; border-collapse: collapse; font-family: sans-serif; font-size: 14px; color: #ffffff; }
                                        .e2-epg-table tr { border-bottom: 1px solid #444444; }
                                        .e2-epg-table tr:nth-child(even) { background-color: rgba(32,32,32,0.5); }
                                        .e2-epg-table td { padding: 10px 8px; vertical-align: top; }
                                        .e2-ch-name { font-weight: bold; color: #3498db; width: 33%; }
                                        .e2-time { color: #f1c40f; font-weight: bold; width: 33%; white-space: nowrap; }
                                        .e2-title { font-weight: bold; color: #ffffff; margin-bottom: 3px; }
                                        .e2-desc { color: #aaaaaa; font-size: 12px; line-height: 1.3; }
                                    </style>
                                    <table class="e2-epg-table">
                                    `;
                                
                                    epgData.events.forEach(event => {
                                        if (!event.sname || !event.event_title) return;
                                
                                        const startTime = new Date(event.event_start * 1000);
                                        const timeString = startTime.toLocaleTimeString('de-DE', { hour: '2-digit', minute: '2-digit' }) + ' Uhr';
                                
                                        html += `
                                        <tr>
                                            <td class="e2-ch-name">${event.sname}</td>
                                            <td class="e2-time">${timeString}</td>
                                            <td>
                                                <div class="e2-title">${event.event_title}</div>
                                                <div class="e2-desc">${event.event_description || ''}</div>
                                            </td>
                                        </tr>
                                        `;
                                    });
                                
                                    html += '</table>';
                                    return html;
                                }
                                
                                async function updateEPG() {
                                    try {
                                        // 1. Automatisch die korrekte, vom OpenWebif akzeptierte ID ermitteln
                                        const verifiedBref = await fetchValidBouquetRef();
                                        
                                        if (!verifiedBref) {
                                            log('Enigma2 EPG abgebrochen: Es konnte keine gültige Bouquet-Referenz von der Box gelesen werden.', 'error');
                                            return;
                                        }
                                
                                        // 2. Abfrage mit dem vom OpenWebif exakt geforderten Parameter 'bRef'
                                        const url = `http://${BOX_IP}/api/epgnow?bRef=${encodeURIComponent(verifiedBref)}`;
                                        const response = await axios.get(url, { timeout: 5000 });
                                        
                                        if (response && response.status === 200 && response.data) {
                                            const data = response.data;
                                
                                            if (data.result === false) {
                                                log(`Enigma2 meldet Fehler im Payload: ${data.message || 'Unbekannt'}`, 'warn');
                                                return;
                                            }
                                
                                            // 1. JSON speichern
                                            await setStateAsync(TARGET_JSON_DP, JSON.stringify(data), true);
                                            
                                            // 2. HTML generieren und speichern
                                            const htmlTable = buildHtmlTable(data);
                                            await setStateAsync(TARGET_HTML_DP, htmlTable, true);
                                            log('Enigma2 EPG erfolgreich aktualisiert.', 'info');
                                            
                                        } else {
                                            const status = response ? response.status : 'Keine Antwort';
                                            log(`Enigma2 HTTP-Fehler: Status ${status}`, 'warn');
                                        }
                                    } catch (error) {
                                        log(`Enigma2 EPG-Abruf fehlgeschlagen: ${error.message}`, 'warn');
                                    }
                                }
                                
                                // Trigger: Alle 15 Minuten
                                schedule('*/15 * * * *', updateEPG);
                                
                                // Sofortstart beim Speichern
                                updateEPG();
                                

                                Anzeige in VIS nix oder habe ich ein CSS Prob

                                OliverIOO Offline
                                OliverIOO Offline
                                OliverIO
                                schrieb am zuletzt editiert von OliverIO
                                #26

                                @matze55

                                also datenpunkt mit dem html wird geschrieben?
                                sende mal den inhalt des datenpunkts
                                und welches widget verwendest du? html widget?
                                davon bitte auch einen export des widgets.

                                vis1 oder vis2?

                                Meine Adapter und Widgets
                                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                Links im Profil

                                1 Antwort Letzte Antwort
                                0
                                • matze55M Offline
                                  matze55M Offline
                                  matze55
                                  schrieb am zuletzt editiert von
                                  #27

                                  Ja der Datenpunkt wird geschrieben in der Html.
                                  HTML basic nehme ich.
                                  VIS 1 verwende ich
                                  widget :

                                  [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"{0_userdata.0.enigma2.epg_json}"},"style":{"left":"73px","top":"53px","width":"1039px","height":"385px","border-width":"1px","border-style":"solid","border-color":"#ffffff","border-radius":"8px"},"widgetSet":"basic"}]
                                  

                                  ich haoffe habe es richtig gemacht mit dem export

                                  Homematic CCU3,-Synology NAS 4TB,- 2 Sonos One,- Gigabyte N4500 8GB DDR4 2TB
                                  Tapo C210 Cam
                                  WLED Steuerung über lcdwiki

                                  OliverIOO 1 Antwort Letzte Antwort
                                  0
                                  • matze55M matze55

                                    Ja der Datenpunkt wird geschrieben in der Html.
                                    HTML basic nehme ich.
                                    VIS 1 verwende ich
                                    widget :

                                    [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"{0_userdata.0.enigma2.epg_json}"},"style":{"left":"73px","top":"53px","width":"1039px","height":"385px","border-width":"1px","border-style":"solid","border-color":"#ffffff","border-radius":"8px"},"widgetSet":"basic"}]
                                    

                                    ich haoffe habe es richtig gemacht mit dem export

                                    OliverIOO Offline
                                    OliverIOO Offline
                                    OliverIO
                                    schrieb am zuletzt editiert von OliverIO
                                    #28

                                    @matze55

                                    inhalt des datenpunkts mit dem html noch

                                    sehe aber schon was:
                                    941d1095-bc22-4328-9e21-e60f9fd654be-image.jpeg

                                    willst du nicht html anzeigen?

                                    Meine Adapter und Widgets
                                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                    Links im Profil

                                    1 Antwort Letzte Antwort
                                    0
                                    • matze55M Offline
                                      matze55M Offline
                                      matze55
                                      schrieb am zuletzt editiert von
                                      #29
                                      [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"{0_userdata.0.enigma2.epg_html}"},"style":{"left":"73px","top":"53px","width":"1039px","height":"385px","border-width":"1px","border-style":"solid","border-color":"#ffffff","border-radius":"8px"},"widgetSet":"basic"}]
                                      

                                      Homematic CCU3,-Synology NAS 4TB,- 2 Sonos One,- Gigabyte N4500 8GB DDR4 2TB
                                      Tapo C210 Cam
                                      WLED Steuerung über lcdwiki

                                      OliverIOO 1 Antwort Letzte Antwort
                                      0
                                      • matze55M matze55
                                        [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"{0_userdata.0.enigma2.epg_html}"},"style":{"left":"73px","top":"53px","width":"1039px","height":"385px","border-width":"1px","border-style":"solid","border-color":"#ffffff","border-radius":"8px"},"widgetSet":"basic"}]
                                        
                                        OliverIOO Offline
                                        OliverIOO Offline
                                        OliverIO
                                        schrieb am zuletzt editiert von OliverIO
                                        #30

                                        @matze55

                                        das ist wieder der widget export
                                        den inhalt von
                                        0_userdata.0.enigma2.epg_html

                                        Meine Adapter und Widgets
                                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                        Links im Profil

                                        1 Antwort Letzte Antwort
                                        0
                                        • matze55M Offline
                                          matze55M Offline
                                          matze55
                                          schrieb am zuletzt editiert von
                                          #31
                                          Wert:
                                          <style> .e2-epg-table { width: 100%; border-collapse: collapse; font-family: sans-serif; font-size: 14px; color: #ffffff; } .e2-epg-table tr { border-bottom: 1px solid #444444; } .e2-epg-table tr:nth-child(even) { background-color: rgba(32,32,32,0.5); } .e2-epg-table td { padding: 10px 8px; vertical-align: top; } .e2-ch-name { font-weight: bold; color: #3498db; width: 33%; } .e2-time { color: #f1c40f; font-weight: bold; width: 33%; white-space: nowrap; } .e2-title { font-weight: bold; color: #ffffff; margin-bottom: 3px; } .e2-desc { color: #aaaaaa; font-size: 12px; line-height: 1.3; } </style> <table class="e2-epg-table"> </table>
                                          

                                          So richtig?

                                          Homematic CCU3,-Synology NAS 4TB,- 2 Sonos One,- Gigabyte N4500 8GB DDR4 2TB
                                          Tapo C210 Cam
                                          WLED Steuerung über lcdwiki

                                          OliverIOO U 3 Antworten 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

                                          407

                                          Online

                                          33.0k

                                          Benutzer

                                          83.6k

                                          Themen

                                          1.3m

                                          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
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe