Ankündigung

Einklappen
Keine Ankündigung bisher.

Tuya Local API (ohne Cloud)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Zitat von jonofe Beitrag anzeigen
    aktuelle gosund Steckdosen
    ne, sind "Aoycocr" (wer zum Geier denkt sich so einen Namen aus?!) EU5..
    https://templates.blakadder.com/aoycocr_EU5-16A.html

    mal kucken..
    OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

    Kommentar


      #17
      Die erste Version eines generischen Tuya Local API LBS ist jetzt im Download Portal verfügbar.
      Er sollte mit Geräten mit Firmware Version 3.3 funktionieren.

      Der LBS ist generisch, da jeder Hersteller von Tuya basierten Devices selbst festlegen kann, welche Datenpunkte er für welche Funktionen verwendet.
      Spezifische Tuya LBSe würden dann immer nur für einen spezifischen Gerätetyps eines Herstellers Sinn machen.

      An A1 zeigt der LBS nach erfolgreichem Start alle Datenpunkte in der Form

      {"devId":"********************","dps":{"#":value," #":"value",...,"#":value}}

      an, wobei

      ******************** = Device-ID
      # = ID des Datenpunkts
      value = Wert des Datenpunkts

      Entweder kann man anhand des Werts oder durch Steuerung des Devices über die Tuya-App (Cloud) und Update der LBS Ausgänge nun herausfinden, welcher Datenpunkt welche Bedeutung hat. Nach dieser Analyse kann man die Tuya Cloud für das Device sperren, z.B. durch entsprechende Regeln in der Firewall. M.W. sollten auch sichergestellt sein, dass das Tuya Device auch keine DNS Abfragen mehr machen kann. Wenn also der DHCP eine interne IP als DNS Server propagiert (z.B. Fritzbox IP), dann sollte man die Kommunikation zwischen Tuya Device und DNS IP auch blockieren.

      Über E9 kann man dann die Datenpunkte auf die Ausgänge mappen. Wenn man hier nichts angibt, dann werden sie der Reihe nach zugeordnet. Könnte ggf. dann Probleme machen, wenn nicht immer alle Datenpunkte übertragen werden, ist aber bei mir noch nie passiert.

      Über E10 kann man die Datenpunkte setzen und zwar in der Form: #|value (wobei # die Datenpunkt ID und value der Wert ist), z.B. 1|true setzt Datenpunkt 1 auf true. Alternativ geht es auch über ein JSON, mit dem man auch mehrere Datenpunkte gleichzeitig setzen kann, z.B: {"1":true,"2":true,"3":true,"7":true} setzt die Datenpunkte 1,2,3 und 7 auf true.

      Beispiel: Eine Gosund 3-fach Steckdose mit 3 USB Ausgänge hat z.B. folgende Datenpunkte:

      1 = Steckdose 1
      2 = Steckdose 2
      3 = Steckdose 3
      7 = USB Anschlüsse
      9 = Steckdose 1 Countdown Timer (in Sekunden)
      10 = Steckdose 2 Countdown Timer (in Sekunden)
      11 = Steckdose 3 Countdown Timer (in Sekunden)
      15 = USB Anschlüsse Countdown Timer (in Sekunden)
      18 = Stromstärke (mA)
      19 = Leistung (W)
      20 = Spannung (V)
      101 = unbekannt
      102 = unbekannt

      Kommentar


        #18
        hi.
        hab mir einen IR Blaster geholt für als möglichen Logitech Harmony Ersatz.

        https://www.amazon.de/MoesGo-Infraro.../dp/B085Y3N9KJ

        In der Tuya cli bekomme ich die ID und KEY angezeigt.
        Aber Datenpunkte spuckt er nicht aus.
        Wo kann ich sehen welches Produkt welche API verwendet?

        Zuletzt geändert von trollmar; 11.05.2022, 13:31.
        Jean-Luc Picard: "Things are only impossible until they are not."

        Kommentar


          #19
          Zitat von trollmar Beitrag anzeigen
          Wo kann ich sehen welches Produkt welche API verwendet?
          Wie oben erwähnt, weiss ich das leider nicht. Auch in der Tuya Cloud habe ich das nicht gefunden.

          Zitat von trollmar Beitrag anzeigen
          In der Tuya cli bekomme ich die ID und KEY angezeigt.
          Tuya cli kenne ich nicht. Wie sieht denn ID und Key aus? (Format und Länge)

          Was steht im Log?

          Kommentar


            #20
            Hi Andrè,

            Meine den Tuya CLI wizard
            https://github.com/codetheweb/tuyapi.../docs/SETUP.md

            hier mal mein LOG


            Code:
            2022-05-11 14:35:23 445382 24216 debug EXE19002570 [v0.1]: Socket created (3175)
            2022-05-11 14:35:23 446155 24216 debug EXE19002570 [v0.1]: Socket binded (3175)
            2022-05-11 14:35:23 527587 24216 debug EXE19002570 [v0.1]: Socket connected (3175)
            2022-05-11 14:35:23 527931 24216 debug EXE19002570 [v0.1]: ENCODE-PAYLOAD : {"devId":"bf1131176558abf5678fqu","gwId":"bf113117 6558abf5678fqu","uid":"bf1131176558abf5678fqu","t" :1652272523,"dps":{}} (3175)
            2022-05-11 14:35:23 528229 24216 debug EXE19002570 [v0.1]: openssl_decrypt(): {"devId":"bf1131176558abf5678fqu","gwId":"bf113117 6558abf5678fqu","uid":"bf1131176558abf5678fqu","t" :1652272523,"dps":{}} (3175)
            2022-05-11 14:35:23 528503 24216 debug EXE19002570 [v0.1]: ENCODE-DECRYPT-PAYLOAD: {"devId":"bf1131176558abf5678fqu","gwId":"bf113117 6558abf5678fqu","uid":"bf1131176558abf5678fqu","t" :1652272523,"dps":{}} (3175)
            2022-05-11 14:35:23 528749 24216 debug EXE19002570 [v0.1]: ENCODE-SEND-FRAME : 000055aa000000000000000a0000008874f0e104634249cde1 37e76dace3934ef8a54defd95ccdc96b99fea332d8a8cccda1 4beabf4645e5aae548254cae9868f8a54defd95ccdc96b99fe a332d8a8ccc1a196d102da66c6d71d02182475dbf7fe6ea26d 3092f504aff9009dd1aae4bdd0d3d0732c0d3c917989199d54 4412e0c673645769ca2ae457a690fadb0377d0232323230000 aa55 (3175)
            2022-05-11 14:35:23 529055 24216 debug EXE19002570 [v0.1]: ENCODE-CRC : a241cfb6 (3175)
            2022-05-11 14:35:23 529294 24216 debug EXE19002570 [v0.1]: ENCODE-SEND-FRAME-CRC : 000055aa000000000000000a0000008874f0e104634249cde1 37e76dace3934ef8a54defd95ccdc96b99fea332d8a8cccda1 4beabf4645e5aae548254cae9868f8a54defd95ccdc96b99fe a332d8a8ccc1a196d102da66c6d71d02182475dbf7fe6ea26d 3092f504aff9009dd1aae4bdd0d3d0732c0d3c917989199d54 4412e0c673645769ca2ae457a690fadb0377d0a241cfb60000 aa55 (3175)
            2022-05-11 14:35:23 534003 24216 debug EXE19002570 [v0.1]: RECV : 000055aa000000000000000a0000002c000000011a4bb9886e 7250309e67d917f99d5e41825b6edb3508f2129f2cd990ce02 daf2e69b5b8b0000aa55 (3175)
            2022-05-11 14:35:23 534296 24216 debug EXE19002570 [v0.1]: PREFIX : 000055aa (3175)
            2022-05-11 14:35:23 534534 24216 debug EXE19002570 [v0.1]: SEQUENCE: 00000000 (3175)
            2022-05-11 14:35:23 534763 24216 debug EXE19002570 [v0.1]: COMMAND : 0000000a (3175)
            2022-05-11 14:35:23 535254 24216 debug EXE19002570 [v0.1]: SIZE : 0000002c(44) (3175)
            2022-05-11 14:35:23 535485 24216 debug EXE19002570 [v0.1]: RETURN : 00000001 (3175)
            2022-05-11 14:35:23 535711 24216 debug EXE19002570 [v0.1]: PAYLOAD : 000000011a4bb9886e7250309e67d917f99d5e41825b6edb35 08f2129f2cd990ce02daf2 (3175)
            2022-05-11 14:35:23 535949 24216 debug EXE19002570 [v0.1]: VERSION : (3175)
            2022-05-11 14:35:23 536171 24216 debug EXE19002570 [v0.1]: Exp CRC : e69b5b8b (3175)
            2022-05-11 14:35:23 536396 24216 debug EXE19002570 [v0.1]: CRC : e69b5b8b (3175)
            2022-05-11 14:35:23 536623 24216 debug EXE19002570 [v0.1]: CRYPTED : 1a4bb9886e7250309e67d917f99d5e41825b6edb3508f2129f 2cd990ce02daf2 (3175)
            2022-05-11 14:35:23 536914 24216 debug EXE19002570 [v0.1]: openssl_decrypt(): json obj data unvalid (3175)
            2022-05-11 14:35:23 537139 24216 debug EXE19002570 [v0.1]: DECRYPT : json obj data unvalid (3175)
            2022-05-11 14:35:23 537364 24216 debug EXE19002570 [v0.1]: STATUS-RESPONSE : json obj data unvalid (3175)

            Ergebnis: json obj data unvalid

            Meine id die aus dem Wizard.

            ID: bf1131176558abf5678fqu
            KEY: 341a4g7d76u306f7

            Beides natürlich hier randomisiert für diesen beitrag ;-)

            LG
            Zuletzt geändert von trollmar; 11.05.2022, 13:59.
            Jean-Luc Picard: "Things are only impossible until they are not."

            Kommentar


              #21
              Grundsätzlich sieht es bis zum crypted Payload gut aus, d.h. es werden Daten empfangen und auch CRC Checksumme stimmt.
              Ich kann mir nur vorstellen, dass es tatsächlich an der Firmware Version liegt.
              Du kannst das mal mit tinyTuya testen. Damit kannst du nach den Tuya Devices scanner und er gibt dir Adresse, Device-ID und Firmware Version aus.

              Kommentar


                #22
                Hi
                Danke für den Baustein - COOL!
                Ein Problem habe ich:​
                E10 kann ich setzen z.B.
                20|true
                22|100
                23|200
                (ist eine Bulb: 20 = an/aus, 22 Farbwert 0-1000, 23 Helligkeit 0-1000)

                Was aber nicht funktioniert ist
                {"20":true}
                oder
                {"20":true,"22":222,"23":444}

                Da funktioniert garnichts... was mache ich falsch? Das JSON scheint zu passen...

                Gruß
                Thorsten

                Nachtrag: im encode-payload sehe ich das hier:

                ENCODE-PAYLOAD : {"devId":"xxxxxxxxxcbe0222dqbyq","gwId":"yyyyyyyyy yy","uid":"","t":2222222222,"dps":["{"20":true,"22":"222","23":"444"}"]} (6740)

                ​Sollte der Payload nicht eher so aussehen: {"20":true,"22":"222","23":"444"} ?

                Zuletzt geändert von ThorstenGehrig; 27.09.2022, 19:10.

                Kommentar


                  #23
                  Zitat von ThorstenGehrig Beitrag anzeigen
                  Was aber nicht funktioniert ist
                  {"20":true}
                  Hast du mal {'20':true} versucht?

                  Zitat von ThorstenGehrig Beitrag anzeigen
                  {"20":true,"22":222,"23":444}
                  mehrere DPS gleichzeitig setzen geht vermutlich nicht.
                  Zuletzt geändert von jonofe; 27.09.2022, 21:45.

                  Kommentar


                    #24
                    okay - das man mehrere DPS gleichzeitig setzen kann steht aber in Post#17 anders (...mit dem man auch mehrere Datenpunkte gleichzeitig setzen kann...).
                    Sonst wäre ich garnicht auf die Idee gekommen... vielleicht aktualisierst du den Eintrag :-)
                    Das mit ' statt " sieht im Log gut aus - funktionieren tut es trotzdem nicht.

                    Gruß
                    Thorsten


                    Kommentar


                      #25
                      Zitat von ThorstenGehrig Beitrag anzeigen
                      Sonst wäre ich garnicht auf die Idee gekommen... vielleicht aktualisierst du den Eintrag :-)
                      War nur so meine Erinnerung. Wenns da anders steht, dann gehts vielleicht doch, ist einfach zu lange her und ich setze es nur für ein paar Steckdosen ein. Da gibts nur ein/aus. Daher kann ich's auch leider schlecht testen.

                      EDIT: wenn ich aus dem Urlaub zurück bin, schau ich mal, ob ich die 3-fach Steckdose mit Tuya noch finde, dann teste ich das nochmal. Wenns in Playground steht, dann hat es sicher schon so mit der 3-fach Steckdose funktioniert. Kann also auch an deinem Gerät liegen, denn da gibt es die verschiedensten Typen von Tuya Geräten. Wenns einzeln funktioniert, dann würde ich einfach ne Sequenz erstellen oder das irgendwie anders mit Logik lösen.
                      Zuletzt geändert von jonofe; 27.09.2022, 21:42.

                      Kommentar


                        #26
                        Hat jemand einen Tipp, welche Steckdose mit Energiemessung mit dem Baustein zuverlässig funktionert?

                        Kommentar


                          #27
                          Super Baustein, vielen Dank!

                          jonofe : Gibts ne Chance API Version 3.4 zu implementieren? Hab ne Reihe TW-G9-LED die 3.4 drauf haben - und zu denen hab ich noch keine andere Alternative gefunden, das wär traumhaft...

                          Kommentar


                            #28
                            Ich habe leider keine 3.4 Geräte, daher wird es vermutlich schwierig.
                            Hast du denn einen Link zu einer Doku zu v3.4?

                            Kommentar


                              #29
                              Ich habe leider keinen Link zu einer Doku, außer die Github Tuya Projekte die 3.4 schon unterstützen...und auch leider nicht die Fähigkeiten es selbst zu machen, auch wenn ich eine grobe Vorstellung von Programmieren habe (Basic unter DOS 5.X ;-) )

                              Ich weiß dass das "LocalTuya" Plugin von HomeAssistant und tinyTuya inzwischen 3.4 (und tlw auch 3.5) unterstützen, in Home Assistant läuft mein Lämpchen auch, ich würde aber lieber vermeiden zu viele "translater" und Bridges laufen zu haben und möglichst bei Edomi bleiben, deswegen hatte ich großes Interesse an deinem Baustein ;-)

                              Ich könnte dir natürlich ein 3.4-Gerät zur Verfügung stellen ;-).

                              Kommentar


                                #30
                                Hallo!

                                Ich habe über die Tuya Smart Life App eine Verbindung zu iot.tuya.com hergestellt und erfolgreich die Device-ID ausgelesen.
                                Mir ist aber nicht ganz klar wo ich dieses "CLI Tool" installieren muss damit ich an den Key komme?
                                All methods below require you to install the CLI tool before proceeding.

                                Install it by running npm i @tuyapi/cli -g
                                Bitte um einen Denkanstoß :-)
                                lg Martin

                                Kommentar

                                Lädt...
                                X