1. Dashboard
  2. Forum
    1. Aktivste Themen
    2. Unerledigte Themen
  3. Artikel
  4. Mitglieder
    1. Achivements
    2. Benutzerränge
    3. Letzte Aktivitäten
    4. Benutzer online
    5. Team
    6. Mitgliedersuche
  5. Blog
    1. Artikel
  6. Spenden
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Blog-Artikel
  • Erweiterte Suche
Samstag: 17 Oktober 2026
  • Wir freuen uns sehr dass du diese Webpräsenz gefunden hast, leider bist du nicht angemeldet und kannst daher diese Plattform nur eingeschränkt benutzen. Möchtst Du die volle Vielfalt unserer Community erleben, so registriere dich jetzt kostenlos & unverbindlich oder melden sich mit Ihren Benutzerdaten an.

    Anmelden Registrieren
    1. Smart Home Community
    2. Forum
    3. Allgemein
    4. Projekte

    OpenHab erstellt MS365 Kalendereintrag

    • MasterOrdnas
    • 3. August 2025 um 00:46
    • Erledigt

    Jetzt mitmachen!

    Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!

    Benutzerkonto erstellen Anmelden
    • MasterOrdnas
      1
      MasterOrdnas
      Automatisierungsprofi
      Reaktionen
      36
      Beiträge
      88
      Wohnort
      Schweiz
      • 3. August 2025 um 00:46
      • #1

      Hallo Zusammen

      ich bin gerade an einer neuen Idee: Gartenkalender in SmartHome zu integrieren. Das scheint noch ein grösseres Projekt zu sein, vor allem mit mehreren Pflanzen... Jedenfalls habe ich schon mal einen Teil, die Integration in den Kalender von MS365 fertigstellen können.

      Da es vielleicht auch noch praktisch für andere Sachen ist, denke ich könnte dieser Artikel den einten oder anderen Interessieren.

      1. MS 365 Umgebung vorbereiten:

      ✅ Voraussetzungen:

      • Microsoft-Konto (am besten MS365 geschäftlich oder schulisch)
      • Zugriff auf https://portal.azure.com

      1. Öffne das Azure-Portal

      • Gehe zu: https://portal.azure.com

      2. Navigiere zu „Azure Active Directory“

      • Im linken Menü: „Azure Active Directory“
      • Oder suche oben nach „Azure Active Directory“

      3. App-Registrierung starten

      • Links im Menü: „App-Registrierungen“
      • Klicke auf „+ Neue Registrierung“

      4. App registrieren

      • Fülle aus:
      FeldWert
      Namez. B. OpenHAB Kalenderzugriff
      Unterstützte Kontotypen„Nur Konten in diesem Organisationsverzeichnis“ oder „Persönliche Microsoft-Konten“
      Umleitungs-URI(leer lassen für jetzt oder z. B. http://localhost)
      • Dann auf „Registrieren“ klicken.

      5. App-ID & Verzeichnis-ID notieren

      • Nach der Registrierung landest du auf der App-Übersicht:
      • Anwendungs-ID (Client-ID) → merken
      • Verzeichnis-ID (Tenant-ID) → merken

      6. API-Berechtigungen hinzufügen

      • Im linken Menü: „API-Berechtigungen“
      • Klicke auf „Berechtigung hinzufügen“
        • Wähle: Microsoft Graph
        • → Delegierte Berechtigungen (wenn du dich als Benutzer anmeldest)
          oder
          → Anwendungberechtigungen (wenn das ohne Benutzerlogin laufen soll, z. B. in openHAB)

      📌 Für Kalendereinträge:

      • Suche nach: Calendars.ReadWrite
      • Wähle es aus
      • Klicke auf Berechtigungen hinzufügen

      ❗ Danach:

      • Bei Anwendungberechtigungen: „Administratorzustimmung erteilen“ klicken

      7. Client-Secret erzeugen

      • Gehe zu: „Zertifikate & Geheimnisse“
      • Klicke auf „Neues Geheimnis“
      • Name: z. B. OpenHAB Zugriff
      • Ablauf: z. B. 6 Monate oder 12 Monate
      • Klicke auf Hinzufügen

      WICHTIG:
      Den erzeugten Geheimnis-Wert (Secret Value) sofort kopieren! Er wird nur einmal angezeigt.

      📦 Du hast jetzt:

      NameVerwendung
      Client-IDZur Authentifizierung der App
      Tenant-IDDein Azure-Verzeichnis
      Client-SecretPasswort für deine App

      2. OPENHAB Vorbereiten:

      1. Verzeichnisstruktur (Vorschlag)

      Speichere alles in z. B.:

      Code
      bashKopierenBearbeiten/etc/openhab/scripts/ms365/

      2. Script: setup_env.sh (einmal ausführen)

      Code
      bashKopierenBearbeiten#!/bin/bash # Erstelle und konfiguriere die virtuelle Umgebung
      
      echo "📦 Installiere venv-Modul (falls nötig)..."
      sudo apt update
      sudo apt install -y python3-venv
      
      echo "🧪 Erstelle virtuelle Umgebung..."
      python3 -m venv /etc/openhab/scripts/ms365/env
      
      echo "📦 Installiere benötigte Pakete..."
      /etc/openhab/scripts/ms365/env/bin/pip install requests msal
      
      echo "✅ Umgebung ist bereit." 
      Alles anzeigen

      Speichern als /etc/openhab/scripts/ms365/setup_env.sh, dann ausführen:

      Code
      bashKopierenBearbeitensudo bash /etc/openhab/scripts/ms365/setup_env.sh

      📝 3. Script: create_event.py

      Python
      #!/usr/bin/env python3
      from msal import ConfidentialClientApplication
      import requests
      import json
      
      # ==== KONFIGURATION ====
      CLIENT_ID = "ClientID"
      CLIENT_SECRET = "ClientSecret"
      TENANT_ID = "TenantID"
      TIMEZONE = "Europe/Zurich"
      USER_EMAIL = "email@adresse.ch"
      MINIGARTEN_CALENDAR_ID = "KalenderID"
      
      # === Beispiel-Daten ===
      SUBJECT = "🌱 Licht umgestellt"
      BODY = "Das Pflanzenlicht wurde auf Blütephase umgestellt."
      START_TIME = "2025-08-10T10:00:00"
      END_TIME   = "2025-08-10T10:30:00"
      
      # === MSAL Authentifizierung ===
      app = ConfidentialClientApplication(
          CLIENT_ID,
          authority=f"https://login.microsoftonline.com/{TENANT_ID}",
          client_credential=CLIENT_SECRET
      )
      
      result = app.acquire_token_for_client(scopes=["https://graph.microsoft.com/.default"])
      
      if "access_token" not in result:
          print("❌ Authentifizierung fehlgeschlagen:")
          print(result.get("error_description"))
          exit(1)
      
      headers = {
          "Authorization": f"Bearer {result['access_token']}",
          "Content-Type": "application/json"
      }
      
      event = {
          "subject": SUBJECT,
          "body": {
              "contentType": "HTML",
              "content": BODY
          },
          "start": {
              "dateTime": START_TIME,
              "timeZone": TIMEZONE
          },
          "end": {
              "dateTime": END_TIME,
              "timeZone": TIMEZONE
          }
      }
      
      # 📋 Alle Kalender auflisten -> diese Zeilen beim ersten mal auskommentieren, um die ID vom Kalender / Unterkalender ausfindig zu machen
      #calendars_url = f"https://graph.microsoft.com/v1.0/users/{USER_EMAIL}/calendars"
      
      #cal_response = requests.get(calendars_url, headers=headers)
      
      #if cal_response.status_code == 200:
      #    calendars = cal_response.json().get("value", [])
      #    for cal in calendars:
      #        print(f"📅 Kalendername: {cal['name']}, ID: {cal['id']}")
      #else:
      #    print(f"❌ Fehler beim Abrufen der Kalender ({cal_response.status_code}):")
      #    print(cal_response.text)
      #    exit(1)
      
      
      
      # === Anfrage senden ===
      #url = f"https://graph.microsoft.com/v1.0/users/{USER_EMAIL}/calendar/events"
      url = f"https://graph.microsoft.com/v1.0/users/{USER_EMAIL}/calendars/{MINIGARTEN_CALENDAR_ID}/events"
      response = requests.post(url, headers=headers, data=json.dumps(event))
      
      #response = requests.post("https://graph.microsoft.com/v1.0/me/events", headers=headers, data=json.dumps(event))
      
      if response.status_code == 201:
          print("✅ Termin erfolgreich erstellt.")
      else:
          print(f"❌ Fehler ({response.status_code}):")
          print(response.text)
      Alles anzeigen

      Speichern als /etc/openhab/scripts/ms365/create_event.py.

      4. Test per Kommandozeile

      Code
      bashKopierenBearbeiten/etc/openhab/scripts/ms365/env/bin/python3 /etc/openhab/scripts/ms365/create_event.py

      Wenn alles klappt, siehst du:
      ✅ Termin erfolgreich erstellt.

      5. Integration in openHAB (optional)

      In einer Regel oder einem Widget kannst du das Script z. B. mit executeCommandLine starten:

      Code
      javaKopierenBearbeitenexecuteCommandLine("/etc/openhab/scripts/ms365/env/bin/python3 /etc/openhab/scripts/ms365/create_event.py", 60)

    Unsere Facebook-Gruppe

    Smart Home Community Facebook Gruppe

    Smart Home Community auf Facebook
    Tausche Dich mit vielen Smart-Home-Begeisterten aus und erhalte Hilfe bei Home Assistant, Shelly, Homematic IP, Zigbee, Matter und vielen weiteren Smart-Home-Systemen.

    Jetzt beitreten

    Letzte Beiträge

    1. Shelly Geräte mit Galaxy Watch steuern

      Funkenwerner
      16. Oktober 2026 um 13:29
    2. mit einer externe Kontrollleuchte anzeigen, ob Strom in einer Schaltsteckdose ein oder ausgeschaltet ist

      Paul
      12. Oktober 2026 um 18:23
    3. Google Nest: Google Assistant mit Gemini auf Lautsprechern verfügbar

      Paul
      6. Oktober 2026 um 19:49
    4. Switchbot Lock Pro

      Paul
      4. Oktober 2026 um 12:54
    5. Austausch eines Smoove UNO io Pure von Weiß auf Schwarz

      PuehOne
      3. Oktober 2026 um 15:52

    Beliebtesten Themen

    1. Hallo, hier ist der Andy und komme aus Niederbayern

      Andy
      24. Juli 2026 um 08:03
    2. Google Nest: Google Assistant mit Gemini auf Lautsprechern verfügbar

      SmartHome Forum
      16. Dezember 2024 um 09:30
    3. Smartes Türschloss ohne Cloud/Internet

      Alois_W
      19. Juli 2026 um 11:33
    4. Somfy Synchronisation und Regensensor

      Uwe_M
      28. Juli 2026 um 15:25
    5. Sunricher "Azoula Smart Hub" (ZigBee, Matter) ... ich kann den AWS Gateway nicht konfigurieren :-(

      MBR
      29. August 2026 um 14:28

    Statistiken

    Themen
    1.077
    Beiträge
    4.458
    Blog-Artikel
    6
    Mitglieder
    1.641
    Meiste Benutzer online
    723
    Neuestes Mitglied
    maple163

    Spenden

    Monatlich (Oktober)

    0 %

    0% (0,00 von 80 EUR)

    Jetzt spenden

    Werbung

    Tags

    • openHAB
    • Kalender

    Weitere Infos & Links

    Allgemeine Links

      Abenteuer Altbau

    Weitere Links

      Hier könnte ihr Link stehen

      Hier könnte ihr Link stehen

      Hier könnte ihr Link stehen

      Hier könnte ihr Link stehen

      Hier könnte ihr Link stehen

      Hier könnte ihr Link stehen

    Über uns

      Die Smart Home Community ist deine Plattform rund um intelligente Haussteuerung, Automatisierung und moderne Technik im Alltag. Egal ob Einsteiger oder Profi – hier findest du Hilfe, Anleitungen, Erfahrungen und Diskussionen zu Smart Home, Netzwerken, Sicherheit, Energie und mehr.


      Tausche dich mit anderen Mitgliedern aus, entdecke neue Lösungen und finde Inspiration für dein vernetztes Zuhause. Gemeinsam machen wir Smart Home verständlich, praxisnah und unabhängig.


      » Smart-Home-Community.de
    Wer jetzt nicht teilt ist selber Schuld:
    1. Datenschutzerklärung
    2. Kontakt
    3. Impressum
    4. * = Affiliate-Links
    Stil: Color Drop Multi by GrischaMedia
    Community-Software: WoltLab Suite™ 6.2.8
    Smart Home Community in der WSC-Connect App bei Google Play
    Smart Home Community in der WSC-Connect App im App Store
    Download