Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Longbow

    NEWS

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Profile
    • Following 2
    • Followers 0
    • Topics 37
    • Posts 388
    • Best 8
    • Groups 2

    Longbow

    @Longbow

    Bin Neuling der gern einiges Lernen möchte.

    7
    Reputation
    57
    Profile views
    388
    Posts
    0
    Followers
    2
    Following
    Joined Last Online
    Location Berlin Age 46

    Longbow Follow
    Pro Starter

    Best posts made by Longbow

    • RE: Probleme mit Philips Hue Adapter DANKE- gelöst

      Also gelöst für mich, aber der Adapter hat einen Fehler.

      Ich es passiert zwar nur ein OK wenn man das macht, der Benutzercode wird nicht eingetragen. Allerdings habe ich am Protokoll gesehen, dass es sich einer ergeben hat. Daher habe ich dann diesen kopiert, bei Benutzer ein geführt und dann gespeichert. Dann wurde er neu gestartet und dann klappt es und die Lampen wurden ein gelesen und ich kann Sie über den DP's steuern.

      posted in Visualisierung
      Longbow
      Longbow
    • RE: Shelly Plus 1PM mini

      @mickym

      Danke für ein Gif/ Video:) hätte einen Denkfehler und jetzt geht es… Dankeschön allen 😉☺️

      posted in Hardware
      Longbow
      Longbow
    • RE: [Neuer Adapter] Reolink Kamera

      @skvarel Danke:-)

      posted in Entwicklung
      Longbow
      Longbow
    • RE: Tuya Lampen zwei Datenpunkte die gesteuert werden müssten

      @arteck

      wie meinst du es?

      Hier mal eine Übersicht der Datenpunkte, um sie zu steuern, müsste, ich mehre Sachen ansteuern.

      Anmachen, Dimmer, warm/kalt-licht und dann ob Farbe ja / nein und dazu noch welchen Ton.

      Greenshot 2024-06-04 07.18.58.png

      posted in Visualisierung
      Longbow
      Longbow
    • RE: Shelly Plus 1PM mini

      @chappo59 geht bei dir der Shelly1PMMini wirklich? bei mir geht er leider nicht!

      Also gestern muss wohl wären ich es installiert wurden, einen weitere Beta Version heraus gekommen sein, dann mit der 4.6.5 läuft der super... Also alles im Lot. Danke

      posted in Hardware
      Longbow
      Longbow
    • RE: Fehler VIS-2 Widget Inventwo

      @skvarel @jkalver danke Euch 😉

      posted in Visualisierung
      Longbow
      Longbow
    • RE: Trash HTML Widget VIS2

      @skvarel Danke, für das erste echt mega! Werde ich mal testen... werde Dir bescheid geben.

      posted in Visualisierung
      Longbow
      Longbow
    • RE: Trash HTML Widget VIS2

      Herzlichen Dank, das war auch mein Gedanke, hatte nur nicht schneller es aus probieren können.
      Ich finde mega, was du gebastelt hast.

      Jetzt muss nur noch das andere Thema wieder gehen.

      Ein großes Dankeschön an Dich.

      posted in Visualisierung
      Longbow
      Longbow

    Latest posts made by Longbow

    • RE: Fehler VIS-2 Widget Inventwo

      @jkalver Es muss an das Neu laden des VIS 2 Adapter liegen, wenn ich was update wird der neu geladen der Editor, nur dann ist es mal so, das links euere zur Auswahl steht, mal nicht. Wenn es nicht zur Auswahl steht, dann kommen die Fehlermeldung.

      Aber habe heute das bemerkt, auch wenn geladen ist, das der Widget Schieberegler und Checkbox auch Fehler in der Vis machen.

      An was liegt das bitte? Das kann ja nicht bei 1-2 Leuten sei? Oder?

      posted in Visualisierung
      Longbow
      Longbow
    • RE: Fehler VIS-2 Widget Inventwo

      @jkvarel Gibt es was neues, keine Ahnung warum, aber es wurde heute die Neue Verion installiert, jetzt habe ich die gleichen Fehler wieder auf den iOS Geräten. Auch ein Downgrade macht kein Verbesserung mehr, der Fehler bleibt weiterhin. Hast du hier schon mal was machen können.

      @all sind wir die einizgen, die diese Problem haben.

      posted in Visualisierung
      Longbow
      Longbow
    • RE: Homelink - Garagentorantrieb Marantec

      Hallo, könntet Ihr es Testen und ausprobieren?

      posted in ioBroker Allgemein
      Longbow
      Longbow
    • RE: Fehler VIS-2 Widget Inventwo

      @jkvarel Guten Morgen, du ich habe ein neues System auf gesetzt, kein VIS 1 sachen installiert und es geht nun prima. Da lange keine reaktion kam, habe ich das system gelöscht. Sorry. Ich kann somit leider gerade nichts mehr dazu sagen, aber es scheint ein Problem zu sein.

      posted in Visualisierung
      Longbow
      Longbow
    • RE: Problem mit "Vis 2 inventwo Widgets" Update > v0.2.2

      @skvarel Das sieht nach dem gleichen Problem aus, wie bei mir und dem anderen User.

      posted in Visualisierung
      Longbow
      Longbow
    • RE: Homelink - Garagentorantrieb Marantec

      @drapo Guten Morgen, also ich habe es seit der ersten Juni Woche am laufen und es ist sehr gut und stabil...

      posted in ioBroker Allgemein
      Longbow
      Longbow
    • RE: Homelink - Garagentorantrieb Marantec

      Hallo in die Runde,

      da ich auch so einen Antrieb habe und die Box, hatte ich das Script auch so übernommen.
      Leider hing es hin und wieder bei mir, daher habe ich mich dran gesetzt und das nun gebaut.

      Hoffe es ist selbst erklärend und gefällt euch, wenn ihr Fragen habt, melde Euch einfach bei mir.

      // ===== TCP-Client Garagentor (ioBroker JavaScript) =====
      // Robust: Reconnect + Backoff, KeepAlive, sauberes Line-Parsing (S;..., R;...),
      // AutoClose nach X Minuten mit Rest-SECONDS-Datenpunkt, DP-Autoanlage,
      // Licht-Status als boolean, shutdown-sicher (keine DB-closed-Fehler)
      const net = require('net');
      
      // ==== KONFIG ====
      const deviceName = "Auffahrt";
      const host = "xxx.xxx.x.xxx";
      const port = 2785;
      const SEND_NEWLINE = true;
      
      // ==== BASIS-PFAD ====
      const base = "0_userdata.0.Eigene_Datenpunkte.Garage.";
      
      // ==== DATENPUNKTE ====
      const dp_door         = base + "Garage_Status_Tor";          // "open|closed|opening|closing"
      const dp_light        = base + "Garage_Status_Licht";        // boolean
      const dp_cmd          = base + "Garage_Command";             // "open|close|stop|lighton|lightoff"
      const dp_connected    = base + "Garage_TcpConnected";        // boolean
      const dp_lastReply    = base + "Garage_LastReply";           // string
      const dp_lastError    = base + "Garage_LastError";           // string
      const dp_ac_enabled   = base + "AutoClose_Enabled";          // boolean
      const dp_ac_delay     = base + "AutoClose_DelayMin";         // number (1..120)
      const dp_ac_left_s    = base + "AutoClose_RemainingSec";     // number (Sek., read-only)
      const dp_lastOpened   = base + "Garage_LastOpened";          // ISO-Zeit
      const dp_lastClosed   = base + "Garage_LastClosed";          // ISO-Zeit
      
      // ---- Dein vorhandener Notify-DP (nicht anlegen, nur schreiben) ----
      const dp_notify = "hm-rega.0.31016"; // bestehender Homematic-ReGa Datenpunkt/Variable
      
      // ---- Notify-Logik: Frühwarnung & Hysterese ----
      const EARLY_TRIGGER_SEC = 60;        // ab so vielen Sekunden vor Auto-Close -> notify = true
      const NOTIFY_FALSE_DELAY_MS = 5000;  // Hysterese: erst nach 5s "closed" -> notify = false
      let notifyFalseTimer = null;
      
      // ==== DP-AUTOANLAGE (nur eigene 0_userdata.*) ====
      function ensureState(id, defVal, common) {
        if (!existsState(id)) {
          createState(id, defVal, common, () => log(`State angelegt: ${id}`, 'info'));
        }
      }
      ensureState(dp_door,        '',    { name:'Torstatus',        type:'string',  role:'text',                 read:true, write:false });
      ensureState(dp_light,       false, { name:'Lichtstatus',      type:'boolean', role:'indicator.light',      read:true, write:false });
      ensureState(dp_cmd,         '',    { name:'Befehl',           type:'string',  role:'text',                 read:true, write:true  });
      ensureState(dp_connected,   false, { name:'TCP verbunden',    type:'boolean', role:'indicator.reachable',  read:true, write:false });
      ensureState(dp_lastReply,   '',    { name:'Letzte Antwort',   type:'string',  role:'text',                 read:true, write:false });
      ensureState(dp_lastError,   '',    { name:'Letzter Fehler',   type:'string',  role:'text',                 read:true, write:false });
      ensureState(dp_ac_enabled,  true,  { name:'AutoClose aktiv',  type:'boolean', role:'switch',               read:true, write:true  });
      ensureState(dp_ac_delay,    5,     { name:'AutoClose Minuten',type:'number',  role:'level', unit:'min',    read:true, write:true  });
      ensureState(dp_ac_left_s,   0,     { name:'Rest-Sekunden',    type:'number',  role:'value', unit:'s',      read:true, write:false });
      ensureState(dp_lastOpened,  '',    { name:'Letzte Öffnung',   type:'string',  role:'date',                 read:true, write:false });
      ensureState(dp_lastClosed,  '',    { name:'Letzter Verschluss',type:'string', role:'date',                 read:true, write:false });
      
      // ==== SHUTDOWN-SAFE ====
      let shuttingDown = false;
      function safeSetState(id, val, ack = true) {
        if (shuttingDown) return;
        try { setState(id, val, ack); } catch (_) {}
      }
      
      // ==== TCP ====
      let client = null;
      let reconnectTimer = null;
      let reconnectDelayMs = 2000;
      const reconnectDelayMaxMs = 30000;
      let recvBuffer = '';
      
      function startClient() {
        clearTimeout(reconnectTimer);
        client = new net.Socket();
        client.setKeepAlive(true, 10000);
        client.setEncoding('utf8');
      
        client.connect(port, host, () => {
          log(`[${deviceName}] Verbunden mit ${host}:${port}`, 'info');
          safeSetState(dp_connected, true);
          reconnectDelayMs = 2000;
        });
      
        client.on('data', (chunk) => {
          recvBuffer += chunk;
          const parts = recvBuffer.split(/\r?\n|\r/);
          recvBuffer = parts.pop();
          for (const raw of parts) {
            const line = (raw || '').trim();
            if (line) handleIncoming(line);
          }
        });
      
        client.on('error', (err) => {
          log(`[${deviceName}] TCP Fehler: ${err.message}`, 'warn');
          safeSetState(dp_connected, false);
          safeSetState(dp_lastError, err.message);
          scheduleReconnect();
        });
      
        client.on('close', (hadError) => {
          log(`[${deviceName}] TCP geschlossen${hadError ? ' (Fehler)' : ''}`, 'warn');
          safeSetState(dp_connected, false);
          scheduleReconnect();
        });
      }
      
      function scheduleReconnect() {
        try { if (client) client.destroy(); } catch (_) {}
        client = null;
        reconnectTimer = setTimeout(startClient, reconnectDelayMs);
        reconnectDelayMs = Math.min(Math.round(reconnectDelayMs * 1.5), reconnectDelayMaxMs);
      }
      
      // ==== AUTO-CLOSE ====
      let autoCloseTimer = null;
      let autoCloseDeadline = 0;
      let autoCloseTicker = null;
      let acInternalTrigger = false;
      
      function getAcEnabled() {
        const v = getState(dp_ac_enabled)?.val;
        return v === true || v === 1 || v === 'true';
      }
      function getAcDelayMin() {
        let m = Number(getState(dp_ac_delay)?.val);
        if (!isFinite(m) || m <= 0) m = 5;
        return Math.max(1, Math.min(120, Math.floor(m)));
      }
      
      function scheduleAutoClose() {
        if (!getAcEnabled()) { safeSetState(dp_ac_left_s, 0); return; }
        const min = getAcDelayMin();
        autoCloseDeadline = Date.now() + min * 60000;
      
        clearTimeout(autoCloseTimer);
        autoCloseTimer = setTimeout(performAutoClose, min * 60000);
      
        startAutoCloseTicker();
        updateRemainingSeconds();
        log(`[${deviceName}] AutoClose geplant in ${min} Min`, 'info');
      }
      
      function performAutoClose() {
        if (shuttingDown) return;
        autoCloseTimer = null;
        const st = getState(dp_door)?.val;
        if (st === 'open') {
          log(`[${deviceName}] AutoClose ausgelöst -> schließe`, 'info');
          acInternalTrigger = true;
          try { setState(dp_cmd, { val: 'close', ack: false }); } catch (_) {}
        } else {
          log(`[${deviceName}] AutoClose übersprungen (Status: ${st})`, 'info');
        }
        stopAutoCloseTicker();
        safeSetState(dp_ac_left_s, 0);
        autoCloseDeadline = 0;
        // dp_notify bleibt bis "closed" true (Hysterese regelt das Zurücksetzen)
      }
      
      function cancelAutoClose(reason = '', suppressWrite = false) {
        if (autoCloseTimer) clearTimeout(autoCloseTimer);
        if (autoCloseTicker) clearInterval(autoCloseTicker);
        autoCloseTimer = null;
        autoCloseTicker = null;
        autoCloseDeadline = 0;
        if (!suppressWrite) safeSetState(dp_ac_left_s, 0);
        if (reason) log(`[${deviceName}] AutoClose abgebrochen: ${reason}`, 'info');
      }
      
      function updateRemainingSeconds() {
        if (!autoCloseDeadline || shuttingDown) return;
        const secLeft = Math.max(0, Math.ceil((autoCloseDeadline - Date.now()) / 1000));
        safeSetState(dp_ac_left_s, secLeft);
      
        // Frühwarnung: ≤ EARLY_TRIGGER_SEC -> notify true
        if (secLeft > 0 && secLeft <= EARLY_TRIGGER_SEC) {
          clearTimeout(notifyFalseTimer);
          safeSetState(dp_notify, true, /*ack*/ false); // bewusst ack=false, falls Triggers benötigt
        }
      }
      
      function startAutoCloseTicker() {
        if (autoCloseTicker) return;
        autoCloseTicker = setInterval(updateRemainingSeconds, 1000);
      }
      function stopAutoCloseTicker() {
        if (!autoCloseTicker) return;
        clearInterval(autoCloseTicker);
        autoCloseTicker = null;
      }
      
      // ==== EINGEHEND ====
      function handleIncoming(line) {
        const parts = line.split(';');
        if (parts.length < 2) {
          log(`[${deviceName}] Unbekanntes Paket: "${line}"`, 'warn');
          return;
        }
        const prefix = parts[0];
      
        if (prefix === 'S') {
          const dev = parts[1];
          const value = parts.slice(2).join(';');
          if (dev !== deviceName) return;
      
          switch (value) {
            case 'open':
              safeSetState(dp_door, 'open');
              safeSetState(dp_lastOpened, new Date().toISOString());
              clearTimeout(notifyFalseTimer);
              safeSetState(dp_notify, true, /*ack*/ false); // sofort true
              scheduleAutoClose();
              break;
      
            case 'opening':
              safeSetState(dp_door, 'opening');
              clearTimeout(notifyFalseTimer);
              safeSetState(dp_notify, true, /*ack*/ false); // sofort true
              // kein Cancel hier
              break;
      
            case 'closing':
              safeSetState(dp_door, 'closing');
              clearTimeout(notifyFalseTimer);
              safeSetState(dp_notify, true, /*ack*/ false); // sofort true
              cancelAutoClose('Status=closing');
              break;
      
            case 'closed':
              safeSetState(dp_door, 'closed');
              safeSetState(dp_lastClosed, new Date().toISOString());
              cancelAutoClose('Status=closed');
              // Hysterese: erst nach 5s false
              clearTimeout(notifyFalseTimer);
              notifyFalseTimer = setTimeout(() => {
                safeSetState(dp_notify, false, /*ack*/ false);
              }, NOTIFY_FALSE_DELAY_MS);
              break;
      
            case 'lightOn':
              safeSetState(dp_light, true);
              break;
      
            case 'lightOff':
              safeSetState(dp_light, false);
              break;
      
            default:
              log(`[${deviceName}] Status: ${value}`, 'info');
              break;
          }
          return;
        }
      
        if (prefix === 'R') {
          const code = parts[1] || '';
          safeSetState(dp_lastReply, code);
          if (/ERR|UNKNOWN/i.test(code)) safeSetState(dp_lastError, code);
          else log(`[${deviceName}] Antwort: ${code}`, 'info');
          return;
        }
      
        log(`[${deviceName}] Unbekanntes Paket: "${line}"`, 'warn');
      }
      
      // ==== SENDEN ====
      function sendMessage(msg) {
        return new Promise(resolve => {
          if (!client) { log(`[${deviceName}] Kein Client aktiv`, 'warn'); return resolve('Error'); }
          try { client.write(SEND_NEWLINE ? (msg + '\n') : msg); resolve('OK'); }
          catch (e) { log(`[${deviceName}] Sendefehler: ${e.message}`, 'error'); safeSetState(dp_lastError, e.message); resolve('Error'); }
        });
      }
      
      // ==== BEFEHL-TRIGGER ====
      on({ id: dp_cmd, change: 'ne' }, async obj => {
        if (obj.state.ack) return;
        const cmd = String(obj.state.val || '').toLowerCase().trim();
      
        // Manuelle Befehle canceln AutoClose (interner Trigger nicht)
        if (acInternalTrigger) {
          log(`[${deviceName}] DP-Command (intern): ${cmd}`, 'info');
        } else {
          if (cmd === 'open' || cmd === 'close' || cmd === 'stop') {
            cancelAutoClose(`Befehl: ${cmd}`);
          }
        }
      
        let payload = null;
        switch (cmd) {
          case 'open':     payload = `C;${deviceName};open`; break;
          case 'close':    payload = `C;${deviceName};close`; break;
          case 'stop':     payload = `C;${deviceName};stop`; break;
          case 'lighton':  payload = `C;${deviceName};lightOn`; break;
          case 'lightoff': payload = `C;${deviceName};lightOff`; break;
          default:
            log(`[${deviceName}] Unbekannter Befehl: ${cmd}`, 'warn');
            safeSetState(dp_lastError, `UNKNOWN_CMD:${cmd}`);
            break;
        }
      
        if (payload) await sendMessage(payload);
        safeSetState(dp_cmd, '', true);
      
        if (acInternalTrigger) acInternalTrigger = false;
      });
      
      // ==== SETTINGS-ÄNDERUNGEN ====
      on({ id: dp_ac_enabled, change: 'ne' }, () => {
        const st = getState(dp_door)?.val;
        if (getAcEnabled() && st === 'open') scheduleAutoClose();
        else cancelAutoClose('AutoClose disabled');
      });
      on({ id: dp_ac_delay, change: 'ne' }, () => {
        const st = getState(dp_door)?.val;
        if (getAcEnabled() && st === 'open') scheduleAutoClose();
      });
      
      // ==== START/STOP ====
      onStop(() => {
        shuttingDown = true;
        clearTimeout(reconnectTimer);
        clearTimeout(notifyFalseTimer);
        if (client) { try { client.destroy(); } catch (_) {} }
        cancelAutoClose('Script stop', true);
      }, 1000);
      
      startClient();
      
      
      posted in ioBroker Allgemein
      Longbow
      Longbow
    • RE: Fehler im Widgets

      @mcm1957 was möchtest Du mir damit sagen?

      posted in Visualisierung
      Longbow
      Longbow
    • Fehler im Widgets

      Hallo

      ich bastelt gerade wenig, möchte meine Rollos in drei Zustände Steuern.
      Zu einem Auf, 50% und Zu, soweit gut zu geht es, 50% geht auch.

      Nur wenn ich dann Auf drücke, wenn alle geschlossen sind, geht es nur bis 16% auf, dann stop es.

      Die vier Rollos sind über Sezenen in einem Datenpunkt drin, im alten System geht es auch nicht, wie auch im neuen Iobroker System. Hatte ein neues System erstellt.

      Es liegt am Widget, das bei dem Datenpunkt (100) immer nur bis 16 auf geht, an was liegt das denn? Kann es mir einer erklären oder helfen?

      Hier meine Widgets:

      [
        {
          "tpl": "tplJquiButtonState",
          "data": {
            "bindings": [],
            "type": "button",
            "g_common": true,
            "oid": "scene.0.Rollläden.Rollläden_OG",
            "count": 2,
            "variant": "contained",
            "orientation": "horizontal",
            "text1": "Zu",
            "value1": "0",
            "icon1": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMzYxcHgiCgkgaGVpZ2h0PSIzNjFweCIgdmlld0JveD0iMCAwIDM2MSAzNjEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDM2MSAzNjE7Ij4KPGc+Cgk8Zz4KCQk8cGF0aCBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTpjdXJyZW50Q29sb3I7c3Ryb2tlLXdpZHRoOjEwO3N0cm9rZS1taXRlcmxpbWl0OjEwOyIgZD0iTTI3OS41LDI0OC43MzQKCQkJYzAsMy42NDUtMi45NTUsNi42LTYuNiw2LjZIODguMWMtMy42NDYsMC02LjYtMi45NTUtNi42LTYuNlYxMjkuOTM0YzAtMy42NDUsMi45NTUtNi42LDYuNi02LjZoMTg0LjhjMy42NDUsMCw2LjYsMi45NTYsNi42LDYuNgoJCQlWMjQ4LjczNHoiLz4KCQk8Zz4KCQkJPGc+CgkJCQk8cGF0aCBzdHlsZT0iZmlsbDpjdXJyZW50Q29sb3I7IiBkPSJNMTc0Ljk0NSwxOTQuMTc4YzMuOTM1LDAsNy44NywwLDExLjgwNSwwYzYuNDQ4LDAsNi40NDgtMTAsMC0xMGMtMy45MzUsMC03Ljg3LDAtMTEuODA1LDAKCQkJCQlDMTY4LjQ5NywxODQuMTc4LDE2OC40OTcsMTk0LjE3OCwxNzQuOTQ1LDE5NC4xNzhMMTc0Ljk0NSwxOTQuMTc4eiIvPgoJCQk8L2c+CgkJPC9nPgoJCQoJCQk8bGluZSBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTpjdXJyZW50Q29sb3I7c3Ryb2tlLXdpZHRoOjEwO3N0cm9rZS1taXRlcmxpbWl0OjEwOyIgeDE9IjE4MC43MTkiIHkxPSIxMjMuNjQ1IiB4Mj0iMTgwLjcxOSIgeTI9IjI1Mi4wNjQiLz4KCQk8cGF0aCBzdHlsZT0iZmlsbDpjdXJyZW50Q29sb3I7c3Ryb2tlOmN1cnJlbnRDb2xvcjtzdHJva2Utd2lkdGg6MTA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7IiBkPSJNMjg2LjY2NiwxMjQuNzEzCgkJCWMwLDAuNTA5LTMuMTY0LDAuOTIyLTcuMDY2LDAuOTIySDgxLjczM2MtMy45MDMsMC03LjA2Ni0wLjQxNC03LjA2Ni0wLjkyMlYxMDguMTJjMC0wLjUwOSwzLjE2NC0wLjkyMiw3LjA2Ni0wLjkyMkgyNzkuNgoJCQljMy45MDIsMCw3LjA2NiwwLjQxNCw3LjA2NiwwLjkyMlYxMjQuNzEzeiIvPgoJPC9nPgoJPGc+CgkJPGc+CgkJCTxwYXRoIHN0eWxlPSJmaWxsOmN1cnJlbnRDb2xvcjsiIGQ9Ik03NSwxNDMuMzMzYzQ4LjY1OSwwLDk3LjMxOCwwLjAwMSwxNDUuOTc2LDAuMDAyYzIxLjk1MywwLDQzLjkwNSwwLDY1Ljg1NywwLjAwMQoJCQkJYzYuNDQ4LDAsNi40NDgtMTAsMC0xMGMtNDguNjU5LDAtOTcuMzE3LTAuMDAxLTE0NS45NzctMC4wMDJjLTIxLjk1MiwwLTQzLjkwNSwwLTY1Ljg1Ny0wLjAwMQoJCQkJQzY4LjU1MSwxMzMuMzMzLDY4LjU1MSwxNDMuMzMzLDc1LDE0My4zMzNMNzUsMTQzLjMzM3oiLz4KCQk8L2c+Cgk8L2c+Cgk8Zz4KCQk8Zz4KCQkJPHBhdGggc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yOyIgZD0iTTc1LDE1Ni4zMzNjNDguNjU5LDAsOTcuMzE4LDAuMDAxLDE0NS45NzYsMC4wMDJjMjEuOTUzLDAsNDMuOTA1LDAsNjUuODU3LDAuMDAxCgkJCQljNi40NDgsMCw2LjQ0OC0xMCwwLTEwYy00OC42NTksMC05Ny4zMTctMC4wMDEtMTQ1Ljk3Ny0wLjAwMmMtMjEuOTUyLDAtNDMuOTA1LDAtNjUuODU3LTAuMDAxCgkJCQlDNjguNTUxLDE0Ni4zMzMsNjguNTUxLDE1Ni4zMzMsNzUsMTU2LjMzM0w3NSwxNTYuMzMzeiIvPgoJCTwvZz4KCTwvZz4KCTxnPgoJCTxnPgoJCQk8cGF0aCBzdHlsZT0iZmlsbDpjdXJyZW50Q29sb3I7IiBkPSJNNzUsMTY5LjMzM2M0OC42NTksMCw5Ny4zMTgsMC4wMDEsMTQ1Ljk3NiwwLjAwMmMyMS45NTMsMCw0My45MDUsMCw2NS44NTcsMC4wMDEKCQkJCWM2LjQ0OCwwLDYuNDQ4LTEwLDAtMTBjLTQ4LjY1OSwwLTk3LjMxNy0wLjAwMS0xNDUuOTc3LTAuMDAyYy0yMS45NTIsMC00My45MDUsMC02NS44NTctMC4wMDEKCQkJCUM2OC41NTEsMTU5LjMzMyw2OC41NTEsMTY5LjMzMyw3NSwxNjkuMzMzTDc1LDE2OS4zMzN6Ii8+CgkJPC9nPgoJPC9nPgoJPGc+CgkJPGc+CgkJCTxwYXRoIHN0eWxlPSJmaWxsOmN1cnJlbnRDb2xvcjsiIGQ9Ik03NSwxODIuMzMyYzQ4LjY1OSwwLjAwMSw5Ny4zMTgsMC4wMDIsMTQ1Ljk3NiwwLjAwM2MyMS45NTMsMCw0My45MDUsMCw2NS44NTcsMC4wMDEKCQkJCWM2LjQ0OCwwLDYuNDQ4LTEwLDAtMTBjLTQ4LjY1OSwwLTk3LjMxNy0wLjAwMS0xNDUuOTc3LTAuMDAyYy0yMS45NTIsMC00My45MDUsMC02NS44NTctMC4wMDEKCQkJCUM2OC41NTEsMTcyLjMzMyw2OC41NTEsMTgyLjMzMiw3NSwxODIuMzMyTDc1LDE4Mi4zMzJ6Ii8+CgkJPC9nPgoJPC9nPgoJPGc+CgkJPGc+CgkJCTxwYXRoIHN0eWxlPSJmaWxsOmN1cnJlbnRDb2xvcjsiIGQ9Ik03NS4wNzcsMTk1LjE3OGM0OC42NTksMC4wMDEsOTcuMzE4LDAuMDAyLDE0NS45NzYsMC4wMDNjMjEuOTUzLDAsNDMuOTA1LDAuMDAxLDY1Ljg1NywwLjAwMQoJCQkJYzYuNDQ4LDAsNi40NDgtMTAsMC0xMGMtNDguNjU5LTAuMDAxLTk3LjMxNy0wLjAwMi0xNDUuOTc3LTAuMDAzYy0yMS45NTIsMC00My45MDUtMC4wMDEtNjUuODU3LTAuMDAxCgkJCQlDNjguNjI4LDE4NS4xNzgsNjguNjI4LDE5NS4xNzgsNzUuMDc3LDE5NS4xNzhMNzUuMDc3LDE5NS4xNzh6Ii8+CgkJPC9nPgoJPC9nPgoJPGc+CgkJPGc+CgkJCTxwYXRoIHN0eWxlPSJmaWxsOmN1cnJlbnRDb2xvcjsiIGQ9Ik03NS4wNzcsMjA4LjE3OGM0OC42NTksMC4wMDEsOTcuMzE4LDAuMDAyLDE0NS45NzYsMC4wMDNjMjEuOTUzLDAsNDMuOTA1LDAuMDAxLDY1Ljg1NywwLjAwMQoJCQkJYzYuNDQ4LDAsNi40NDgtMTAsMC0xMGMtNDguNjU5LTAuMDAxLTk3LjMxNy0wLjAwMi0xNDUuOTc3LTAuMDAzYy0yMS45NTIsMC00My45MDUtMC4wMDEtNjUuODU3LTAuMDAxCgkJCQlDNjguNjI4LDE5OC4xNzgsNjguNjI4LDIwOC4xNzgsNzUuMDc3LDIwOC4xNzhMNzUuMDc3LDIwOC4xNzh6Ii8+CgkJPC9nPgoJPC9nPgoJPGc+CgkJPGc+CgkJCTxwYXRoIHN0eWxlPSJmaWxsOmN1cnJlbnRDb2xvcjsiIGQ9Ik03NS4wNzcsMjIxLjE3OGM0OC42NTksMC4wMDEsOTcuMzE4LDAuMDAyLDE0NS45NzYsMC4wMDNjMjEuOTUzLDAsNDMuOTA1LDAuMDAxLDY1Ljg1NywwLjAwMQoJCQkJYzYuNDQ4LDAsNi40NDgtMTAsMC0xMGMtNDguNjU5LTAuMDAxLTk3LjMxNy0wLjAwMi0xNDUuOTc3LTAuMDAzYy0yMS45NTIsMC00My45MDUtMC4wMDEtNjUuODU3LTAuMDAxCgkJCQlDNjguNjI4LDIxMS4xNzgsNjguNjI4LDIyMS4xNzgsNzUuMDc3LDIyMS4xNzhMNzUuMDc3LDIyMS4xNzh6Ii8+CgkJPC9nPgoJPC9nPgoJPGc+CgkJPGc+CgkJCTxwYXRoIHN0eWxlPSJmaWxsOmN1cnJlbnRDb2xvcjsiIGQ9Ik03NS4wNzcsMjM0LjE3OGM0OC42NTksMC4wMDEsOTcuMzE4LDAuMDAyLDE0NS45NzYsMC4wMDNjMjEuOTUzLDAsNDMuOTA1LDAuMDAxLDY1Ljg1NywwLjAwMQoJCQkJYzYuNDQ4LDAsNi40NDgtMTAsMC0xMGMtNDguNjU5LTAuMDAxLTk3LjMxNy0wLjAwMi0xNDUuOTc3LTAuMDAzYy0yMS45NTIsMC00My45MDUtMC4wMDEtNjUuODU3LTAuMDAxCgkJCQlDNjguNjI4LDIyNC4xNzgsNjguNjI4LDIzNC4xNzgsNzUuMDc3LDIzNC4xNzhMNzUuMDc3LDIzNC4xNzh6Ii8+CgkJPC9nPgoJPC9nPgoJPGc+CgkJPGc+CgkJCTxwYXRoIHN0eWxlPSJmaWxsOmN1cnJlbnRDb2xvcjsiIGQ9Ik03NS4wNzcsMjQ3LjE3OGM0OC42NTksMC4wMDEsOTcuMzE4LDAuMDAyLDE0NS45NzYsMC4wMDNjMjEuOTUzLDAsNDMuOTA1LDAuMDAxLDY1Ljg1NywwLjAwMQoJCQkJYzYuNDQ4LDAsNi40NDgtMTAsMC0xMGMtNDguNjU5LTAuMDAxLTk3LjMxNy0wLjAwMi0xNDUuOTc3LTAuMDAzYy0yMS45NTIsMC00My45MDUtMC4wMDEtNjUuODU3LTAuMDAxCgkJCQlDNjguNjI4LDIzNy4xNzgsNjguNjI4LDI0Ny4xNzgsNzUuMDc3LDI0Ny4xNzhMNzUuMDc3LDI0Ny4xNzh6Ii8+CgkJPC9nPgoJPC9nPgoJPGc+CgkJPGc+CgkJCTxwYXRoIHN0eWxlPSJmaWxsOmN1cnJlbnRDb2xvcjsiIGQ9Ik03NS4wNzcsMjYwLjE3OGM0OC42NTksMC4wMDEsOTcuMzE4LDAuMDAyLDE0NS45NzYsMC4wMDNjMjEuOTUzLDAsNDMuOTA1LDAuMDAxLDY1Ljg1NywwLjAwMQoJCQkJYzYuNDQ4LDAsNi40NDgtMTAsMC0xMGMtNDguNjU5LTAuMDAxLTk3LjMxNy0wLjAwMi0xNDUuOTc3LTAuMDAzYy0yMS45NTIsMC00My45MDUtMC4wMDEtNjUuODU3LTAuMDAxCgkJCQlDNjguNjI4LDI1MC4xNzgsNjguNjI4LDI2MC4xNzgsNzUuMDc3LDI2MC4xNzhMNzUuMDc3LDI2MC4xNzh6Ii8+CgkJPC9nPgoJPC9nPgo8L2c+Cjwvc3ZnPgo=",
            "image1": "",
            "color1": "blue",
            "tooltip1": "white",
            "activeColor1": "green",
            "g_states-1": true,
            "text2": "Auf",
            "value2": "100",
            "icon2": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMzYxcHgiCgkgaGVpZ2h0PSIzNjFweCIgdmlld0JveD0iMCAwIDM2MSAzNjEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDM2MSAzNjE7Ij4KPGc+Cgk8cGF0aCBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTpjdXJyZW50Q29sb3I7c3Ryb2tlLXdpZHRoOjEwO3N0cm9rZS1taXRlcmxpbWl0OjEwOyIgZD0iTTI3OS41LDI0OC43MzRjMCwzLjY0NS0yLjk1NSw2LjYtNi42LDYuNkg4OC4xCgkJYy0zLjY0NiwwLTYuNi0yLjk1NS02LjYtNi42VjEyOS45MzRjMC0zLjY0NSwyLjk1NS02LjYsNi42LTYuNmgxODQuOGMzLjY0NSwwLDYuNiwyLjk1Niw2LjYsNi42VjI0OC43MzR6Ii8+Cgk8Zz4KCQk8Zz4KCQkJPHBhdGggc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yOyIgZD0iTTE3NC45NDUsMTk0LjE3OGMzLjkzNSwwLDcuODcsMCwxMS44MDUsMGM2LjQ0OCwwLDYuNDQ4LTEwLDAtMTBjLTMuOTM1LDAtNy44NywwLTExLjgwNSwwCgkJCQlDMTY4LjQ5NywxODQuMTc4LDE2OC40OTcsMTk0LjE3OCwxNzQuOTQ1LDE5NC4xNzhMMTc0Ljk0NSwxOTQuMTc4eiIvPgoJCTwvZz4KCTwvZz4KCQoJCTxsaW5lIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOmN1cnJlbnRDb2xvcjtzdHJva2Utd2lkdGg6MTA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7IiB4MT0iMTgwLjcxOSIgeTE9IjEyMy42NDUiIHgyPSIxODAuNzE5IiB5Mj0iMjUyLjA2NCIvPgoJPHBhdGggc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yO3N0cm9rZTpjdXJyZW50Q29sb3I7c3Ryb2tlLXdpZHRoOjEwO3N0cm9rZS1taXRlcmxpbWl0OjEwOyIgZD0iTTI4Ni42NjYsMTI0LjcxMwoJCWMwLDAuNTA5LTMuMTY0LDAuOTIyLTcuMDY2LDAuOTIySDgxLjczM2MtMy45MDMsMC03LjA2Ni0wLjQxNC03LjA2Ni0wLjkyMlYxMDguMTJjMC0wLjUwOSwzLjE2NC0wLjkyMiw3LjA2Ni0wLjkyMkgyNzkuNgoJCWMzLjkwMiwwLDcuMDY2LDAuNDE0LDcuMDY2LDAuOTIyVjEyNC43MTN6Ii8+Cgk8Zz4KCQk8Zz4KCQkJPHBhdGggc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yOyIgZD0iTTc1LDE0My4zMzNjNDguNjU5LDAsOTcuMzE4LDAuMDAxLDE0NS45NzYsMC4wMDJjMjEuOTUzLDAsNDMuOTA1LDAsNjUuODU3LDAuMDAxCgkJCQljNi40NDgsMCw2LjQ0OC0xMCwwLTEwYy00OC42NTksMC05Ny4zMTctMC4wMDEtMTQ1Ljk3Ny0wLjAwMmMtMjEuOTUyLDAtNDMuOTA1LDAtNjUuODU3LTAuMDAxCgkJCQlDNjguNTUxLDEzMy4zMzMsNjguNTUxLDE0My4zMzMsNzUsMTQzLjMzM0w3NSwxNDMuMzMzeiIvPgoJCTwvZz4KCTwvZz4KPC9nPgo8L3N2Zz4K",
            "image2": "",
            "color2": "blue",
            "tooltip2": "white",
            "activeColor2": "green",
            "g_states-2": true,
            "onlyIcon1": false
          },
          "style": {
            "bindings": [],
            "left": 6,
            "top": 72,
            "width": 300,
            "height": 45
          },
          "widgetSet": "jqui",
          "_id": "i000001"
        }
      ]
      
      posted in Visualisierung
      Longbow
      Longbow
    • DWD in der VIS-2

      Hallo

      kurze Frage, mir werden nun da ich alles neu gemacht habe, in der VIS-2 keine Widget von DWD mir angezeigt.
      WIe habt ihr das mit den Meldungen gemacht, wie auch die Farben damit hinterlegt.

      posted in Visualisierung
      Longbow
      Longbow
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo