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] KanBan-Board

NEWS

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

  • Neues Video: Der KI-Assistent im ioBroker Admin
    BluefoxB
    Bluefox
    7
    1
    189

  • Der neue Monatsrückblick für September 2026 ist online!
    BluefoxB
    Bluefox
    9
    1
    674

[Test] KanBan-Board

Geplant Angeheftet Gesperrt Verschoben ...nicht in offiziellem Repo
15 Beiträge 7 Kommentatoren 1.1k Aufrufe 9 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
    #1

    Neuer Adapter: Kanban Board

    Stand: Version 0.4.0. Was sich seit 0.3.2 geändert hat, steht unten unter "Neu in 0.4.0".

    Ein Kanban-Board als eigener ioBroker-Adapter. Er bringt seinen eigenen Webserver mit, liefert eine Single-Page-App ohne Framework aus und hält alle offenen Ansichten per WebSocket live synchron. Gedacht für Haushalte, die Aufgaben gemeinsam verwalten wollen, ob Familie, WG oder Wartungsplan fürs Haus, und die sie dort haben möchten, wo ohnehin ioBroker läuft. Jedes Ereignis landet in einem State, den Skripte und Node-RED auswerten können, und das Board lässt sich als Webpage-Card in Lovelace einbetten.

    Die Features

    Kanban-Board, Übersicht

    • Eigener Webserver (Standardport 8095), die Oberfläche kommt direkt vom Adapter, für UI-Updates ist kein iobroker upload nötig
    • Mehrere Boards mit frei konfigurierbaren Spalten (Name, Reihenfolge, Anzeige-Limit, WIP-Limit, Häkchen für "Neu" und "Erledigt")
    • Karten mit Titel, Markdown-Beschreibung, Zuständigen, Fälligkeit (auf Wunsch mit Uhrzeit), Labels, Farbe, Priorität, Checkliste, Link, Ort und Kalender-Einladung
    • Wiederkehrende Aufgaben: täglich, wöchentlich, monatlich, jährlich, n-ter Wochentag, n-ter Arbeitstag inklusive Feiertagsberechnung, dazu freie Cron-Ausdrücke
    • Kartenvorlagen: eine Karte als Vorlage speichern, neue Karten daraus füllen, Vorlagen als Datei zwischen Boards und Instanzen austauschen
    • Papierkorb je Board: Gelöschtes bleibt 30 Tage wiederherstellbar, altes Erledigtes wandert auf Wunsch automatisch dorthin
    • Sortierung je Spalte in fünf Modi mit Richtungsumschalter, oder weiter von Hand per Drag & Drop
    • Drag & Drop mit Maus und Touch, Live-Sync über WebSocket auf alle offenen Ansichten
    • Mehrere Benutzer ohne Login: Die Benutzerliste steht in den Instanzeinstellungen, je Board wird festgelegt, wer zuweisbar ist. Die Chips in der Kopfzeile sind zugleich ein je Board gespeicherter Personenfilter
    • E-Mail-Benachrichtigungen über den email-Adapter bei Zuweisung, Fälligkeit und Karten-Ereignissen, je Ereignis und je Benutzer schaltbar, mit Kalender-Einladung als Anhang
    • Elf Sprachen (de, en, fr, nl, it, es, pl, pt, ru, uk, zh-cn), dazu Datums- und Uhrzeitformat je Instanz, Theme hell/dunkel/automatisch, Akzentfarbe und eigenes CSS

    Karten-Editor mit allen Feldern

    Integration

    • REST-API für alles, was die Oberfläche auch kann. Lesen ist im LAN offen, Schreiben braucht einen Token
    • Eingehende Webhooks mit eigenen Tokens je Integration, auf einzelne Boards begrenzbar
    • Ausgehende Webhooks: JSON-POST an beliebige URLs bei jedem Ereignis
    • sendTo und der action-State für ioBroker-Skripte, mit demselben Kommando-Vokabular
    • Spiegel-States je Board und je Benutzer (Kartenzahl, überfällige Karten, letztes Ereignis) für Dashboards und Skript-Trigger
    • iframe-tauglich, mit ?embed=1 für Lovelace-Webpage-Cards

    Andere Dienste wie Telegram oder Pushover sind bewusst nicht fest eingebaut. Jedes Ereignis landet im State kanban.0.lastEvent und geht auf Wunsch als ausgehender Webhook raus, ein kurzes Skript verteilt es weiter. Ein fertiges Telegram-Beispiel zum Kopieren steht in der Doku, für Pushover, Pushbullet oder WhatsApp tauscht man nur die Sende-Zeile.

    Mobil

    Auf schmalen Bildschirmen stapelt das Board die Spalten untereinander, jede lässt sich als Akkordeon ein- und ausklappen. Dialoge öffnen im Vollbild mit fester Aktionsleiste. Zum Verschieben eine Karte kurz gedrückt halten, beim Ziehen erscheint oben eine Leiste mit den Zielspalten.

    Mobile Ansicht, Schnellmenü beim Ziehen einer Karte

    Installation

    Voraussetzungen: js-controller ab 6.0.11 und Node.js ab 22. Für E-Mail-Benachrichtigungen zusätzlich eine eingerichtete email-Instanz, für regionsgenaue Feiertage optional der feiertage-Adapter.

    Im offiziellen ioBroker-Repository ist der Adapter noch nicht, die Aufnahme läuft. Bis dahin über Adapter → eigene URL installieren:

    https://github.com/bmueller77/ioBroker.kanban
    

    Danach eine Instanz anlegen, unter Instanzen den Port prüfen und die Oberfläche unter http://<host>:8095/ öffnen.

    Neu in 0.4.0

    Kartenvorlagen. Eine Vorlage ist ein benannter Satz Kartenfelder. Sie gehört zu einem Board und ist ein Stempel, keine Verbindung: Was aus ihr entsteht, ist danach eine gewöhnliche Karte und weiß nichts mehr von ihrer Herkunft.

    Anlegen: An einer bestehenden Karte auf "Verwalten" gehen und dort "Als Vorlage speichern" wählen. Das Namensfeld ist mit dem Kartentitel vorbelegt, der Name ist zugleich der Titel, den spätere Karten bekommen. Gibt es den Namen schon, fragt der Adapter nach und ersetzt den Inhalt der bestehenden Vorlage.

    Verwalten-Dialog mit der Option Als Vorlage speichern

    Benutzen: Beim Anlegen einer Karte steht links unten im Editor ein Auswahlfeld mit den Vorlagen des Boards. Eine Auswahl setzt alle Felder neu, auch die in der Vorlage leeren; steht im Editor schon etwas, kommt vorher eine Rückfrage. Labels, die das Board nicht mehr kennt, und Zuständige, die kein Mitglied des Boards sind, fallen dabei weg.

    Neue Karte im Editor, gefüllt aus einer Vorlage, links unten das Auswahlfeld

    Zwei Dinge werden beim Export nicht berücksichtigt. Das Fälligkeitsdatum bleibt weg, weil ein festes Datum altert: Eine im Januar gespeicherte Vorlage legte im März Karten mit einem Datum von vorgestern an. Und die Haken der Checkliste werden zurückgesetzt, weil eine Vorlage die Punkte festhält, nicht den Stand. Die Uhrzeit bleibt dagegen erhalten, denn 17:00 ist eine Eigenschaft der Aufgabe.

    Trägt die Vorlage eine Wiederholung und bleibt das Fälligkeitsfeld leer, rechnet der Adapter den nächsten Termin selbst aus und hängt das Raster an den heutigen Tag. Eine Vorlage "alle 30 Tage" erzeugt also eine Karte, die heute fällig ist und von dort an zählt, nicht nach einem Raster von vor einem halben Jahr.

    Verwalten: In den Board-Einstellungen gibt es den Reiter "Vorlagen". Dort lassen sich Vorlagen per Ziehen sortieren, umbenennen, im Karteneditor öffnen und ändern, exportieren und löschen. Die Reihenfolge im Reiter ist die Reihenfolge im Auswahlfeld. Wirksam wird alles erst mit dem Speichern des Dialogs.

    Einstellungen, Reiter Vorlagen

    Zwischen Boards und Instanzen übertragen: Vorlagen lassen sich einzeln oder gesammelt exportieren, als Datei oder als Text zum Kopieren, und auf einem anderen Board oder in einer anderen Instanz wieder importieren. Ein Import hängt an und ersetzt nie, ein Name, den es schon gibt, bekommt einen Zähler. Labels werden über den Namen zugeordnet.

    Aus Skripten. Das Kommando addCard nimmt ein Feld template, gesucht wird erst über die ID, dann über den Namen:

    { "cmd": "addCard", "board": "haus", "template": "Filterwechsel", "due": "2026-10-01" }
    

    Seit 0.3.2 außerdem

    • Ziehen mit dem Finger geht wieder. Auf Tablets ließ sich eine Karte gar nicht aufnehmen. Wird eine Karte an den Rand gezogen, scrollt das Board jetzt mit.
    • Das Schnellmenü mit den Zielspalten erscheint immer dann, wenn nicht alle Spalten ins Bild passen, also auch auf Tablets. Im Dialog "Ansichten" lässt es sich über "Landezonen beim Ziehen immer anzeigen" dauerhaft einschalten. Der Papierkorb steht darin nur, wenn er auch als Spalte eingeblendet ist.
    • Die Oberfläche wird nicht mehr zwischengespeichert. Fully Kiosk hatte nach einem Update tagelang die alte Fassung gezeigt, obwohl der Adapter längst die neue auslieferte.
    • Alle Logs in englisch: Meldungen im Log, Antworten der REST-API und auf sendTo. Dasselbe gilt für die Namen der States, auch in bestehenden Installationen, der Adapter benennt sie beim Start einmal um. Die Oberfläche bleibt in der eingestellten Sprache.

    Der vollständige Changelog steht im README des Repositories, die Historie älterer Versionen ebenfalls.

    Wichtig für bestehende Automatisierungen

    Die Benutzer-Kanäle im Objektbaum haben seit 0.3.8 neue IDs. Der Anzeigename wird bereinigt, bevor er Teil der Objekt-ID wird: Kleinbuchstaben, Umlaute ausgeschrieben, alles andere zu Bindestrichen zusammengezogen. Aus "Tina Müller" wird kanban.0.users.tina-mueller, bis 0.3.7 stand dort kanban.0.users.Tina Müller mit Leerzeichen und Umlaut. Beim ersten Start wird der alte Kanal entfernt und unter der neuen ID neu angelegt, jeder entfernte Kanal steht im Log. Skripte und Views, die die alten IDs lesen, müssen einmal angepasst werden. Der Anzeigename selbst bleibt im Kanalnamen und auf den Karten.

    Fehlermeldungen sind seit 0.3.3 englisch. Wer in einem Skript auf den deutschen Wortlaut prüft, etwa auf existiert nicht, muss das nachziehen.

    Wer von einer Version vor 0.3.2 kommt: 0.3.2 hat zwei Lücken in der API geschlossen. Der Schreib-Token war für jede Webseite lesbar, und ein board-begrenzter Token kam aus seinen Boards heraus. Dabei hat sich einiges geändert, worauf sich ein Skript verlassen haben kann:

    • CORS ist auf /api und /webhook beschränkt und nur für eingetragene Herkünfte offen, Vorgabe leer. Betroffen ist ausschließlich der Zugriff aus einem Browser, Skripte und curl liefen nie über diese Prüfung.
    • Tokens werden nicht mehr als URL-Parameter angenommen, und eine leer gelassene Token-Zeile passt nicht mehr auf jede Anfrage ohne Token.
    • Ein leeres Feld "Erlaubte Boards" gilt als "keins", nicht mehr als "alle".
    • Die API biegt fehlerhafte Angaben nicht mehr stillschweigend zurecht. Eine unbekannte columnId landete bisher in der ersten Spalte, ein ungültiges due wurde verworfen, getBoard auf ein unbekanntes Board antwortete mit 200 und null. Alle drei Fälle liefern jetzt einen Fehler.

    Rückmeldungen gerne hier im Thread, Wünsche und Fehlermeldungen bitte in GitHub. Die ausführliche Doku liegt im Repository unter docs/de/README.md, den vollständigen Changelog gibt es im README.

    sigi234S 1 Antwort Letzte Antwort
    7
    • arteckA
      arteckA
      arteck
      Developer Most Active
      schrieb am zuletzt editiert von
      #2

      Agile Haushaltsführung.. RESPEKT :-)

      zigbee hab ich, zwave auch, nuc's genauso und HA auch

      1 Antwort Letzte Antwort
      0
      • bmuellerB bmueller

        Neuer Adapter: Kanban Board

        Stand: Version 0.4.0. Was sich seit 0.3.2 geändert hat, steht unten unter "Neu in 0.4.0".

        Ein Kanban-Board als eigener ioBroker-Adapter. Er bringt seinen eigenen Webserver mit, liefert eine Single-Page-App ohne Framework aus und hält alle offenen Ansichten per WebSocket live synchron. Gedacht für Haushalte, die Aufgaben gemeinsam verwalten wollen, ob Familie, WG oder Wartungsplan fürs Haus, und die sie dort haben möchten, wo ohnehin ioBroker läuft. Jedes Ereignis landet in einem State, den Skripte und Node-RED auswerten können, und das Board lässt sich als Webpage-Card in Lovelace einbetten.

        Die Features

        Kanban-Board, Übersicht

        • Eigener Webserver (Standardport 8095), die Oberfläche kommt direkt vom Adapter, für UI-Updates ist kein iobroker upload nötig
        • Mehrere Boards mit frei konfigurierbaren Spalten (Name, Reihenfolge, Anzeige-Limit, WIP-Limit, Häkchen für "Neu" und "Erledigt")
        • Karten mit Titel, Markdown-Beschreibung, Zuständigen, Fälligkeit (auf Wunsch mit Uhrzeit), Labels, Farbe, Priorität, Checkliste, Link, Ort und Kalender-Einladung
        • Wiederkehrende Aufgaben: täglich, wöchentlich, monatlich, jährlich, n-ter Wochentag, n-ter Arbeitstag inklusive Feiertagsberechnung, dazu freie Cron-Ausdrücke
        • Kartenvorlagen: eine Karte als Vorlage speichern, neue Karten daraus füllen, Vorlagen als Datei zwischen Boards und Instanzen austauschen
        • Papierkorb je Board: Gelöschtes bleibt 30 Tage wiederherstellbar, altes Erledigtes wandert auf Wunsch automatisch dorthin
        • Sortierung je Spalte in fünf Modi mit Richtungsumschalter, oder weiter von Hand per Drag & Drop
        • Drag & Drop mit Maus und Touch, Live-Sync über WebSocket auf alle offenen Ansichten
        • Mehrere Benutzer ohne Login: Die Benutzerliste steht in den Instanzeinstellungen, je Board wird festgelegt, wer zuweisbar ist. Die Chips in der Kopfzeile sind zugleich ein je Board gespeicherter Personenfilter
        • E-Mail-Benachrichtigungen über den email-Adapter bei Zuweisung, Fälligkeit und Karten-Ereignissen, je Ereignis und je Benutzer schaltbar, mit Kalender-Einladung als Anhang
        • Elf Sprachen (de, en, fr, nl, it, es, pl, pt, ru, uk, zh-cn), dazu Datums- und Uhrzeitformat je Instanz, Theme hell/dunkel/automatisch, Akzentfarbe und eigenes CSS

        Karten-Editor mit allen Feldern

        Integration

        • REST-API für alles, was die Oberfläche auch kann. Lesen ist im LAN offen, Schreiben braucht einen Token
        • Eingehende Webhooks mit eigenen Tokens je Integration, auf einzelne Boards begrenzbar
        • Ausgehende Webhooks: JSON-POST an beliebige URLs bei jedem Ereignis
        • sendTo und der action-State für ioBroker-Skripte, mit demselben Kommando-Vokabular
        • Spiegel-States je Board und je Benutzer (Kartenzahl, überfällige Karten, letztes Ereignis) für Dashboards und Skript-Trigger
        • iframe-tauglich, mit ?embed=1 für Lovelace-Webpage-Cards

        Andere Dienste wie Telegram oder Pushover sind bewusst nicht fest eingebaut. Jedes Ereignis landet im State kanban.0.lastEvent und geht auf Wunsch als ausgehender Webhook raus, ein kurzes Skript verteilt es weiter. Ein fertiges Telegram-Beispiel zum Kopieren steht in der Doku, für Pushover, Pushbullet oder WhatsApp tauscht man nur die Sende-Zeile.

        Mobil

        Auf schmalen Bildschirmen stapelt das Board die Spalten untereinander, jede lässt sich als Akkordeon ein- und ausklappen. Dialoge öffnen im Vollbild mit fester Aktionsleiste. Zum Verschieben eine Karte kurz gedrückt halten, beim Ziehen erscheint oben eine Leiste mit den Zielspalten.

        Mobile Ansicht, Schnellmenü beim Ziehen einer Karte

        Installation

        Voraussetzungen: js-controller ab 6.0.11 und Node.js ab 22. Für E-Mail-Benachrichtigungen zusätzlich eine eingerichtete email-Instanz, für regionsgenaue Feiertage optional der feiertage-Adapter.

        Im offiziellen ioBroker-Repository ist der Adapter noch nicht, die Aufnahme läuft. Bis dahin über Adapter → eigene URL installieren:

        https://github.com/bmueller77/ioBroker.kanban
        

        Danach eine Instanz anlegen, unter Instanzen den Port prüfen und die Oberfläche unter http://<host>:8095/ öffnen.

        Neu in 0.4.0

        Kartenvorlagen. Eine Vorlage ist ein benannter Satz Kartenfelder. Sie gehört zu einem Board und ist ein Stempel, keine Verbindung: Was aus ihr entsteht, ist danach eine gewöhnliche Karte und weiß nichts mehr von ihrer Herkunft.

        Anlegen: An einer bestehenden Karte auf "Verwalten" gehen und dort "Als Vorlage speichern" wählen. Das Namensfeld ist mit dem Kartentitel vorbelegt, der Name ist zugleich der Titel, den spätere Karten bekommen. Gibt es den Namen schon, fragt der Adapter nach und ersetzt den Inhalt der bestehenden Vorlage.

        Verwalten-Dialog mit der Option Als Vorlage speichern

        Benutzen: Beim Anlegen einer Karte steht links unten im Editor ein Auswahlfeld mit den Vorlagen des Boards. Eine Auswahl setzt alle Felder neu, auch die in der Vorlage leeren; steht im Editor schon etwas, kommt vorher eine Rückfrage. Labels, die das Board nicht mehr kennt, und Zuständige, die kein Mitglied des Boards sind, fallen dabei weg.

        Neue Karte im Editor, gefüllt aus einer Vorlage, links unten das Auswahlfeld

        Zwei Dinge werden beim Export nicht berücksichtigt. Das Fälligkeitsdatum bleibt weg, weil ein festes Datum altert: Eine im Januar gespeicherte Vorlage legte im März Karten mit einem Datum von vorgestern an. Und die Haken der Checkliste werden zurückgesetzt, weil eine Vorlage die Punkte festhält, nicht den Stand. Die Uhrzeit bleibt dagegen erhalten, denn 17:00 ist eine Eigenschaft der Aufgabe.

        Trägt die Vorlage eine Wiederholung und bleibt das Fälligkeitsfeld leer, rechnet der Adapter den nächsten Termin selbst aus und hängt das Raster an den heutigen Tag. Eine Vorlage "alle 30 Tage" erzeugt also eine Karte, die heute fällig ist und von dort an zählt, nicht nach einem Raster von vor einem halben Jahr.

        Verwalten: In den Board-Einstellungen gibt es den Reiter "Vorlagen". Dort lassen sich Vorlagen per Ziehen sortieren, umbenennen, im Karteneditor öffnen und ändern, exportieren und löschen. Die Reihenfolge im Reiter ist die Reihenfolge im Auswahlfeld. Wirksam wird alles erst mit dem Speichern des Dialogs.

        Einstellungen, Reiter Vorlagen

        Zwischen Boards und Instanzen übertragen: Vorlagen lassen sich einzeln oder gesammelt exportieren, als Datei oder als Text zum Kopieren, und auf einem anderen Board oder in einer anderen Instanz wieder importieren. Ein Import hängt an und ersetzt nie, ein Name, den es schon gibt, bekommt einen Zähler. Labels werden über den Namen zugeordnet.

        Aus Skripten. Das Kommando addCard nimmt ein Feld template, gesucht wird erst über die ID, dann über den Namen:

        { "cmd": "addCard", "board": "haus", "template": "Filterwechsel", "due": "2026-10-01" }
        

        Seit 0.3.2 außerdem

        • Ziehen mit dem Finger geht wieder. Auf Tablets ließ sich eine Karte gar nicht aufnehmen. Wird eine Karte an den Rand gezogen, scrollt das Board jetzt mit.
        • Das Schnellmenü mit den Zielspalten erscheint immer dann, wenn nicht alle Spalten ins Bild passen, also auch auf Tablets. Im Dialog "Ansichten" lässt es sich über "Landezonen beim Ziehen immer anzeigen" dauerhaft einschalten. Der Papierkorb steht darin nur, wenn er auch als Spalte eingeblendet ist.
        • Die Oberfläche wird nicht mehr zwischengespeichert. Fully Kiosk hatte nach einem Update tagelang die alte Fassung gezeigt, obwohl der Adapter längst die neue auslieferte.
        • Alle Logs in englisch: Meldungen im Log, Antworten der REST-API und auf sendTo. Dasselbe gilt für die Namen der States, auch in bestehenden Installationen, der Adapter benennt sie beim Start einmal um. Die Oberfläche bleibt in der eingestellten Sprache.

        Der vollständige Changelog steht im README des Repositories, die Historie älterer Versionen ebenfalls.

        Wichtig für bestehende Automatisierungen

        Die Benutzer-Kanäle im Objektbaum haben seit 0.3.8 neue IDs. Der Anzeigename wird bereinigt, bevor er Teil der Objekt-ID wird: Kleinbuchstaben, Umlaute ausgeschrieben, alles andere zu Bindestrichen zusammengezogen. Aus "Tina Müller" wird kanban.0.users.tina-mueller, bis 0.3.7 stand dort kanban.0.users.Tina Müller mit Leerzeichen und Umlaut. Beim ersten Start wird der alte Kanal entfernt und unter der neuen ID neu angelegt, jeder entfernte Kanal steht im Log. Skripte und Views, die die alten IDs lesen, müssen einmal angepasst werden. Der Anzeigename selbst bleibt im Kanalnamen und auf den Karten.

        Fehlermeldungen sind seit 0.3.3 englisch. Wer in einem Skript auf den deutschen Wortlaut prüft, etwa auf existiert nicht, muss das nachziehen.

        Wer von einer Version vor 0.3.2 kommt: 0.3.2 hat zwei Lücken in der API geschlossen. Der Schreib-Token war für jede Webseite lesbar, und ein board-begrenzter Token kam aus seinen Boards heraus. Dabei hat sich einiges geändert, worauf sich ein Skript verlassen haben kann:

        • CORS ist auf /api und /webhook beschränkt und nur für eingetragene Herkünfte offen, Vorgabe leer. Betroffen ist ausschließlich der Zugriff aus einem Browser, Skripte und curl liefen nie über diese Prüfung.
        • Tokens werden nicht mehr als URL-Parameter angenommen, und eine leer gelassene Token-Zeile passt nicht mehr auf jede Anfrage ohne Token.
        • Ein leeres Feld "Erlaubte Boards" gilt als "keins", nicht mehr als "alle".
        • Die API biegt fehlerhafte Angaben nicht mehr stillschweigend zurecht. Eine unbekannte columnId landete bisher in der ersten Spalte, ein ungültiges due wurde verworfen, getBoard auf ein unbekanntes Board antwortete mit 200 und null. Alle drei Fälle liefern jetzt einen Fehler.

        Rückmeldungen gerne hier im Thread, Wünsche und Fehlermeldungen bitte in GitHub. Die ausführliche Doku liegt im Repository unter docs/de/README.md, den vollständigen Changelog gibt es im README.

        sigi234S
        sigi234S
        sigi234
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #3

        @bmueller

        Cool, installation hat einwandfrei funktioniert. Erstes Bord erstellt.

        2f6c029d-f72b-4021-938a-af9686cc6105-image.jpeg

        Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
        Immer Daten sichern!

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

          Ich hab den Adapter jetzt auch mal installiert, läuft.
          Hab dann mal ein Board angelegt und zwei Benutzer.

          Ich kann allerdings keine Bilder auswählen, egal ob ich das original Bild nehme, oder es vorher schon verkleinere (auf 128x128px), es spielt auch keine Rolle ob .jpg oder .png, ich bekomme jedesmal die Meldung ' Upload fehlgeschlagen: Bild konnte nicht gelesen werden'.

          1 Antwort Letzte Antwort
          0
          • HomoranH Homoran verschob dieses Thema von Entwicklung am
          • L
            L
            lyc
            schrieb am zuletzt editiert von
            #5

            Hab den Adapter auch mal installiert und ein wenig damit herumgespielt. Was mir auffällt, um diesen wirklich zu nutzen, "Termine" lassen sich nicht oder werden nicht sortiert, ich muss also alle Einträge durchsuchen was in den nächsten Tagen als Nächstes ansteht oder bis wann es erledigt werden muss. Ein verschieben von Aufgaben auf andere Board gibt es nicht, also nur neu anlegen. Bilder zum Benutzer hinzufügen gibt nur den Fehler "Upload fehlgeschlagen: Bild konnte nicht gelesen werden". Optional, wäre es super, dass es andere Benachrichtigungsmöglichkeiten direkt im Adapter gibt z. B. Pushover, Whatsapp, etc. Danke für das Teilen und testen lassen.

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

                                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

                                493

                                Online

                                33.1k

                                Benutzer

                                84.1k

                                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