Problem in Kombination mit mehreren Plugins und MagicHome?

  • Liebe community,

    da ich mir nun einen Apple HomePod anschaffen werde, bzw. schon angeschafft habe wollte ich natürlich auch versuchen alle Geräte in die home app einzubinden. Mir ist das bisher für die Xiaomi yeelights gelungen, und für die MagicHome led stripes. Nun, würde ich aber gerne meine Ewelink Steckdosen noch einbinden mit diesem Plugin: https://github.com/howanghk/homebridge-ewelink. Funktioniert aber nicht, da wenn ich in der config.json Datei noch eine weitere Platform einfüge, im Startvorgang die Homebridge folgendes an Fehlern ausspuckt:


    [11/3/2019, 11:41:28 PM] [MagicHome-Platform] [ 'Polling Light', undefined ]

    [11/3/2019, 11:41:28 PM] TypeError: Cannot read property 'length' of undefined

    at LightAgent.getAddress (/usr/local/lib/node_modules/homebridge-magichome-platform/src/lib/lightAgent.js:170:24)

    at LightBulb.executeCommand (/usr/local/lib/node_modules/homebridge-magichome-platform/src/accessories/base.js:39:69)

    at LightBulb.sendCommand (/usr/local/lib/node_modules/homebridge-magichome-platform/src/accessories/lightBulb.js:53:10)

    at LightBulb.getState (/usr/local/lib/node_modules/homebridge-magichome-platform/src/accessories/lightBulb.js:101:10)

    at LightBulb.updateState (/usr/local/lib/node_modules/homebridge-magichome-platform/src/accessories/lightBulb.js:80:10)

    at Timeout.LightBulb.setTimeout [as _onTimeout] (/usr/local/lib/node_modules/homebridge-magichome-platform/src/accessories/lightBulb.js:22:12)

    at listOnTimeout (timers.js:327:15)

    at processTimers (timers.js:271:5)

    [11/3/2019, 11:41:28 PM] Got SIGTERM, shutting down Homebridge...


    Was da passiert, ist anscheinend, dass das Plugin MagicHome versucht sich eine Lampe von einer undefinierten IP Adresse zu ziehen, bzw. anzusteuern, diese Lampe ist aber nicht als IP irgendwo definiert, in der config denke ich mal, und deswegen beendet sich dann die Home Bridge...ohne weitere Platform funktioniert die Homebridge auch, aber eben mit einer weiteren Platform, egal welchen, wirklich egal welcher oder mit welchen Plugin bekomme ich immer wieder diese Fehlermeldung, bin echt am verzweifeln...meine config.json sieht folgendermaßen aus, wie gesagt es tritt nur mit einer zweiten Platform auf. Einen Fehler in der config sehe ich jetzt erstmal nicht.


    {

    "bridge": {

    "name": "Makesmart Server",

    "username": "xxxx",

    "port": 00000,

    "pin": "0000000"

    },


    "platforms": [

    {

    "platform": "MagicHome-Platform",

    "debug": true,

    "lights": [

    {

    "name": "Tisch",

    "ip": "192.168.178.32",

    "setup": "RGBW"

    },

    {

    "name": "Indirekte Beleuchtung hinten",

    "ip": "192.168.178.39",

    "setup": "RGBW"

    },

    {

    "name": "Vitrine",

    "ip": "192.168.178.40",

    "setup": "RGBW"

    },

    {

    "name": "Indirekte Beleuchtung vorne",

    "ip": "192.168.178.34",

    "setup": "RGBW"

    },

    {

    "platform" : "eWeLink",

    "name" : "eWeLink",

    "email" : "[email protected]",

    "password" : "Homepw",

    "imei" : "eine generierte IMEI von einer Website"

    }

    ]

    }

    ]

    }

  • Die config sieht soweit gut aus. Stelle nur fest, dass die „accessoires“ [ ] fehlen. Wenn’s mit einem platform-Plugin aber ging...??? Trage sie trotzdem mal in die config ein.


    Ich gehe davon aus, dass alle hier definierten IP’s auch static-IP’s sind und zu den genannten Geräten korrekt zugeordnet sind?! Als Plugin ist momentan MacigHome und eWeLink installiert - korrekt?


    Lösch alles aus der config von MagicHome raus und teste nur das eWeLink-Thema. Lass aber beide Plugins aktiv. Dann restart der HomeBridge. Wenn es sauber durchläuft, dann darunter in der config die Einstellungen von MagicHome und restart HB. Bin gespannt 8)

  • Du hast da ein paar Klammern falsch gesetzt. So gerät die platform eWeLink in die platform MagicHome-Platform. So ist es besser:


  • Stefan hat wie immer recht.

    Habe ich falsch gesehen 8|

  • Die config sieht soweit gut aus. Stelle nur fest, dass die „accessoires“ [ ] fehlen. Wenn’s mit einem platform-Plugin aber ging...??? Trage sie trotzdem mal in die config ein.


    Ich gehe davon aus, dass alle hier definierten IP’s auch static-IP’s sind und zu den genannten Geräten korrekt zugeordnet sind?! Als Plugin ist momentan MacigHome und eWeLink installiert - korrekt?


    Lösch alles aus der config von MagicHome raus und teste nur das eWeLink-Thema. Lass aber beide Plugins aktiv. Dann restart der HomeBridge. Wenn es sauber durchläuft, dann darunter in der config die Einstellungen von MagicHome und restart HB. Bin gespannt 8)

    Okay, das war zwar relativ unerwartet, weil ich der Meinung war meine config wär richtig, aber jetzt habe ich es verstanden...es muss noch eine eckige Klammer zwischen die einzelnen Plugins, sonst funktioniert es nicht. Funktioniert jetzt aufjedenfall astrein, MagicHome controller reagieren sofort und die Sonoff Steckdosen ebenfalls, und die Xiaomi yeelights sind auch eingebunden. Bin nun super zufrieden, und bin nun startklar wenn mein HomePod am Mittwoch ankommt. Eine Frage hätte ich vielleicht noch, wie kann ein Plugin in der Homebridge laufen welches weder unter Accessoires oder plugins eingebunden ist? Ich habe das Yeelight plugin installiert, und am Anfang eben auch wie hier den selben Fehler mit der config gemacht. Dann habe ich das Plugin aus der config rausgeschmissen, aber wenn ich die Homebridge starte startet das Plugin gleich automatisch mit? Funktioniert auch soweit. Wie lassen sich Plugins eigentlich ohne UI entfernen? Wie lautet der Befehl für die Konsole also sudo und dann? Vielen dank erstmal, für die Hilfe8)

  • Du hast da ein paar Klammern falsch gesetzt. So gerät die platform eWeLink in die platform MagicHome-Platform. So ist es besser:


    Dankeschön! Unerwartet, aber es funktioniert nun...der Fehler lag einfach an einer fehlenden Klammer, und genau danach habe ich gesucht! Aber jetzt weiß ich immerhin dass hinter jedem plugin noch eine eckige Klammer muss, damit das Plugin weiß dass es dort zu Ende ist.

  • Deinstallieren eines Plugins:


    Code
    sudo npm uninstall pluginname -g

    ... wobei "pluginname" der exakte Name des Plugins sein muss, also so wie bei Install.

  • Deinstallieren eines Plugins:


    Code
    sudo npm uninstall pluginname -g

    ... wobei "pluginname" der exakte Name des Plugins sein muss, also so wie bei Install.

    Dankeschön, und kannst du mir nochmal helfen beim installieren eines dritten Plugins bekomme ich wieder Fehlermeldungen und es liegt an meiner config, ich verstehe einfach nicht wie ich die Klammern setzen muss bzw, bin der annahme dass ich Sie richtig gesetzt habe. Config sieht so aus:


    {

    "bridge": {

    "name": "Makesmart Server",

    "username": "xxxx",

    "port": sksksk,

    "pin": "xx-xx-xx"

    },


    "platforms": [

    {

    "platform": "MagicHome-Platform",

    "debug": true,

    "lights": [

    {

    "name": "Tisch",

    "ip": "192.168.178.32",

    "setup": "RGBW"

    },

    {

    "name": "Indirekte Beleuchtung hinten",

    "ip": "192.168.178.39",

    "setup": "RGBW"

    },

    {

    "name": "Vitrine",

    "ip": "192.168.178.40",

    "setup": "RGBW"

    },

    {

    "name": "Indirekte Beleuchtung vorne",

    "ip": "192.168.178.34",

    "setup": "RGBW"

    }

    ]

    },

    {

    "platform": "eWeLink",

    "name": "eWeLink",

    "email": "mymail",

    "password": "homepw",

    "imei": "imei aus dem Netz"

    },

    {

    "platform": "config",

    "name": "Config",

    "port": 8080,

    "auth": "form",

    "theme": "red",

    "restart": "sudo -n systemctl restart homebridge",

    "temp": "/sys/class/thermal/thermal_zone0/temp",

    "sudo": true,

    "log": {

    "method": "custom",

    "command": "journalctl -o cat -n 500 -f -u homebridge"

    }

    }

    ]

  • Du hast nur ganz zum Schluss die } Klammer vergessen.


    Kannst deine config auch selbst auf Korrektheit prüfen. Einfach komplette config kopieren und dann in dieser Seite eingeben und auf "Validate JSON" drücken

    config testen


    Sieht dann so aus, wenn es richtig ist (unten grün!)

  • Vielen lieben dank nochmal :). Funktioniert jetzt erstmal alles soweit, und im Moment habe ich alle Geräte die ich vorher bei Alexa integriert habe nun auch in Homekit integriert. Hat nun einige Tage gedauert, bis nun alles läuft, aber wenns so gut weiterläuft finde ich, hat es sich definitiv gelohnt! Die Seite jsonlint kannte ich schon, habe auch den Code damit überprüft, und ist auch ganz nett dass ich weiß wo der Fehler dann liegt, aber ich wusste einfach nicht was ich falsch gemacht habe :)

  • :thumbup:

  • Aber jetzt weiß ich immerhin dass hinter jedem plugin noch eine eckige Klammer muss, damit das Plugin weiß dass es dort zu Ende ist.

    Auf der einen Seite ist es zwar immer gut, wenn man etwas weiß, aber auf der anderen Seite ist es ganz schlecht, wenn man das falsche weiß. Ein Plugin wird immer mit einer geschweiften Klammer abgeschlossen. Hier sind mal drei Plugin-Konfigurationen:


    Und da das alles Plattform-Plugins sind, kommen sie zur den platforms, und hier werden sie alle gemeinsam mit zwei eckigen Klammern zusammengefasst:


    Code
    "platforms": [ {"platform": "Alexa", ... }, {"platform": "Hue", ... }, {"platform": "ZP", ... } ]

    Stefan

  • Bulletprooftrousers Wäre das vielleicht interessant für dich? So bräuchtest du das ewelink Plugin gar nicht mehr..😉

    Vielen dank für deinen Tipp! Hört sich interessant an, die Frage ist nur, ob ich bei den Sonoff Steckdosen auch so einfach an diesen Chip kommen würde. Zudem funktioniert momentan eigentlich alles soweit über die Homebridge in Kombination mit dem ewelink Plugin, und solange alles läuft, sehe ich keinen Grund das jetzt nochmal alles umzuändern, und eventuell es nachher nicht mehr lauffähig hinbekommen zu können.


    Never touch a running system^^

    Danke aber trotzdem ;)

  • Auf der einen Seite ist es zwar immer gut, wenn man etwas weiß, aber auf der anderen Seite ist es ganz schlecht, wenn man das falsche weiß. Ein Plugin wird immer mit einer geschweiften Klammer abgeschlossen. Hier sind mal drei Plugin-Konfigurationen:


    Und da das alles Plattform-Plugins sind, kommen sie zur den platforms, und hier werden sie alle gemeinsam mit zwei eckigen Klammern zusammengefasst:


    Code
    "platforms": [ {"platform": "Alexa", ... }, {"platform": "Hue", ... }, {"platform": "ZP", ... } ]

    Stefan

    Vielen dank, für die Klarstellung, muss ich da wohl noch etwas einarbeiten ;)