[V4] Dev-Dienst RFlink

Ich gebe zu, dass ich Schwierigkeiten habe, von hier aus zu sehen, was nicht stimmt (ohne die vollständige Überprüfung der 200 Dateien), hast du Änderungen im Zusammenhang mit CircleCI vorgenommen?

Hey!
Danke für die Arbeit @joeypic.
Ich habe einen rflink, der mit GladysV3 (Chacon und Milight) funktioniert. Ich habe es mit dem Bild von @peb getestet (Danke an ihn).

Ich bin kein Experte, also habe ich wahrscheinlich die meisten Dinge falsch gemacht. Hier ist, wo ich stehe:

In meinem docker-compose habe ich den USB freigegeben:
devices:
- /dev/ttyAMA0:/dev/ttyAMA0
- /dev/ttyACM0:/dev/ttyA

Was die Konfiguration betrifft, sehe ich nicht genau, ob es funktioniert:
1/ Ich habe standardmäßig die Nachricht Rflink Gateway connected with success. Egal, ob ich den USB-Connector ändere oder nicht oder auf Connect klicke, es ändert sich nichts (auch nicht in den Logs).
2/ Wenn ich mich abmelde, ändert sich die Nachricht, aber ich kann mich nicht mehr verbinden.
3/ Das Pairing mit MiLight gibt mir den folgenden Fehler: 2020-03-23T21:43:40.784397145Z 2020-03-23T22:43:40+0100 <warn> functionsWrapper. - Pastebin.com

Idealerweise habe ich versucht, den rflink-Zweig über die Quellen zu verwenden, aber ich habe ein Problem mit den Beschriftungen der Oberfläche. (Ich habe die v4 von gladys geklont und deinen Zweig darüber gezogen, ich habe einen Konflikt mit der i18n, den ich wahrscheinlich kaputt gemacht habe, deshalb erscheinen die Beschriftungen nicht).
EDIT: Ich habe mein Problem mit den Beschriftungen behoben, daher verhält sich die Entwicklungsinstanz aus den Quellen jetzt genauso wie das Docker-Bild (aber zumindest kann ich Änderungen vornehmen).

Wenn jemand Tipps hat oder mir sagen kann, welche Konfiguration ich zum Testen verwenden kann, bin ich dankbar.
Wenn ich Fortschritte mache, halte ich euch auf dem Laufenden.

Hier ist mein Gerät, eine ZAP.


Um es mit RFlink zu steuern:
Ich erstelle ein Gerät mit

  • Modell: « Tristate »
    Dann füge ich ein Feature « Switch » hinzu:
  • Ich gebe ihm einen Namen (übrigens, wofür ist dieser Name gut, wo finde ich ihn wieder?)
  • ID: 0312
  • Kanal: 1
  • Minimalwert: 0?
  • Maximalwert: 1?
    Ich speichere und wenn ich auf den Knopf in Gladys drücke, egal ob an oder aus, passiert nichts. :sob:
    Habe ich etwas übersehen? Falsch konfiguriert?

Kleine Präzisierung: Bisher habe ich nur die kleinen chinesischen Sender/Empfänger, die an einen Arduino Mega angeschlossen sind. Sie funktionierten unter Gladys 3 mit einem Arduino Nano sehr gut.
Ich werde sie austauschen, sobald ich das Material vom Nodo-Shop erhalten habe.

Nein, ich weiß nicht einmal genau, was Circle CI ist, ich habe nur die folgenden Dateien geändert:

  • Constant.js
  • Die Service-Dateien
  • app.jsx
  • die i18n-Dateien

Dein erstes Problem ist wirklich seltsam, bei meiner Konfiguration funktionieren die Nachrichten perfekt. Vorerst musst du Gladys neu starten, nachdem du auf „Verbinden“ geklickt hast.

Ich schreibe gerade eine Dokumentation für den Service

Das ist behoben, ich habe vergessen, einen Wert in den Konstanten hinzuzufügen :wink:
Ich werde @isokar um Hilfe bitten, denn ich glaube, er hat das Modul für die v3 entwickelt, und ich habe Schwierigkeiten mit MiLight.

Ich glaube, du hast die falsche ID (bei den meisten verkauften Steckdosen kann ich nicht erkennen, welche es ist).

Wenn du eine Fernbedienung mit deiner Steckdose hast, erstelle kein Gerät (Anfang der Dokumentation)
Du drückst einfach den Knopf dieser Steckdose und das Gerät erscheint!

Falls es nicht funktioniert, schau zuerst, ob die LED deines Arduino Mega blinkt, wenn du versuchst, deine Steckdose in Gladys einzuschalten.

Vielen Dank für euer Feedback :grin: , das beschäftigt mich ein wenig in meinen Coronavirus-Ferien :mask: und wenn ihr noch andere Fragen habt, zögert nicht.

Ah, die Dokumentation! :smiley: Könntest du einen Link zur Dokumentation (auch wenn sie noch nicht fertig ist) auf der Integrations-Einstellungsseite hinzufügen?

Hmmm… die LED scheint sich nicht einzuschalten, wenn ich die Fernbedienung benutze. Ich werde mich heute damit beschäftigen.

Die TX-LED leuchtet, wenn ich auf den Fernbedienungsknopf drücke. :raised_hands:
Aber nichts wird in Gladys hinzugefügt

Nur um sicherzugehen, dass die Verkabelung richtig ist:

Richtung VCC DATA GND
Empfang D16/TX2 D19/RX1 GND
Senden D15/RX3 D14/TX3 GND

Offensichtlich nichts in den Gladys-Logs oder von der Debug-Konsole

Ich habe gerade den Code geändert, um die Tests einfacher zu machen. Die Konsole sollte nun mehr Informationen über Fehler anzeigen.

Schau jetzt in die Konsole, wenn du auf deinen Fernseher drückst, und schick mir, was du siehst.

Ich habe gerade das Bild aktualisiert und es funktioniert Wouhouuuu :star_struck: Ich habe es geschafft, 3 Steckdosen zu verbinden, ich werde morgen tiefere Tests durchführen :wink:

Also, hier sind die Probleme, die ich dir direkt melden kann:

  • Manchmal, nach einigen Minuten Inaktivität, wenn ich die Seite /dashboard/integration/device/rflink/device aktualisiere, erhalte ich eine weiße Seite
  • Wenn ich ein Gerät lösche, bleibt es an Ort und Stelle (verschwindet nicht aus der IHM), bis ich die Seite aktualisiere
    EDIT:
  • Wenn ich eine neue Steckdose angeben möchte, drücke ich auf EIN und dann AUS und es erstellt die Steckdose korrekt. Allerdings, nachdem ich auf EIN gedrückt habe, erstellt es bereits ein Gerät, meistens vom Typ RingBell. Das könnte mit der schlechten Qualität des 433Mhz-Empfängers « chinesisch » zusammenhängen

Toll :grin:

Diese beiden Probleme scheinen mit Gladys zusammenzuhängen, da ich sie auf allen Diensten habe. Die leere Seite ist ein Problem mit der Authentifizierung (ungültiger Token oder so etwas).

Ich habe auch das Gefühl, dass ich die Seite oft neu laden muss, um die Änderungen zu sehen (auf allen Service-Seiten).

@pierre-gilles Sind das normale Probleme?

Ich denke, wenn du die günstigsten Empfänger verwendest, wirst du wahrscheinlich ab und zu Probleme haben. Auf dem Blog von rflink empfehlen sie, Superheterodyn-Empfänger wie den RXB6 zu verwenden. Das kostet 1 oder 2 € mehr, aber seit ich einen habe, empfange ich alle Nachrichten, sogar auf 50 m.

Ich werde trotzdem den Code für die RingBell überprüfen, aber mit dem Coronavirus wirst du wahrscheinlich nicht vor 2 Monaten einen Empfänger bekommen :mask: .

Das dachte ich mir auch

Ja, deshalb habe ich eine Bestellung für die RFLink-Platine aufgegeben, ich sollte sie nächste Woche erhalten und dann kann ich es noch einmal testen.

Ich habe es geschafft, meine 7 Zap-Steckdosen zu verbinden, das Ein-/Ausschalten funktioniert gut. :+1:
Ich habe auch einen Chacon-Öffnungsmelder, ich werde sehen, ob er erkannt wird, und ich halte dich auf dem Laufenden

Ich denke über eine nützliche Funktion nach und würde gerne eure Meinung dazu hören:

Was haltet ihr davon, einen Button hinzuzufügen, um ein Gerät zu blacklisten (d.h. dieses Gerät kann sich nicht mehr automatisch zu eurer Geräteliste hinzufügen)?

Das könnte nützlich sein, wenn zum Beispiel euer Nachbar ständig sein Tor öffnet und es in glayds erscheint.



Weitere Meinungsfrage:

Bei einigen chinesischen 433-MHz-Geräten kann man nicht erkennen, ob es sich nur um einen Sensor handelt oder ob es sich um ein Gerät handelt, das Befehle empfangen kann.
Daher stellt sich mir eine Frage an alle:

Würdet ihr es bevorzugen, dass diese Geräte standardmäßig als Sensoren oder als Aktoren (können Befehle empfangen) betrachtet werden, mit der Möglichkeit, dies später zu ändern?

Im Grunde genommen, würdet ihr es bevorzugen, in einigen Fällen Sensoren zu haben, bei denen man durch einen Button ihren Zustand ändern kann, ohne das Gerät zu bearbeiten oder eher Aktoren, bei denen man den Zustand nicht ändern kann, ohne das Gerät zu bearbeiten.

Ich denke, man sollte die Geräte in 3 Kategorien einteilen:

  • Die neuen: Sie wurden seit dem letzten Zugriff auf die Seite entdeckt, oder einfach noch nicht einem Raum zugewiesen.
  • Die konfigurierten und funktionsfähigen
  • Die schwarze Liste

Es gibt zwei mögliche Organisationsformen: Entweder eine einzige Seite mit den 3 Kategorien oder 3 Seiten im linken Menü.

Standardmäßig sollten sie meiner Meinung nach als Sensoren betrachtet werden, das ist für mich der neutralste Fall. Ideal wäre eine Infoblase oben auf der Seite, die darauf hinweist, dass einige Geräte möglicherweise falsch erkannt werden, und daher ja, den Statusänderungsknopf anbieten, aber nur bei diesen Geräten (zumindest sichtbar).

Mmm nein, das ist nicht normal ^^

Alles sollte funktionieren… Wenn du mehr Informationen hast, interessiert mich das :slight_smile: Das muss behoben werden.

Tatsächlich lautet die Richtlinie in Gladys 4, dass Geräte niemals automatisch hinzugefügt werden dürfen: Es ist immer die Entscheidung des Benutzers, und diese Entscheidung muss in der UI getroffen werden.

Du kannst sehen, wie andere Dienste wie Philips Hue das handhaben:

  1. Der Dienst erkennt automatisch Geräte und speichert sie in einer Liste von Geräten im RAM.

  2. Wenn der Benutzer auf die Seite des Dienstes geht, sieht er, dass neue Geräte erkannt wurden, und er hat die Wahl, sie zu Gladys hinzuzufügen oder nicht.

  3. Wenn der Benutzer auf « Gerät erstellen » klickt, ist es die UI, die die Anfrage an den Backend sendet, das Gerät zu erstellen. So erhält der Benutzer eine visuelle Rückmeldung, wenn etwas schiefgeht. (Zum Beispiel existiert bereits ein Gerät mit diesem Namen)

In Gladys 4 vermeiden wir alles, was im Hintergrund abläuft und schiefgehen könnte, denn wenn ein Fehler auftritt, erhält der Benutzer keine Rückmeldung. (Und nein, « die Logs ansehen », ist keine Lösung, in der v4 gilt, dass der Benutzer die Logs nicht einsehen muss, wie bei jedem Produkt)

Ich habe das Gefühl, dass das Problem von den Abhängigkeiten kommt, aber ich weiß nicht welche. Ich habe das Problem behoben, indem ich die Versionen von react-compat und anderer Module angepasst habe.

Alles klar, das ist hinzugefügt!

Ich habe es gefunden, es ist ein Bug, der darauf zurückzuführen ist, wie die Dienste in der Frontend-Anwendung übersetzt werden, das ist echt blöd.

Also, in einigen Diensten (z. B. z-wave, einem der ersten Dienste, die ich entwickelt habe), verwende ich die JSON-Datei, die die Liste der Integrationen enthält, als Übersetzungsquelle, und ich mache oft:

<ZwavePage integration={integrationConfig[props.user.language].zwave}>
      <NetworkTab {...props} />
 </ZwavePage>

Allerdings, wenn props.user.language nicht definiert ist, gibt es einen Fehler.

Wir werden das für die i18n nicht mehr tun und überall die i18n-Bibliothek verwenden, die das alles alleine erledigt, und die Übersetzungen aus den Dateien device.en.json entfernen.

Ich habe ein GitHub-Issue erstellt, um die Entwicklung zu verweisen:

Hallo,

Zuerst einmal vielen Dank für die Entwicklung dieses Moduls :wink:

Ich habe einige Tests durchgeführt, wobei ich über zwei Sensoren verfüge:

  • EV1527 / SelectPlus (Bewegungsmelder): Amazon.fr
  • Atlantic’S MD-210R (Türöffnungssensor): Amazon.fr

Hinweis: Ich habe das von @peb erstellte Bild getestet, das vor 14 Tagen wie im Github-Repo (Images 🐳 pour tester des services en développement) veröffentlicht wurde.

Hier sind die von RFlink übertragenen Nachrichten mit meinen beiden Geräten:

  • EV1527: 20;01;EV1527;ID=0e28a0;SWITCH=0e;CMD=ON;
  • Selectplus: 20;02;SelectPlus;ID=0575f1;SWITCH=02;CMD=ON;CHIME=01;
  • MD-210: 20;09;Atlantic;ID=3e6835;SWITCH=01;CMD=ON; oder 20;0A;Atlantic;ID=3e6835;SWITCH=01;CMD=OFF;

Feststellungen:

  1. Die RFlink-Karte (auf Arduino Mega) wird erkannt und ohne jegliche Manipulation verwendet :slight_smile:
  2. Der Bewegungsmelder wird korrekt erkannt
  3. Der Bewegungsmelder wird als Schalter erkannt. Sollte es nicht motion sein?
  4. Der Türöffnungssensor wird nicht erkannt. Liegt das daran, dass das Modell « Atlantic » noch nicht implementiert wurde?
  5. Die Geräte erscheinen doppelt im Abschnitt « Devices detected by the gateway »
  6. Wenn ich ein erstes Gerät zu Gladys hinzufüge, funktioniert alles gut, aber wenn ich ein zusätzliches Gerät hinzufüge, wird das zuvor erstellte Gerät dupliziert (nur ein Anzeigeproblem?)
  7. Seltsames Verhalten von Gladys, es ist unmöglich, die Seite der Integrationen zu aktualisieren (die Seite wird weiß)
  8. RFlink Debug-Konsole: Ich habe einen Wert, aber es ist immer derselbe, obwohl ich eine Fülle von 433MHz-Modulen empfange

Ich stehe für alle notwendigen Details zur Verfügung.

Danke für die Rückmeldungen,

bei den Anzeigefehler liegt es daran, dass ich mich auf den Code des zwave-Dienstes gestützt habe, der einen Fehler hatte, ich werde sehen, wie ich das korrigieren kann.

Sendet der Bewegungssensor die Nachricht SelectPlus oder EV1527?

Ich kann nichts finden, was die Schalter von den Bewegungsmeldern im Rflink-Nachrichten unterscheidet, ich stecke ein bisschen fest :grin: . Wenn die Sensoren alle die Eigenschaft CHIME haben, würde mir das helfen.

Beim Türöffnungsmelder dachte ich, er würde erkannt werden, hast du die Logs? Ich suche auf meiner Seite, bis es soweit ist.

Du meinst, du siehst immer dieselbe Nachricht im grauen Kasten angezeigt, aber in den Logs siehst du die richtigen?

Die Probleme, über die ich nicht gesprochen habe, sind die, die eigentlich behoben sein sollten, aber die du vielleicht nicht hast, weil du das Docker-Image nicht hast

Danke, dass du mir hilfst, ich habe nicht viel Feedback, also weiß ich nicht, wo ich mit dem Dienst stehe, es gibt viel zu verwalten mit dem Rflink :crazy_face:

Ich weiß nicht, wie ich die Logs anzeigen soll, wenn es auf Docker läuft. Ein bisschen Hilfe, was ist der Befehl?

Der Sensor sendet das eine oder das andere, abhängig von der Art der Bewegung.

docker logs gladys

:wink:

Ich glaube, eine automatische Unterscheidung ist unmöglich. Der Schalter scheint für alle Module verwendet zu werden, die einen binären Zustand haben? RFLink Gateway - HomeAutomation

Meiner Meinung nach ist es besser, die Erstellung der Geräte dem Benutzer zu überlassen. Sonst, wenn man in der Stadt ist (wie in meinem Fall), hat man plötzlich alle Detektoren, die automatisch hinzugefügt werden. Ich mag die Idee einer Blacklist, die du erwähnst; damit kann man neue erfasste Geräte von Geräten unterscheiden, die man bereits in der Vergangenheit erfasst hat, aber nicht hinzufügen möchte :slight_smile: