Broadlink-Dienst

Hallo zusammen,
ich habe den neuen Broadlink-Service entwickelt, um mit Ihren Geräten über Infrarot zu interagieren.

Ich verrate noch nicht alles auf einmal, denn ich möchte, dass die Community es erst einmal „blind“ testen kann und mir Feedback gibt, ob es intuitiv genug ist oder ob die Nachrichten klar genug sind.

In der Zwischenzeit sind die unterstützten Geräte die Broadlink-Geräte der Serien SP / MP / RM.

Sie finden das Docker-Image hier: atrovato/gladys:broadlink (frisch von heute Morgen, basierend auf Version 3.8.4)

Es sollte keine Risiken mit der Datenbank geben, aber ich empfehle trotzdem, ein Backup zu machen oder mit einer neuen Instanz zu beginnen.

Um den Service nicht zu überlasten, können nur einige Geräte verwaltet werden (Lichter und TV sind dabei). Die anderen kommen nach und nach, je nach Bedarf und Anfragen.

Ich freue mich auf euer Feedback!!!

Bis bald, danke

Ich gebe dir Feedback so schnell wie möglich :slight_smile:

Oh toll, eine Integration, die seit der v3 gefehlt hat, ich teste das diese Woche auch noch :grin:
Danke für die Entwicklung!

Das ist eines meiner Ziele, um die Klimaanlage zu steuern. Aber ich weiß, dass das nicht sofort passieren wird.

Super :+1:
Wird das auch die RF-Seite in Zukunft verwalten? Das würde uns von der RFLink befreien
Danke für die Arbeit :wink:

:heart_eyes: :heart_eyes:

Tolle Arbeit! :clap:

Ich habe oft Anfragen zu diesem Service erhalten, das wird vielen helfen!!

Hallo, erste Tests und erstes Feedback:
Schon die Oberfläche zum Erstellen einer Fernbedienung ist super, die Verknüpfung zwischen Funktion und Signalaufnahme ist wirklich intuitiv!

Ich bestätige, keine Probleme, das Beste zum Testen ist, seine Gladys-Instanz zu stoppen, eine Kopie der Datenbank zu erstellen und mit dem neuen Image neu zu starten.

Ich habe das an einem Fernseher getestet, keine Probleme bei der Verknüpfung, aber ich habe nur das Klassische getestet, Ein-/Ausschalten, Lautstärke +/- und Stummschaltung. Leider scheint es ein Problem mit der Stummschaltung zu geben, die nach der Signalaufnahme nicht gespeichert werden kann, die anderen beiden Funktionen funktionieren jedoch problemlos :slight_smile:

Allerdings wird es im Dashboard meiner Meinung nach eine Fernbedienungsbox geben müssen, die Anzeige als Gerät in einem Raum ermöglicht keine feine Steuerung der Lautstärke zum Beispiel, ich habe es nur geschafft, mit diesem Slider um 1 zu verringern oder zum alten Level zurückzukehren:

Ansonsten unglaubliche Arbeit am Design der Parameter :slight_smile:

EDIT: Nach der Verknüpfung des Stummschaltknopfes generiert der Speichern-Knopf keinen Fehler in den Gladys-Logs oder im Browser, aber der Test-Knopf generiert diese beiden Fehler:

2022-04-06T20:39:54+0200 <error> index.js:15 (process.<anonymous>) unhandledRejection catched: Promise {
  <rejected> TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined
      at new NodeError (internal/errors.js:322:7)
      at Function.from (buffer.js:334:9)
      at BroadlinkHandler.send (/src/server/services/broadlink/lib/learn/broadlink.send.js:24:31)
      at send (/src/server/services/broadlink/api/broadlink.controller.js:39:28)
      at Layer.handle [as handle_request] (/src/server/node_modules/express/lib/router/layer.js:95:5)
      at next (/src/server/node_modules/express/lib/router/route.js:137:13)
      at /src/server/api/middlewares/authMiddleware.js:28:7 {
    code: 'ERR_INVALID_ARG_TYPE'
  }
}
2022-04-06T20:39:54+0200 <error> index.js:16 (process.<anonymous>) TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined
    at new NodeError (internal/errors.js:322:7)
    at Function.from (buffer.js:334:9)
    at BroadlinkHandler.send (/src/server/services/broadlink/lib/learn/broadlink.send.js:24:31)
    at send (/src/server/services/broadlink/api/broadlink.controller.js:39:28)
    at Layer.handle [as handle_request] (/src/server/node_modules/express/lib/router/layer.js:95:5)
    at next (/src/server/node_modules/express/lib/router/route.js:137:13)
    at /src/server/api/middlewares/authMiddleware.js:28:7 {
  code: 'ERR_INVALID_ARG_TYPE'
  }
}

Danke für das erste Feedback, ich beschäftige mich schon sehr lange mit dem Thema, das nichts mit der ersten Version zu tun hat, die ich vor einigen Jahren als Testbild bereitgestellt habe.

Ich freue mich, dass die Bedienung einfach ist, ich habe mir sehr viel Mühe gegeben, den „Lernmodus“ einzurichten. :wink:

Für das Dashboard werden wir eine Arbeit außerhalb des Broadlink-Dienstes durchführen, um nichts zu vermischen (es muss auch die Kompatibilität mit Google Home hinzugefügt werden :wink: ).

Ich glaube, ich habe den Bug beim Stummschaltknopf behoben.
Zur Info: Das betrifft alle Knöpfe, die nur einen einzigen Wert haben (Quelle, Stummschaltung, links, rechts, Abspielen, Pause…)

Eine neue Version des Docker-Images wird gerade erstellt, es dauert etwa 2 Stunden, bis sie verfügbar ist.

Ich mache eine kleine Erinnerung für Feedback zu diesem Service.
PING! :wink:

Ich versuche, mir im Laufe des Tages Zeit zu nehmen, wie versprochen.

das bild ist pull und auf meinem mac gestartet.
Der dienst startet problemlos:

Allerdings finde ich meine rm mini 3

Deshalb ist es unmöglich, weiter zu testen ^^

EDIT:
Vielleicht ist der container nicht im gleichen netzwerk?
hättest du den genauen befehl, um dein bild auszuführen, bitte :slight_smile: ?

Ich glaube, das wird auf dem Mac nicht funktionieren. Docker für Mac startet eine Linux-VM in deinem Mac, die isoliert ist und keinen Zugriff auf das Netzwerk des Macs hat, sondern auf ein separates Netzwerk.

Um das Netzwerk scannen zu dürfen, muss der Container auf einer Linux-Maschine mit network=host gestartet werden! (der gleiche docker run wie auf der Gladys-Website)

Vielleicht ist es möglich, dies in einer Linux-VM auf dem Mac zu tun, aber das erfordert die richtige Netzwerkkonfiguration in der VM. Ich denke, es ist einfacher, den Container einfach auf einem Linux zu starten :wink:

Ich habe das gleiche Problem mit WSL… das Netzwerk ist nicht dasselbe… aber unter Linux (Raspberry) oder Windows habe ich das Problem nicht festgestellt.

Ach schade, ich kann es nicht testen ^^

RE PING !
Ich war gerade da, gibt es andere Rückmeldungen?
@Albenss abgesehen vom Bug, den du erwähnt hast (den ich normalerweise behoben habe), konntest du es weiterverwenden?

Völlig vergessen, ich werde gleich einen weiteren Test machen!

Also, ich habe es gerade noch einmal getestet (nach einem Pull des Bildes atrovato/gladys:broadlink), aber ich habe immer noch ein Problem mit den einfachen Schaltflächen (z. B. Mute, Volume +, Volume -) in der Browserkonsole, wie z. B.:

RemoteCreation.jsx:104 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'min')
    at RemoteCreation.jsx:104:31
    at Array.forEach (<anonymous>)
    at Object.saveDevice [as clickfalse] (RemoteCreation.jsx:78:33)
    at HTMLButtonElement.w (props.js:153:20)

Ansonsten scheinen die anderen Aktionen funktionell zu sein! (Ich konnte nicht alles testen, aber abgesehen von diesem Problem habe ich nichts anderes bemerkt).

Übrigens, sollte die Ein-/Ausschalt-Taste nicht eine einfache Schaltfläche sein?

Ich habe gerade die Docker-Downloads überwacht, dein Bild scheint nicht das neueste zu sein, das ich generiert habe, denn

Du musst das Bild (rmi atrovato/gladys) löschen, um es erneut herunterladen zu können :smiley:

Also war der erste Test heute Abend, indem ich einfach ein Pull des bestehenden (also aktualisierten) Bildes durchgeführt habe, das den oben genannten Fehlercode hatte.

Das Neue ist nach dem Testen der Löschung und dem Herunterladen eines neuen Bildes und immer noch das gleiche Problem.

Nach dem Erfassen des Signals für die Funktion „Stumm“, versuche ich zu speichern und erhalte die gleiche Fehlermeldung in der Konsole:

RemoteCreation.jsx:104 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'min')
    at RemoteCreation.jsx:104:31
    at Array.forEach (<anonymous>)
    at Object.saveDevice [as clickfalse] (RemoteCreation.jsx:78:33)
    at HTMLButtonElement.w (props.js:153:20)

Du musst pullen, den Container löschen und ihn neu erstellen. Hast du das gemacht?