larsxschneider / homebridge-secvest-kit

MIT License
3 stars 1 forks source link

UnhandledPromiseRejectionWarning: TypeError: this.config.accessoryPartitions is not iterable #1

Open udotrautmann opened 3 years ago

udotrautmann commented 3 years ago

[30/06/2021, 14:53:04] [SecvestKit] Polling Secvest state... (node:17229) UnhandledPromiseRejectionWarning: TypeError: this.config.accessoryPartitions is not iterable at SecvestPlatform.queryDevices (/usr/local/lib/node_modules/homebridge-secvest-kit/src/platform.ts:158:34) at Timeout._onTimeout (/usr/local/lib/node_modules/homebridge-secvest-kit/src/platform.ts:44:14) at listOnTimeout (internal/timers.js:557:17) at processTimers (internal/timers.js:500:7) (node:17229) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 9)

larsxschneider commented 3 years ago

@udotrautmann Kannst Du deine config mal posten (ohne password natuerlich). Ich glaube da ist was falsch... ich muss den code mal etwas robuster gegen solche Fehler machen.

udotrautmann commented 3 years ago
  {
        "host": "192.168.178.113",
        "port": 4433,
        "username": "Homebridge",
        "password": "******",
        "pollingInterval": 1,
        "pushover": {
            "notificationDelay": 15
        },
        "platform": "SecvestKit"
    }
udotrautmann commented 3 years ago

Ich muss bestimmt noch partitions usw. konfigurieren oder?

udotrautmann commented 3 years ago

Bzw. was ist mit "user" und "token" gemeint?

larsxschneider commented 3 years ago

Deine Konfiguration sollte wahrscheinlich so aehnlich aussen wenn du nur eine partition hast:

{
            "host": "192.168.178.113",
            "port": 4433,
            "username": "Homebridge",
            "password": "******",
            "pollingInterval": 1,
            "securityPartitions": [
                1
            ],
            "accessoryPartitions": [
                1
            ],
            "platform": "SecvestKit"
        }

accessoryPartitions sagt welche accessories von welchen Partitionen gelesen werden soll. Wenn Du nur eine hast, dann also nur von Partition 1 lesen. securityPartitions sind die Partitionen die du als "Alarmsystem" im Homekit sehen willst. Wenn Du nur eine hast, dann auch nur die Partition 1 da rein.

Dann fehlt noch die zoneTypes bei Dir. Man (ich) kann bei der Secvest nicht abfragen was fuer Geraetetypen verwendet werden. Deswegen musst Du sowas hier in der config machen:

          "zoneTypes": {
                "202": "lock",
                "211": "motion",
                "216": "water",
                "219": "smoke"
            },

Das bedeutet das Gerate mit der ID 202 ist ein "schloss", Geraet mit der ID 211 ist ein Bewegungssensor usw. Wenn Du nichts definierst, dann wird angenommen das es sich um einen Fenster/Türkontakt handelt.

pushover ist der Notification service den ich benutze: https://pushover.net Wenn Du dich da anmeldest bekommst du ein user und ein token damit Du warnmeldungen aufs Telefon bekommst (z.B. Fenster/Garage offen etc.).

udotrautmann commented 3 years ago

Okay danke jetzt schaut es schon mal etwas besser aus... es werden die Geräte angelegt aber ich kann die Anlage nicht steuern.

Im Homebridge Log kommt bei den Geräten folgendes:

[30/06/2021, 16:12:01] [homebridge-secvest-kit] This plugin generated a warning from the characteristic 'Serial Number': [Serial Number] characteristic must have a length of more than 1 character otherwise HomeKit will reject this accessory, ignoring new value. See https://git.io/JtMGR for more info.

udotrautmann commented 3 years ago

Wenn ich in der ABUS Secvest App schalte wird der Status im HomeKit sauber aktualisiert aber ein Schalten aus der HomeKit App ist leider nicht möglich... habe auch bereits verschiedene Benutzer getestet (Admin und auch normaler User)

larsxschneider commented 3 years ago

@udotrautmann ja, das ist "by-design". Ich persönlich möchte nicht, dass irgendein am Internet angeschlossener service meine Alarmanlage aktivieren/deaktivieren kann (Apple's Homekit ist ja über meinen Apple account über das Internet erreichbar).

Dennoch: wenn jemand (du?) dieses Feature einbauen will, dann wuerde ich einen Pull Request mergen. Ich würde dieses Feature akzeptieren wenn man es über ein config setting ausschalten kann.

udotrautmann commented 3 years ago

Okay das kann ich verstehen aber für mich wäre dieses Feature schon wichtig. Wenn man es wie Du vorgeschlagen hast per config setting abschalten kann wäre das ja auch okay oder!?

Ich möchte mal kurz begründen warum das Feature für mich so wichtig wäre... aktuell schalten meine Frau und Ich die Alarmanlage ausschließlich per "ABUS Secvest App" also quasi auch schon über Internet. Mit Deinem Plugin kann ich aber leider die ABUS App nicht mehr nutzen, da sich die Logins auf der Anlage gegenseitig blockieren. D. h. versuchet mann sich mit der ABUS App zu verbinden und das Plugin ist gerade beim Login schlägt der Verbindungsaufbau in der ABUS App fehl. Da die ABUS App sehr träge ist, passiert das mit einem eingestellten Polling Intervall von einer Minute fast ständig und die App ist somit nicht mehr nutzbar sobald ich das Plugin aktiviere. Einen Polling Intervall größer 1 Minute halte ich zur Staus Abfrage für zu groß. Ich habe daher das Plugin leider deaktivieren müssen, um die App von ABUS weiter nutzen zu können. Gern würde ich aber auf diese App ganz verzichten und die Anlage auch über das Plugin aktivieren bzw. deaktivieren.

Danke schon mal vorab und beste Grüße Udo

amaedl commented 3 years ago

@larsxschneider habe heute zufällig dieses plugin entdeckt! Ich hatte eigentlich schon das verwaiste plugin (https://www.npmjs.com/package/homebridge-secvest) getestet und auch den Code wieder lauffähig gemacht (sind mE einige "Anfänger-Fehler" drin). Auch insgesamt finde ich den Code da etwas "unübersichtlich" und tlw. "ungeschickt gelöst") Auch ist das Aktivieren mE dort ungünstig gelöst - es blockiert die Bridge komplett bis zur Rückmeldung der Secvest. Eigentlich wollte ich das umschreiben, habe aber ja nun hier beim Einrichten Dein Plugin gefunden. :-) (Da sieht der Code um Welten besser, lesbarer und nachvollziehbar aus! :-)

Auch ich fände es super, wenn eine Aktivierung / InternAktiv / Deaktivierung möglich wäre (gerne abschaltbar per config) :-) Und wo wir gerade bei "wünsch Dir was" sind: Vielleicht könnte man auch einen Schalter dazu erfinden, mit dem man das Polling vorübergehend dann via HomeKit abschalten kann, sodass die Abus app benutzbar ist?

Liebe Grüße

Andree

larsxschneider commented 3 years ago

aktuell schalten meine Frau und Ich die Alarmanlage ausschließlich per "ABUS Secvest App" also quasi auch schon über Internet.

@udotrautmann Hast Du von aussen deinen Port aufgemacht und eine DynDNS eingerichtet wie ABUS das empfiehlt? Ich finde diese Empfehlung ja mehr als bedenklich (kann ich gerne ausfuehren wenn Du magst).

Mit Deinem Plugin kann ich aber leider die ABUS App nicht mehr nutzen, da sich die Logins auf der Anlage gegenseitig blockieren. D. h. versuchet mann sich mit der ABUS App zu verbinden und das Plugin ist gerade beim Login schlägt der Verbindungsaufbau in der ABUS App fehl.

Aha verstehe. Das Problem ist mir noch nicht aufgefallen, weil ich fuer beide apps den gleichen login benutze. Waere das ein workaround fuer Dich?


@amaedl / @udotrautmann Haettet Ihr Lust einen PR aufzumachen und das feature zu implementieren? 😄

Ich bin die naechsten 4 Wochen maechtig ausgebucht... danach hab ich vielleicht etwas Zeit dafuer.

amaedl commented 3 years ago

Moin!

ich habe hier lokal bei mir das setzen des Status in der secvest bereits Implementierungen teste es noch…

Mir macht noch die Gleichbehandlung von STAY_ARM und NIGHT_ARM etwas sorgen… sonst geht’s schon.

Außerdem habe ich zur Robustheit bei den http requests noch ein paar on „error“ hinzugefügt- ich habe es ab und zu, dass requests mit einem TLS error abbrechen und bisher dann das Plugin bzw. der Server neu gestartet wurde… so wird einfach beim Nächsten poll wieder normal abgefragt…

Wenn ich zufrieden bin, kann ich einen poll request machen.. ;-)

-- Gruß

Andree

Sent via iPhone 11 Pro

Am 12.07.2021 um 23:10 schrieb Lars Schneider @.***>:

 aktuell schalten meine Frau und Ich die Alarmanlage ausschließlich per "ABUS Secvest App" also quasi auch schon über Internet.

@udotrautmann Hast Du von aussen deinen Port aufgemacht und eine DynDNS eingerichtet wie ABUS das empfiehlt? Ich finde diese Empfehlung ja mehr als bedenklich (kann ich gerne ausfuehren wenn Du magst).

Mit Deinem Plugin kann ich aber leider die ABUS App nicht mehr nutzen, da sich die Logins auf der Anlage gegenseitig blockieren. D. h. versuchet mann sich mit der ABUS App zu verbinden und das Plugin ist gerade beim Login schlägt der Verbindungsaufbau in der ABUS App fehl.

Aha verstehe. Das Problem ist mir noch nicht aufgefallen, weil ich fuer beide apps den gleichen login benutze. Waere das ein workaround fuer Dich?

@amaedl / @udotrautmann Haettet Ihr Lust einen PR aufzumachen und das feature zu implementieren? 😄

Ich bin die naechsten 4 Wochen maechtig ausgebucht... danach hab ich vielleicht etwas Zeit dafuer.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

amaedl commented 3 years ago

aktuell schalten meine Frau und Ich die Alarmanlage ausschließlich per "ABUS Secvest App" also quasi auch schon über Internet.

@udotrautmann Hast Du von aussen deinen Port aufgemacht und eine DynDNS eingerichtet wie ABUS das empfiehlt? Ich finde diese Empfehlung ja mehr als bedenklich (kann ich gerne ausfuehren wenn Du magst).

ich kann nur zustimmen. ich nutze bisher zwar auch die Secvest app, jedoch verbinde ich mich vorher explizit per VPN mit meinem USG Router und habe die Secvest nicht mit einem offenen Port im Netz hängen.

raphb83 commented 3 years ago

Okay das kann ich verstehen aber für mich wäre dieses Feature schon wichtig. Wenn man es wie Du vorgeschlagen hast per config setting abschalten kann wäre das ja auch okay oder!?

Ich möchte mal kurz begründen warum das Feature für mich so wichtig wäre... aktuell schalten meine Frau und Ich die Alarmanlage ausschließlich per "ABUS Secvest App" also quasi auch schon über Internet. Mit Deinem Plugin kann ich aber leider die ABUS App nicht mehr nutzen, da sich die Logins auf der Anlage gegenseitig blockieren. D. h. versuchet mann sich mit der ABUS App zu verbinden und das Plugin ist gerade beim Login schlägt der Verbindungsaufbau in der ABUS App fehl. Da die ABUS App sehr träge ist, passiert das mit einem eingestellten Polling Intervall von einer Minute fast ständig und die App ist somit nicht mehr nutzbar sobald ich das Plugin aktiviere. Einen Polling Intervall größer 1 Minute halte ich zur Staus Abfrage für zu groß. Ich habe daher das Plugin leider deaktivieren müssen, um die App von ABUS weiter nutzen zu können. Gern würde ich aber auf diese App ganz verzichten und die Anlage auch über das Plugin aktivieren bzw. deaktivieren.

Danke schon mal vorab und beste Grüße

Udo

Hat hierzu irgendjemand inzwischen etwas gemacht? Ich würde mich sehr über dieses Feature freuen!

miixxii commented 3 years ago

@udotrautmann ja, das ist "by-design". Ich persönlich möchte nicht, dass irgendein am Internet angeschlossener service meine Alarmanlage aktivieren/deaktivieren kann (Apple's Homekit ist ja über meinen Apple account über das Internet erreichbar).

Dennoch: wenn jemand (du?) dieses Feature einbauen will, dann wuerde ich einen Pull Request mergen. Ich würde dieses Feature akzeptieren wenn man es über ein config setting ausschalten kann.

Hi,

May I add myself here? I would really like to have this feature too. Till now I've used "Homebridge Secvest" with old firmware version and automated by homkit that when last person leave house the alarm is activated.

udotrautmann commented 2 years ago

Hallo zusammen,

wie ist denn hier die weitere Entwicklung? Ist leider etwas ruhig geworden!?

VG Udo