ioBroker - Objekte mit Einsatzdaten füllen - (fast) ohne Cloudanbieter

  • Hallo zusammen,

    wir haben bei uns einige Dinge via ioBroker automatisiert (Licht an in den Ruheräumen etc.). Hierzu habe ich die in diesem Thread beschriebene Anbindung mit einem Webhook zwischen unserer ioBroker-Installation und dem Connect-Portal realisiert.

    Zwischenzeitlich haben sich jedoch zwei Probleme aufgetan:

    1. Ich brauche Einsatzdaten aus einem Zusatzinfo-Feld, das wird via Webhook (richtigerweise) nicht unterstützt und
    2. bin ich der Meinung, dass diese sensiblen Einsatzinformationen nichts bei einem weiteren Cloudanbieter zu suchen haben. Durch die Nutzung des IoT-Adapters sind die Webhook-Daten bei der Fa. ioBroker GmbH, das solltet ihr kritisch prüfen (nicht, weil ich der Firma nicht traue, sondern viel mehr im Hinblick auf die DSGVO, Auftragsdatenverarbeitung usw.).

    Um diese Kuh vom Eis zu bekommen, habe ich ein Javascript für den ioBroker gebaut, welches ich hier zur Verfügung stellen möchte. Es passiert nun folgendes:

    1. Per Webhook übergibt das Connect-Portal nur die datenschutzrechtlich unbedenkliche Einsatz-ID über den IoT-Adapter und damit der Cloud an meine lokale ioBroker-Installation. Der angepasste Link lautet:
    https://service.iobroker.in/v1/iotService?service=custom_id-test&key=DEIN-IOBROKER-KEY&user=DEINE-IOBROKER-MAILADRESSE&data={Einsatz-ID}

    2. Das Script prüft das nun geänderte Objekt (in diesem Beispiel "iot.0.services.custom_id-test") auf Änderung. Bei einer Aktualisierung rennt es los.

    3. Zuerst werden die Objekte geleert - das ist erforderlich, da nicht immer bei allen Zusatzinformationen etwas drin steht und ansonsten Daten aus dem vorherigen Einsatz "hängenbleiben". Beim ersten Ausführen kommt es deshalb zu Fehlermeldungen, da die Objekte noch nicht existieren - nicht nervös werden.

    4. Anschließend wird die öffentliche Connect-Schnittstelle angesprochen und die Einsatzdaten zu dieser Einsatz-ID abgerufen. Der ioBroker holt sich also die Daten direkt aus dem Connect-Portal, der Umweg über die Cloud entfällt. Auf diesem Weg werden mehr Daten übermittelt als mittels Webhook möglich wären.

    Der ganze Ablauf findet in Millisekunden statt. In der Regel gehen bei uns die Lichter schneller an, als die Pocsag-Melder auslösen. Im Bereich der Zusatzinfos werden neue Felder automatisch angelegt, bei Bedarf müssten diese dann für die Löschung manuell gepflegt werden. Die Objekte findet ihr dann im ioBroker unter: javascript.0.feuersoftware.test (das "test" kann natürlich angepasst werden und damit auch mehrere Standorte abgerufen und strukturiert werden).

    Hier das Script:

    Das Script benötigt die "request" und "url"-Module im Javascript-Adapter. Diese bitte bei Bedarf in den Instanzeinstellungen eintragen und damit installieren.

    Viel Spaß damit :)

    Einmal editiert, zuletzt von Ganter01 (28. Dezember 2023 um 00:03)

  • ich habe das Skript auf "httpGet" angepasst, da "request" deprecated ist, sonst habe ich keine Veränderungen vorgenommen.