Frage zu HB mit Tuya und Shelly

  • Hallo Zusammen,


    ich bin ein Anfänger in Smarthome habe mit H**BS und meinen Shelly's + Lumary (Tuya) RGBWW LED Panels angefangen.


    Nun habe ich mich für Homebridge entschieden ;)


    Ich kann meine Rollläden, Lampen und Tuya LED's per HomeKit über Homebridge bedienen.

    Ich habe auch bereits die ID und Key's der Tuya Geräte ausgelesen.


    Meine Frage:

    gibt es ein Plugin für HB damit ich die Tuya LED's mit einem Shelly i3, i4 oder 1,... durch einen Taster an der Wand ein und ausschalten kann?


    Mein Gedanke:

    z.B. Shelly i4/i3 kann ja ein http-Befehl senden wenn der Taster an der Wand betätigt wird.

    Kann ich mit diesem http-Befehl in HomeBridge den Schalter für die Tuya LED umschalten?

    Es geht mir in erster Hinsicht nur um das ein und ausschalten der Tuya LED's .


    Oder benötige ich da mehr als nur ein Plugin in HomeBridge?


    Ich habe so viel gelesen das ich vor lauter Bäumen den Wald nicht mehr sehe.


    Von RedNode (um Verknüpfungen zu erstellen) und MQTT (Kommunikationsprotokoll?) spricht man viel.

    Benötigt man Grundsätzlich einen MQTT Broker=Server?

    Brauche ich für mein Vorhaben überhaupt sowas?


    Viele Grüße

    raspi4 8GB, Lumary (Tuya) RDGWW LED Panels, Shelly i3, i4, 2, 2.5 | Homebridge v 1.3.9 / v4.41.5

  • Das was du suchst um direkt zu steuern ist wohl die Homebridge-API. Wenn du weißt wie das funktioniert kannst es mir auch mal erklären ;)

  • Benötigt man Grundsätzlich einen MQTT Broker=Server?

    Ja. Ein Server ist eh nur ein Stück Software. Einfach mosquitto installieren und schon bist du fertig.


    Kann ich mit diesem http-Befehl in HomeBridge den Schalter für die Tuya LED umschalten?

    Vielleicht geht's mit einem Webhook-Plugin.


    Von RedNode (um Verknüpfungen zu erstellen) und MQTT (Kommunikationsprotokoll?) spricht man viel.

    Mit Node Red ginge es sicherlich. Node Red kann durch Homebridge-Fähigkeiten erweitert werden und dann kann man von dort aus Homebridge-Geräte steuern. Das geht auch MQTT-Broker.

  • Danke für die Antworten und bitte um Verständnis für Nachfolgenden Fragen:

    Ja. Ein Server ist eh nur ein Stück Software. Einfach mosquitto installieren und schon bist du fertig.


    Der mosquitto-server lässt sich nicht als HB Plugin installieren sondern ist als eigene Software zu installieren.


    Ist mit MQTT-Broker der mosquitto-server gemeint?


    Benötige ich dann für HomeBridge einen von den Plugins Homebridge MQTT-Thing oder homebridge-mqtt?

    Oder werden die Plugins benötigt damit HB in der MQTT Sprache mit dem mosquitto-server kommunizieren kann?


    Muss ich dann mosquitto auf der raspi mit dem selben homebridge user installieren oder spielt das keine Rolle?


    Da ich von mqtt2 gelesen habe, wäre es vorteilhaft wenn ich dann einen mqtt2 habe oder würde das jetzt mehr Hürden mit sich bringen?


    Vielleicht geht's mit einem Webhook-Plugin.

    Das wäre für mein Vorhaben am einfachsten wenn ich es hinbekomme ;)

    Habe folgende gefunden werde das mal testen.

    Programmable HTTP Switch

    homebridge-http-webhooks

    homebridge-http-switch-webhook


    Mit Node Red ginge es sicherlich. Node Red kann durch Homebridge-Fähigkeiten erweitert werden und dann kann man von dort aus Homebridge-Geräte steuern. Das geht auch MQTT-Broker.

    Heute habe ich von Node-Blue und HomeGear bei Patrik Mayer gelesen.

    Node-Blue soll mit mit c++ Runtime und and, or, ... Verknüpfungen arbeiten können.

    Hört sich für mich an, dass es universeller ist als RED.


    Dazu habe ich die gleichen Fragen wie bei mqtt.


    Node als eigene Instanz installieren oder gibt es da ein Plugin für HomeBridge?


    Zuletzt schreibst du, dass es auch mit MQTT-Broker geht.

    Also benötige ich nicht unbedingt Node-Red/Blue?


    Bananajoe86

    Soweit ich das verstanden habe sind die von sschuste erwähnten webhook Plugins genau das was ich benötige und die sind ja mit der Template API erstellt worden.

    Programmable HTTP Switch

    homebridge-http-webhooks

    homebridge-http-switch-webhook



    Wenn ich ein bisschen Programmieren könnte würde ich Tag und Nacht nur solche Plugins bauen aber

    leider habe ich mich seinerzeit für den falschen Beruf entschieden.

    Mehr als compiling und nachahmen mit Howtos ist bei mir nicht drin.


    Besten Dank an Euch und viele Grüße

    raspi4 8GB, Lumary (Tuya) RDGWW LED Panels, Shelly i3, i4, 2, 2.5 | Homebridge v 1.3.9 / v4.41.5

    Einmal editiert, zuletzt von nrtkin ()

  • Soweit ich das verstanden habe sind die von sschuste erwähnten webhook Plugins genau das was ich benötige

    Jup, aber dazu brauchst du erste eine "Adresse" die über das Plugin versendet werden soll. Das ist über die API machbar, aber das habe ich bei HB nicht kapiert. Wenn du es mal rumdrehen würdest, kannst du mit dem Befehl

    "http://192.168.33.1/rpc/Switch.Toggle?id=0"

    Deinen Shelly schalten. Genau so einen Befehl brauchst du jetzt für das gewünschte Item in deiner HB.

  • Genau davor stehe ich jetzt auch ;)


    Ich möchte ja mit einem i3 oder i4 mit einem der Button's unter "..short pressed.." einen http-Befehl an die

    Homebridge oder an das Plugin senden, der dann die Tuya LED über HomeBridge einschalten soll.


    Mit dem Programmable HTTP Switch muss man ja folgendes eingeben

    Accessories:

    Name: irgend ein Name

    Identifier: aus der API ?? hier habe ich den Namen benutz den ich für die LED eingetragen habe

    Button:

    Name: Button 1

    Identifier: den Schaltbefehl im Log "20":true


    hat aber nicht funktioniert ;)


    Das müsste ja sowas wie ein Umlenker sein.

    Der Button -EIN, der mit dem Plugin erstellt wird müsste mit einem http-Befehl von Shelly ansprechbar sein

    und dann die Aktion dazu ausführen. Also den Befehl senden, wie wenn man auf der HomeBridge UI unter Geräte auf den Button drückt.


    Woher bekommt man die Identifier heraus?

    Muss man da im Code des Plugins suchen, aber kann ja nicht sein.

    Das müssen doch irgendwelche ID's sein, die HB selber erstellt.

    Bekommt man sowas auch aus dem Log heraus?


    Ich habe auch was von mqtt-explorer gelsen aber im Moment wird doch auch kein mqtt benutzt und ich kann den Knopf in HB benutzten



    Wenn ich mir jetzt was wünschen dürfte ;)

    Ein Plugin mit dem man einfach einer der vorhandenen Geräte aus der Geräteliste auswählt und

    sagt, bei diesem Gerät kann man das und das Steuern und ich möchte jetzt per http-/mqtt-/ oder was auch immer/ -Befehl den Knopf steuerbar machen.

    raspi4 8GB, Lumary (Tuya) RDGWW LED Panels, Shelly i3, i4, 2, 2.5 | Homebridge v 1.3.9 / v4.41.5

  • Solltest du irgendwann die API rausfinden würde ich es an deiner Stelle aber direkt am Shelly eintragen. Direkter Weg und läuft auch wenn die HB mal ausfällt.

  • Kann sein dass die identifier in dieser .Cash Datei gespeichert werden? Würden die sich ändern wenn man den Cash löscht?


    Du meinst das api-Befehl für die Tuya Lampe

    das von HB an das Gerät gesendet wird.

    Hast du recht das wäre stabiler falls HNO down ist.


    Findet man sowas auch mit wireshark heraus?

    Oder vielleicht in der Log von HB wenn ich wüsste wie man einen debug Modus bei hb einschaltet müsste es ja da drin stehen welcher Befehl abgesendet wird oder nicht?

    raspi4 8GB, Lumary (Tuya) RDGWW LED Panels, Shelly i3, i4, 2, 2.5 | Homebridge v 1.3.9 / v4.41.5

  • Ist mit MQTT-Broker der mosquitto-server gemeint?

    MQTT ist ein Protokoll, das hier ganz gut erklärt ist: https://de.wikipedia.org/wiki/MQTT. Und mosquitto ist eine von vielen Broker-Implementationen und sie ist mehr als gut genug für unsere Smarthomes. Die MQTT-Leute nennen das Ding Broker, aber ich denke, dass auch MQTT-Server nicht falsch ist. Also Broker = Server.

    Benötige ich dann für HomeBridge einen von den Plugins Homebridge MQTT-Thing oder homebridge-mqtt?

    Oder werden die Plugins benötigt damit HB in der MQTT Sprache mit dem mosquitto-server kommunizieren kann?

    Letzteres. Die Plugins sind dazu gedacht, mit einem MQTT-Broker zu kommunizieren. Sie sind MQTT-Clients. Es gibt auch MQTT-Clients, die direkt in Geräte eingebaut sind. Diese Clients veröffentlichen ein Topic mit einem Wert an den Broker (publish) , und andere Clients fühlen sich durch das Topic angesprochen und verarbeiten den Wert (subscribe). Ohne einen Broker können die MQTT-Plugins nichts, das heißt, MQTT-Clients können nicht direkt miteinander kommunizieren.

    Muss ich dann mosquitto auf der raspi mit dem selben homebridge user installieren oder spielt das keine Rolle?

    Das spielt keine Rolle. Du kannst den mosquitto auch in deinem Ferienhaus in Südsudan installieren. Bei mir läuft er auf dem Homebridge-Raspi. Er verbraucht weder viel Platz noch viel Leistung.

    Da ich von mqtt2 gelesen habe, wäre es vorteilhaft wenn ich dann einen mqtt2 habe oder würde das jetzt mehr Hürden mit sich bringen?

    Keine Ahnung. Ich habe darüber noch nie nachgedacht.

    Heute habe ich von Node-Blue und HomeGear bei Patrik Mayer gelesen.

    Node-Blue soll mit mit c++ Runtime und and, or, ... Verknüpfungen arbeiten können.

    Hört sich für mich an, dass es universeller ist als RED.

    Nie gehört. Aber jeder so wie er mag. Ich kann mir überhaupt nichts Universelleres als Node Red vorstellen.

    Node als eigene Instanz installieren oder gibt es da ein Plugin für HomeBridge?

    Redest du von Node oder Node-Red-Blue-Green-Whatever? Node ist die Grundlage für vieles und du verwendest eine einzige Node-Version für alle Software auf dem Raspi, die Node zum Laufen benötigt. Node Red ist übrigens eine Programmierumgebung (und das werden dann Node Blue oder HomeGear auch sein).


    Aber auch egal: das läuft alles völlig getrennt. Die Homebridge-Plugins sind immer nur dazu gedacht, die Homebridge kompatibel mit irgendwas anderem zu machen, aber sie sind nicht dazu gedacht, Serveraufgaben zu übernehmen (ok, gilt nicht für Webhooks) oder Programmierumgebungen darzustellen.

    Wenn ich ein bisschen Programmieren könnte würde ich Tag und Nacht nur solche Plugins bauen aber

    leider habe ich mich seinerzeit für den falschen Beruf entschieden.

    Mehr als compiling und nachahmen mit Howtos ist bei mir nicht drin.

    Node Red verlangt ein Minimum an Programmierkenntnissen. Kann jeder lernen. Damit kann man dann mit 10 Zeilen Code etwas bauen, dass einem Plugin ähnelt. So einem mit Node Red erstellten Programm wird dann ein Wert gesendet (beispielsweise per MQTT), der wird da verarbeitet und wieder an HomeKit gesendet. Das heißt: die Homebridge bleibt ganz außen vor. Node Red ist dann eine eigene Bridge innerhalb von HomeKit. Deutlicher: in meinem HomeKit befinden sich unter anderem eine Hue-Bridge, eine Homebridge-Bridge und ein paar Node Red-Bridges.



    Ich habe auch was von mqtt-explorer gelsen

    Ein MQTT-Client, der es dir erlaubt zu sehen, was auf deinem MQTT-Broker so los ist. Ohne MQTT-Broker eine überflüssiges Programm.

    Wenn ich mir jetzt was wünschen dürfte ;)

    Ein Plugin mit dem man einfach einer der vorhandenen Geräte aus der Geräteliste auswählt und

    sagt, bei diesem Gerät kann man das und das Steuern und ich möchte jetzt per http-/mqtt-/ oder was auch immer/ -Befehl den Knopf steuerbar machen.

    Oh, Software basierend auf der Weltformel. Wird zur Zeit entwickelt und kommt am gleichen Tag heraus wie diese neue Karre von Daimler-Benz, die sich auf Knopfdruck von einem Transporter in eine Drohne verwandelt, die dann beim Rewe Milch kauft, um danach als Kombi eine Familie samt Gepäck an die Nordsee zu fahren. Dort angekommen fährt sie dann auf der örtlichen Kartbahn völlig autonom Rennen gegen die Lokalmatadoren.


    Ein bisschen beschwerlicher ist es leider schon. Vor allem der Was-auch-immer-Befehl. Da wirst du nie um Programmierkenntnisse herumkommen. Aber damit kann man sich einen bauen.

  • Hallo Zusammen,


    hier im Post habe ich nun eine mögliche (fast) Lösung mit einer Shelly i3/i4 eine Tuya LED über Homebridge ein und auszuschalten per curl

    - authorization vom QR-Code

    - man muss wissen welche iid der Schalter für ein/aus ist. Falls man eine RGBWW Lampe hat, gibt es mehrere iid's zu den einzelnen Einstellparametern


    Code
    einschalten
    curl -X PUT http://HomebridgeIP:port/characteristics --header "Content-Type:Application/json" --header "authorization: 081-15-123" --data "{\"characteristics\":[{\"aid\":2,\"iid\":10,\"value\":1}]}"
    
    ausschalten
    curl -X PUT http://HomebridgeIP:port/characteristics --header "Content-Type:Application/json" --header "authorization: 081-15-123" --data "{\"characteristics\":[{\"aid\":2,\"iid\":10,\"value\":0}]}"


    Jetzt weis ich nicht ob man mit den neuen Shelly plus sich einen Script bauen kann,

    der dann diesen curl Befehl über Homebridge an die Tuya sendet?



    Wenn man in den Browser folgendes eingibt (die aid und iid muss bereits bekannt sein)

    Code
    http://hb-ip:port/characteristics?id=2.10

    erhält man folgenden Status

    Code
    {"characteristics":[{"aid":2,"iid":10,"value":0}]}


    Jetzt ist die Frage ob man mit der URL auch die Authorization und ein set value auf 1/0 hinbekommt

    Also sowas wie hier

    Code
    http://hb-ip:port/characteristics?authorization=081-15-123&id=2.10&value=1


    Quellen:

    https://github.com/homebridge/homebridge/issues/506



    Hier habe ich das mit dem Status gefunden

    https://github.com/KhaosT/HAP-…c3b/lib/HAPServer.js#L650

    Code
    // Extract the query params from the URL which looks like: /characteristics?id=1.9,2.14,...
    // requestData is a JSON payload like { characteristics: [ { aid: 1, iid: 8, value: true, ev: true } ] }

    Vielleicht kennt sich jemand mit sowas aus ;)


    Viele Grüße

    raspi4 8GB, Lumary (Tuya) RDGWW LED Panels, Shelly i3, i4, 2, 2.5 | Homebridge v 1.3.9 / v4.41.5

  • Guten Morgen zusammen,

    eine Frage zu Tuya und Shelly habe ich als Anfänger in der SmartHome-Welt...

    Was ist "besser", welcher von beiden Entwickler bietet mehr Gadgets, mit denen man sein SmartHome ausstatten kann. Soll man sich auf Tuya- oder Shelly-Geräte (Rolladensteuereung, Bewegungssensoren, Lampen, Feuchtigkeit Messgeräte, Schalter usw...) orientieren oder spricht nichts dagegen beides zu benutzen (wenn dann möglichst die Bedienung nur über eine App).:?: