Moes HY368 (aka Tuya) TS0601 Thermostat über Zigbee, Conbee, Deconz, HUEBridge

Begonnen von poiuztr123, 13 Februar 2021, 21:59:37

Vorheriges Thema - Nächstes Thema

poiuztr123

Ich habe zwei Thermostate MOES Zigbee Radiator Actuator (HY368) versucht über Conbee, Deconz und Huebridge in fhem einzubinden. Durch die Hilfe auf github zum Deconz-rest-plugin (https://github.com/dresden-elektronik/deconz-rest-plugin/issues/4401) habe ich es soweit geschafft die beiden Thermostate als HUEBridge zu installieren. Und mit dem attrTemplate für das Eurotronic Spirit Thermostat habe ich es auch geschafft den heatsetpoint zu setzen (ändert sich am Thermostat, jedoch kein Reading in fhem).

Ich erhalte leider überhaupt keine Readings (temperature, heatsetpoint, valve, battery etc.) in fhem zu den beiden Thermostaten. Und ich weiss auch nicht, wie ich noch andere Werte/Optionen setzen kann. Was mache ich falsch bzw. was muss ich machen?

Hier der Auszug über einen REST client


"81": {
    "config": {
      "heatsetpoint": 1800,
      "locked": false,
      "mode": null,
      "offset": -100,
      "on": true,
      "preset": "manual",
      "reachable": true,
      "schedule": {},
      "schedule_on": false,
      "setvalve": false,
      "windowopen_set": false
    },
    "ep": 1,
    "etag": "9469bdada24c5ec31f65ea89902524ce",
    "lastseen": "2021-02-13T20:25Z",
    "manufacturername": "_TZE200_ywdxldoj",
    "modelid": "TS0601",
    "name": "Buero-T-klein",
    "state": {
      "lastupdated": "none",
      "lowbattery": false,
      "on": true,
      "temperature": 1850,
      "valve": 25
    },
    "type": "ZHAThermostat",
    "uniqueid": "84:71:27:ff:fe:11:0a:9a-01-0201"
  },

"83": {
    "config": {
      "heatsetpoint": 2100,
      "locked": false,
      "mode": "auto",
      "offset": -100,
      "on": true,
      "preset": "manual",
      "reachable": true,
      "schedule": {},
      "schedule_on": false,
      "setvalve": false,
      "windowopen_set": false
    },
    "ep": 1,
    "etag": "68221fa160b01f2f84d1a19ef0b1c356",
    "lastseen": "2021-02-13T16:46Z",
    "manufacturername": "_TZE200_ywdxldoj",
    "modelid": "TS0601",
    "name": "Schlafzimmer-T",
    "state": {
      "lastupdated": "none",
      "lowbattery": false,
      "on": true,
      "temperature": 2000,
      "valve": 100
    },
    "type": "ZHAThermostat",
    "uniqueid": "84:71:27:ff:fe:10:03:d4-01-0201"
  },


Und hier die list in fhem von einem der Devices


Internals:
   DEF        sensor 81  IODev=deCONZ
   FUUID      602706d9-f33f-e817-d970-5312ce9e153a6259
   FVERSION   31_HUEDevice.pm:0.233440/2020-12-13
   ID         S81
   INTERVAL   
   IODev      deCONZ
   NAME       Buero.Thermostat.klein
   NR         555
   STATE      Initialized
   TYPE       HUEDevice
   manufacturername _TZE200_ywdxldoj
   modelid    TS0601
   name       Lichterkette
   on         1
   reachable  1
   type       ZHAThermostat
   uniqueid   84:71:27:ff:fe:11:0a:9a-01-0201
   helper:
     devtype    S
     reachable  0
     update_timeout 1
     configList:
       cmds:
         lock       {"locked": true }
         unlock     {"locked": false }
       regex:
         HASH(0x6541e40)
         HASH(0x678a540)
         HASH(0x675a1c0)
     json:
       ep         1
       etag       9280a0a85f54fb3de899b030f093723b
       lastseen   2021-02-13T18:00Z
       manufacturername _TZE200_ywdxldoj
       modelid    TS0601
       name       Lichterkette
       type       ZHAThermostat
       uniqueid   84:71:27:ff:fe:11:0a:9a-01-0201
       config:
         heatsetpoint 1800
         mode       
         offset     -100
         preset     manual
         schedule:
       state:
         lastupdated none
         temperature 2000
         valve      75
     setList:
Attributes:
   IODev      deCONZ
   configList /mode (.*)/:{"mode":"$1"}
/heatsetpoint (.*)/:perl:{'{"heatsetpoint":' . $VALUE1 * 100 . '}'}
/displayflipped (.*)/:{"displayflipped": $1 }
lock:{"locked": true }
unlock:{"locked": false }
   icon       max_heizungsthermostat
   model      TS0601
   room       HUEDevice,KlimaHeizung
   widgetOverride mode:auto,heat,off displayflipped:true,false heatsetpoint:16,16.5,17,17.5,18,18.5,19,19.5,20,20.5,21,21.5,22


poiuztr123

Kurzes Update. Nachdem ich fhem mit "shutdown restart" neu gestartet hatte kamen zumindest drei Readings:  heatsetpoint, locked, reachable.

Hat jemand eine Idee, wie ich weitere readings, wie temperature, valve, battery etc (überhaupt und dann auch häufiger) angezeigt bekommen? Und wie ich noch mehr Konfigurationen vornehmen kann?


Internals:
   DEF        sensor 81  IODev=deCONZ
   FUUID      602706d9-f33f-e817-d970-5312ce9e153a6259
   FVERSION   31_HUEDevice.pm:0.233440/2020-12-13
   ID         S81
   INTERVAL   
   IODev      deCONZ
   NAME       Buero.Thermostat.klein
   NR         555
   STATE      Initialized
   TYPE       HUEDevice
   lastupdated
   lastupdated_local
   manufacturername _TZE200_ywdxldoj
   modelid    TS0601
   name       Buero-T-klein
   on         1
   reachable  1
   type       ZHAThermostat
   uniqueid   84:71:27:ff:fe:11:0a:9a-01-0201
   READINGS:
     2021-02-14 18:13:36   heatsetpoint    21.0
     2021-02-14 18:13:36   locked          false
     2021-02-14 18:13:36   reachable       1
   helper:
     devtype    S
     reachable  0
     update_timeout 1
     configList:
       cmds:
         lock       {"locked": true }
         unlock     {"locked": false }
       regex:
         HASH(0x4c59b58)
         HASH(0x4c5d280)
         HASH(0x4c5e5a8)
     json:
       ep         1
       etag       d8469e8833e6c84f65f255e14761e94c
       lastseen   2021-02-14T17:44Z
       manufacturername _TZE200_ywdxldoj
       modelid    TS0601
       name       Buero-T-klein
       type       ZHAThermostat
       uniqueid   84:71:27:ff:fe:11:0a:9a-01-0201
       config:
         heatsetpoint 2100
         mode       
         offset     -100
         preset     manual
         schedule:
       state:
         lastupdated none
         temperature 1950
         valve      75
     setList:
Attributes:
   IODev      deCONZ
   configList /mode (.*)/:{"mode":"$1"}
/heatsetpoint (.*)/:perl:{'{"heatsetpoint":' . $VALUE1 * 100 . '}'}
/displayflipped (.*)/:{"displayflipped": $1 }
lock:{"locked": true }
unlock:{"locked": false }
   icon       max_heizungsthermostat
   model      TS0601
   room       HUEDevice,KlimaHeizung
   widgetOverride mode:auto,heat,off displayflipped:true,false heatsetpoint:16,16.5,17,17.5,18,18.5,19,19.5,20,20.5,21,21.5,22

Dries

Hallo Forum,

ich möchte mich meinem Vorredner anschließen, habe ein sehr vergleichbares Setup und seit jüngstem auch den wahrscheinlich gleichen Thermostaten als "Original" von Tuya.
Bei der Bestellung war mir sehr bewusst, dass es ein Trial and Error oder sogar eine Nullnummer werden kann, nun habe ich aber natürlich Interesse an der Entwicklung mitzuarbeiten.
Mein Modell nennt sich laut Verpackung. SEA-TRV
Mein Zigbee Setup: Raspi 4 mit deConz Stick und der entsrechenden Deconz/Phoscon Software, FHEM auf einem anderen System, deConz über HUEDevices angebunden.
Zahlreiche Endpoints divererser Hersteller sind bereits aktiv (Tradfri, Lightify, Aqara, Lidl, Linkind  etc)

Das Thermostat ließ ich ohne Probleme anlernen, Phoscon zeigt es nicht aber die deConz Netzwerkübersicht und FHEM hat automatisch ein Thermostat Device kreiert. Die Ergebnisse
also absolut passend zu dem vorher gesagten. Auch ich habe das Eurosprint Template als Referenz genommen und stehe nun vor der Frage "wie ich zB die aktuelle Temperatur (als State im json vorhanden, List unten) in READINGS umsetzen und nutzen kann, um dann die weiteren Parameter zur sinnvollen Automatisierung.
Der Clou sitzt wahrscheinlich im schon öfter angesprochenen TUYA-Cluster  (siehe anghängte Deconz Copy) bzw auch in der Restful Implementation von DeConz??
Der Heatsetoint lässt sich übrigens biderektional problemlos setzen (FHEM spiegelt Änderungen am TRV und anders herum).

Ich bin gerne bereit mit zu Testen und zu berichten, es ist ja im allgemeinen und eigenen Interesse. Insgesamt sagt mir das Thermostat von Optik, Haptik und Lautstärke zu.

Mein List des Devices:

Internals:
   DEF        sensor 21  IODev=EG.WZ.Conbee2_1.controller
   FUUID      xxxxx
   FVERSION   31_HUEDevice.pm:0.239120/2021-03-08
   ID         S21
   INTERVAL   
   IODev      EG.WZ.Conbee2_1.controller
   NAME       TuyaTRV1
   NR         664
   STATE      ???
   TYPE       HUEDevice
   lastupdated
   lastupdated_local
   manufacturername _TZE200_c88teujp
   modelid    TS0601
   name       Thermostat 21
   on         1
   reachable  1
   type       ZHAThermostat
   uniqueid   80:4b:50:ff:fe:44:68:e6-01-0201
   READINGS:
     2021-05-19 19:53:50   heatsetpoint    20.0
     2021-05-19 19:53:50   locked          false
     2021-05-19 19:53:50   mode            off
     2021-05-19 19:53:50   reachable       1
   helper:
     devtype    S
     reachable  0
     update_timeout 1
     configList:
       cmds:
         lock       {"locked": true }
         unlock     {"locked": false }
       regex:
         HASH(0x55fcb63da8f0)
         HASH(0x55fcb63da8c0)
         HASH(0x55fcb63da9b0)
     json:
       ep         1
       etag       96ad6e80de5951768048b394668d2ad7
       lastseen   2021-05-19T16:19Z
       manufacturername _TZE200_c88teujp
       modelid    TS0601
       name       Thermostat 21
       type       ZHAThermostat
       uniqueid   80:4b:50:ff:fe:44:68:e6-01-0201
[b]       config:
         heatsetpoint 2000
         mode       off
         offset     0
         preset     
         schedule:
       state:
         lastupdated none
         temperature 2020
         valve[/b]     
     setList:
Attributes:
   IODev      EG.WZ.Conbee2_1.controller
   assistantName Heizung Esszimmer
   configList /mode (.*)/:{"mode":"$1"}
/heatsetpoint (.*)/:perl:{'{"heatsetpoint":' . $VALUE1 * 100 . '}'}
/displayflipped (.*)/:{"displayflipped": $1 }
lock:{"locked": true }
unlock:{"locked": false }
   gassistantName Heizung Esszimmer
   icon       max_heizungsthermostat
   model      TS0601
   realRoom   Esszimmer
   room       1_EG,GoogleAssistant,HUEDevice
   widgetOverride mode:auto,heat,off displayflipped:true,false heatsetpoint:16,17,18,19,20,21,22

pjakobs

ich schubs das mal nach oben.
Ich kann meine Tuya_THD HY368 TRV mit dem "Eruotronic SBZP0001_spirit_zigbee" template steuern (zumindest den Heatsetpoint), aber ich bekomme keine Rückmeldung zur Ventilstellung und leider kann ich auch das Wochenprogramm nicht einstellen.
Ist das etwas, das sich über das Template lösen ließe?
hier ist der json String aus dem Log:

2022.02.06 12:09:05 5: deCONZ: websocket data: $VAR1 = {
   'config' => {
     'heatsetpoint' => 2000,
     'locked' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
     'mode' => 'auto',
     'offset' => -100,
     'on' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
     'preset' => 'complex',
     'reachable' => $VAR1->{'config'}{'on'},
     'schedule' => {
       'W124' => [
         {
           'heatsetpoint' => 20,
           'localtime' => 'T06:00'
         },
         {
           'heatsetpoint' => 15,
           'localtime' => 'T08:00'
         },
       {
           'heatsetpoint' => 15,
           'localtime' => 'T11:30'
         },
         {
           'heatsetpoint' => 15,
           'localtime' => 'T140:30'
         },
         {
           'heatsetpoint' => 20,
           'localtime' => 'T17:30'
         },
         {
           'heatsetpoint' => 15,
           'localtime' => 'T22:00'
         }
       ],
       'W3' => [
         {
           'heatsetpoint' => 20,
           'localtime' => 'T06:00'
         },
         {
           'heatsetpoint' => 15,
           'localtime' => 'T08:00'
         },
         {
           'heatsetpoint' => 15,
           'localtime' => 'T11:30'
         },
         {
           'heatsetpoint' => 15,
           'localtime' => 'T12:30'
         },
         {
           'heatsetpoint' => 20,
           'localtime' => 'T17:30'
         },
         {
           'heatsetpoint' => 15,
           'localtime' => 'T22:00'
         }
       ]
     },
     'schedule_on' => $VAR1->{'config'}{'locked'},
     'setvalve' => $VAR1->{'config'}{'locked'},
     'windowopen_set' => $VAR1->{'config'}{'locked'}
   },
   'e' => 'changed',
   'id' => '83',
   'r' => 'sensors',
   't' => 'event',
   'uniqueid' => '80:4b:50:ff:fe:25:18:bc-01-0201'
};


Beta-User

Zitat von: pjakobs am 06 Februar 2022, 12:25:28
ich schubs das mal nach oben.
Ich kann meine Tuya_THD HY368 TRV mit dem "Eruotronic SBZP0001_spirit_zigbee" template steuern (zumindest den Heatsetpoint), aber ich bekomme keine Rückmeldung zur Ventilstellung und leider kann ich auch das Wochenprogramm nicht einstellen.
Ist das etwas, das sich über das Template lösen ließe?
...nun denn, nehme den Ball mal auf, glaube aber nicht, dass ich allzuweit helfen kann, das ist erfahrungsgemäß alles relativ schwer zu ermitteln, wenn man die Hardware nicht hat...

Vorab: Es gibt zum Thema Moes/attrTemplate einen Thread - allerdings zu MQTT2_DEVICE: https://forum.fhem.de/index.php/topic,116535.msg1108336.html#msg1108336. Das ist von daher wichtig, weil zum einen afaik die firmware unbedingt aktuell sein muss, damit das Ding überhaupt richtig funktioniert, und zum anderen  dort ein paar Links vergraben sind, an denen man erkennen kann, was das Teil _prinzipiell_ können sollte. Ob deconz das dann alles bereitstellt, wäre die nächste Frage...

Bzgl. Ventilstellung müsste man sehen, was da für Datenpunkte geliefert werden, aus dem "Dumper" (?) ist nur zu erkennen, dass da was "locked" zu sein scheint. Vielleicht wird das anders, wenn man es auf "unlocked" setzt (Versuch vielleicht erst mal über deCONZ-GUI?)?

Was das Auslesen des Wochenprogramms angeht, müßte man auf justme1968 zugehen, vermutlich wäre es nicht das große Problem, den betr. JSON unausgepackt in ein Reading zu schreiben?

Zum Schreiben fällt mir ein bißchen mehr ein:
Zum einen erlaubt configList (?) Perl, von daher müßte das Programm sich setzen lassen - vorausgesetzt, man wüßte, wie es zusammenzubauen ist...

Da wären Rätsel zu lösen, z.B. was mit 'T140:30' gemeint ist (14:30 Uhr am WE?) oder mit 'W124' bzw. 'W3'.
Vermutlich hängt es mit dem Wochentags-Programmmodus zusammen, das Teil kann afaik "7", "5+2" und "6+1".
Unter https://svn.fhem.de/trac/browser/trunk/fhem/contrib/AttrTemplate/99_attrT_z2m_thermostat_Utils.pm?order=name steht auch Code, der aus einem "gewöhnlichen weekprofile"-Profil das für zigbee2mqtt erforderliche Format generiert - kann man gerne ausschlachten :) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

pjakobs

das sind schonmal gute Hints.
Was ich nirgendwo so richtig gefunden habe ist: welche Datenstruktur steht mir eigentlich zur Verfügung, wenn ich mit em Template bzw. den configList attributen arbeite? Bekomme ich da die ganze json Struktur als hash? als string? ich sehe immer nur Referenzen darauf, aber kann nicht wirklich erkennen, was der Hintergrund ist.

pj

Beta-User

Danke für die Rückmeldung, hatte schon befürchtet, dass das zu abstrakt ist :) .

Die Argumenten-Übergabe an das HUEDevice-Modul ist (wie immer in FHEM) ein String, du mußt also den JSON "flach" übergeben bzw. kannst ihn als Text zusammenbauen. Von daher ist auch der Code aus dem MQTT2_DEVICE-addon durchaus mit ein paar kleineren Anpassungen verwertbar (wenn man davon absieht, dass weekprofile HUEDevice zumindest im Moment nicht als "Zielgruppe" kennt). Abholen ginge aber, also "setter" in HUEDevice für "hole Profil" (Device/"Kenner"/Topic) => Abfrage bei weekprofile => umpacken nach JSON => ab die Post :) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ReneR1986

Hallo zusammen,

@pjakobs
Bist du hier weitergekommen?
Ich habe derzeit das Eurotronic Spirit Zigbee über DeConz. Da ich hier aber häufig mit Verbindungsabbrüchen zu kämpfen habe, würde ich gern einmal Tuya als Alternative ausprobieren.
Wochenpläne wären mir tatsächlich erst einmal gar nicht so wichtig.
Die "Basisreadings" die ich derzeit beim Eurotronic bekomme sowie das einfach setzten des Heatsetpoints würden mir erstmal reichen  :D

pjakobs

Moin @ReneR1968 - nein, bin ich tatsächlich nicht. Aber ich muss mir das nochmal anschauen. Mein Problem ist, dass ich nirgendwo wirklich eine gute Doku gefunden habe, wie die zigbee templates funktionieren sollen.

pj

pcbastler

Auch wenn es schon etwas liegt: Die Alternative Sonoff USB-Dongle und Zigbee2MQTT ist imho der Conbee-Lösung überlegen.