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. Praktische Anwendungen (Showcase)
  4. Hannah — Open Source Smart-Home-Sprachassistentin

NEWS

  • Neue Adresse: die ioBroker-Webseite liegt jetzt auf iobroker.com
    BluefoxB
    Bluefox
    3
    1
    159

  • Die neue ioBroker Webseite ist online!
    BluefoxB
    Bluefox
    11
    1
    187

  • Information zum Kontoabgleich und zur Namensänderung
    BluefoxB
    Bluefox
    11
    1
    506

Hannah — Open Source Smart-Home-Sprachassistentin

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
195 Beiträge 23 Kommentatoren 13.8k Aufrufe 34 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.
  • L
    L
    Leonie
    schrieb am zuletzt editiert von
    #158

    nur für das Mapping brauchst du auch kein Passwort, das passiert im ioBroker.

    Aber für das Passwort, hier der komplizierte Weg:

    sudo systemctl stop hannah && sudo -u hannah /opt/hannah/core/venv/bin/python3 -c "import sqlite3;from werkzeug.security import generate_password_hash as h;db=sqlite3.connect('/opt/hannah/core/hannah.db');db.execute('UPDATE users SET password_hash=? WHERE username=?',(h('NEUES_PASSWORT'),'admin'));db.commit()" && sudo systemctl start hannah
    

    Ersetze noch NEUES_PASSWORT mit deinem Wunschpasswort und dann führe den Befehl aus. Der stoppt Hannah, manipuliert die Datenbank und startet Hannah wieder.

    Walter.O.W 1 Antwort Letzte Antwort
    0
    • L Leonie

      nur für das Mapping brauchst du auch kein Passwort, das passiert im ioBroker.

      Aber für das Passwort, hier der komplizierte Weg:

      sudo systemctl stop hannah && sudo -u hannah /opt/hannah/core/venv/bin/python3 -c "import sqlite3;from werkzeug.security import generate_password_hash as h;db=sqlite3.connect('/opt/hannah/core/hannah.db');db.execute('UPDATE users SET password_hash=? WHERE username=?',(h('NEUES_PASSWORT'),'admin'));db.commit()" && sudo systemctl start hannah
      

      Ersetze noch NEUES_PASSWORT mit deinem Wunschpasswort und dann führe den Befehl aus. Der stoppt Hannah, manipuliert die Datenbank und startet Hannah wieder.

      Walter.O.W
      Walter.O.W
      Walter.O.
      schrieb am zuletzt editiert von
      #159

      @Leonie
      Hab ich gemacht, lief auch ohne Fehlermeldung durch.
      Hat aber nichts gebracht. Sorry bin Ratlos.

      1 Antwort Letzte Antwort
      0
      • L
        L
        Leonie
        schrieb am zuletzt editiert von
        #160

        Was heißt, hat nichts gebracht?

        1 Antwort Letzte Antwort
        0
        • Walter.O.W
          Walter.O.W
          Walter.O.
          schrieb am zuletzt editiert von Walter.O.
          #161

          Immer noch kein Login mit admin und PW in der Web UI

          1 Antwort Letzte Antwort
          0
          • L
            L
            Leonie
            schrieb am zuletzt editiert von
            #162

            Was für eine Meldung sagt die WebUI denn?

            Walter.O.W 1 Antwort Letzte Antwort
            0
            • L Leonie

              Was für eine Meldung sagt die WebUI denn?

              Walter.O.W
              Walter.O.W
              Walter.O.
              schrieb am zuletzt editiert von
              #163

              @Leonie sagte:

              Was für eine Meldung sagt die WebUI denn?

              Hannah Core nicht erreichbar
              Hannah Core antwortet gerade nicht. Bitte versuche es in Kürze erneut.

              1 Antwort Letzte Antwort
              0
              • L
                L
                Leonie
                schrieb am zuletzt editiert von
                #164

                dann ist das kein Passwortproblem. Überprüfe die config der webui. Die muss an dem Ort liegen: /etc/hannah-webui/config.yaml

                Auch dafür gibt es ein Example: https://github.com/NurPech/hannah-webui/blob/main/config.example.yaml

                1 Antwort Letzte Antwort
                0
                • Walter.O.W
                  Walter.O.W
                  Walter.O.
                  schrieb am zuletzt editiert von
                  #165

                  Ich danke dir, mach ich morgen, gute Nacht.

                  1 Antwort Letzte Antwort
                  0
                  • Walter.O.W
                    Walter.O.W
                    Walter.O.
                    schrieb am zuletzt editiert von Walter.O.
                    #166

                    Hab ich gerade angelegt.
                    Was hat das mit dem secret_key: "IHR_SECRET_KEY"
                    auf sich in der webui config?
                    Login immer noch nicht möglich

                    1 Antwort Letzte Antwort
                    0
                    • L
                      L
                      Leonie
                      schrieb am zuletzt editiert von
                      #167

                      "IHR_SECRET_KEY" ist voll ausreichend, einfach irgendwas eintragen. Im Zweifel lass dir da was feines generieren: https://www.convertsimple.com/random-base64-generator/

                      Mit dem Schlüssel werden nur ein paar Dinge signiert und der sollte für deine Installation eindeutig sein.

                      Dann brauche ich Logs:

                      journalctl -u hannah-webui
                      
                      Walter.O.W 1 Antwort Letzte Antwort
                      0
                      • L Leonie

                        "IHR_SECRET_KEY" ist voll ausreichend, einfach irgendwas eintragen. Im Zweifel lass dir da was feines generieren: https://www.convertsimple.com/random-base64-generator/

                        Mit dem Schlüssel werden nur ein paar Dinge signiert und der sollte für deine Installation eindeutig sein.

                        Dann brauche ich Logs:

                        journalctl -u hannah-webui
                        
                        Walter.O.W
                        Walter.O.W
                        Walter.O.
                        schrieb am zuletzt editiert von
                        #168

                        @Leonie

                         >
                        Sep 16 00:25:08 iob gunicorn[1308]: 192.168.178.38 - - [16/Sep/2026:00:25:08 +0200] "POST /login HTTP/1.1" 503 1211 "http://192.168.178.122:5000/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.>
                        Sep 16 00:25:08 iob gunicorn[1311]: 192.168.178.38 - - [16/Sep/2026:00:25:08 +0200] "GET /static/css/tailwind.css HTTP/1.1" 304 0 "http://192.168.178.122:5000/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Geck>
                        Sep 16 00:25:08 iob gunicorn[1308]: 192.168.178.38 - - [16/Sep/2026:00:25:08 +0200] "GET /static/manifest.json HTTP/1.1" 304 0 "http://192.168.178.122:5000/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) >
                        Sep 16 00:26:33 iob gunicorn[1308]: 192.168.178.38 - - [16/Sep/2026:00:26:33 +0200] "GET /login HTTP/1.1" 200 1978 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36"
                        Sep 16 00:26:33 iob gunicorn[1311]: 192.168.178.38 - - [16/Sep/2026:00:26:33 +0200] "GET /static/css/tailwind.css HTTP/1.1" 304 0 "http://192.168.178.122:5000/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Geck>
                        Sep 16 00:26:33 iob gunicorn[1308]: 192.168.178.38 - - [16/Sep/2026:00:26:33 +0200] "GET /static/manifest.json HTTP/1.1" 304 0 "http://192.168.178.122:5000/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) >
                        Sep 16 00:26:43 iob gunicorn[1308]: gRPC error: <_InactiveRpcError of RPC that terminated with:
                        Sep 16 00:26:43 iob gunicorn[1308]:         status = StatusCode.UNAVAILABLE
                        Sep 16 00:26:43 iob gunicorn[1308]:         details = "failed to connect to all addresses; last error: UNKNOWN: ipv4:127.0.0.1:50051: Failed to connect to remote host: Connection refused"
                        Sep 16 00:26:43 iob gunicorn[1308]:         debug_error_string = "UNAVAILABLE:failed to connect to all addresses; last error: UNKNOWN: ipv4:127.0.0.1:50051: Failed to connect to remote host: Connection refused"
                        Sep 16 00:26:43 iob gunicorn[1308]: >
                        Sep 16 00:26:43 iob gunicorn[1308]: 192.168.178.38 - - [16/Sep/2026:00:26:43 +0200] "POST /login HTTP/1.1" 503 1211 "http://192.168.178.122:5000/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.>
                        Sep 16 00:26:43 iob gunicorn[1311]: 192.168.178.38 - - [16/Sep/2026:00:26:43 +0200] "GET /static/css/tailwind.css HTTP/1.1" 304 0 "http://192.168.178.122:5000/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Geck>
                        Sep 16 00:26:43 iob gunicorn[1308]: 192.168.178.38 - - [16/Sep/2026:00:26:43 +0200] "GET /static/manifest.json HTTP/1.1" 304 0 "http://192.168.178.122:5000/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) >
                        Sep 16 00:33:40 iob gunicorn[1308]: 192.168.178.38 - - [16/Sep/2026:00:33:40 +0200] "GET /login HTTP/1.1" 200 1978 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36"
                        Sep 16 00:33:41 iob gunicorn[1311]: 192.168.178.38 - - [16/Sep/2026:00:33:41 +0200] "GET /static/css/tailwind.css HTTP/1.1" 304 0 "http://192.168.178.122:5000/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Geck>
                        Sep 16 00:33:41 iob gunicorn[1308]: 192.168.178.38 - - [16/Sep/2026:00:33:41 +0200] "GET /static/manifest.json HTTP/1.1" 304 0 "http://192.168.178.122:5000/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) >
                        Sep 16 00:33:55 iob gunicorn[1311]: gRPC error: <_InactiveRpcError of RPC that terminated with:
                        Sep 16 00:33:55 iob gunicorn[1311]:         status = StatusCode.UNAVAILABLE
                        Sep 16 00:33:55 iob gunicorn[1311]:         details = "failed to connect to all addresses; last error: UNKNOWN: ipv4:127.0.0.1:50051: Failed to connect to remote host: Connection refused"
                        Sep 16 00:33:55 iob gunicorn[1311]:         debug_error_string = "UNAVAILABLE:failed to connect to all addresses; last error: UNKNOWN: ipv4:127.0.0.1:50051: Failed to connect to remote host: Connection refused"
                        Sep 16 00:33:55 iob gunicorn[1311]: >
                        Sep 16 00:33:55 iob gunicorn[1311]: 192.168.178.38 - - [16/Sep/2026:00:33:55 +0200] "POST /login HTTP/1.1" 503 1211 "http://192.168.178.122:5000/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.>
                        Sep 16 00:33:56 iob gunicorn[1308]: 192.168.178.38 - - [16/Sep/2026:00:33:56 +0200] "GET /static/css/tailwind.css HTTP/1.1" 304 0 "http://192.168.178.122:5000/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Geck>
                        Sep 16 00:33:56 iob gunicorn[1308]: 192.168.178.38 - - [16/Sep/2026:00:33:56 +0200] "GET /static/manifest.json HTTP/1.1" 304 0 "http://192.168.178.122:5000/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) >
                        lines 336-388/388 (END)
                        
                        

                        1 Antwort Letzte Antwort
                        0
                        • L
                          L
                          Leonie
                          schrieb am zuletzt editiert von
                          #169

                          laut dem Log läuft der Core nicht oder der hat sein gRPC auf einem anderen Port. WebUI und Core laufen aber schon auf dem gleichen Host?

                          1 Antwort Letzte Antwort
                          0
                          • Walter.O.W
                            Walter.O.W
                            Walter.O.
                            schrieb am zuletzt editiert von
                            #170

                            Alles auf dem gleichen rechner

                            1 Antwort Letzte Antwort
                            0
                            • L
                              L
                              Leonie
                              schrieb am zuletzt editiert von
                              #171

                              schick mir bitte die grpc-Sektion aus der Datei /etc/hannah/config.yaml

                              Walter.O.W 1 Antwort Letzte Antwort
                              0
                              • L Leonie

                                schick mir bitte die grpc-Sektion aus der Datei /etc/hannah/config.yaml

                                Walter.O.W
                                Walter.O.W
                                Walter.O.
                                schrieb am zuletzt editiert von Walter.O.
                                #172

                                @Leonie

                                grpc:
                                  host: "192.168.178.122"   # Bind-Adresse des gRPC-Servers
                                  port: 50051        # Standard gRPC-Port
                                  enforce_protocol_version: false  # #60: Mismatch/fehlende x-proto-version-Metadata ablehnen statt nur loggen — erst aktivieren, wenn ALLE Clients umgestellt sind
                                  enforce_compat_version: false    # #217: wie oben, aber pro Message (x-compat-version) statt global — erst aktivieren, wenn ALLE Clients umgestellt sind
                                
                                1 Antwort Letzte Antwort
                                0
                                • L
                                  L
                                  Leonie
                                  schrieb am zuletzt editiert von
                                  #173

                                  Gut, dann hört der gRPC Server nicht auf 127.0.0.1. ändere den host bitte auf 0.0.0.0 und starte Hannah neu

                                  sudo systemctl restart hannah
                                  
                                  Walter.O.W 1 Antwort Letzte Antwort
                                  0
                                  • L Leonie

                                    Gut, dann hört der gRPC Server nicht auf 127.0.0.1. ändere den host bitte auf 0.0.0.0 und starte Hannah neu

                                    sudo systemctl restart hannah
                                    
                                    Walter.O.W
                                    Walter.O.W
                                    Walter.O.
                                    schrieb am zuletzt editiert von
                                    #174

                                    @Leonie So schon mal ein Stück weiter (freu).
                                    Nach der eingabe der Login Daten sehe ich jetzt Hannah v2.6.1 Seite.
                                    Beim Anklicken von
                                    Verlauf ok
                                    Nachrichten ok
                                    cars ok

                                    Räume - - hier wird mir in der offenen WebUI erneut das Login Angezeigt, nach 1-3 mal klicken auf den Entsprechenden Menuepunkt erscheint die Seite dann koreckt.
                                    Gruppen - - dito
                                    Satelliten - - dito
                                    Settings- - dito
                                    Bletags -- dito
                                    Trigger - - dito
                                    User -- dito
                                    Anbei noch mal ein hannah status

                                    sudo systemctl status hannah
                                    ● hannah.service - Hannah Voice Assistant Core
                                        Loaded: loaded (/etc/systemd/system/hannah.service; enabled; preset: enabled)
                                        Active: active (running) since Wed 2026-09-16 15:29:55 CEST; 6min ago
                                    Invocation: b078da1d3ad64067aec904eaf156c0c4
                                          Docs: https://dev.kernstock.net/gessinger/voice/hannah
                                      Main PID: 2904934 (python)
                                         Tasks: 26 (limit: 14909)
                                        Memory: 226.4M (peak: 334.2M)
                                           CPU: 6.273s
                                        CGroup: /system.slice/hannah.service
                                                ├─2904934 /opt/hannah/core/venv/bin/python main.py -c /etc/hannah/config.yaml
                                                └─2905240 /opt/hannah/core/venv/bin/python -c "from multiprocessing.resource_tracker import main;main(10)"
                                    
                                    Sep 16 15:34:01 iob python[2904934]: 15:34:01 [INFO] hannah.trigger_engine: TriggerEngine: 0 Trigger aus der Datenbank geladen
                                    Sep 16 15:35:01 iob python[2904934]: 15:35:01 [INFO] hannah.trigger_engine: TriggerEngine: 0 Trigger aus der Datenbank geladen
                                    Sep 16 15:35:04 iob python[2904934]: 15:35:04 [WARNING] hannah.iobroker: Unbekannter State-Suffix 'battery' (state_id=zigbee.0.00158d00088398d5.battery) — fehlt in config.yaml's iobroker.state_names, Live-Update wird verwo>
                                    Sep 16 15:35:04 iob python[2904934]: 15:35:04 [WARNING] hannah.iobroker: Unbekannter State-Suffix 'voltage' (state_id=zigbee.0.00158d00088398d5.voltage) — fehlt in config.yaml's iobroker.state_names, Live-Update wird verwo>
                                    Sep 16 15:35:04 iob python[2904934]: 15:35:04 [WARNING] hannah.iobroker: Unbekannter State-Suffix 'opened' (state_id=zigbee.0.00158d00088398d5.opened) — fehlt in config.yaml's iobroker.state_names, Live-Update wird verworf>
                                    Sep 16 15:35:04 iob python[2904934]: 15:35:04 [WARNING] hannah.iobroker: Unbekannter State-Suffix 'contact' (state_id=zigbee.0.00158d00088398d5.contact) — fehlt in config.yaml's iobroker.state_names, Live-Update wird verwo>
                                    Sep 16 15:35:04 iob python[2904934]: 15:35:04 [WARNING] hannah.iobroker: Unbekannter State-Suffix 'device_temperature' (state_id=zigbee.0.00158d00088398d5.device_temperature) — fehlt in config.yaml's iobroker.state_names, >
                                    Sep 16 15:35:04 iob python[2904934]: 15:35:04 [WARNING] hannah.iobroker: Unbekannter State-Suffix 'power_outage_count' (state_id=zigbee.0.00158d00088398d5.power_outage_count) — fehlt in config.yaml's iobroker.state_names, >
                                    Sep 16 15:35:04 iob python[2904934]: 15:35:04 [WARNING] hannah.iobroker: Unbekannter State-Suffix 'trigger_count' (state_id=zigbee.0.00158d00088398d5.trigger_count) — fehlt in config.yaml's iobroker.state_names, Live-Updat>
                                    Sep 16 15:36:01 iob python[2904934]: 15:36:01 [INFO] hannah.trigger_engine: TriggerEngine: 0 Trigger aus der Datenbank geladen
                                    lines 1-23/23 (END)
                                    
                                    

                                    1 Antwort Letzte Antwort
                                    0
                                    • L
                                      L
                                      Leonie
                                      schrieb am zuletzt editiert von Leonie
                                      #175

                                      Gut, schick mir bitte den Inhalt aus /etc/hannah-webui/config.yaml

                                      Und zeig mir bitte die Ausgabe davon:

                                      journalctl -u hannah-webui -n 200 | grep "No secret_key configured"
                                      
                                      Walter.O.W 1 Antwort Letzte Antwort
                                      0
                                      • L Leonie

                                        Gut, schick mir bitte den Inhalt aus /etc/hannah-webui/config.yaml

                                        Und zeig mir bitte die Ausgabe davon:

                                        journalctl -u hannah-webui -n 200 | grep "No secret_key configured"
                                        
                                        Walter.O.W
                                        Walter.O.W
                                        Walter.O.
                                        schrieb am zuletzt editiert von Walter.O.
                                        #176

                                        @Leonie

                                          GNU nano 8.7.1                                             config.yaml *
                                        # Wo der WebUI-Flask-Server selbst lauscht
                                        host: "0.0.0.0"
                                        port: 5000
                                        
                                        # Signiert die Flask-Session-Cookie — muss über alle gunicorn-Worker und Neustarts
                                        # hinweg stabil sein, sonst werden Nutzer zufällig ausgeloggt. Generieren mit:
                                        #   python3 -c "import secrets; print(secrets.token_hex(32))"
                                        secret_key: "iobwalter"
                                        
                                        # Telegram Login Widget (Account-Verknüpfung in /me) — Bot-Token via @BotFather,
                                        # Domain muss dort per /setdomain auf diese WebUI-Instanz freigeschaltet sein.
                                        telegram_bot_token: "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
                                        telegram_bot_username: "xxxxx_bot"
                                        
                                        # Hannah Core, per gRPC
                                        grpc:
                                          host: "0.0.0.0"
                                          port: 50051
                                        
                                        
                                        1 Antwort Letzte Antwort
                                        0
                                        • L
                                          L
                                          Leonie
                                          schrieb am zuletzt editiert von
                                          #177

                                          den Bot token solltest du nun besser ändern und die Host-Adresse unten bei gRPC ist falsch. Da muss entweder 127.0.0.1 drin stehen oder eine andere gültige Adresse die dein Server hat, von oben: 192.168.178.122

                                          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

                                          228

                                          Online

                                          33.1k

                                          Benutzende

                                          83.8k

                                          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