Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Notion Integration in ioBroker Javascript

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    5
    1
    161

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    8
    1
    184

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    879

Notion Integration in ioBroker Javascript

Geplant Angeheftet Gesperrt Verschoben JavaScript
1 Beiträge 1 Kommentatoren 360 Aufrufe 2 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.
  • Ronny GerndtR Offline
    Ronny GerndtR Offline
    Ronny Gerndt
    schrieb am zuletzt editiert von Ronny Gerndt
    #1

    Guten Tag,

    da im Adapter Request Github Repo (https://github.com/ioBroker/AdapterRequests/issues/731) die Frage aufkam wie ich im JS eine einfache Notion Integration hinbekommen habe möchte ich das hier mal kurz beschreiben. Wer notion nicht kennt findet hier Infos dazu: https://www.notion.so/product , ich nutze es aktuell für ToDo Listen, es kann aber noch einiges mehr.

    Zuerst benötigt man in Notion eine eigene Integration(https://www.notion.so/my-integrations)
    64161be9-a025-4812-a766-e5a6e31ceb7d-image.png Dazu einfach mittels New Integration eine neue anlegen, ein Name muss vergeben werden und der richtige Workspace muss gewählt werden. Der Rest kann auf Standard bleiben.

    Nach dem Anlegen einmal die neue Integration öffnen und den Token kopieren, dieser wird später benötigt.
    b13f27e0-4bd2-46c4-9b2e-2675997f3fad-image.png

    Anschließend muss in Notion an den Datenbanken/Dokumenten die ansprechbar sein sollen die neue Integration hinzugefügt werden. Dazu auf Share klicken und die Integration "Einladen".
    d279db40-0308-4735-abd4-f4a6679465a7-image.png

    Nun kommen wir zum ioBroker part. Hier muss in der Javascript Instanz das "Zusätzliche NPM-Module" "@notionhq/client" hinzugefügt werden.

    Ich werfe nun einfach mal meinen Code hier rein, der Token wurde oben kopiert. Die DatabaseId findet man in der URL.
    d580afb7-c103-42c0-bd07-d7434318ba1f-image.png

    const { Client } = require("@notionhq/client")
    
    const notion = new Client({ auth: 'Token der Integration' });
    
    const _databaseId = 'Database_Id';
    
    async function addItem(databaseId, text, state) {
        const response = await notion.pages.create({
            parent: { database_id: databaseId },
            properties: {
                title: {
                    title:[
                        {
                            "text": {
                                "content": text
                            }
                        }
                    ]
                },
                'Status': {
                    select: {
                        name: state
                    },
                }
            }
        });
        return response.id;
    }
    
    async function getPage(pageId) {
        return await notion.pages.retrieve({ page_id: pageId });
    }
    
    async function getDatabase(databaseId) {
        return await notion.databases.retrieve({ database_id: databaseId });
    }
    
    async function getItemsInState(databaseId, state) {
        const response = await notion.databases.query({
            database_id: databaseId,
            filter: {
                property: 'Status',
                select: {
                    equals: state
                }
            }
        });
        return response;
    }
    
    async function updateItemState(pageId, newState) {
        try {
            await notion.pages.update({
                page_id: pageId,
                properties: {
                    'Status': {
                        select: {
                            name:newState
                        },
                    },
                },
            });
        } catch (error) {
            console.error(error.body)
        }
    }
    
    let itemId = await addItem(_databaseId, 'Test from iobroker', 'To Do');
    await updateItemState(itemId, 'Doing');
    var page = await getPage(itemId);
    var results = await getItemsInState(_databaseId, 'Doing');
    console.log(results);
    

    Das ganze legt nun einfach in meiner Task Liste einen neuen Eintrag mit dem Namen Test from ioBroker an und setzt den Status auf To Do.
    Anschließend wird der Status auf Doing aktualisiert.
    Und ein Beispiel für alle Einträge im Status Doing abzurufen.

    Alle weiteren Möglichkeiten der Api sind hier beschrieben: https://developers.notion.com/reference/intro

    Vllt hilft das dem ein oder anderen weiter. Wenn nicht ist auch ok 😁

    Grüße

    Ronny

    1 Antwort Letzte Antwort
    1

    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

    416

    Online

    32.8k

    Benutzer

    82.7k

    Themen

    1.3m

    Beiträge
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
    ioBroker Community 2014-2025
    logo
    • Anmelden

    • Du hast noch kein Konto? Registrieren

    • Anmelden oder registrieren, um zu suchen
    • Erster Beitrag
      Letzter Beitrag
    0
    • Home
    • Aktuell
    • Tags
    • Ungelesen 0
    • Kategorien
    • Unreplied
    • Beliebt
    • GitHub
    • Docu
    • Hilfe