homebridge-bslamp2 (Mi Bedside Lamp 2)

  • Hallo erstmal,

    ich hatte in den letzten Wochen/Monaten immer wieder Verbindungsprobleme mit den Mi Bedside Lamps 2 und HomeKit. Googlen hat nur gezeigt das ich nicht alleine bin damit, aber eine Lösung habe ich nicht gefunden. Also habe ich mir das Problem genauer angeschaut und raus gefunden das der Bonjour/mDNS service _hap._tcp. nicht durchgehend von der Lampe published wird. Ohne funktioniert aber logischerweise die Kommunikation von HomeKit zu den Lampen nicht. Habe auch schon den Yeelight und Xiaomi Support das Problem und eine potentielle Lösung geschrieben, aber ich bezweifle das da irgendwas passiert :rolleyes:


    Naja, lange Rede kurzer Sinn ich habe ein Homebridge plugin geschrieben das genau das gleiche macht wie HomeKit nur braucht das plugin nicht den mDNS Service sondern gibt sich mit einer statischen IP zufrieden. Läuft seit ein paar Tagen ohne einen einzigen Fehler bei mir, deshalb hab ich's jetzt heute mal published.


    Naja, falls es Fragen/Anregungen gibt dann immer her damit ;)


    https://www.npmjs.com/package/homebridge-bslamp2


    Gruß

    satrik

  • Hallo zusammen,

    genau dasselbe Problem habe ich mit meinen Mi Bedside Lamps 2.

    Habe 3 von diesen Lampen.

    Homekit verliert ständig die Verbindung zu den Lampen.

    Bei Google Home absolut keine Probleme, aber das möchte ich ja nicht.

    Habe mir jetzt den Raspberry Pi 4 Modell B 2GB SDRAM bestellt.

    Vorbereitet habe ich alles soweit.

    Die Raspbian-Homebridge geladen und die SD Karte mit balenaEtcher geflasht.

    Bin zumindest bei Rasperry Neuling und weiß nicht so genau wie ich diese Plugins installiere.:(

    Alles andere ist für mich soweit klar.

    Vielleicht bekomme ich einen kleinen tipp wie man solche Plugins installiert.

    Vielen Dank.

    Gruß Rainer


  • Hallo Rainer, zunächst herzlich willkommen hier im Forum!


    Du kannst dich hier einlesen: https://smartapfel.de/homebridge/, dort wird in Kapitel 2 auch beschrieben wie Plugins installiert und verwaltet werden.


    Weiterhin guten Austausch!

  • Hallo Patrick_

    oh super vielen Dank.

    Hab ich nicht gesehen hier.

    Werd ich dann wenn der raspberry da ist gleich testen.

    Gebe dann Rückmeldung ob alles geklappt hat.:)


  • Guten Morgen zusammen.

    Jetzt bräuchte ich doch mal Hilfe.:)

    Habe mir das oben genannte Plugin installiert und bin bei der Konfiguration am scheitern.

    Da wird mir beim abspeichern die Fehlermeldung,

    " Syntaxfehler in der Konfiguration. Konfiguration enthält ungültiges Zeichen "

    Ich hab ka Ahnung.

    Habe den Text kopiert und angepasst bezüglich statische IP und Name.

    Wäre super wenn sich das mal jemand anschauen könnte.

    Da kenn ich mich nicht aus was da falsch ist.

    Hab nur hier bei dem Text die letzten Zahlen der Mac und IP Adresse entfernt.


    Danke schonmal.

    Gruß Rainer


    {

    "accessory": "MiBedsideLamp2",

    "name": "Mi Bedside Lamp 2",

    "id": „40:31:3C:33:42:“,

    "address": "192.168.1.“,

    "port": 80,

    "pairingData": {

    "AccessoryPairingID": "12312a45645a78978a12312a45645a7890",

    "AccessoryLTPK": "1d3c8db26d21a66d37535a6a7892f5aaa33a8ba86c63ef3456890c253a2636ce",

    "iOSDevicePairingID": "360342967342985723409587234576139874634206895435678934058123095634759086",

    "iOSDeviceLTSK": "1424f4ed6b24c5b78e2938475b3edc395619433a32ce1252cb4c8856c0faaf4daae82ac6c560de5c365dcba87c4024ebb309896d2d8c267344ff6a52794ae194c",

    "iOSDeviceLTPK": "fae66ac3c263de3c647dcba46c8643ebb245757d3d5c87974ff3a25143ae689c"

    }

    }


  • "id": „40:31:3C:33:42:“,

    JSON hätte gern, dass du Anführungszeichen verwendest und nicht irgendwelche zwei Striche am unteren Ende der Zeile oder komische Striche am oberen Ende.


    Also dieses Zeichen: " und nicht dieses: „ oder dieses: “.

  • JSON hätte gern, dass du Anführungszeichen verwendest und nicht irgendwelche zwei Striche am unteren Ende der Zeile oder komische Striche am oberen Ende.


    Also dieses Zeichen: " und nicht dieses: „ oder dieses: “.

    Das funktioniert jetzt alles. Danke.

    Jetzt kommt diese Meldung.

    An der ID vom Gerät liegt es nicht, die stimmt absolut.

    Vielleicht haste ja nochmal einen Tipp.



    [12/02/2022, 10:56:00] [Licht 5] Error: M2: Wrong accessory pairing ID

    at PairingProtocol.parsePairVerifyM2 (/usr/local/lib/node_modules/homebridge-bslamp2/node_modules/hap-controller/src/protocol/pairing-protocol.ts:627:19)

    at processTicksAndRejections (node:internal/process/task_queues:96:5)

    at HttpClient._pairVerify (/usr/local/lib/node_modules/homebridge-bslamp2/node_modules/hap-controller/src/transport/ip/http-client.ts:275:9)

    at HttpClient.getCharacteristics (/usr/local/lib/node_modules/homebridge-bslamp2/node_modules/hap-controller/src/transport/ip/http-client.ts:415:22)


  • Dazu müsste man mal deine Config.json sehen. Sonst bringt das herzlich wenig. Die Fehlermeldung ist eindeutig, die Accesory Pairing ID ist falsch.


    Die Beispiel config sieht so aus:

    2 Mal editiert, zuletzt von Patrick_ ()

  • Dazu müsste man mal deine Config.json sehen. Sonst bringt das herzlich wenig. Die Fehlermeldung ist eindeutig, die Accesory Pairing ID ist falsch.


    Die Beispiel config sieht so aus:

    Die ID stimmt aber zumindest steht sie so auf dem Gerät selber und im Router.

    Die Config


    },
        "accessories": [
    {
                "accessory": "MiBedsideLamp2",
                "name": "Licht 5",
                "id": "40: 31: 3C: 33: 42: 91",
                "address": "192.168.1.10",
                "port": 80,
                "pairingData": {
                    "AccessoryPairingID": "12312a45645a78978a12312a45645a7890",
                    "AccessoryLTPK": "1d3c8db26d21a66d37535a6a7892f5aaa33a8ba86c63ef3456890c253a2636ce",
                    "iOSDevicePairingID": "360342967342985723409587234576139874634206895435678934058123095634759086",
                    "iOSDeviceLTSK": "1424f4ed6b24c5b78e2938475b3edc395619433a32ce1252cb4c8856c0faaf4daae82ac6c560de5c365dcba87c4024ebb309896d2d8c267344ff6a52794ae194c",
                    "iOSDeviceLTPK": "fae66ac3c263de3c647dcba46c8643ebb245757d3d5c87974ff3a25143ae689c"
    }


  • Sorry, hab gar nicht gesehen, dass deine Config oben schon stand.


    Hast du einfach die ganzen Pairing IDs und Codes kopiert? Du musst vermutlich deine eigenen hier eintragen, da die von deiner Lampe anders sein werden.

  • Sorry, hab gar nicht gesehen, dass deine Config oben schon stand.


    Hast du einfach die ganzen Pairing IDs und Codes kopiert? Du musst vermutlich deine eigenen hier eintragen, da die von deiner Lampe anders sein werden.

    Ne ne ...hab natürlich die Daten " Name , ID IP Adresse vom Gerät eingefügt.


  • Schon klar, ich rede aber von der PairingData:


    Code
     "pairingData": {
                    "AccessoryPairingID": "12312a45645a78978a12312a45645a7890",
                    "AccessoryLTPK": "1d3c8db26d21a66d37535a6a7892f5aaa33a8ba86c63ef3456890c253a2636ce",
                    "iOSDevicePairingID": "360342967342985723409587234576139874634206895435678934058123095634759086",
                    "iOSDeviceLTSK": "1424f4ed6b24c5b78e2938475b3edc395619433a32ce1252cb4c8856c0faaf4daae82ac6c560de5c365dcba87c4024ebb309896d2d8c267344ff6a52794ae194c",
                    "iOSDeviceLTPK": "fae66ac3c263de3c647dcba46c8643ebb245757d3d5c87974ff3a25143ae689c"
    }

    Ich hab die mal mit der auf der Plugin-Seite verglichen und du hast 1zu1 die gleichen verwendet. Ich bin mir ziemlich sicher, dass das so nicht richtig ist.


    Da steht auf der Plugin-Seite wie du da an deine eigenen dran kommst.

  • Schon klar, ich rede aber von der PairingData:


    Code
     "pairingData": {
                    "AccessoryPairingID": "12312a45645a78978a12312a45645a7890",
                    "AccessoryLTPK": "1d3c8db26d21a66d37535a6a7892f5aaa33a8ba86c63ef3456890c253a2636ce",
                    "iOSDevicePairingID": "360342967342985723409587234576139874634206895435678934058123095634759086",
                    "iOSDeviceLTSK": "1424f4ed6b24c5b78e2938475b3edc395619433a32ce1252cb4c8856c0faaf4daae82ac6c560de5c365dcba87c4024ebb309896d2d8c267344ff6a52794ae194c",
                    "iOSDeviceLTPK": "fae66ac3c263de3c647dcba46c8643ebb245757d3d5c87974ff3a25143ae689c"
    }

    Ich hab die mal mit der auf der Plugin-Seite verglichen und du hast 1zu1 die gleichen verwendet. Ich bin mir ziemlich sicher, dass das so nicht richtig ist.


    Da steht auf der Plugin-Seite wie du da an deine eigenen dran kommst.

    ahh ok danke.

    Ist für mich noch bissl Neuland das ganze.

    Ich bemüh mich das ich euch nicht zu arg nerv.

    Muss ich schauen wie ich an die PairingData da ran komme.


  • So, ich denk mal fast wäre es geschafft, wenn wieder mal irgendein Zeichen passt.

    'bslamp pair 192.168.1.105 047-93-223'

    welches Zeichen passt den hier net:(


  • Bitte auch die Fehlermeldung posten. Den Befehl gibst du ohne die Anführungsstriche ein?

  • Bitte auch die Fehlermeldung posten. Den Befehl gibst du ohne die Anführungsstriche ein?

    Da kommt genauso wieder dieser , Syntaxfehler in der Konfiguration. Konfiguration enthält ungültiges Zeichen.

    Kann ich mit oder ohne eingeben.

    Nun ich geh ja von der Plugin Seite aus wie in der Verwendung bslamp beschrieben.

    Ich geh ja auch mal davon aus das man diese Eingabe in der Homebridge unter dem installierten Plugin in der Konfiguration eingibt um eben diese Codes zu bekommen.

    Oder wahrscheinlich bin ich zu deppert dazu:)


  • Ähm, nein. Der Befehl hat in der Konfiguration nichts verloren. Der muss in einer Kommandozeile eingegeben werden.


    In der Weboberfläche deiner Homebridge hast du rechts oben drei Punkte, draufklicken, dann auf "Konsole" und dort eingeben. Vllt. hast du Glück und es funktioniert.


    Vermutlich musst du dich aber auf deinem Raspberry Pi über SSH einloggen. Dazu nimmst du dir dein Mac/Macbook etc., öffnest unter Dienstprogramme die "Terminal" App und gibst dort ssh [email protected] (deine IP Adresse vom Raspberry Pi) ein.

    Dann wirst du nach einem Passwort gefragt. Solltest du das noch nie geändert haben, dann ist es raspberry.


    Dort dann den Befehl eingeben, wenn du korrekt verbunden bist. Ersichtlich daran, dass die Kommandozeile mit einem pi@homebridge: $ beginnt.

  • Oh Patrick_

    ich danke Dir sehr für Deine Geduld und Hilfe.

    Es funktioniert jetzt. juuhhuuu:)

    Vielen Dank


  • Hallo zusammen, ich bekomme leider folgende response, es handelt sich um eine Xiaomi Bedside lamp 2. Gibts da unterschiedliche Generationen?


  • So kurze Rückmeldung.

    Erstmal danke für das Plugin und die Hilfe.

    Läuft sowas von Rund und die Probleme gehören der Vergangenheit an.

    Danke