FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: tschimi am 17 Dezember 2020, 09:10:38

Titel: Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: tschimi am 17 Dezember 2020, 09:10:38
Hi,
nach viel lesen und suchen hab ich es geschafft, meinem Aiibot die Daten zu entlocken via tuya-mqtt.

Die ersten Schritte sind gut beschrieben. Dazu bitte hier nachlesen
- https://github.com/codetheweb/tuyapi 
- https://github.com/TheAgentK/tuya-mqtt

Die erste "Fummelei" ist es dann, dem Aiibot sein Token zu entreißen. Wenn man dann erfolgreich den DevAccount angelegt hat bei Tuya und den Aiibot nach Anleitung eingebunden hat, geht das aber relativ einfach.

Was NIRGENDWO beschrieben ist, ist das File devices.conf und das FHEM define. (Anmerkung: Mosquitto MUSS laufen - sonst geht garnix)

Dann devices.conf im Verzeichnis /opt/tuya-mqtt anlegen.

[
{
    name: 'Aiibot',
    id: 'your-id',
    key: 'your-key',
    ip: 'your-ip',
    version: '3.3',
    type: 'Air Purifier',
    template: {   
        switch: {
          key: 1,
          type: 'bool'
        },
        mode: {
          key: 2,
          type: 'int'
        },
        speed: {
          key: 3,
          type: 'int'
        },
        lock: {
          key: 4,
          type: 'bool'
        },   
        filter_reset: {
          key: 5,
          type: 'bool'
        },   
        countdown: {
          key: 6,
          type: 'int'
        }   
     }
}
]


Das File abspeichern. Nicht vergessen, auch config.json entsprechend der Anleitung anzulegen!

Dann Tuya-mptt starten mit: node tuya-mqtt

In FHEM hab ich dann folgendes angelegt

define Aiibot MQTT_DEVICE
attr Aiibot IODev myBroker
attr Aiibot alias Aiibot Air Purifier
attr Aiibot autoSubscribeReadings tuya/aiibot/+
attr Aiibot comment Mode: PM2.5 Count: Stufe
attr Aiibot group Aiibot
attr Aiibot icon vent_ventilation
attr Aiibot room Tuya
attr Aiibot stateFormat P: SWITCH PM2.5: MODE Stufe: COUNT
attr Aiibot subscribeReading_COUNT tuya/aiibot/countdown
attr Aiibot subscribeReading_MODE tuya/aiibot/mode
attr Aiibot subscribeReading_SPEED tuya/aiibot/speed
attr Aiibot subscribeReading_SWITCH tuya/aiibot/switch
attr Aiibot subscribeReading_filter_reset tuya/aiibot/filter_reset
attr Aiibot subscribeReading_lock tuya/aiibot/lock
attr Aiibot subscribeReading_status tuya/aiibot/status


Jetzt liefert der Aiibot brav obige Daten bis auf speed. Ist zwar im DevPortal als output benannt, liefert aber irgendwie nix. Was jetzt noch schön wäre ist, wenn man das Teil auch noch umgekehrt steuern könnte. Also an/aus etc. Vielleicht hat jemand ja einen Tip.

Hoffe, das hilft dem einen oder anderen hier.

Lg, tschimi
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: morrpheus am 22 Dezember 2020, 00:52:33
Moin Moin.
Ich bin auch gerade an der TuyAPI dran. Hast du außer dem Device noch etwas angelegt? Also eine Bridge oder einen Client?
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: tschimi am 24 Dezember 2020, 22:14:44
Nope. Ich hab mich nur als Developer registriert und dann alles nach Anleitung gemacht...

Lg, tschimi
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: saulous am 05 Februar 2022, 06:50:10
Guten Morgen zusammen. Ich greife das Thema tuya-mqtt nochmal auf.

Aktuell betreibe ich meine tuya Geräte (welche sich nicht per tuya covert Flashen lassen) mit tuya-mqtt. Funktioniert auch soweit gut.

Nur wenn ich den raspberry neu starte (oder auch nur den tuya-mqtt Prozess) wird ein neues device in fhem für diesen Mqtt Prozess erstellt.

Kann man dieses irgendwie unterbinden? Sodass fhem immer wieder das bestehende device verwendet?
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: saulous am 10 Februar 2022, 06:37:13
Hallo zusammen. Kurze Rückmeldung :

Ich habe nun Tuya-mqtt und fhem per mqtt2 Client auf den externen mosquitto Server eingeloggt. So wird eine dauerhafte cid eingetragen und ist auch nach einem Neustart wieder erreichbar.
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: prodigy7 am 13 Februar 2022, 15:23:50
Mich würde doch noch die Antwort einer der Profis hier interessieren, wie man vermeiden kann, dass beim Reconnect jedes Mal ein neues Device angelegt wird im FHEM eigenen MQTT Server.
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: Beta-User am 13 Februar 2022, 15:32:19
CID-Angaben aus der readingList löschen. Siehe auch Praxisbeispiele im wiki.
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: prodigy7 am 13 Februar 2022, 18:08:45
Zitat von: Beta-User am 13 Februar 2022, 15:32:19
CID-Angaben aus der readingList löschen. Siehe auch Praxisbeispiele im wiki.
Ich verstehe leider nicht ganz, was du meinst. Also wenn ich tuya-mqtt ausführe, bekomme ich folgenden Output z.B.:
  tuya-mqtt:info Connection established to MQTT server +0ms
  tuya-mqtt:tuyapi Search for device id 04007734bcxxxxxxxxxx +0ms
  tuya-mqtt:tuyapi Found device id 04007734bcxxxxxxxxxx +1s
  tuya-mqtt:tuyapi Received JSON data from device 04007734bcxxxxxxxxxx -> {"2":1,"18":248,"19":484,"21":2,"22":363} +30ms
  tuya-mqtt:tuyapi Connected to device Wohnzimmer.Sensor1 (04007734bcxxxxxxxxxx , 9537xxxxxxxxxxxx) +982ms
  tuya-mqtt:tuyapi Received JSON data from device 04007734bcxxxxxxxxxx -> {"2":1,"18":248,"19":484,"21":2,"22":363} +16ms
  tuya-mqtt:state MQTT DPS JSON: tuya/wohnzimmer.sensor1/dps/state ->  {"2":1,"18":248,"19":484,"21":2,"22":363} +0ms
  tuya-mqtt:state MQTT DPS2: tuya/wohnzimmer.sensor1/dps/2/state ->  1 +1ms
  tuya-mqtt:state MQTT DPS18: tuya/wohnzimmer.sensor1/dps/18/state ->  248 +1ms
  tuya-mqtt:state MQTT DPS19: tuya/wohnzimmer.sensor1/dps/19/state ->  484 +0ms
  tuya-mqtt:state MQTT DPS21: tuya/wohnzimmer.sensor1/dps/21/state ->  2 +1ms
  tuya-mqtt:state MQTT DPS22: tuya/wohnzimmer.sensor1/dps/22/state ->  363 +0ms

Angelegt wurde dann in fhem ein Device mit dem Namen "mqttjs_7f606a10" bzw. Device Topic "MQTT2_mqttjs_7f606a10". Die ReadineList sieht wie folgt aus:
mqttjs_7f606a10:tuya/wohnzimmer\x2esensor1/status:.* status
mqttjs_7f606a10:tuya/wohnzimmer\x2esensor1/dps/state:.* { json2nameValue($EVENT) }
mqttjs_7f606a10:tuya/wohnzimmer\x2esensor1/dps/2/state:.* dps_2_state
mqttjs_7f606a10:tuya/wohnzimmer\x2esensor1/dps/18/state:.* dps_18_state
mqttjs_7f606a10:tuya/wohnzimmer\x2esensor1/dps/19/state:.* dps_19_state
mqttjs_7f606a10:tuya/wohnzimmer\x2esensor1/dps/21/state:.* dps_21_state
mqttjs_7f606a10:tuya/wohnzimmer\x2esensor1/dps/22/state:.* dps_22_state

Macht hier der MQTT Client vielleicht was falsch?
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: Beta-User am 13 Februar 2022, 20:14:17
https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#St.C3.A4ndig_neue_Devices.3F
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: prodigy7 am 13 Februar 2022, 20:36:05
Zitat von: Beta-User am 13 Februar 2022, 20:14:17
https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#St.C3.A4ndig_neue_Devices.3F
Danke, war wohl blind! Hab es angepasst wie dort beschrieben:
tuya/wohnzimmer\x2esensor1:.* { json2nameValue($EVENT) }
tuya/wohnzimmer\x2esensor1/status:.* status
tuya/wohnzimmer\x2esensor1/dps/state:.* { json2nameValue($EVENT) }
tuya/wohnzimmer\x2esensor1/dps/2/state:.* dps_2_state
tuya/wohnzimmer\x2esensor1/dps/18/state:.* dps_18_state
tuya/wohnzimmer\x2esensor1/dps/19/state:.* dps_19_state
tuya/wohnzimmer\x2esensor1/dps/21/state:.* dps_21_state
tuya/wohnzimmer\x2esensor1/dps/22/state:.* dps_22_state

Die erste Zeile habe ich hinzugefügt. Dennoch legt er das Gerät bei jedem Dienst-Neustart neu an. Wenn das nicht falsch war von meiner Seite aus, läuft da irgendwas anderes schief. Ggf. kann es aber auch daran liegen, wie tuya-mqtt den Client implementiert. Wenn ich es nicht ganz falsch verstehe, könnte ich ja versuchen, eine eindeutige ClientId zu definieren im Quellcode. Müsste ich, wenn ich wieder fit bin, mal schauen, wo was anzupassen wäre im Quellcode.
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: Beta-User am 13 Februar 2022, 20:42:46
Mach mal die Umlaute raus aus den Geräte-Namen auf der tuya-Seite.
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: prodigy7 am 13 Februar 2022, 20:51:07
Zitat von: Beta-User am 13 Februar 2022, 20:42:46
Mach mal die Umlaute raus aus den Geräte-Namen auf der tuya-Seite.
Ne, leider auch ohne Erfolg. Hab es in "wohnzimmersensor1" umbenannt gehabt. Lässt sich da durch Hinzufügen irgendeines Attributes auf MQTT Client Seite etwas forcieren, dass das nicht mehr passiert?
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: Beta-User am 13 Februar 2022, 21:01:42
readingList (v.a. topics) wird auf regex-match geprüft. Das musst du ggf. so anpassen, dass es hinhaut. ClientID dabei immer rausnehmen.
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: prodigy7 am 13 Februar 2022, 21:29:12
Zitat von: Beta-User am 13 Februar 2022, 21:01:42
readingList (v.a. topics) wird auf regex-match geprüft. Das musst du ggf. so anpassen, dass es hinhaut. ClientID dabei immer rausnehmen.
Ahhhhh, ich habs jetzt! Nochmal alles von vorne eingerichtet, readingList angepasst und dann die Einstellungen gespeichert. Ich glaube, das war ein DAU Fehler von mir: Ich hatte die Anpassungen gemacht, aber nicht gespeichert im FHEM Web Interface!  ::)
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: brain666 am 08 März 2022, 11:55:54
Servus zusammen,

ich bekomme es nicht ans laufen
ich nutze ein 4 Kanal Relais und ein 2 Kanal relais
https://www.amazon.de/Wireless-Selbstverriegelung-Garagentor-Fernbedienung-kompatibel/dp/B08NPTCQDB/ref=sr_1_1?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=8IXG25NDVFAF&keywords=4+kanal+relais+alexa&qid=1646736023&sprefix=4+kanal+relais+alexa%2Caps%2C104&sr=8-1 (https://www.amazon.de/Wireless-Selbstverriegelung-Garagentor-Fernbedienung-kompatibel/dp/B08NPTCQDB/ref=sr_1_1?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=8IXG25NDVFAF&keywords=4+kanal+relais+alexa&qid=1646736023&sprefix=4+kanal+relais+alexa%2Caps%2C104&sr=8-1)


der Tuya-mqtt läuft und in FHEM wird auch das Device angelegt


root@debian:/home/tuya-mqtt# DEBUG=tuya-mqtt:* node tuya-mqtt.js
  tuya-mqtt:info Connection established to MQTT server +0ms
  tuya-mqtt:tuyapi Search for device id bfff20fd3305acf489ybm9 +0ms
  tuya-mqtt:tuyapi Search for device id bfae78abf8d780553axirr +5ms
  tuya-mqtt:tuyapi Found device id bfae78abf8d780553axirr +1s
  tuya-mqtt:tuyapi Received JSON data from device bfae78abf8d780553axirr -> {"1":false,"2":false,"7":0,"8":0,"14":"off","16":false,"17":"","18":""} +239ms
  tuya-mqtt:tuyapi Connected to device 2CH (bfae78abf8d780553axirr, b4f7c74cc33045e9) +873ms
  tuya-mqtt:tuyapi Received JSON data from device bfae78abf8d780553axirr -> {"1":false,"2":false,"7":0,"8":0,"14":"off","16":false,"17":"","18":""} +117ms
  tuya-mqtt:state MQTT DPS JSON: tuya/2ch/dps/state ->  {"1":false,"2":false,"7":0,"8":0,"14":"off","16":false,"17":"","18":""} +0ms
  tuya-mqtt:state MQTT DPS1: tuya/2ch/dps/1/state ->  false +1ms
  tuya-mqtt:state MQTT DPS2: tuya/2ch/dps/2/state ->  false +1ms
  tuya-mqtt:state MQTT DPS7: tuya/2ch/dps/7/state ->  0 +1ms
  tuya-mqtt:state MQTT DPS8: tuya/2ch/dps/8/state ->  0 +0ms
  tuya-mqtt:state MQTT DPS14: tuya/2ch/dps/14/state ->  off +1ms
  tuya-mqtt:state MQTT DPS16: tuya/2ch/dps/16/state ->  false +1ms
  tuya-mqtt:state MQTT DPS17: tuya/2ch/dps/17/state ->   +0ms
  tuya-mqtt:state MQTT DPS18: tuya/2ch/dps/18/state ->   +1ms
  tuya-mqtt:tuyapi Found device id bfff20fd3305acf489ybm9 +81ms
  tuya-mqtt:tuyapi Received JSON data from device bfff20fd3305acf489ybm9 -> {"1":false,"2":false,"3":false,"4":false,"7":0,"8":0,"9":0,"10":0,"14":"off","15":"relay","16":false,"17":"","18":"","19":"BwACBQACAgACAQAC"} +96ms
  tuya-mqtt:tuyapi Connected to device 4CH (bfff20fd3305acf489ybm9, 2f4f60fad2a4a960) +932ms
  tuya-mqtt:tuyapi Received JSON data from device bfff20fd3305acf489ybm9 -> {"1":false,"2":false,"3":false,"4":false,"7":0,"8":0,"9":0,"10":0,"14":"off","15":"relay","16":false,"17":"","18":"","19":"BwACBQACAgACAQAC"} +98ms
  tuya-mqtt:state MQTT DPS JSON: tuya/4ch/dps/state ->  {"1":false,"2":false,"3":false,"4":false,"7":0,"8":0,"9":0,"10":0,"14":"off","15":"relay","16":false,"17":"","18":"","19":"BwACBQACAgACAQAC"} +1s
  tuya-mqtt:state MQTT DPS1: tuya/4ch/dps/1/state ->  false +1ms
  tuya-mqtt:state MQTT DPS2: tuya/4ch/dps/2/state ->  false +1ms
  tuya-mqtt:state MQTT DPS3: tuya/4ch/dps/3/state ->  false +0ms
  tuya-mqtt:state MQTT DPS4: tuya/4ch/dps/4/state ->  false +1ms
  tuya-mqtt:state MQTT DPS7: tuya/4ch/dps/7/state ->  0 +1ms
  tuya-mqtt:state MQTT DPS8: tuya/4ch/dps/8/state ->  0 +0ms
  tuya-mqtt:state MQTT DPS9: tuya/4ch/dps/9/state ->  0 +1ms
  tuya-mqtt:state MQTT DPS10: tuya/4ch/dps/10/state ->  0 +1ms
  tuya-mqtt:state MQTT DPS14: tuya/4ch/dps/14/state ->  off +0ms
  tuya-mqtt:state MQTT DPS15: tuya/4ch/dps/15/state ->  relay +1ms
  tuya-mqtt:state MQTT DPS16: tuya/4ch/dps/16/state ->  false +1ms
  tuya-mqtt:state MQTT DPS17: tuya/4ch/dps/17/state ->   +0ms
  tuya-mqtt:state MQTT DPS18: tuya/4ch/dps/18/state ->   +1ms
  tuya-mqtt:state MQTT DPS19: tuya/4ch/dps/19/state ->  BwACBQACAgACAQAC +1ms


ein List aus FHEM


Internals:
   CID        mqttjs_9f56ab04
   DEF        mqttjs_9f56ab04
   DEVICETOPIC MQTT2_mqttjs_9f56ab04
   FUUID      62272ff8-f33f-078c-9d5f-4100b232b48445f7
   IODev      m2s
   LASTInputDev m2s
   MSGCNT     16
   NAME       MQTT2_mqttjs_9f56ab04
   NR         530
   STATE      ???
   TYPE       MQTT2_DEVICE
   m2s_CONN   m2s_127.0.0.1_51836
   m2s_MSGCNT 16
   m2s_TIME   2022-03-08 11:33:48
   .attraggr:
   .attrminint:
   READINGS:
     2022-03-08 11:33:42   IODev           m2s
     2022-03-08 11:33:48   dps_10_state    0
     2022-03-08 11:33:48   dps_14_state    off
     2022-03-08 11:33:48   dps_15_state    relay
     2022-03-08 11:33:48   dps_16_state    false
     2022-03-08 11:33:48   dps_17_state   
     2022-03-08 11:33:48   dps_18_state   
     2022-03-08 11:33:48   dps_19_state    BwACBQACAgACAQAC
     2022-03-08 11:33:48   dps_1_state     false
     2022-03-08 11:33:48   dps_2_state     false
     2022-03-08 11:33:48   dps_3_state     false
     2022-03-08 11:33:48   dps_4_state     false
     2022-03-08 11:33:48   dps_7_state     0
     2022-03-08 11:33:48   dps_8_state     0
     2022-03-08 11:33:48   dps_9_state     0
     2022-03-08 11:33:48   state_1         false
     2022-03-08 11:33:48   state_10        0
     2022-03-08 11:33:48   state_14        off
     2022-03-08 11:33:48   state_15        relay
     2022-03-08 11:33:48   state_16        false
     2022-03-08 11:33:48   state_17       
     2022-03-08 11:33:48   state_18       
     2022-03-08 11:33:48   state_19        BwACBQACAgACAQAC
     2022-03-08 11:33:48   state_2         false
     2022-03-08 11:33:48   state_3         false
     2022-03-08 11:33:48   state_4         false
     2022-03-08 11:33:48   state_7         0
     2022-03-08 11:33:48   state_8         0
     2022-03-08 11:33:48   state_9         0
     2022-03-08 11:33:48   status          online
     2022-03-08 11:34:42   subscriptions   hass/status homeassistant/status tuya/#
Attributes:
   readingList mqttjs_9f56ab04:tuya/4ch/status:.* status
mqttjs_9f56ab04:tuya/4ch/dps/state:.* { json2nameValue($EVENT, 'state_', $JSONMAP) }
mqttjs_9f56ab04:tuya/4ch/dps/1/state:.* dps_1_state
mqttjs_9f56ab04:tuya/4ch/dps/2/state:.* dps_2_state
mqttjs_9f56ab04:tuya/4ch/dps/3/state:.* dps_3_state
mqttjs_9f56ab04:tuya/4ch/dps/4/state:.* dps_4_state
mqttjs_9f56ab04:tuya/4ch/dps/7/state:.* dps_7_state
mqttjs_9f56ab04:tuya/4ch/dps/8/state:.* dps_8_state
mqttjs_9f56ab04:tuya/4ch/dps/9/state:.* dps_9_state
mqttjs_9f56ab04:tuya/4ch/dps/10/state:.* dps_10_state
mqttjs_9f56ab04:tuya/4ch/dps/14/state:.* dps_14_state
mqttjs_9f56ab04:tuya/4ch/dps/15/state:.* dps_15_state
mqttjs_9f56ab04:tuya/4ch/dps/16/state:.* dps_16_state
mqttjs_9f56ab04:tuya/4ch/dps/17/state:.* dps_17_state
mqttjs_9f56ab04:tuya/4ch/dps/18/state:.* dps_18_state
mqttjs_9f56ab04:tuya/4ch/dps/19/state:.* dps_19_state
mqttjs_9f56ab04:tuya/2ch/status:.* status
mqttjs_9f56ab04:tuya/2ch/dps/state:.* { json2nameValue($EVENT, 'state_', $JSONMAP) }
mqttjs_9f56ab04:tuya/2ch/dps/1/state:.* dps_1_state
mqttjs_9f56ab04:tuya/2ch/dps/2/state:.* dps_2_state
mqttjs_9f56ab04:tuya/2ch/dps/7/state:.* dps_7_state
mqttjs_9f56ab04:tuya/2ch/dps/8/state:.* dps_8_state
mqttjs_9f56ab04:tuya/2ch/dps/14/state:.* dps_14_state
mqttjs_9f56ab04:tuya/2ch/dps/16/state:.* dps_16_state
mqttjs_9f56ab04:tuya/2ch/dps/17/state:.* dps_17_state
mqttjs_9f56ab04:tuya/2ch/dps/18/state:.* dps_18_state
   room       MQTT2_DEVICE


mein test für das 4 Kanal relais dort will ich das 3te relais schalten


defmod 4chtest MQTT_DEVICE
attr 4chtest eventMap true:on false:off
attr 4chtest publishSet true false tuya/4ch/dps/3/state
attr 4chtest subscribeReading_state tuya/4ch/dps/3/state
attr 4chtest webCmd on:off


das eizige was dadurch generiert wird ist ein neues Device


define MQTT2_61ee7355_f33f_078c_7f0e_3debb81dee8dccfd MQTT2_DEVICE 61ee7355_f33f_078c_7f0e_3debb81dee8dccfd
setuuid MQTT2_61ee7355_f33f_078c_7f0e_3debb81dee8dccfd 6227300e-f33f-078c-9918-5fb5adfeacf6563a
attr MQTT2_61ee7355_f33f_078c_7f0e_3debb81dee8dccfd readingList 61ee7355_f33f_078c_7f0e_3debb81dee8dccfd:tuya/4ch/dps/3/state:.* dps_3_state
attr MQTT2_61ee7355_f33f_078c_7f0e_3debb81dee8dccfd room MQTT2_DEVICE



im Tuya-mqtt kommt auch kein befehl an :/

wenn ich aber über die 433 Fernbedienung oder über Alexa oder die Tuya app einschalte reagiert der tuya-mqtt


  tuya-mqtt:state MQTT DPS19: tuya/4ch/dps/19/state ->  BwACBQACAgACAQAC +0ms
  tuya-mqtt:tuyapi Received JSON data from device bfff20fd3305acf489ybm9 -> {"3":true} +17s
  tuya-mqtt:state MQTT DPS JSON: tuya/4ch/dps/state ->  {"3":true} +17s
  tuya-mqtt:state MQTT DPS3: tuya/4ch/dps/3/state ->  true +1ms
  tuya-mqtt:tuyapi Received JSON data from device bfff20fd3305acf489ybm9 -> {"3":false} +804ms
  tuya-mqtt:state MQTT DPS JSON: tuya/4ch/dps/state ->  {"3":false} +804ms
  tuya-mqtt:state MQTT DPS3: tuya/4ch/dps/3/state ->  false +0ms
  tuya-mqtt:tuyapi Received JSON data from device bfff20fd3305acf489ybm9 -> {"3":true} +37s
  tuya-mqtt:state MQTT DPS JSON: tuya/4ch/dps/state ->  {"3":true} +37s
  tuya-mqtt:state MQTT DPS3: tuya/4ch/dps/3/state ->  true +1ms
  tuya-mqtt:tuyapi Received JSON data from device bfff20fd3305acf489ybm9 -> {"3":false} +833ms
  tuya-mqtt:state MQTT DPS JSON: tuya/4ch/dps/state ->  {"3":false} +832ms
  tuya-mqtt:state MQTT DPS3: tuya/4ch/dps/3/state ->  false +1ms



der define vom mqtt server in fhem

define m2s MQTT2_SERVER 1884 global
setuuid m2s 61f695c4-f33f-078c-de91-f3b878e3ae09b84e

attr m2s autocreate complex
attr m2s ignoreRegexp cmnd/[^:"]+:
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: Beta-User am 08 März 2022, 12:09:19
...das geht ja wild durcheinander...

Bleib bei MQTT2_DEVICE, der Versuch mit MQTT_DEVICE ist "Banane".

Die ClientID ändert sich bei diesen "paho"-Devices ständig. Falls man es nicht per yaml einstellen kann: in der readingsList die CID-Präfixe (mqttjs_9f56ab04:)  löschen (siehe "Praxisbeispiele zu MQTT2_DEVICE im Wiki" (unten)).

Ansonsten: https://wiki.fhem.de/wiki/MQTT2_DEVICE_-_Schritt_f%C3%BCr_Schritt
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: brain666 am 08 März 2022, 12:56:33
hmm ich verstehe es irgendwie nicht :/


ich habe den tuya-mqtt mit meinen lokalen mqtt server verbunden
habe fhem als client auf dem mqtt verbunden

dieser erstellt dann auch das device


Internals:
   CFGFN     
   CID        FHEM
   DEF        FHEM
   DEVICETOPIC MQTT2_FHEM
   FUUID      6227397d-f33f-078c-a4c7-495c86eadaedf19d
   IODev      meinMQTT2Client
   LASTInputDev meinMQTT2Client
   MSGCNT     53
   NAME       MQTT2_FHEM
   NR         1637
   STATE      off
   TYPE       MQTT2_DEVICE
   meinMQTT2Client_MSGCNT 53
   meinMQTT2Client_TIME 2022-03-08 12:26:16
   .attraggr:
   .attrminint:
   READINGS:
     2022-03-08 12:09:49   IODev           meinMQTT2Client
     2022-03-08 12:14:31   dps_10_state    0
     2022-03-08 12:14:31   dps_14_state    off
     2022-03-08 12:14:31   dps_15_state    relay
     2022-03-08 12:14:31   dps_16_state    false
     2022-03-08 12:14:31   dps_17_state   
     2022-03-08 12:14:31   dps_18_state   
     2022-03-08 12:14:31   dps_19_state    BwACBQACAgACAQAC
     2022-03-08 12:14:31   dps_1_state     false
     2022-03-08 12:14:31   dps_2_state     false
     2022-03-08 12:26:16   dps_3_state     false
     2022-03-08 12:14:31   dps_4_state     false
     2022-03-08 12:14:31   dps_7_state     0
     2022-03-08 12:14:31   dps_8_state     0
     2022-03-08 12:14:31   dps_9_state     0
     2022-03-08 12:26:16   state           off
     2022-03-08 12:12:32   state_          true
     2022-03-08 12:14:31   state_1         false
     2022-03-08 12:14:31   state_10        0
     2022-03-08 12:14:31   state_14        off
     2022-03-08 12:14:31   state_15        relay
     2022-03-08 12:14:31   state_16        false
     2022-03-08 12:14:31   state_17       
     2022-03-08 12:14:31   state_18       
     2022-03-08 12:14:31   state_19        BwACBQACAgACAQAC
     2022-03-08 12:14:31   state_2         false
     2022-03-08 12:14:31   state_3         false
     2022-03-08 12:14:31   state_4         false
     2022-03-08 12:14:31   state_7         0
     2022-03-08 12:14:31   state_8         0
     2022-03-08 12:14:31   state_9         0
     2022-03-08 12:14:31   status          online
Attributes:
   readingList FHEM:tuya/4ch/status:.* status
FHEM:tuya/2ch/status:.* status
FHEM:tuya/4ch/dps/state:.* { json2nameValue($EVENT, 'state_', $JSONMAP) }
FHEM:tuya/4ch/dps/1/state:.* dps_1_state
FHEM:tuya/4ch/dps/2/state:.* dps_2_state
FHEM:tuya/4ch/dps/3/state:.* dps_3_state
FHEM:tuya/4ch/dps/4/state:.* dps_4_state
FHEM:tuya/4ch/dps/7/state:.* dps_7_state
FHEM:tuya/4ch/dps/8/state:.* dps_8_state
FHEM:tuya/4ch/dps/9/state:.* dps_9_state
FHEM:tuya/4ch/dps/10/state:.* dps_10_state
FHEM:tuya/4ch/dps/14/state:.* dps_14_state
FHEM:tuya/4ch/dps/15/state:.* dps_15_state
FHEM:tuya/4ch/dps/16/state:.* dps_16_state
FHEM:tuya/4ch/dps/17/state:.* dps_17_state
FHEM:tuya/4ch/dps/18/state:.* dps_18_state
FHEM:tuya/4ch/dps/19/state:.* dps_19_state
FHEM:tuya/2ch/dps/state:.* { json2nameValue($EVENT, 'state_', $JSONMAP) }
FHEM:tuya/2ch/dps/1/state:.* dps_1_state
FHEM:tuya/2ch/dps/2/state:.* dps_2_state
FHEM:tuya/2ch/dps/7/state:.* dps_7_state
FHEM:tuya/2ch/dps/8/state:.* dps_8_state
FHEM:tuya/2ch/dps/14/state:.* dps_14_state
FHEM:tuya/2ch/dps/16/state:.* dps_16_state
FHEM:tuya/2ch/dps/17/state:.* dps_17_state
FHEM:tuya/2ch/dps/18/state:.* dps_18_state
FHEM:FHEM_tuya/4ch/dps/3/state:.* dps_3_state
   room       MQTT2_DEVICE



laut tuya-mqtt ist das  tuya/4ch/dps/3/state das relais welches ich schalten möchte


tuya-mqtt:state MQTT DPS JSON: tuya/4ch/dps/state ->  {"3":true} +17s
  tuya-mqtt:state MQTT DPS3: tuya/4ch/dps/3/state ->  true +1ms
  tuya-mqtt:tuyapi Received JSON data from device bfff20fd3305acf489ybm9 -> {"3":false} +804ms
  tuya-mqtt:state MQTT DPS JSON: tuya/4ch/dps/state ->  {"3":false} +804ms
  tuya-mqtt:state MQTT DPS3: tuya/4ch/dps/3/state ->  false +0ms



ich habe verstanden das ich über das setlist Kommandos senden kann
also habe ich das hinzugefügt.

   setList    on tuya/4ch/dps/3/state true
off tuya/4ch/dps/3/state false


wenn ich dann auf on / off klicke sieht man bei den readings das sich

dps_3_state   true     2022-03-08 12:50:37

dem entsprechend auf true / false ändert

ich verstehe aber nicht wieso nichts beim tuya-mqtt ankommt, es wird lediglich in FHEM die reading geändert

sendet der tuya-mqtt erneut seine daten und die werte werden überschrieben

wenn es auf true steht überschriebt er es mit false

also sieht es für mich so aus als würde garnichts an den mqtt server übergeben.

Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: Beta-User am 08 März 2022, 13:02:12
Na ja, immerhin hast du die CleintId schon mal "fixiert" bekommen...

Grundsätzlich sollten bei MQTT die Sende- und Empfangsrichtung immer (!!!) unterschiedlich sein! In der readingList steht die Empfangsrichtung, und es wird aus diesem Grund auch (normalerweise, bei MQTT2_SERVER) nichts wieder empfangen, was aus FHEM versendet wurde.

Klingt danach, als würde der Gerät ohne die Kanal-Angabe im Topic auf einen JSON warten, von daher würde ich mal folgendes ins Rennen werfen:
setList    on tuya/4ch/dps/state {"3":true}
off tuya/4ch/dps/state {"3":false}
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: Beta-User am 08 März 2022, 13:08:42
Nachtrag noch: Zum einen wäre das wieder so ein Fall, wo eine zentrale Instanz mit bridgeRegexp angebracht wäre (analog zigbee2mqtt usw.), und zum anderen könnte man noch true/false in was "lesbares" übersetzen. Zumindest der 2. Teil sollte auch in "Schritt für Schritt" zu finden sein.
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: brain666 am 08 März 2022, 14:01:28
Zitat von: Beta-User am 08 März 2022, 13:02:12
Na ja, immerhin hast du die CleintId schon mal "fixiert" bekommen...

Grundsätzlich sollten bei MQTT die Sende- und Empfangsrichtung immer (!!!) unterschiedlich sein! In der readingList steht die Empfangsrichtung, und es wird aus diesem Grund auch (normalerweise, bei MQTT2_SERVER) nichts wieder empfangen, was aus FHEM versendet wurde.

Klingt danach, als würde der Gerät ohne die Kanal-Angabe im Topic auf einen JSON warten, von daher würde ich mal folgendes ins Rennen werfen:
setList    on tuya/4ch/dps/state {"3":true}
off tuya/4ch/dps/state {"3":false}


Danke das habe ich auch bereits versucht da ich mir dachte das er den Kanal benötigt.
hat aber leider auch nichts gebracht.

aber dafür der Tip mit den bridgeRegexp

die devices sehen nun wie folgt aus.


define MQTT2_FHEM MQTT2_DEVICE FHEM
setuuid MQTT2_FHEM 6227397d-f33f-078c-a4c7-495c86eadaedf19d
attr MQTT2_FHEM bridgeRegexp FHEM:tuya/([A-Za-z0-9]*)[/]?.*:.* "tuya_$1"
attr MQTT2_FHEM room MQTT2_DEVICE
define MQTT2_tuya_4ch MQTT2_DEVICE tuya_4ch
setuuid MQTT2_tuya_4ch 62275282-f33f-078c-0794-e025dbda07bb02cd
attr MQTT2_tuya_4ch readingList tuya/4ch/status:.* status\
tuya/4ch/dps/state:.* { json2nameValue($EVENT, 'state_', $JSONMAP) }\
tuya/4ch/dps/1/state:.* dps_1_state\
tuya/4ch/dps/2/state:.* dps_2_state\
tuya/4ch/dps/3/state:.* dps_3_state\
tuya/4ch/dps/4/state:.* dps_4_state\
tuya/4ch/dps/7/state:.* dps_7_state\
tuya/4ch/dps/8/state:.* dps_8_state\
tuya/4ch/dps/9/state:.* dps_9_state\
tuya/4ch/dps/10/state:.* dps_10_state\
tuya/4ch/dps/14/state:.* dps_14_state\
tuya/4ch/dps/15/state:.* dps_15_state\
tuya/4ch/dps/16/state:.* dps_16_state\
tuya/4ch/dps/17/state:.* dps_17_state\
tuya/4ch/dps/18/state:.* dps_18_state\
tuya/4ch/dps/19/state:.* dps_19_state
attr MQTT2_tuya_4ch room MQTT2_DEVICE
attr MQTT2_tuya_4ch setList on tuya/4ch/dps/state {"3":true}\\
off tuya/4ch/dps/state {"3":false}

define MQTT2_tuya_2ch MQTT2_DEVICE tuya_2ch
setuuid MQTT2_tuya_2ch 62275282-f33f-078c-0d45-a11132db56d3fc6e
attr MQTT2_tuya_2ch readingList tuya/2ch/status:.* status\
tuya/2ch/dps/state:.* { json2nameValue($EVENT, 'state_', $JSONMAP) }\
tuya/2ch/dps/1/state:.* dps_1_state\
tuya/2ch/dps/2/state:.* dps_2_state\
tuya/2ch/dps/7/state:.* dps_7_state\
tuya/2ch/dps/8/state:.* dps_8_state\
tuya/2ch/dps/14/state:.* dps_14_state\
tuya/2ch/dps/16/state:.* dps_16_state\
tuya/2ch/dps/17/state:.* dps_17_state\
tuya/2ch/dps/18/state:.* dps_18_state
attr MQTT2_tuya_2ch room MQTT2_DEVICE
[code]
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: Beta-User am 08 März 2022, 14:20:12
Bei deinem "on" ist ein doppelter Backslash drin! Nicht, dass der das Problem ist.

Ansonsten werde ich aus https://github.com/TheAgentK/tuya-mqtt#dps-topics auch nicht so richtig schlau...

Und dass nach der Doku derselbe Topic für Kommandos und Zustände genutzt zu werden scheint (?), ist imo ein Bug.
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: brain666 am 08 März 2022, 14:46:20
Danke am doppelten "\" lag es nicht war nur ein copy&paste fehler :/

genau das DPS JSON topic hatte ich mir auch gerade angeschaut bringt mich aber auch nicht weiter :(

schade

naja zumindest habe ich schonmal die aktuellen werte der einzelnen relais


Ich danke dir
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: Beta-User am 08 März 2022, 17:03:06
Zitat von: brain666 am 08 März 2022, 14:46:20
schade
...irgendwie schon...

Wobei diese Variante eh' ein "totes Pferd" zu sein scheint, der Maintainer hat ja angekündigt, dass es keine Weiterentwicklung geben wird (weil im diese Tuya Cloud prinzipiell nicht gefällt).

Vielleicht ist es mittelfristig der einfachere Weg, die Lösung von dominik zu nehmen: https://forum.fhem.de/index.php/topic,122288.0.html
(oder eben ganz von Tuya-Cloud wegzugehen).
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: brain666 am 08 März 2022, 17:44:41
Ja Dominik seine Lösung hatte ich auch erwähnt

Ich wollte es halt über mqtt und mit der tuya-mqtt sah es nicht schlecht aus

Auf iobroker / openhab läuft es auch über tuya-mqtt

Ich recherchiere nochmal ein bissel

Von tuya weg wäre mir auch die liebste Lösung aber ich habe keine Idee wie ich die relaisboards dafür modden muss
Geschweige von löten habe ich keine Ahnung:(
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: Beta-User am 08 März 2022, 17:52:37
Ohne info zur konkreten Hardware ist es schwierig... Am ehesten tasmota.
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: brain666 am 08 März 2022, 18:42:01
Hardware ist das als 4 Kanal und als 2 Kanal relais

Ich nutze es für meine Garagen und Hoftore
433 mhz wegen der Fernbedienung
Tuya wegen alexa
Alexa habe ich auch auf meinen Server debian

https://www.amazon.de/Wireless-Selbstverriegelung-Garagentor-Fernbedienung-kompatibel/dp/B08NPTCQDB/ref=sr_1_1?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=8IXG25NDVFAF&keywords=4+kanal+relais+alexa&qid=1646736023&sprefix=4+kanal+relais+alexa%2Caps%2C104&sr=8- (https://www.amazon.de/Wireless-Selbstverriegelung-Garagentor-Fernbedienung-kompatibel/dp/B08NPTCQDB/ref=sr_1_1?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=8IXG25NDVFAF&keywords=4+kanal+relais+alexa&qid=1646736023&sprefix=4+kanal+relais+alexa%2Caps%2C104&sr=8-)


Im Moment sieht es so bei mir aus auf dem Tablet sieht es anständiger aus
Ich bediene zurzeit die Garagen und hoftore über den Umweg Alexa Routine




define Hoftor_alexa dummy
setuuid Hoftor_alexa 61eea386-f33f-078c-db12-606efcbec4b23272
attr Hoftor_alexa alias Hoftor
attr Hoftor_alexa devStateIcon off:secur_locked@green:on on:secur_open@red:off
attr Hoftor_alexa devStateStyle style="text-align:left;;;;font-weight:bold;;;;"
attr Hoftor_alexa group Steckdosen
attr Hoftor_alexa icon fts_sliding_gate@grey
attr Hoftor_alexa room 0.1_Amazon
attr Hoftor_alexa webCmd :

define Hoftor_alexa_noti notify Hoftor_alexa:on set ECHO_G0916D10046500MS speak " Hoftor ist auf";; set ECHO_G0916D10046500MS routine_play hoftor_öffnen@amzn1.alexa.automation.36447688-e9d5-4bdd-882e-1327cfb412bb
setuuid Hoftor_alexa_noti 61eea59d-f33f-078c-f42d-b7c5e6c51a6d6f65
attr Hoftor_alexa_noti room 0.4_Telegramm
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: Beta-User am 09 März 2022, 05:07:10
Ah, sieht speziell aus, und hat wohl neuerdings auch einen Tuya-Chip statt des ESP8266, der in https://templates.blakadder.com/eachen_ST-DC4.html zu finden ist. Die Anleitung dort liest sich so, als wäre da ein weiterer Controller verbaut, der den 433MHz-RF-Teil macht, und der Tuya-Chip sollte flashbar sein, aber im Zweifel würde ich das auch erst mal mit einem Duplikat testen...
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: nordovv am 23 März 2022, 16:57:44
Zitat von: brain666 am 08 März 2022, 11:55:54
Servus zusammen,

ich bekomme es nicht ans laufen
ich nutze ein 4 Kanal Relais und ein 2 Kanal relais https://brokerschart.de/ (https://brokerschart.de/)
https://www.amazon.de/Wireless-Selbstverriegelung-Garagentor-Fernbedienung-kompatibel/dp/B08NPTCQDB/ref=sr_1_1?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=8IXG25NDVFAF&keywords=4+kanal+relais+alexa&qid=1646736023&sprefix=4+kanal+relais+alexa%2Caps%2C104&sr=8-1 (https://www.amazon.de/Wireless-Selbstverriegelung-Garagentor-Fernbedienung-kompatibel/dp/B08NPTCQDB/ref=sr_1_1?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=8IXG25NDVFAF&keywords=4+kanal+relais+alexa&qid=1646736023&sprefix=4+kanal+relais+alexa%2Caps%2C104&sr=8-1)

Wie hast du 2 Kanal Relais aufgebaut?
Titel: Antw:Tuya Aiibot Air Purifier via tuyapi und tuya-mqtt
Beitrag von: brain666 am 28 März 2022, 13:50:08
Ich habe diese bei mir einfach an den Schlüsselschalter geklemmt.