homebridge-people

  • Moin!


    Leider bekomme ich das Plugin People nicht zum Laufen. Nach der Installation und der Bearbeitung der config.json erhalte ich folgenden Fehler:


    Dec 20 15:50:46 raspberrypi homebridge[16434]: [12/20/2019, 15:50:46] [People] Initializing People platform...

    Dec 20 15:50:46 raspberrypi homebridge[16434]: [12/20/2019, 15:50:46] Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/homebridge-people/node_modules/node-persist/storage'

    Dec 20 15:50:46 raspberrypi homebridge[16434]: at Object.mkdirSync (fs.js:823:3)


    Scheinbar wird der Zugriff verweigert, das in der zweiten Zeile aufgeführte Verzeichnis anzulegen.


    Kann mir jemand helfen?

  • Wenn du deine Homebridge nach der Forenanleitung aufgesetzt hast, dann setzte


    "cacheDirectory": "/var/homebridge/node-persist/storage",


    Stefan

  • Warum darf/soll man eigentlich "/var/homebridge/persist" nicht dafür verwenden?

    Da schreiben doch fast alle anderen Plugins auch ihre Status-Infos rein, oder?

  • Würde auch gehen. Ich verwende einen extra Ordner, nur damit ich weiß, dass diese Werte von homebridge-people kommen. Es sollte aber keine Rolle spielen, Hauptsache, es wird irgendwo unterhalb /var/homebridge geschrieben.


    Wenn ich in den Code von homebridge-people so reinschaue, dann glaube ich, dass es am besten ist, gar keinen Pfad zu setzen:


    "cacheDirectory": "",


    oder die Zeile vielleicht ganz zu löschen. Hab's aber nicht getestet.

  • Welcehs Verzeichnis würde er denn dann nehmen?

    Da ich es nicht ausprobiert habe: M A G I C ! ! !


    Ich schätze: /var/homebridge

  • Verstehe deine Logik nicht ganz, warum du dann glaubst, dass es am besten wäre, es leer zu lassen.

  • Verstehe deine Logik nicht ganz, warum du dann glaubst, dass es am besten wäre, es leer zu lassen.

    Aus dem Sourcecode von homebridge-people:


    function PeoplePlatform(log, config){

    this.log = log;

    this.threshold = config['threshold'] | | 15;

    this.anyoneSensor = config['anyoneSensor'] | | true;

    this.nooneSensor = config['nooneSensor'] | | false;

    this.webhookPort = config["webhookPort"] | | 51828;

    this.cacheDirectory = config["cacheDirectory"] | | HomebridgeAPI.user.persistPath();

    this.pingInterval = config["pingInterval"] | | 10000;

    this.ignoreReEnterExitSeconds = config["ignoreReEnterExitSeconds"] | | 0;

    this.people = config['people'];

    this.storage = require('node-persist');

    this.storage.initSync({dir:this.cacheDirectory});

    this.webhookQueue = [];

    }


    Da steht: fülle die Variable this.cacheDirectory mit dem, was du in der config.json findest, und wenn da nix ist, dann nimm den HomebridgeAPI.user.persistPath. In letzterem könnte /var/homebridge stehen. Muss man mal ausprobieren.

  • Warum das die bessere Lösung sein soll erklärst du aber damit trotzdem nicht...

  • Wenn ich in den Code von homebridge-people so reinschaue, dann glaube ich, dass es am besten ist, gar keinen Pfad zu setzen:


    "cacheDirectory": "",


    oder die Zeile vielleicht ganz zu löschen. Hab's aber nicht getestet.

    Aber ich 😀😀


    Funktioniert tadellos ohne einen cacheDirectory im Konfig anzugeben.

  • Wenn du deine Homebridge nach der Forenanleitung aufgesetzt hast, dann setzte


    "cacheDirectory": "/var/homebridge/node-persist/storage",


    Stefan

    Hallo Stefan,

    vielen Dank. Das hat genauso geklappt.


    Bei Eurer weitergeführten Diskussion habe ich als blutiger Anfänger allerdings nur "Bahnhof" verstanden.


    Claus

  • Warum das die bessere Lösung sein soll erklärst du aber damit trotzdem nicht...

    Weil ich mich dann um nix mehr kümmern muss. geht dann von allein.

  • Bei Eurer weitergeführten Diskussion habe ich als blutiger Anfänger allerdings nur "Bahnhof" verstanden.

    Joa, war ein bisschen Hardcore und geht weit über das hinaus, was man wissen muss, um seine Homebridge zu betreiben. Viel Spaß weiterhin.

  • Aber ich 😀😀


    Funktioniert tadellos ohne einen cacheDirectory im Konfig anzugeben.

    Wo werden die Files dann abgelegt?


    Andere Frage: Hat sich von euch jemand mal das PeopleX Plugin angesehen?

    Das würde ja noch weiterentwickelt werden im Gegensatz zu diesem hier.

    Beim PeopleX war ich aber verwundert, aus welchem Grund man mit Bewegungssensoren arbeitet anstatt Belgungssensoren. Wisst ihr da mehr?

  • Wo werden die Files dann abgelegt?


    Andere Frage: Hat sich von euch jemand mal das PeopleX Plugin angesehen?

    Ad 1: Mir doch egal :P


    Ad 2: Es gibt inzwischen auch noch ein people-x-plus plugin. Hab mir weder das eine noch das andere angeschaut da bei mir das schlichte people plugin läuft - ohne „x“ und „plus“ und sonstigem Gedöns. 8)


    Aber wenn Du es ausprobierst, las 7ns wissen was es anders / besser kann.

  • Wisst ihr da mehr?

    Das homebridge-people-x Plugin nutzt die Fakegato-History. Die funktioniert nicht mit Belegungssensoren (frag bitte nicht warum), daher hat sich der Entwickler wohl für Bewegungssensoren entschieden.

  • Ok, danke für die Erklärung. Ist die History der einzige Unterschied? Da kann ich nämlich drauf verzichten.


    Was kann das X Plus mehr? Hab bis jetzt nur die Erkennung über ARP Tabellen gesehen. Sonst noch was?

  • Was kann das X Plus mehr? ... Sonst noch was?

    Ich habe mir für dich mal die Anleitung des Plugins durchgelesen. Ich kann dort nichts entdecken, das darauf hinweist, was das Plugin überhaupt kann, geschweige denn besser kann.


    Ich muss gestehen, dass ich bislang darauf verzichtet habe, beide Plugins zu installieren und dann per diff -qr eine erste Sourcecode-Analyse durchzuführen.

  • Falls jemand experimentierfreudig ist, hier gibt es noch eine andere Version des people Plugin.

    https://github.com/stickpin/homebridge-people-arp

    Hier ist wohl der Unterschied, dass Fakegato integriert ist.


    Allerdings nutze ich jetzt schon seit Jahren das "original" homebridge-people Plugin und habe überhaupt keine Probleme damit.

    Hilfreich?

  • Ich habe mir für dich mal die Anleitung des Plugins durchgelesen.

    Danke :) Das habe ich auch gemacht, aber halt auch keine Unterscheide (bis auf ARP) feststellen können, deshalb frage ich ja hier.