Plugin "homebridge-http-webhooks" v0.0.47 // Fehler beim Starten von Homebridge // EACCES: permission denied

  • Schönen guten Tag,


    ich habe leider ein Berechtigungsproblem mit meiner Homebridge, das ich ums verrecken nicht gelöst bekomme und hoffe Ihr könnt mitr helfen.


    Ich habe eine Homebridge nach Anleitung von dieser HP erstellt.

    User "Homebridge" ist angelegt und für die Homebridge zuständig.


    Nach installieren des Plugins "homebridge-http-webhooks" habe ich die config.json angepasst und Neugestartet:


    Leider bricht die Homebridge mit folgenden Fehler ab:


    Jul 22 17:07:42 raspberrypi homebridge[4175]: [7/22/2019, 5:07:42 PM] [HttpWebHooks] Initializing HttpWebHooks platform...

    Jul 22 17:07:42 raspberrypi homebridge[4175]: [7/22/2019, 5:07:42 PM] Error: EACCES: permission denied, mkdir '/.node-persist'

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at Object.mkdirSync (fs.js:774:3)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at sync (/usr/local/lib/node_modules/homebridge-http-webhooks/node_modules/mkdirp/index.js:71:13)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at Function.sync (/usr/local/lib/node_modules/homebridge-http-webhooks/node_modules/mkdirp/index.js:77:24)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at LocalStorage.parseStorageDirSync (/usr/local/lib/node_modules/homebridge-http-webhooks/node_modules/node-persist/src/local-storage.js:600:20)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at LocalStorage.initSync (/usr/local/lib/node_modules/homebridge-http-webhooks/node_modules/node-persist/src/local-storage.js:141:14)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at Object.nodePersist.initSync (/usr/local/lib/node_modules/homebridge-http-webhooks/node_modules/node-persist/src/node-persist.js:37:32)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at new HttpWebHooksPlatform (/usr/local/lib/node_modules/homebridge-http-webhooks/index.js:48:16)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at Server._loadPlatforms (/usr/local/lib/node_modules/homebridge/lib/server.js:337:32)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at Server.run (/usr/local/lib/node_modules/homebridge/lib/server.js:90:36)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:59:10)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at Object.<anonymous> (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at Module._compile (internal/modules/cjs/loader.js:721:30)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:732:10)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at Module.load (internal/modules/cjs/loader.js:620:32)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at tryModuleLoad (internal/modules/cjs/loader.js:560:12)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at Function.Module._load (internal/modules/cjs/loader.js:552:3)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at Function.Module.runMain (internal/modules/cjs/loader.js:774:12)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at executeUserCode (internal/bootstrap/node.js:499:15)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: at startMainThreadExecution (internal/bootstrap/node.js:436:3)

    Jul 22 17:07:42 raspberrypi homebridge[4175]: [7/22/2019, 5:07:42 PM] Got SIGTERM, shutting down Homebridge...



    Auszug config.json

    .....

    {

    "platform": "HttpWebHooks",

    "webhook_port": "51828",

    "cache_directory": "./.node-persist/storage",

    "lockmechanisms": [

    {

    "id": "wohnung_schloss",

    "name": "Haustürschloss",

    "open_url": "xxxx",

    "open_method": "GET",

    "close_url": "xxxx",

    "close_method": "GET"

    }

    ]

    }

    .....

  • In der config.json einfach mal die Zeile weglassen:


    Code
    "cache_directory": "./.node-persist/storage",
  • rebellionFlAsH

    Hat den Titel des Themas von „Plugin "homebridge-http-webhooks" v0.0.47 // Fehler beim Starten von Homebridge // EACCES: permission denied homebridge-http-webhooks“ zu „Plugin "homebridge-http-webhooks" v0.0.47 // Fehler beim Starten von Homebridge // EACCES: permission denied“ geändert.
  • Mit dem Plugin hatte ich nach der Installation auch so meine Probleme. Ist leider schon ein paar Wochen her und ich erinnere mich nur dunkel. Ich weiß nicht mehr genau, ob ich die gleiche Fehlermeldung hatte, aber aus irgendeinem Grund habe ich den Cache-Ordner bei mir wie folgt angepasst.


    "cache_directory": "/var/homebridge/persist/",


    Homebridge habe ich auch nach der Anleitung auf smartapfel.de installiert und bei mir läuft das Plugin mit dem angepassten Pfad ohne Probleme.

  • Jul 22 17:07:42 raspberrypi homebridge[4175]: [7/22/2019, 5:07:42 PM] Error: EACCES: permission denied, mkdir '/.node-persist'

    Hier soll ein Verzeichnis mit dem Namen /.node-persist angelegt werden und es ist dem User homebridge leider nicht erlaubt, etwas in der obersten Verzeichnisebene / anzulegen.. Es ist auch Absurdität nicht zu überbieten, das überhaupt so zu programmieren. Die Lösung hat ja schon Gerrit in Beitrag #4 gepostet. Überhaupt sollten Pfade zu irgendwelchen Cache-Verzeichnissen immer nach /var/homebridge zeigen, dann da darf der User homebridge ja schreiben.


    Stefan

  • Danke erstmal für den Support,


    ich habe in die Zeile "cache_directory" den Eintrag ersetzt.

    Der Fehler wurde leider durch einen neuen ersetzt ?(


    Jul 23 20:31:36 raspberrypi homebridge[815]: [7/23/2019, 8:31:36 PM] [HttpWebHooks] Initializing HttpWebHooks platform...

    Jul 23 20:31:36 raspberrypi homebridge[815]: [7/23/2019, 8:31:36 PM] Error: [PARSE-ERROR] /var/homebridge/persist/AccessoryInfo.CC223DE3CE30.json does not look like a valid storage file!

    Jul 23 20:31:36 raspberrypi homebridge[815]: at LocalStorage.parseFileSync (/usr/local/lib/node_modules/homebridge-http-webhooks/node_modules/node-persist/src/local-storage.js:647:19)

    Jul 23 20:31:36 raspberrypi homebridge[815]: at LocalStorage.parseStorageDirSync (/usr/local/lib/node_modules/homebridge-http-webhooks/node_modules/node-persist/src/local-storage.js:596:26)

    Jul 23 20:31:36 raspberrypi homebridge[815]: at LocalStorage.initSync (/usr/local/lib/node_modules/homebridge-http-webhooks/node_modules/node-persist/src/local-storage.js:141:14)

    Jul 23 20:31:36 raspberrypi homebridge[815]: at Object.nodePersist.initSync (/usr/local/lib/node_modules/homebridge-http-webhooks/node_modules/node-persist/src/node-persist.js:37:32)

    Jul 23 20:31:36 raspberrypi homebridge[815]: at new HttpWebHooksPlatform (/usr/local/lib/node_modules/homebridge-http-webhooks/index.js:48:16)

    Jul 23 20:31:36 raspberrypi homebridge[815]: at Server._loadPlatforms (/usr/local/lib/node_modules/homebridge/lib/server.js:337:32)

    Jul 23 20:31:36 raspberrypi homebridge[815]: at Server.run (/usr/local/lib/node_modules/homebridge/lib/server.js:90:36)

    Jul 23 20:31:36 raspberrypi homebridge[815]: at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:59:10)

    Jul 23 20:31:36 raspberrypi homebridge[815]: at Object.<anonymous> (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22)

    Jul 23 20:31:36 raspberrypi homebridge[815]: at Module._compile (internal/modules/cjs/loader.js:776:30)

    Jul 23 20:31:36 raspberrypi homebridge[815]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)

    Jul 23 20:31:36 raspberrypi homebridge[815]: at Module.load (internal/modules/cjs/loader.js:653:32)

    Jul 23 20:31:36 raspberrypi homebridge[815]: at tryModuleLoad (internal/modules/cjs/loader.js:593:12)

    Jul 23 20:31:36 raspberrypi homebridge[815]: at Function.Module._load (internal/modules/cjs/loader.js:585:3)

    Jul 23 20:31:36 raspberrypi homebridge[815]: at Function.Module.runMain (internal/modules/cjs/loader.js:829:12)

    Jul 23 20:31:36 raspberrypi homebridge[815]: at startup (internal/bootstrap/node.js:283:19)

    Jul 23 20:31:36 raspberrypi homebridge[815]: at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

    Jul 23 20:31:36 raspberrypi homebridge[815]: [7/23/2019, 8:31:36 PM] Got SIGTERM, shutting down Homebridge...

  • Okay, ich habe zwischendrin meine Homebridge neu einbinden müssen, da ich mir die Config durch das ganze hin und her probiere zerschossen habe. Die Homebridge läuft jetzt unter:



    "username": "CC:22:3D:E3:CE:31"



    Der Fehler hängt bestimmt hier irgendwo mit zusammen, denk ich.

    Neu Installation vom Plugin war leider nicht vom Erfolg gekrönt.

  • Also mit:


    "cache_directory": "/var/homebridge/persist/",


    und nachdem ich dessen Inhalt nochmal komplett gelöscht hatte, klappte es letztendlich nach einem Neustaret des Respberrys. :thumbup:


    Danke an euer Feedback

  • Hallo zusammen,


    ich muss das Thema leider nochmal hervorrufen, obwohl es mir zum bisherigen Punkt schon sehr weitergeholfen hat.

    Ich hatte anfangs mit dem Webhooks-Plugin das gleiche Problem wie oben beschrieben und habe es wie in Beitrag #4 beschrieben gelöst - musste hierfür die Dateien im Ordner /var/homebridge/persist/ löschen.


    Nach dem Löschen läuft das System auch gut.


    Allerdings immer wenn ich die Homebridge neu starte erhalte ich folgende Fehlermeldung:


    Error: [PARSE-ERROR] /var/homebridge/persist/AccessoryInfo.CC223DE3CE30.json does not look like a valid storage file!


    Kann mir hierzu jemand helfen?

  • Sieht nach einer kaputten Datei aus. Ich würde sie entfernen mit

    sudo systemctl stop homebridge

    sudo rm /var/homebridge/persist/AccessoryInfo.CC223DE3CE30.json

    sudo systemctl start homebridge


    Stefan

  • Hi Meltemi

    ich habe genau das gleiche Problem... :(


    Bist du da inzwischen weitergekommen? Hat sonst jemand eine Idee ?


    Danke, Gruß Giorgio...

  • Falls gar nichts mehr geht - kann man Homebridge Root berechtigung geben


    Code
    sudo nano /etc/passwd
    homebridge:x:0:0:Homebridge Service:/home/homebridge:/bin/bash

    iPhone 12 Mini, LG 86UN8500, HomePod Mini, Roborock S7, Raspberry Pi4

  • Falls gar nichts mehr geht - kann man Homebridge Root berechtigung geben


    Code
    sudo nano /etc/passwd
    homebridge:x:0:0:Homebridge Service:/home/homebridge:/bin/bash

    Brutal. Das würde ich nicht machen. UserId 0 sollte nur der User root haben. Wenn's denn unbedingt unter root laufen soll, dann sollte man die Homebridge als root starten, indem man den User in /etc/systemd/system/homebridge.service von homebridge auf root setzt und dann die Homebridge neu startet.


    sudo systemctl stop homebridge

    sudo nano /etc/systemd/system/homebridge.service


    Änderung vornehmen, abspeichern.


    sudo systemctl start homebridge


    Beide Vorgehensweise (also die von Lisa Schneider und meine) werden dazu führen, dass ab dann Dateien, Cache und was weiß ich im Verzeichnis /var/homebridge von root geschrieben werden. Will man den Vorgang wieder rückgängig machen, müssen alle Dateien in /var/homebridge wieder dem User homebridge zugeordnet werden, und zwar mit:


    sudo chown -R homebridge:homebridge /var/homebridge


    Stefan

  • Moin,

    ich bin auch gerade mit dem homebridge http webhooks Plugin zugange und zwar will ich mit dem Plugin, über einen ESP, eine Alarmanlage realisieren. Habe Homebridge, wie es im Forum steht, installiert. Das hat auch alles wunderbar geklappt. Jetzt wollte ich das webhooks Plugin installieren und hatte zuerst die selben Probleme, wie rebellionFlAsH und Giorgio. Hab dann das Verzeichs zu"cache_directory": "/var/homebridge/node-persist/storage", geändert. Jetzt startet zwar der Server, stürtzt aber nach einer gewissen Zeit wieder ab und startet wieder neu. Als Fehlermeldung bekomme ich:


    [12/17/2019, 02:33:38] Error: listen EADDRINUSE: address already in use :::51826

    at Server.setupListenHandle [as _listen2] (net.js:1301:14)

    at listenInCluster (net.js:1349:12)

    at Server.listen (net.js:1437:7)

    at EventedHTTPServer.listen (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/eventedhttp.js:60:19)

    at HAPServer.listen (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/HAPServer.js:158:20)

    at Bridge.Accessory.publish (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:616:16)

    at Server._publish (/usr/local/lib/node_modules/homebridge/lib/server.js:132:16)

    at Server.run (/usr/local/lib/node_modules/homebridge/lib/server.js:101:10)

    at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:59:10)

    at Object.<anonymous> (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22)

    [12/17/2019, 02:33:38] Error: listen EADDRINUSE: address already in use 0.0.0.0:51828

    at Server.setupListenHandle [as _listen2] (net.js:1301:14)

    at listenInCluster (net.js:1349:12)

    at doListen (net.js:1488:7)

    at processTicksAndRejections (internal/process/task_queues.js:81:21)


    Hatte einer von euch das selbe Problem und/oder weiß wie ich den Fehler wieder wegbekomme?

  • Der port wird bereits benutzt. Stoppe mal homebridge via terminal, öffne die json.config und wähle einen anderen Port für webhooks. Danach speichern und homebridge starten

  • Der Port 51828 wird schon benutzt. Bei mir war es das people-plugin, welches auch in der Standard-config diesen Port genommen hat 😜

  • Danke für die Antworten, habe jetzt die beiden Ports geändert, bekomme aber immer noch die gleiche Fehlermeldung:


    [12/17/2019, 12:05:33] Error: listen EADDRINUSE: address already in use :::51235

    at Server.setupListenHandle [as _listen2] (net.js:1301:14)

    at listenInCluster (net.js:1349:12)

    at Server.listen (net.js:1437:7)

    at EventedHTTPServer.listen (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/eventedhttp.js:60:19)

    at HAPServer.listen (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/HAPServer.js:158:20)

    at Bridge.Accessory.publish (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:616:16)

    at Server._publish (/usr/local/lib/node_modules/homebridge/lib/server.js:132:16)

    at Server.run (/usr/local/lib/node_modules/homebridge/lib/server.js:101:10)

    at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:59:10)

    at Object.<anonymous> (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22)

    [12/17/2019, 12:05:33] Error: listen EADDRINUSE: address already in use 0.0.0.0:51829

    at Server.setupListenHandle [as _listen2] (net.js:1301:14)

    at listenInCluster (net.js:1349:12)

    at doListen (net.js:1488:7)

    at processTicksAndRejections (internal/process/task_queues.js:81:21)


    Nur jetzt mit den neuen Portadressen oder muss ich bei den Portadressen irgendwas bestimmtes beachten? Habe jetzt irgendwelche random Zahlen für die Portadressen genommen.


    51826 --> 51235

    51828 --> 51829