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. Tester
  4. ...nicht in offiziellem Repo
  5. Test Adapter kanban v0.4.x Latest

NEWS

  • Monatsrückblick Oktober 2026 ist online!
    BluefoxB
    Bluefox
    9
    1
    153

  • Mitmachen: Sprich „ioBroker“ ein – für ein lokales Aktivierungswort
    BluefoxB
    Bluefox
    6
    1
    433

  • Neuer Blogbeitrag: KI in ioBroker, vom Helfer im Admin bis zum eigenen Smart Assistant
    BluefoxB
    Bluefox
    4
    1
    472

Test Adapter kanban v0.4.x Latest

Geplant Angeheftet Gesperrt Verschoben ...nicht in offiziellem Repo
16 Beiträge 8 Kommentatoren 1.2k Aufrufe 10 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.
  • bmuellerB
    bmuellerB
    bmueller
    schrieb am zuletzt editiert von bmueller
    #6

    Danke euch fürs Testen und das Feedback!

    @icebear @lyc: Avatar-Upload ("Bild konnte nicht gelesen werden") Den Fehler konnte ich reproduzieren: Die Content-Security-Policy der Oberfläche blockiert das lokale Einlesen des Bildes. Der Fix kommt im nächsten Update.

    @lyc: Sortierung Per Default gibt es bei Kanban bewusst keine automatische Sortierung: du schiebst die Karten selbst in die gewünschte Reihenfolge (klicken, halten, hoch/runter; geht auch per Touch am Handy). Eine automatische Sortierung wirft immer Fragen auf: nach Priorität? Nach Datum? Einträge ohne Datum oben oder unten? Nach Person? etc. pp.
    Was ich mir aber gut vorstellen kann: ein optionaler Schalter „nach Fälligkeit sortieren" pro Spalte. Dann bleibt „manuell" der Standard und wer will, schaltet die Sortierung dazu. Alternativ (oder zusätzlich) ein Anfasser zum leichteren Verschieben, wie bei den Spalten in den Board-Einstellungen. Wie sind hier die Meinungen der Community?

    @lyc – Karten auf ein anderes Board verschieben Guter Punkt, das gibt es aktuell nicht (nur neu anlegen). Nehme ich als Feature-Wunsch auf.

    Was die Integration von Messengern oder Pushdiensten angeht... da hat natürlich jeder seine persönlichen Vorlieben. Wenn ich heute Whatsapp und Pushover nativ integriere, möchte morgen jemand Matrix, übermorgen ein anderer PushBullet und Signal oder Telegram... usw.
    Daher würde ich das gerne anders lösen und diese Möglichkeit habt ihr bereits mit der Version 0.2.0: Der Adapter feuert bei jedem Ereignis einen ausgehenden Webhook und schreibt zusätzlich den State kanban.0.lastEvent (inklusive Board, Karte, Zuständigen und Fälligkeit). Damit kann sich jeder die Benachrichtigung per Skript oder Node-RED an jeden beliebigen Dienst (Pushover, Signal, Telegram, Pushbullet …) schicken lassen.

    Hier ein fertiges JavaScript-Beispiel (Telegram), das auch in der Doku landen wird.

    // ============================================================
    //  Kanban  ->  messenger notifications (Telegram example)
    //  Runs in the ioBroker JavaScript adapter.
    //  Reacts to kanban.0.lastEvent and sends the assigned users a
    //  message. The same pattern works with Pushover, Signal,
    //  Pushbullet, WhatsApp ... - just swap the sendTo line.
    // ============================================================
    
    // ---- Configuration -----------------------------------------
    const KANBAN    = 'kanban.0';                 // Kanban instance
    const MESSENGER = 'telegram.0';               // messenger instance (Telegram here)
    const BASE_URL  = 'http://192.168.1.10:8095'; // board base URL (fallback if the event has no link)
    
    // Mapping: Kanban user id  ->  messenger chat id
    // Key   = the Kanban user id (lowercase "name" as in card.assignees, e.g. "user1"), NOT the display name.
    // Value = the recipient id (Telegram: the numeric "ID" column of telegram.0.communicate.users).
    const USERS = {
        user1: '123456789',
        // user2: '234567890',
    };
    
    // Which events should trigger a message?
    // Available: cardCreated, cardAssigned, cardUpdated, cardMoved, cardDone, cardDeleted, cardDue
    // Tip: 'cardAssigned' + 'cardDue' is enough for most setups. Adding 'cardCreated'
    //      sends an extra message when a card is created.
    const EVENTS = ['cardAssigned', 'cardDue'];
    
    // Skip the person who triggered the change? Uses ev.detail.by (the actor).
    // Note: the board has NO login, so the web UI does not identify the actor -
    // "by" is only filled for changes made via API / webhooks / scripts that pass
    // a "by" field (e.g. your own agents). For plain clicks in the board UI this
    // option therefore has no effect.
    const SKIP_SELF = true;
    
    // If a person has no messenger mapping: send to everyone? (false = skip)
    const BROADCAST_IF_UNMAPPED = false;
    // ------------------------------------------------------------
    
    const HEADER = {
        cardAssigned: 'Assigned to you',
        cardDue:      'Due',
        cardCreated:  'New card',
        cardMoved:    'Moved',
        cardDone:     'Done',
        cardUpdated:  'Updated',
    };
    const PRIO = ['', 'Priority: High', 'Priority: Urgent'];
    
    function buildText(ev) {
        const c = ev.card || {};
        const b = ev.board || {};
        const lines = ['[Kanban] ' + (HEADER[ev.event] || ev.event), ''];
        lines.push(c.title || '(no title)');
        lines.push('Board: ' + (b.title || b.id || '?'));
        if (c.due)      lines.push('Due: ' + c.due + (c.dueTime ? ' ' + c.dueTime : ''));
        if (c.priority) lines.push(PRIO[c.priority]);
        // The adapter adds a ready-to-use deep link as ev.link; fall back to building one
        const link = ev.link || (c.id && b.id
            ? BASE_URL + '/?board=' + encodeURIComponent(b.id) + '&card=' + encodeURIComponent(c.id)
            : '');
        if (link) { lines.push(''); lines.push(link); }
        return lines.join('\n');
    }
    
    on({ id: KANBAN + '.lastEvent', change: 'any' }, (obj) => {
        let ev;
        try { ev = JSON.parse(obj.state.val); } catch (e) { return; }
        if (!ev || !EVENTS.includes(ev.event)) return;
    
        // Determine recipients
        let recipients;
        if (ev.event === 'cardAssigned' && ev.detail && ev.detail.assignee) {
            recipients = [ev.detail.assignee];                 // only the newly assigned person
        } else {
            recipients = (ev.card && ev.card.assignees) || []; // all assignees
        }
    
        // Optionally drop the person who triggered the change (no self-notification)
        const by = ev.detail && ev.detail.by;
        if (SKIP_SELF && by) recipients = recipients.filter(u => u !== by);
        if (!recipients.length) return;
    
        const text = buildText(ev);
    
        const already = new Set();
        for (const uid of recipients) {
            const chatId = USERS[uid];
            if (chatId) {
                if (already.has(chatId)) continue;
                already.add(chatId);
                sendTo(MESSENGER, { chatId: chatId, text: text }); // adjust to your messenger's sendTo parameters if needed
            } else if (BROADCAST_IF_UNMAPPED) {
                sendTo(MESSENGER, { text: text }); // adjust to your messenger's broadcast parameters if needed
            }
            // otherwise: no mapping -> skipped
        }
    });
    

    WhatsApp direkt einzubauen ist übrigens unpraktisch, weil der kostenlose WhatsApp-Adapter den API-Key an eine feste Empfängernummer (CallMeBot) bindet. Heisst, je User bräuchte man eine eigene Instanz.

    L 1 Antwort Letzte Antwort
    0
    • bmuellerB bmueller

      Danke euch fürs Testen und das Feedback!

      @icebear @lyc: Avatar-Upload ("Bild konnte nicht gelesen werden") Den Fehler konnte ich reproduzieren: Die Content-Security-Policy der Oberfläche blockiert das lokale Einlesen des Bildes. Der Fix kommt im nächsten Update.

      @lyc: Sortierung Per Default gibt es bei Kanban bewusst keine automatische Sortierung: du schiebst die Karten selbst in die gewünschte Reihenfolge (klicken, halten, hoch/runter; geht auch per Touch am Handy). Eine automatische Sortierung wirft immer Fragen auf: nach Priorität? Nach Datum? Einträge ohne Datum oben oder unten? Nach Person? etc. pp.
      Was ich mir aber gut vorstellen kann: ein optionaler Schalter „nach Fälligkeit sortieren" pro Spalte. Dann bleibt „manuell" der Standard und wer will, schaltet die Sortierung dazu. Alternativ (oder zusätzlich) ein Anfasser zum leichteren Verschieben, wie bei den Spalten in den Board-Einstellungen. Wie sind hier die Meinungen der Community?

      @lyc – Karten auf ein anderes Board verschieben Guter Punkt, das gibt es aktuell nicht (nur neu anlegen). Nehme ich als Feature-Wunsch auf.

      Was die Integration von Messengern oder Pushdiensten angeht... da hat natürlich jeder seine persönlichen Vorlieben. Wenn ich heute Whatsapp und Pushover nativ integriere, möchte morgen jemand Matrix, übermorgen ein anderer PushBullet und Signal oder Telegram... usw.
      Daher würde ich das gerne anders lösen und diese Möglichkeit habt ihr bereits mit der Version 0.2.0: Der Adapter feuert bei jedem Ereignis einen ausgehenden Webhook und schreibt zusätzlich den State kanban.0.lastEvent (inklusive Board, Karte, Zuständigen und Fälligkeit). Damit kann sich jeder die Benachrichtigung per Skript oder Node-RED an jeden beliebigen Dienst (Pushover, Signal, Telegram, Pushbullet …) schicken lassen.

      Hier ein fertiges JavaScript-Beispiel (Telegram), das auch in der Doku landen wird.

      // ============================================================
      //  Kanban  ->  messenger notifications (Telegram example)
      //  Runs in the ioBroker JavaScript adapter.
      //  Reacts to kanban.0.lastEvent and sends the assigned users a
      //  message. The same pattern works with Pushover, Signal,
      //  Pushbullet, WhatsApp ... - just swap the sendTo line.
      // ============================================================
      
      // ---- Configuration -----------------------------------------
      const KANBAN    = 'kanban.0';                 // Kanban instance
      const MESSENGER = 'telegram.0';               // messenger instance (Telegram here)
      const BASE_URL  = 'http://192.168.1.10:8095'; // board base URL (fallback if the event has no link)
      
      // Mapping: Kanban user id  ->  messenger chat id
      // Key   = the Kanban user id (lowercase "name" as in card.assignees, e.g. "user1"), NOT the display name.
      // Value = the recipient id (Telegram: the numeric "ID" column of telegram.0.communicate.users).
      const USERS = {
          user1: '123456789',
          // user2: '234567890',
      };
      
      // Which events should trigger a message?
      // Available: cardCreated, cardAssigned, cardUpdated, cardMoved, cardDone, cardDeleted, cardDue
      // Tip: 'cardAssigned' + 'cardDue' is enough for most setups. Adding 'cardCreated'
      //      sends an extra message when a card is created.
      const EVENTS = ['cardAssigned', 'cardDue'];
      
      // Skip the person who triggered the change? Uses ev.detail.by (the actor).
      // Note: the board has NO login, so the web UI does not identify the actor -
      // "by" is only filled for changes made via API / webhooks / scripts that pass
      // a "by" field (e.g. your own agents). For plain clicks in the board UI this
      // option therefore has no effect.
      const SKIP_SELF = true;
      
      // If a person has no messenger mapping: send to everyone? (false = skip)
      const BROADCAST_IF_UNMAPPED = false;
      // ------------------------------------------------------------
      
      const HEADER = {
          cardAssigned: 'Assigned to you',
          cardDue:      'Due',
          cardCreated:  'New card',
          cardMoved:    'Moved',
          cardDone:     'Done',
          cardUpdated:  'Updated',
      };
      const PRIO = ['', 'Priority: High', 'Priority: Urgent'];
      
      function buildText(ev) {
          const c = ev.card || {};
          const b = ev.board || {};
          const lines = ['[Kanban] ' + (HEADER[ev.event] || ev.event), ''];
          lines.push(c.title || '(no title)');
          lines.push('Board: ' + (b.title || b.id || '?'));
          if (c.due)      lines.push('Due: ' + c.due + (c.dueTime ? ' ' + c.dueTime : ''));
          if (c.priority) lines.push(PRIO[c.priority]);
          // The adapter adds a ready-to-use deep link as ev.link; fall back to building one
          const link = ev.link || (c.id && b.id
              ? BASE_URL + '/?board=' + encodeURIComponent(b.id) + '&card=' + encodeURIComponent(c.id)
              : '');
          if (link) { lines.push(''); lines.push(link); }
          return lines.join('\n');
      }
      
      on({ id: KANBAN + '.lastEvent', change: 'any' }, (obj) => {
          let ev;
          try { ev = JSON.parse(obj.state.val); } catch (e) { return; }
          if (!ev || !EVENTS.includes(ev.event)) return;
      
          // Determine recipients
          let recipients;
          if (ev.event === 'cardAssigned' && ev.detail && ev.detail.assignee) {
              recipients = [ev.detail.assignee];                 // only the newly assigned person
          } else {
              recipients = (ev.card && ev.card.assignees) || []; // all assignees
          }
      
          // Optionally drop the person who triggered the change (no self-notification)
          const by = ev.detail && ev.detail.by;
          if (SKIP_SELF && by) recipients = recipients.filter(u => u !== by);
          if (!recipients.length) return;
      
          const text = buildText(ev);
      
          const already = new Set();
          for (const uid of recipients) {
              const chatId = USERS[uid];
              if (chatId) {
                  if (already.has(chatId)) continue;
                  already.add(chatId);
                  sendTo(MESSENGER, { chatId: chatId, text: text }); // adjust to your messenger's sendTo parameters if needed
              } else if (BROADCAST_IF_UNMAPPED) {
                  sendTo(MESSENGER, { text: text }); // adjust to your messenger's broadcast parameters if needed
              }
              // otherwise: no mapping -> skipped
          }
      });
      

      WhatsApp direkt einzubauen ist übrigens unpraktisch, weil der kostenlose WhatsApp-Adapter den API-Key an eine feste Empfängernummer (CallMeBot) bindet. Heisst, je User bräuchte man eine eigene Instanz.

      L
      L
      lyc
      schrieb am zuletzt editiert von
      #7

      @bmueller sagte:

      @lyc: Sortierung Per Default gibt es bei Kanban bewusst keine automatische Sortierung: du schiebst die Karten selbst in die gewünschte Reihenfolge (klicken, halten, hoch/runter; geht auch per Touch am Handy). Eine automatische Sortierung wirft immer Fragen auf: nach Priorität? Nach Datum? Einträge ohne Datum oben oder unten? Nach Person? etc. pp.
      Was ich mir aber gut vorstellen kann: ein optionaler Schalter „nach Fälligkeit sortieren" pro Spalte. Dann bleibt „manuell" der Standard und wer will, schaltet die Sortierung dazu. Alternativ (oder zusätzlich) ein Anfasser zum leichteren Verschieben, wie bei den Spalten in den Board-Einstellungen. Wie sind hier die Meinungen der Community?

      Sortieren, gerade nach Datum , ist in meinen Augen nur eine konsequente Erweiterung der Benachrichtigung. Ich kann ja auch nach Nutzer "sortieren" , also ein/ausblenden. Beim rumprobieren mit ein paar mehr Kacheln war, das die erste Funktion, die ich gesucht habe, somit ist für mich Dein optionaler Schalter eine gute Idee, so könnte man nach Fälligkeit und zusätzlich über die Nutzer filtern.

      Das mit den Messengern verstehe ich. Neben E-Mail , nativ einen Messenger zu unterstützen, wie Telegram oder Pushover würde die "Hürde" den Adapter zu nutzen in meinen Augen senken. Obwohl Blockly das auch bequem lösen würde.

      1 Antwort Letzte Antwort
      0
      • bmuellerB
        bmuellerB
        bmueller
        schrieb am zuletzt editiert von
        #8

        Neue Version 0.3.0. Mehr dazu im ersten Post.

        M 1 Antwort Letzte Antwort
        0
        • bmuellerB bmueller

          Neue Version 0.3.0. Mehr dazu im ersten Post.

          M
          M
          muuulle
          schrieb am zuletzt editiert von muuulle
          #9

          @bmueller
          Moin,
          großartiger Adapter. Er trifft genau meine Anforderungen und löst ganz viel Blockly ab 👍

          Ich werde es in den nächsten Tagen testen. Soll ich hier oder bei github Anregungen posten?

          Vorab.
          Die Farbgebung von Daten ist nicht intuitiv. Bedeutet orange = fällig?
          IMG_8484.png
          Der 25.8 kann noch nicht fällig sein und auch nicht 17:00 am 24.8.

          Die Datenpunkt overdue werden nicht geändert. Hier steht weiterhin eine Null (ich habe keinen E-Mail Adapter installiert).

          Edit.
          Gerne würde ich die Farben etwas an mein Farbkonzept anpassen. Soll ich das über individuellen CSS lösen? Oder hast du noch vor, so etwas umzusetzen?

          Wenn ich User umbenenne ist die Aufgabe weiter dem bisherigen Namen zugeordnet (auf dem Bild User U).

          Auf einem kleinen Bildschirm rutscht die Auswahl des Verantwortlichen aus dem Bereich des unmittelbar sichtbaren. Vielleicht sollte man ihn als Pflichtfeld weiter oben positionieren.

          Kann man in die Überschrift auch die Anzahl der fälligen Aufgaben aufnehmen? Dann könnte man die Spalten zusammen klappen.

          Auch aus der Perspektive Platzsparen: Das Plus könnte sich in die Überschriftenzeile einer Spalte.

          Die einzelnen (freiwilligen) Angeben beim anlegen einer Aufgabe könnten in den Einstellungen ausblendbar sein. Ich benötige die für meinen Workflow nicht (bspw. Ort, Link, Label, etc.)

          Vielen Dank

          bmuellerB 1 Antwort Letzte Antwort
          0
          • M muuulle

            @bmueller
            Moin,
            großartiger Adapter. Er trifft genau meine Anforderungen und löst ganz viel Blockly ab 👍

            Ich werde es in den nächsten Tagen testen. Soll ich hier oder bei github Anregungen posten?

            Vorab.
            Die Farbgebung von Daten ist nicht intuitiv. Bedeutet orange = fällig?
            IMG_8484.png
            Der 25.8 kann noch nicht fällig sein und auch nicht 17:00 am 24.8.

            Die Datenpunkt overdue werden nicht geändert. Hier steht weiterhin eine Null (ich habe keinen E-Mail Adapter installiert).

            Edit.
            Gerne würde ich die Farben etwas an mein Farbkonzept anpassen. Soll ich das über individuellen CSS lösen? Oder hast du noch vor, so etwas umzusetzen?

            Wenn ich User umbenenne ist die Aufgabe weiter dem bisherigen Namen zugeordnet (auf dem Bild User U).

            Auf einem kleinen Bildschirm rutscht die Auswahl des Verantwortlichen aus dem Bereich des unmittelbar sichtbaren. Vielleicht sollte man ihn als Pflichtfeld weiter oben positionieren.

            Kann man in die Überschrift auch die Anzahl der fälligen Aufgaben aufnehmen? Dann könnte man die Spalten zusammen klappen.

            Auch aus der Perspektive Platzsparen: Das Plus könnte sich in die Überschriftenzeile einer Spalte.

            Die einzelnen (freiwilligen) Angeben beim anlegen einer Aufgabe könnten in den Einstellungen ausblendbar sein. Ich benötige die für meinen Workflow nicht (bspw. Ort, Link, Label, etc.)

            Vielen Dank

            bmuellerB
            bmuellerB
            bmueller
            schrieb am zuletzt editiert von bmueller
            #10

            @muuulle Hi, umfangreiches Feedback. Danke dafür schon mal. Anregungen, Bugs und Wünsche am liebsten in Github. Dann hab ich es alles zentral und kann es Stück für Stück abarbeiten, statt aus dem Fliesstext zu entnehmen.
            Ich schau mir die einzelnen Punkte die nächsten Tage an, aber hier schon mal erste Antworten:

            • Orange heisst: heute oder morgen fällig. Sobald du drüber bist, wird der Hintergrund rot
            • Aktuell löse das bitte über CSS. Dafür gibt es extra ein Feld im Adapter. Hier mal meine Umsetzung als Beispiel (allerdings habe ich mir auch ein eigenes Theme in Lovelace gebaut)
            /* Kanban: Schwarz + Orange (angelehnt an Lovelace "pure-black-orange") */
            html[data-theme="dark"] {
             --bg: #000000;               /* Seitenhintergrund schwarz */
             --surface: #000;             /* Karten & Dialoge */
             --surface2: #0b0b0b;         /* Spalten-Hintergrund (fast schwarz) */
             --text: #f5f5f5;
             --muted: #9a9a9a;
             --border: rgba(255,152,0,0.3);        /* Raender orange */
             --accent: #ff9800 !important;         /* Akzent orange */
             --shadow: 0 1px 4px rgba(0, 0, 0, .6);
            }
            /* Helles Gegenstueck: warmes Weiss mit demselben Orange */
            html[data-theme="light"] {
             --bg: #faf7f2;               /* Seitenhintergrund warmweiss */
             --surface: #ffffff;          /* Karten & Dialoge */
             --surface2: #f2ece3;         /* Spalten-Hintergrund */
             --text: #1c1a17;
             --muted: #6f6a63;
             --border: rgba(230,120,0,0.35);
             --accent: #e67e00 !important;         /* etwas dunkleres Orange fuer Kontrast */
             --shadow: 0 1px 4px rgba(0, 0, 0, .15);
            }
            /* Spalten und Karten mit Rahmen in der jeweiligen Randfarbe */
            .column { border: 1px solid var(--border); }
            .card { border: 1px solid var(--border); }
            
            • Guter Fund mit dem Umbenennen des Users. Das werde ich fixen müssen.
            • Ich bin eh noch nicht so ganz zufrieden mit der Sortierung. Das nehme ich mal als Punkt mit.
            • Erklär mir bitte, was du mit der Überschrift und den fälligen Aufgaben meinst.
            • Was den Button für neue Karten angeht... den hatte ich anfangs oben, was die Spalten oben sehr vollgestopft machte... Gerade wenn man Sortierungen ändert.
            • Ausblenden von freiwilligen Aufgaben müsste man zentral regeln, was ich mir aber vorstellen könnte, wäre, die einzelnen Themenbereiche auf- oder zuzuklappen.
            M 1 Antwort Letzte Antwort
            0
            • bmuellerB bmueller

              @muuulle Hi, umfangreiches Feedback. Danke dafür schon mal. Anregungen, Bugs und Wünsche am liebsten in Github. Dann hab ich es alles zentral und kann es Stück für Stück abarbeiten, statt aus dem Fliesstext zu entnehmen.
              Ich schau mir die einzelnen Punkte die nächsten Tage an, aber hier schon mal erste Antworten:

              • Orange heisst: heute oder morgen fällig. Sobald du drüber bist, wird der Hintergrund rot
              • Aktuell löse das bitte über CSS. Dafür gibt es extra ein Feld im Adapter. Hier mal meine Umsetzung als Beispiel (allerdings habe ich mir auch ein eigenes Theme in Lovelace gebaut)
              /* Kanban: Schwarz + Orange (angelehnt an Lovelace "pure-black-orange") */
              html[data-theme="dark"] {
               --bg: #000000;               /* Seitenhintergrund schwarz */
               --surface: #000;             /* Karten & Dialoge */
               --surface2: #0b0b0b;         /* Spalten-Hintergrund (fast schwarz) */
               --text: #f5f5f5;
               --muted: #9a9a9a;
               --border: rgba(255,152,0,0.3);        /* Raender orange */
               --accent: #ff9800 !important;         /* Akzent orange */
               --shadow: 0 1px 4px rgba(0, 0, 0, .6);
              }
              /* Helles Gegenstueck: warmes Weiss mit demselben Orange */
              html[data-theme="light"] {
               --bg: #faf7f2;               /* Seitenhintergrund warmweiss */
               --surface: #ffffff;          /* Karten & Dialoge */
               --surface2: #f2ece3;         /* Spalten-Hintergrund */
               --text: #1c1a17;
               --muted: #6f6a63;
               --border: rgba(230,120,0,0.35);
               --accent: #e67e00 !important;         /* etwas dunkleres Orange fuer Kontrast */
               --shadow: 0 1px 4px rgba(0, 0, 0, .15);
              }
              /* Spalten und Karten mit Rahmen in der jeweiligen Randfarbe */
              .column { border: 1px solid var(--border); }
              .card { border: 1px solid var(--border); }
              
              • Guter Fund mit dem Umbenennen des Users. Das werde ich fixen müssen.
              • Ich bin eh noch nicht so ganz zufrieden mit der Sortierung. Das nehme ich mal als Punkt mit.
              • Erklär mir bitte, was du mit der Überschrift und den fälligen Aufgaben meinst.
              • Was den Button für neue Karten angeht... den hatte ich anfangs oben, was die Spalten oben sehr vollgestopft machte... Gerade wenn man Sortierungen ändert.
              • Ausblenden von freiwilligen Aufgaben müsste man zentral regeln, was ich mir aber vorstellen könnte, wäre, die einzelnen Themenbereiche auf- oder zuzuklappen.
              M
              M
              muuulle
              schrieb am zuletzt editiert von
              #11

              @bmueller

              /* Kanban: Schwarz + Orange (angelehnt an Lovelace "pure-black-orange") */
              html[data-theme="dark"] {
               --bg: #000000;               /* Seitenhintergrund schwarz */
               --surface: #000;             /* Karten & Dialoge */
               --surface2: #0b0b0b;         /* Spalten-Hintergrund (fast schwarz) */
               --text: #f5f5f5;
               --muted: #9a9a9a;
               --border: rgba(255,152,0,0.3);        /* Raender orange */
               --accent: #ff9800 !important;         /* Akzent orange */
               --shadow: 0 1px 4px rgba(0, 0, 0, .6);
              }
              /* Helles Gegenstueck: warmes Weiss mit demselben Orange */
              html[data-theme="light"] {
               --bg: #faf7f2;               /* Seitenhintergrund warmweiss */
               --surface: #ffffff;          /* Karten & Dialoge */
               --surface2: #f2ece3;         /* Spalten-Hintergrund */
               --text: #1c1a17;
               --muted: #6f6a63;
               --border: rgba(230,120,0,0.35);
               --accent: #e67e00 !important;         /* etwas dunkleres Orange fuer Kontrast */
               --shadow: 0 1px 4px rgba(0, 0, 0, .15);
              }
              /* Spalten und Karten mit Rahmen in der jeweiligen Randfarbe */
              .column { border: 1px solid var(--border); }
              .card { border: 1px solid var(--border); }
              

              Das hat sehr gut funktioniert:
              IMG_8488.png

              1 Antwort Letzte Antwort
              0
              • R
                R
                RandyAndy
                schrieb am zuletzt editiert von RandyAndy
                #12

                Ich musste zwar den Port ändern. Aber danach konnte ich das Board öffnen.
                Ich vermute mal damit man das in der VIS auch sehen kann, muss man das per iFrame einbinden.

                1 Antwort Letzte Antwort
                0
                • bmuellerB
                  bmuellerB
                  bmueller
                  schrieb am zuletzt editiert von
                  #13

                  Neue Version 0.3.2.

                  Der Schwerpunkt lag auf dem Feedback aus diesem Thread: Fälligkeitsfarben in vier Stufen, Zahlen im Spaltenkopf, umgebauter Karteneditor mit den Pflichtfeldern oben und aufklappbaren Abschnitten, stabile Benutzer-IDs samt Reparatur für verwaiste Zuständige. Danke an @muuulle für die ausführliche Liste in Beitrag #9.

                  Was alles drin ist, steht im ersten Post unter „Neu in 0.3.2".

                  1 Antwort Letzte Antwort
                  1
                  • bmuellerB
                    bmuellerB
                    bmueller
                    schrieb am zuletzt editiert von
                    #14

                    Neue Version 0.4.0

                    Der KanBan-Adapter unterstützt jetzt Vorlagen für Karten und erlaubt durch Exportieren und Importieren dieser auch das Übertragen an andere Adapter.

                    Mehr Details im ersten Post unter "Neu in 0.4.0".

                    Was alles drin ist, steht im ersten Post unter „Neu in 0.3.2".

                    1 Antwort Letzte Antwort
                    1
                    • M
                      M
                      muuulle
                      schrieb am zuletzt editiert von
                      #15

                      Läuft ohne Auffälligkeiten. Sehr guter Adapter, vielen Dank 💪

                      1 Antwort Letzte Antwort
                      0
                      • mcm1957M
                        mcm1957M
                        mcm1957
                        Developer Most Active
                        schrieb am zuletzt editiert von mcm1957
                        #16

                        Der Adapter wurde ins LATEST Repository aufgenommen und sollte dort spätestens innerhalb von 24 Stunden sichtbar sein.

                        Bitte ein neues Topic im Testerbereich (https://forum.iobroker.net/category/91/tester) anzulegen und dieses Topic hier schließen lassen. Zur besseren Übersicht bitte nach Möglichkeit einen Titel der Art

                        „Test Adapter adaptername Vx.x.x“,

                        verwenden. Ein solcher Titel erleichtert es, den Thread über die Suchfunktion des Forums zu finden und das Topic dem richtigen Adapter zuzuordnen.

                        Hinweis: Falls bereits ein Test-Thread im Bereich Tester (https://forum.iobroker.net/category/91/tester) existiert, kann dieser gerne weiterverwendet werden, eine allfälliegeAnpassung des Titels bitte überlegen.

                        Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                        Support Repositoryverwaltung.

                        Wer 'nen Kaffee spendieren will: https://paypal.me

                        LESEN - gute Forenbeitrage

                        1 Antwort Letzte Antwort
                        0

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

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

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

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


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        574

                        Online

                        33.1k

                        Benutzer

                        84.2k

                        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