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

  • Node.js 24 ist jetzt offiziell empfohlen!
    apollon77A
    apollon77
    8
    1
    276

  • NEWS Räume und Funktionen in einem Durchlauf: der Assistent in Admin 8 (mit Video)
    BluefoxB
    Bluefox
    7
    1
    277

  • NEWS: Neu im Admin, zentrale Verwaltung für Passwörter und Schlüssel
    BluefoxB
    Bluefox
    19
    1
    454

Hannah — Open Source Smart-Home-Sprachassistentin

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
311 Beiträge 24 Kommentatoren 22.8k Aufrufe 36 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
    #253

    ok, stelle bitte den Adapter auf debug und schicke mir seinen Log

    1 Antwort Letzte Antwort
    0
    • M
      M
      McBeath
      schrieb am zuletzt editiert von McBeath
      #254

      Log der Adapter.


      hannah.0
      2026-09-21 14:40:45.447 debug [states] StateChange: hannah.0.textCommand = "" (ack=true)
      hannah.0
      2026-09-21 14:40:45.437 debug [states] TextCommand: Licht Wohnzimmer einschalten
      hannah.0
      2026-09-21 14:40:45.436 debug [states] StateChange: hannah.0.textCommand = "Licht Wohnzimmer einschalten" (ack=false)
      hannah.0
      2026-09-21 14:40:27.502 debug Search can't be optimized because wildcard not at the end, fallback to keys!: function(doc) { if (doc.type === 'device') emit(doc._id, doc) }
      hannah.0
      2026-09-21 14:40:27.485 debug [weather] Sent AgentWeatherUpdate (current=false, forecast days=0)
      hannah.0
      2026-09-21 14:40:27.484 info [weather] Known-adapter discovery (daswetter.0): 0 states subscribed.
      hannah.0
      2026-09-21 14:40:27.457 info [residents] sent snapshot
      hannah.0
      2026-09-21 14:40:27.456 info [residents] Snapshot: 0 current device states sent.
      hannah.0
      2026-09-21 14:40:27.438 info [residents] Subscribed: residents.0...presence.state
      hannah.0
      2026-09-21 14:40:27.436 info [states] Snapshot: 4 current device states sent.
      hannah.0
      2026-09-21 14:40:27.415 info [states] 2 Patterns/States subscribed.
      hannah.0
      2026-09-21 14:40:27.414 info [states] Extra-Prefix subscribed: alias.0.EnOcean.*
      hannah.0
      2026-09-21 14:40:27.389 info [states] Enum-Discovery: 0 states subscribed.
      hannah.0
      2026-09-21 14:40:27.388 info [states] Room snapshot sent: 9 rooms
      hannah.0
      2026-09-21 14:40:27.385 info [states] Enum-Discovery: 9 room enums (5 devices), 2 function enums (5 states)
      hannah.0
      2026-09-21 14:40:27.371 info [states] Enum-Discovery: Loading rooms and functions...
      hannah.0
      2026-09-21 14:40:27.350 info [grpc] Connected to Hannah Core.
      hannah.0
      2026-09-21 14:40:27.335 info [grpc] Connecting to Hannah Core: 192.168.0.3:50051
      hannah.0
      2026-09-21 14:40:27.311 info starting. Version 1.1.5 in C:/ioBroker/node_modules/iobroker.hannah, node: v22.23.2, js-controller: 7.2.2
      hannah.0
      2026-09-21 14:40:27.243 debug States connected to redis: 127.0.0.1:9000
      hannah.0
      2026-09-21 14:40:27.238 debug States create User PubSub Client
      hannah.0
      2026-09-21 14:40:27.237 debug States create System PubSub Client
      hannah.0
      2026-09-21 14:40:27.233 debug Redis States: Use Redis connection: 127.0.0.1:9000
      hannah.0
      2026-09-21 14:40:27.224 debug Objects connected to redis: 127.0.0.1:9001
      hannah.0
      2026-09-21 14:40:27.214 debug Objects client initialize lua scripts
      hannah.0
      2026-09-21 14:40:27.204 debug Objects create User PubSub Client
      hannah.0
      2026-09-21 14:40:27.203 debug Objects create System PubSub Client
      hannah.0
      2026-09-21 14:40:27.202 debug Objects client ready ... initialize now
      hannah.0
      2026-09-21 14:40:27.185 debug Redis Objects: Use Redis connection: 127.0.0.1:9001
      hannah.0
      2026-09-21 14:40:22.257 info terminating
      hannah.0
      2026-09-21 14:40:22.256 info terminating
      hannah.0
      2026-09-21 14:40:21.749 info [grpc] Stream ended.
      hannah.0
      2026-09-21 14:40:21.744 info Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
      hannah.0
      2026-09-21 14:40:21.743 info terminating
      hannah.0
      2026-09-21 14:40:21.741 info Got terminate signal TERMINATE_YOURSELF

      Und das dazugehörige Log vom Core:

      2026/09/21 14:40:45 stderr 12:40:45 [INFO] hannah.main: [iobroker] Antwort (TurnOn): 'Keine Geräte gefunden.'
      2026/09/21 14:40:45 stderr 12:40:45 [WARNING] hannah.iobroker: execute: Keine Geräte für Raum 'Wohnzimmer' gefunden.
      2026/09/21 14:40:45 stderr 12:40:45 [INFO] hannah.main: [textcmd] Text: 'Licht Wohnzimmer einschalten' → Intent: TurnOn | Raum: Wohnzimmer | Gerät: None | Wert: None | SpeakerUser:
      2026/09/21 14:40:45 stderr 12:40:45 [INFO] hannah.main: [iobroker] Anfrage: 'Licht Wohnzimmer einschalten'
      2026/09/21 14:40:27 stderr 12:40:27 [INFO] hannah.grpc_server: [grpc] TimerReady gesendet
      2026/09/21 14:40:27 stderr 12:40:27 [INFO] hannah.trigger_engine: TriggerEngine: 4 States aus ioBroker-Snapshot übernommen (kein Trigger gefeuert)
      2026/09/21 14:40:27 stderr 12:40:27 [INFO] hannah.iobroker: ────────────────────────────────────────────────────────────
      2026/09/21 14:40:27 stderr 12:40:27 [INFO] hannah.iobroker: Bekannte Geräte:
      2026/09/21 14:40:27 stderr 12:40:27 [INFO] hannah.iobroker: ────────────────────────────────────────────────────────────
      2026/09/21 14:40:27 stderr 12:40:27 [INFO] hannah.iobroker: State-Cache: 4 rohe States ohne Raum (Wetter, Auto, …)
      2026/09/21 14:40:27 stderr 12:40:27 [INFO] hannah.iobroker: Cache: 0/0 States aus gRPC-Snapshot geladen.
      2026/09/21 14:40:27 stderr 12:40:27 [INFO] hannah.iobroker: Update: 0 Räume, 0 Geräte via gRPC geladen.
      2026/09/21 14:40:27 stderr 12:40:27 [INFO] hannah.iobroker: gRPC Snapshot: 4 Geräte erhalten, verarbeiten...
      2026/09/21 14:40:27 stderr 12:40:27 [INFO] hannah.grpc_server: [grpc] ioBroker-Adapter connected
      2026/09/21 14:40:22 stderr 12:40:22 [INFO] hannah.grpc_server: [grpc] ioBroker-Adapter disconnected

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

        gut, der Adapter selbst kennt schon keine Devices bzw. hat Probleme diese zu lesen. Nimm mal alias.0.EnOcean aus den zusätzlichen Präfixes raus. Ein Objectdump von alias.0.EnOcean.Schalten.Wonzimmer (oder darüber) wäre hilfreich. Rein von deinem Screenshot kann ich keinen Fehler sehen.

        1 Antwort Letzte Antwort
        0
        • M
          M
          McBeath
          schrieb am zuletzt editiert von McBeath
          #256

          Das Log vom Adapter ohne alias.0 als Präfix


          hannah.0
          2026-09-21 14:51:48.698 debug Search can't be optimized because wildcard not at the end, fallback to keys!: function(doc) { if (doc.type === 'device') emit(doc._id, doc) }
          hannah.0
          2026-09-21 14:51:48.679 debug [weather] Sent AgentWeatherUpdate (current=false, forecast days=0)
          hannah.0
          2026-09-21 14:51:48.679 info [weather] Known-adapter discovery (daswetter.0): 0 states subscribed.
          hannah.0
          2026-09-21 14:51:48.651 info [residents] sent snapshot
          hannah.0
          2026-09-21 14:51:48.651 info [residents] Snapshot: 0 current device states sent.
          hannah.0
          2026-09-21 14:51:48.631 info [residents] Subscribed: residents.0...presence.state
          hannah.0
          2026-09-21 14:51:48.629 info [states] Snapshot: 1 current device states sent.
          hannah.0
          2026-09-21 14:51:48.616 info [states] 1 Patterns/States subscribed.
          hannah.0
          2026-09-21 14:51:48.609 info [states] Enum-Discovery: 0 states subscribed.
          hannah.0
          2026-09-21 14:51:48.609 info [states] Room snapshot sent: 9 rooms
          hannah.0
          2026-09-21 14:51:48.605 info [states] Enum-Discovery: 9 room enums (5 devices), 2 function enums (5 states)
          hannah.0
          2026-09-21 14:51:48.589 info [states] Enum-Discovery: Loading rooms and functions...
          hannah.0
          2026-09-21 14:51:48.572 info [grpc] Connected to Hannah Core.
          hannah.0
          2026-09-21 14:51:48.559 info [grpc] Connecting to Hannah Core: 192.168.0.3:50051
          hannah.0
          2026-09-21 14:51:48.537 info starting. Version 1.1.5 in C:/ioBroker/node_modules/iobroker.hannah, node: v22.23.2, js-controller: 7.2.2
          hannah.0
          2026-09-21 14:51:48.478 debug States connected to redis: 127.0.0.1:9000
          hannah.0
          2026-09-21 14:51:48.473 debug States create User PubSub Client
          hannah.0
          2026-09-21 14:51:48.472 debug States create System PubSub Client
          hannah.0
          2026-09-21 14:51:48.469 debug Redis States: Use Redis connection: 127.0.0.1:9000
          hannah.0
          2026-09-21 14:51:48.458 debug Objects connected to redis: 127.0.0.1:9001
          hannah.0
          2026-09-21 14:51:48.446 debug Objects client initialize lua scripts
          hannah.0
          2026-09-21 14:51:48.435 debug Objects create User PubSub Client
          hannah.0
          2026-09-21 14:51:48.434 debug Objects create System PubSub Client
          hannah.0
          2026-09-21 14:51:48.433 debug Objects client ready ... initialize now
          hannah.0
          2026-09-21 14:51:48.416 debug Redis Objects: Use Redis connection: 127.0.0.1:9001
          hannah.0
          2026-09-21 14:51:43.384 info terminating
          hannah.0
          2026-09-21 14:51:43.384 info terminating
          hannah.0
          2026-09-21 14:51:42.880 info [grpc] Stream ended.
          hannah.0
          2026-09-21 14:51:42.874 info Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
          hannah.0
          2026-09-21 14:51:42.873 info terminating
          hannah.0
          2026-09-21 14:51:42.871 info Got terminate signal TERMINATE_YOURSELF

          Was meinst du mit Objectdump? Die Objekt Daten?
          Screenshot 2026-09-21 145421.png

          EnOcean ist ein Ordner
          Schalten ist ein Gerät
          Wohnzimmer ist ein Kanal

          L 1 Antwort Letzte Antwort
          0
          • M McBeath

            Das Log vom Adapter ohne alias.0 als Präfix


            hannah.0
            2026-09-21 14:51:48.698 debug Search can't be optimized because wildcard not at the end, fallback to keys!: function(doc) { if (doc.type === 'device') emit(doc._id, doc) }
            hannah.0
            2026-09-21 14:51:48.679 debug [weather] Sent AgentWeatherUpdate (current=false, forecast days=0)
            hannah.0
            2026-09-21 14:51:48.679 info [weather] Known-adapter discovery (daswetter.0): 0 states subscribed.
            hannah.0
            2026-09-21 14:51:48.651 info [residents] sent snapshot
            hannah.0
            2026-09-21 14:51:48.651 info [residents] Snapshot: 0 current device states sent.
            hannah.0
            2026-09-21 14:51:48.631 info [residents] Subscribed: residents.0...presence.state
            hannah.0
            2026-09-21 14:51:48.629 info [states] Snapshot: 1 current device states sent.
            hannah.0
            2026-09-21 14:51:48.616 info [states] 1 Patterns/States subscribed.
            hannah.0
            2026-09-21 14:51:48.609 info [states] Enum-Discovery: 0 states subscribed.
            hannah.0
            2026-09-21 14:51:48.609 info [states] Room snapshot sent: 9 rooms
            hannah.0
            2026-09-21 14:51:48.605 info [states] Enum-Discovery: 9 room enums (5 devices), 2 function enums (5 states)
            hannah.0
            2026-09-21 14:51:48.589 info [states] Enum-Discovery: Loading rooms and functions...
            hannah.0
            2026-09-21 14:51:48.572 info [grpc] Connected to Hannah Core.
            hannah.0
            2026-09-21 14:51:48.559 info [grpc] Connecting to Hannah Core: 192.168.0.3:50051
            hannah.0
            2026-09-21 14:51:48.537 info starting. Version 1.1.5 in C:/ioBroker/node_modules/iobroker.hannah, node: v22.23.2, js-controller: 7.2.2
            hannah.0
            2026-09-21 14:51:48.478 debug States connected to redis: 127.0.0.1:9000
            hannah.0
            2026-09-21 14:51:48.473 debug States create User PubSub Client
            hannah.0
            2026-09-21 14:51:48.472 debug States create System PubSub Client
            hannah.0
            2026-09-21 14:51:48.469 debug Redis States: Use Redis connection: 127.0.0.1:9000
            hannah.0
            2026-09-21 14:51:48.458 debug Objects connected to redis: 127.0.0.1:9001
            hannah.0
            2026-09-21 14:51:48.446 debug Objects client initialize lua scripts
            hannah.0
            2026-09-21 14:51:48.435 debug Objects create User PubSub Client
            hannah.0
            2026-09-21 14:51:48.434 debug Objects create System PubSub Client
            hannah.0
            2026-09-21 14:51:48.433 debug Objects client ready ... initialize now
            hannah.0
            2026-09-21 14:51:48.416 debug Redis Objects: Use Redis connection: 127.0.0.1:9001
            hannah.0
            2026-09-21 14:51:43.384 info terminating
            hannah.0
            2026-09-21 14:51:43.384 info terminating
            hannah.0
            2026-09-21 14:51:42.880 info [grpc] Stream ended.
            hannah.0
            2026-09-21 14:51:42.874 info Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
            hannah.0
            2026-09-21 14:51:42.873 info terminating
            hannah.0
            2026-09-21 14:51:42.871 info Got terminate signal TERMINATE_YOURSELF

            Was meinst du mit Objectdump? Die Objekt Daten?
            Screenshot 2026-09-21 145421.png

            EnOcean ist ein Ordner
            Schalten ist ein Gerät
            Wohnzimmer ist ein Kanal

            L
            L
            Leonie
            schrieb am zuletzt editiert von
            #257

            image.jpeg

            das. also im Objektdraum Wohnzimmer wählen und dann das Icon oben.

            @McBeath sagte:

            EnOcean ist ein Ordner
            Schalten ist ein Gerät
            Wohnzimmer ist ein Kanal

            Das könnte ein Grund sein. Aber bitte den Dump geben :)

            1 Antwort Letzte Antwort
            0
            • M
              M
              McBeath
              schrieb am zuletzt editiert von McBeath
              #258

              @leonie
              Das könnte ein Grund sein.

              Das wäre schlecht, weil alle Objekte im Produktivsystem bei mir diese Struktur haben.
              Und der Aufbau in meine Skripten auch so von nöten ist. 🤔

              alias.0.EnOcean.Schalten.Wohnzimmer.json

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

                ich schätze halt dass das nicht korrekt ist. Aber dazu können die ioBroker-Profis mehr sagen. Danke für den Export, ich werde es prüfen. Ich denke Wohnzimmer müsste ein Raum sein und optimal würde dann zwischen Raum und State ein Device wie bspw. "Deckenlampe" sein.

                Ich muss den Parser prüfen, wird eine Weile dauern.

                1 Antwort Letzte Antwort
                0
                • M
                  M
                  McBeath
                  schrieb am zuletzt editiert von McBeath
                  #260

                  Ich erwarte in spätestens 2 Stunden das Ergebnis, das sind wir hier so von dir gewöhnt!! 😉 😂
                  Spaß bei Seite, kein Stress, gut ding will weile haben.

                  iobroker lässt das aber nur in dieser Reihenfolge zu, nur Verzeichnisse kann man noch weiter kaskadieren, ansonsten geht nur:
                  Verzeichnis (folder)-> Gerät (device)-> Kanal (chanel)-> Zustand (state)

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

                    Hannah supportet das aktuell aber nicht. Sie will immer das Device im Raum haben und die Funktion am State. Alternativ noch den Raum am Channel. Ich denke da auch immer "physisch". Ein Device ist eigentlich immer in einem Raum und niemals Hausweit.

                    Aber ich baue dir gerne einen Fix in die Software, damit der Parser auch den Raum am State erkennt

                    https://github.com/NurPech/ioBroker.hannah/issues/187

                    1 Antwort Letzte Antwort
                    0
                    • M
                      M
                      McBeath
                      schrieb am zuletzt editiert von McBeath
                      #262

                      Hab das auch mal mit Gerat im Raum probiert, klappt aber auch nicht.

                      Mal ne dumme Frage, warum suchst du die Räume im Baum und nicht aus den Enum "room" und die Funktion in "functions"?
                      Erschlag mich jetzt nicht, bin kein Programmierer.
                      Auf diese Art und Weise sucht mein kleiner Yarvis im gesamten Baum nach was passendem.

                      Ich suche zwar auch im Baum aber nur weil ich nicht
                      "Licht Küche Deckenlampe einschalten" oder "Licht Küche Anrrichte einschalten" sagen will, sondern nur
                      "Licht Küche einschalten" oder Licht Anrichte ausschalten".

                          let idListe = [];
                          Return = 
                          X = Suche.toLowerCase()
                          Y = Funktion.toLowerCase()
                          State = 'CMD';
                          Room = X.slice(1, X.length);
                      
                          if (Y == 'temperatur') {State = 'Temperatur',Y = 'temperatur_sensor'}
                          if (Y == 'rolladen') {State = 'Soll-Position'}
                          if ((Value > 1) && (Y == 'licht')) {State = 'Soll'}
                          if ((Value == 'status') && (Y == 'licht') || (Y == 'gerät')) {State = 'Status'}
                          if ((Value == 'status') && (Y == 'rolladen')) {State = 'Geöffnet_zu'}
                      
                          $('alias.0.*' + Room + '*.' + State +'(functions=' + Y + ')').each(function(id) {idListe.push(id)});
                      
                          for (var i_index in idListe) {
                              i = idListe[i_index];
                              if (String((i.toLowerCase())).includes(X)) {Return = i;break}
                          }
                          if (Return == Suche) {Return=null}
                          return Return;
                      
                      1 Antwort Letzte Antwort
                      0
                      • L
                        L
                        Leonie
                        schrieb am zuletzt editiert von Leonie
                        #263

                        Ich suche schon die Räume in den Enums, das ist nicht das Problem. Der Parser ist nur recht starr darauf ausgelegt, das ein State eben keinen Raum hat, sondern der Raum immer im übergeordneten Element ist. Aber ich habe das ja nun geändert. Einfach Adapter v1.1.6 installieren und deine States sollten funktionieren.

                        Nebenbei: Wenn du den Raum "Küche" hast und darin 5000 Devices die alle als "Lampe" deklariert sind und du sagst du Hannah "Licht Küche an", schaltet sie durchaus alle Lampen in Raum an ;)

                        1 Antwort Letzte Antwort
                        0
                        • M
                          M
                          McBeath
                          schrieb am zuletzt editiert von McBeath
                          #264

                          Ich werte es testen und dann berichten, Dank die 👍

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

                            Dafür gibt es nun einen standalone Chat für Hannah:
                            https://github.com/Leonie-Network/hannah-chat/releases

                            Da liegen fertig kompilierte Binaries für Windows und Linux, aber "nur" 64bit. Also keine ARM-Prozessoren wie Handy oder Raspberry Pi, dafür aber Desktop Prozessoren für den heimischen PC.

                            Neben der Binary muss noch die Datei config.yaml existieren, deren Inhalt kann man sich hier kopieren und dann an die eigenen Gegebenheiten anpassen: https://github.com/Leonie-Network/hannah-chat/blob/main/config.example.yaml

                            Unterstützt wird aktuell nur der anonyme Chat. Also Hannah wird nicht wissen wer grade mit ihr spricht, aber sie wird alles tun, was quasi Gäste dürfen, also bspw. das Haus steuern oder, bei Verfügbarkeit eines LLMs, in den Smalltalmodus gehen.

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

                              Da das Thema in letzter Zeit öfter aufkam, hier ein kurzer Einblick, warum Hannah bei manchen Setups Einfluss auf andere Dienste (wie Modbus TCP, ioBroker oder Home Assistant) zu haben scheint:

                              Das Problem bei Multi-Task-Hosts (z. B. Synology oder QNAP NAS / schwache Single-Board-Computer):
                              NAS-Systeme sind hervorragende Datengräber, Multitalente und Container-Hosts für Leichtgewichte. Reines Python verbraucht zwar kaum Ressourcen, aber sobald im Hintergrund Machine-Learning-Frameworks wie PyTorch für Sprachverarbeitung und Inferenz anziehen, schießt die Last kurzzeitig extrem hoch. Wenn das zusammen mit I/O-sensiblen Diensten auf derselben Kiste läuft, teilen sich alle Prozesse dieselben CPU-Time-Slices.

                              Anders gesagt: Hannah ist nicht darauf ausgelegt auf NAS-Systemen stabil zu laufen, dafür ist sie zu mächtig.

                              Das soll nicht heißen dass die NAS-Systeme schlechte CPUs hätten, sie sind schlicht nicht für die Last gebaut.

                              Warum Modbus TCP dann abkackt:
                              Modbus-TCP-Gateways in Wechselrichtern sind extrem empfindlich. Wenn der Host-Prozess durch eine kurze CPU-Spitze oder einen kurzen Event-Loop-Stall (z. B. bei der Verarbeitung von Requests) für wenige Sekunden keine Zeit abbekommt, rennt der Modbus-Poll in einen Timeout. Das Ergebnis sind hässliche Aussetzer und Lücken im Diagramm.

                              Empfehlung für die Praxis:

                              • Netzwerk & Hardware trennen: Wenn Hannah auf einer Synology läuft, sollte man der NAS entweder ausreichend CPU/RAM-Reserven gönnen oder Hannah auf eine eigene dedizierte Hardware (z. B. ein separates System / NUC / Raspi) auslagern.

                              • Keine Modbus-Direktabfragen: Hannah sollte selbst niemals direkt Ressourcen pollen, sondern Daten passiv/push-getrieben aus eurem Smart-Home-System beziehen.

                              • System-Monitoring: Bei Lücken in anderen Diensten immer erst htop / docker stats prüfen – meist ist es ein lokaler CPU- oder I/O-Bottleneck auf dem Host und kein Fehler im Endgerät.

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

                                Hallo zusammen,

                                für alle, die Hannah gerne ausprobieren oder in ihrer ioBroker-Umgebung testen möchten, aber keinen passenden ESP32 zur Hand haben und für einen Test nicht direkt durch den Dschungel der PCBA-Bestellung gehen wollen, habe ich etwas gebastelt:

                                Ab sofort gibt es die Hannah Desktop Satellite (Lite) Software für Windows und Linux. Damit könnt ihr euren PC oder Laptop direkt als Hannah-Satelliten nutzen.

                                Was kann die Software?
                                Die App deckt alle grundlegenden Audiofunktionen ab:

                                • Push-to-Talk (Sprachaufnahme per Knopfdruck)
                                • Stummschaltung (Mute)
                                • Lautstärkeregelung

                                Was unterscheidet sie von den ESP-Satelliten?
                                Da es sich um eine schlanke Lite-Variante handelt, fehlen hardwarebasierte Zusatzfunktionen:

                                • Kein Wakeword (Aktivierung erfolgt manuell via Push-to-Talk)
                                • Keine integrierten Sensoren (kein Bluetooth-Tracking, keine Umweltsensoren)
                                • Keine Steuerung von physikalischen LEDs
                                • Kein Over-the-Air (OTA) Update

                                Ein paar Worte zur Zukunft & Support der Software
                                Damit die Erwartungen richtig gesteckt sind, hier ein kleiner Transparenz-Hinweis von meiner Seite:

                                • Funktionsumfang: Die Software wird genau mit den oben beschriebenen Features bereitgestellt. Erweitert wird sie um keine weiteren Funktionen – für das volle Hannah-Erlebnis mit Wakeword und Sensorik sind weiterhin die ESP-Satelliten gedacht.

                                • Wartung & Stabilität: Da die Kommunikationsschnittstelle seit mehreren Wochen eingefroren und stabil ist, erwarte ich in den kommenden Monaten hier keine Umbrüche. Ich werde auftretende Bugs im Blick behalten und dafür sorgen, dass die Lite-Software funktionstüchtig bleibt und an künftige Hannah-Anpassungen angeglichen wird.

                                • Langzeit-Perspektive: Ich pflege die Software nach meinen zeitlichen Möglichkeiten. Solange sie ihren Zweck als unkomplizierter Test-Satellit erfüllt, bleibt sie euch natürlich erhalten.

                                Den Download findet ihr hier: https://github.com/Leonie-Network/hannah-satellite-lite/releases

                                Für die Installation einfach die gewünschte Datei (für Windows oder Linux) runterladen und die config.yaml daneben legen. Eine Beispielconfig findet ihr dort: https://raw.githubusercontent.com/Leonie-Network/hannah-satellite-lite/refs/heads/main/config.example.yaml Diese müsst ihr an eure Installation anpassen.

                                Die Software benötigt einen laufenden Hannah-Core, ob über Docker oder die native Installation ist egal.

                                Mal angenommen ihr seid auf Windows unterwegs dann ladet ihr zum Zeitpunkt dieses Posts diese Datei herunter: hannah-satellite-lite-v0.0.2-windows-amd64.exe. Dann öffnet ihr ein Terminal (Powershell oder Eingabeaufforderung) und wechselt an den Ort wo die herungeladene Datei liegt.
                                Dann gebt ihr ein:

                                .\hannah-satellite-lite-v0.0.2-windows-amd64.exe --config config.yaml
                                

                                Probieren geht über Studieren – schaut sie euch gerne an und gebt Feedback, wie der Einstieg geklappt hat!

                                Liebe Grüße

                                1 Antwort Letzte Antwort
                                0
                                • M McBeath

                                  Kleines Update auch von mir ;)
                                  Mit deinem aktualisieren Image und ändern des Port zurück auf 5000,
                                  läuft der core und die webui jetzt stabil.
                                  Ist die Webui meldet sich jetzt auch.
                                  Nur wo finde ich die korrekten Daten zum anmelde? 😲

                                  Der compose Builder wird für nicht so versierte User wie mich sehr hilfreich sein. 😁

                                  M
                                  M
                                  micklafisch
                                  schrieb am zuletzt editiert von
                                  #268

                                  @McBeath
                                  ich versuche mich gerade an der Installation von Hannah auf einer Syno. Läuft bei dir das ganze nun mit Port 5000? Bei mir schlägt der Start vom Container webui fehl, da der Port bereits durch die Syno belegt ist. Deine Aussage war ja nach einem zurück auf 5000 läuft es?!

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

                                    Die synology nutzt den Port 5000 selbst, genau wie auch Port 5001. Änder den Port einfach auf irgendeinen anderen, 5003 bspw.

                                    1 Antwort Letzte Antwort
                                    0
                                    • M
                                      M
                                      micklafisch
                                      schrieb am zuletzt editiert von
                                      #270

                                      ja, mich wundert nur die Aussage von @McBeath dass es bei Port 5000 nun bei ihm läuft. Danke, du bist echt flott

                                      1 Antwort Letzte Antwort
                                      0
                                      • M
                                        M
                                        micklafisch
                                        schrieb am zuletzt editiert von
                                        #271

                                        der Container für die Core stürzt permanent ab, Fehlermeldung "access denied". Ich hatte aus der Doku die compose.yaml erstellt und verwendet.

                                        2026/09/23 15:42:34	stderr	mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'hannah_user'@'172.22.0.4' (using password: YES)
                                        2026/09/23 15:42:34	stderr	    ) from err
                                        2026/09/23 15:42:34	stderr	        err.errno, msg=err.msg, sqlstate=err.sqlstate
                                        2026/09/23 15:42:34	stderr	    raise get_mysql_exception(
                                        2026/09/23 15:42:34	stderr	  File "/usr/local/lib/python3.14/site-packages/mysql/connector/connection_cext.py", line 360, in _open_connection
                                        2026/09/23 15:42:34	stderr	    ~~~~~~~~~~~~~~~~~~~~~^^
                                        2026/09/23 15:42:34	stderr	    self._open_connection()
                                        2026/09/23 15:42:34	stderr	  File "/usr/local/lib/python3.14/site-packages/mysql/connector/abstracts.py", line 1604, in connect
                                        2026/09/23 15:42:34	stderr	    ~~~~~~~~~~~~^^^^^^^^^^
                                        2026/09/23 15:42:34	stderr	    self.connect(**kwargs)
                                        2026/09/23 15:42:34	stderr	  File "/usr/local/lib/python3.14/site-packages/mysql/connector/connection_cext.py", line 142, in __init__
                                        2026/09/23 15:42:34	stderr	    return CMySQLConnection(*args, **kwargs)
                                        2026/09/23 15:42:34	stderr	  File "/usr/local/lib/python3.14/site-packages/mysql/connector/pooling.py", line 322, in connect
                                        2026/09/23 15:42:34	stderr	           ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
                                        2026/09/23 15:42:34	stderr	    return mysql.connector.connect(**kwargs)
                                        2026/09/23 15:42:34	stderr	  File "/usr/local/lib/python3.14/site-packages/pyorm/dialects/mysql.py", line 26, in connect
                                        2026/09/23 15:42:34	stderr	               ~~~~~~~~~~~~~~~^^^^^^^^^^
                                        2026/09/23 15:42:34	stderr	    return cls(dialect.connect(**kwargs), dialect)
                                        2026/09/23 15:42:34	stderr	  File "/usr/local/lib/python3.14/site-packages/pyorm/database.py", line 32, in mysql
                                        2026/09/23 15:42:34	stderr	    ^
                                        2026/09/23 15:42:34	stderr	    )
                                        2026/09/23 15:42:34	stderr	        ^^^^^^^^^^^^^^^^^^^^^^^^^^
                                        2026/09/23 15:42:34	stderr	        database=_cfg["database"],
                                        2026/09/23 15:42:34	stderr	    ...<3 lines>...
                                        2026/09/23 15:42:34	stderr	        ^^^^^^^^^^^^^^^^^^
                                        2026/09/23 15:42:34	stderr	        host=_cfg["host"],
                                        2026/09/23 15:42:34	stderr	           ~~~~~~~~~~~~~~^
                                        2026/09/23 15:42:34	stderr	    return Database.mysql(
                                        2026/09/23 15:42:34	stderr	  File "/app/hannah/utils/activity_db.py", line 50, in get_activity_db
                                        2026/09/23 15:42:34	stderr	    db = get_activity_db()
                                        2026/09/23 15:42:34	stderr	  File "/app/hannah/utils/activity_db.py", line 39, in init_activity_db
                                        2026/09/23 15:42:34	stderr	    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
                                        2026/09/23 15:42:34	stderr	    init_activity_db(activity_log_cfg)
                                        2026/09/23 15:42:34	stderr	  File "/app/main.py", line 150, in main
                                        2026/09/23 15:42:34	stderr	    ~~~~^^
                                        2026/09/23 15:42:34	stderr	    main()
                                        2026/09/23 15:42:34	stderr	  File "/app/main.py", line 2696, in <module>
                                        2026/09/23 15:42:34	stderr	Traceback (most recent call last):
                                        2026/09/23 15:42:34	stderr	
                                        2026/09/23 15:42:34	stderr	The above exception was the direct cause of the following exception:
                                        2026/09/23 15:42:34	stderr	
                                        2026/09/23 15:42:34	stderr	_mysql_connector.MySQLInterfaceError: Access denied for user 'hannah_user'@'172.22.0.4' (using password: YES)
                                        2026/09/23 15:42:34	stderr	    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
                                        2026/09/23 15:42:34	stderr	    self._cmysql.connect(**cnx_kwargs)
                                        2026/09/23 15:42:34	stderr	  File "/usr/local/lib/python3.14/site-packages/mysql/connector/connection_cext.py", line 354, in _open_connection
                                        2026/09/23 15:42:34	stderr	Traceback (most recent call last):
                                        2026/09/23 15:42:33	stderr	13:42:33 [INFO] hannah.main: Hannah Core dev
                                        

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

                                          Zeige mir bitte die generierte compose.yaml. gerne auch per Chat

                                          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

                                          482

                                          Online

                                          33.1k

                                          Benutzende

                                          83.9k

                                          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