Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. diti

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    D
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 20
    • Best 2
    • Groups 1

    diti

    @diti

    Starter

    2
    Reputation
    8
    Profile views
    20
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    diti Follow
    Starter

    Best posts made by diti

    • RE: Tuya Thermostat (_TZE200_hue3yfsn)

      @bluefish
      Idealerweise um volle Funktionalität von diesen Thermostaten zu haben, man muss einen "externen Converter" für die Dinge schreiben, leider bin ich nicht so weit in Programmierung oder ehrlich zu sagen gar nicht so weit. Das einzige was mir eingefallen ist, die Namen von Thermostaten zu bestehenden beizumischen und Datenpunkten anzupassen. Dadurch es ist möglich geworden: gewünschte Temperatur zusetzen, lokale Temp. auszulesen, mehr brauche ich nicht.
      Also zu Sache.
      Eine Datei tuya.js finden.
      /opt/iobroker/node_modules/zigbee-herdsman-converters/devices/tuya.js
      Thermostat-Name {modelID: 'TS0601', manufacturerName: '_TZE200_hue3yfsn'}
      Zu den anderen einfügen ungefähr Zeile 650 und speichern.

      zigbeeModel: ['kud7u2l'],
              fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_ckud7u2l'}, {modelID: 'TS0601', manufacturerName: '_TZE200_ywdxldoj'},
                  {modelID: 'TS0601', manufacturerName: '_TZE200_cwnjrr72'}, {modelID: 'TS0601', manufacturerName: '_TZE200_hue3yfsn'}],
              model: 'TS0601_thermostat',
              vendor: 'TuYa',
      

      Nächste Datei finden unter:
      /opt/iobroker/node_modules/zigbee-herdsman-converters/lib/tuya.js
      Und Data Point ID anzupassen.

      const dataPoints = {
          // Common data points
          // Below data points are usually shared between devices
          state: 1,
          heatingSetpoint: 16,
          coverPosition: 2,
          dimmerLevel: 3,
          localTemp: 24,
          coverArrived: 3,
          occupancy: 3,
          mode: 4,
          fanMode: 5,
          motorDirection: 5,
          config: 5,
          childLock: 40,
          coverChange: 7,
          runningState: 14,
          valveDetection: 20,
          battery: 35,
          tempCalibration: 27,
          // Data points above 100 are usually custom function data points
          waterLeak: 101,
          minTemp: 118,
          maxTemp: 119,
          windowDetection: 8,
          boostTime: 105,
          coverSpeed: 105,
          forceMode: 106,
          comfortTemp: 104,
          ecoTemp: 105,
          valvePos: 109,
          batteryLow: 35,
          weekFormat: 111,
          scheduleWorkday: 112,
          scheduleHoliday: 113,
          awayTemp: 32,
          autoLock: 116,
          awayDays: 31,
      

      Ich habe nicht alle Data Points geändert nur die, die ich brauche, ihr könnt mit den anderen ausprobieren vielleicht bekommt noch mehr Funktionen.
      Datei speichern, Ziegbee-Adapter neu starten und mit Kopplung anfangen.
      Viel Erfolg!

      posted in ioBroker Allgemein
      D
      diti
    • RE: Tuya Thermostat (_TZE200_hue3yfsn)

      @asgothian
      Ich weiß, habe nur diese, rückgängig kann man auch machen habe ich schon probiert.
      ich habe im Github Forum externen Converter von kvazis gefunden die Data Points sind identisch, der Converter aber für HA gemacht. Ich habe da kleine Anpassungen gemacht , Temperatur einstellen funktioniert zwar aber Rückmeldung von TRV kommt nicht, was ist falsch ?

      /// Based on:
      // https://gist.github.com/basveeling/96ff0f16cd7185b0277a26c8d9305633
      // https://github.com/Koenkk/zigbee-herdsman-converters/issues/1803
      // https://github.com/Koenkk/zigbee-herdsman-converters/pull/2209
      //https://gist.github.com/serrj-sv/af142b25de2d7ac54c3a2eb2623d9a6d#file-moes_radiator_alt-js-L328
      //// Credits:
      // @serrj-sv, @wollo, @basveeling
      //// Usage: 
      // zzonesmart_tvg01zg.js in the root of your zigbee2mqtt data folder (as stated in data_path, e.g. /config/zigbee2mqtt_data)
      // In your zigbee2mqtt hassio addon configuration, add the following two lines:
      // ...
      // external_converters:
      //   - zzonesmart_tvg01zg.js
      // ...
      const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
      const tz = require('zigbee-herdsman-converters/converters/toZigbee');
      const tuya = require('zigbee-herdsman-converters/lib/tuya');
      const exposes = require('zigbee-herdsman-converters/lib/exposes');
      const reporting = require('zigbee-herdsman-converters/lib/reporting');
      const e = exposes.presets;
      const ea = exposes.access;
      
      const tuyaLocal = {
      	dataPoints: {
          // ZONNSMART
          zsHeatingSetpoint: 16,
          zsFrostDetection: 10,
          zsWindowDetection: 8,
          zsChildLock: 40,
          zsTempCalibration: 27,
          zsLocalTemp: 24,
          zsBattery: 35,
          zsHeatingBoostCountdown: 101,
          zsComfortTemp: 104,
          zsEcoTemp: 105,
          zsAwayTemp: 32,
          zsErrorStatus: 45,
          zsMode: 2,
          zsHeatingStop: 107,
      	},
      };
      const fzLocal = {
          zs_thermostat: {
              cluster: 'manuSpecificTuya',
              type: ['commandGetData', 'commandSetDataResponse'],
              convert: (model, msg, publish, options, meta) => {
                  const dp = msg.data.dp;
                  const value = tuya.getDataValue(msg.data.datatype, msg.data.data);
      
                  // if (dp >= 101 && dp <=107) return; // handled by tuya_thermostat_weekly_schedule
      
                  switch (dp) {
                  case tuya.dataPoints.state: // on/off
                      return !value ? {system_mode: 'off'} : {};
      
                  case tuyaLocal.dataPoints.zsChildLock:
                      return {child_lock: value ? 'LOCK' : 'UNLOCK'};
      
                  case tuyaLocal.dataPoints.zsHeatingSetpoint:
                      return {current_heating_setpoint: (value / 10).toFixed(1)};
      
                  case tuyaLocal.dataPoints.zsLocalTemp:
                      return {local_temperature: (value / 10).toFixed(1)};
      
                  case tuyaLocal.dataPoints.zsBattery:
                       return {battery: value};
      
                  case tuyaLocal.dataPoints.zsTempCalibration:
                      return {local_temperature_calibration: value > 55 ?
                          ((value - 0x100000000)/10).toFixed(1): (value/ 10).toFixed(1)};
      
                  case tuyaLocal.dataPoints.zsHeatingBoostCountdown:
                      return {heating_boost_countdown: value};
      
                  case tuyaLocal.dataPoints.zsWindowDetection:
                      return {window_detection: value ? 'ON' : 'OFF'};
      
                  case tuyaLocal.dataPoints.zsComfortTemp:
                      return {comfort_temperature: (value / 10).toFixed(1)};
      
                  case tuyaLocal.dataPoints.zsEcoTemp:
                      return {eco_temperature: (value / 10).toFixed(1)};
      
                  case tuyaLocal.dataPoints.zsAwayTemp:
                      return {away_preset_temperature: (value / 10).toFixed(1)};
      
                  case tuyaLocal.dataPoints.zsMode:
                      switch (value) {
                      case 1: // manual
                          return {system_mode: 'heat', away_mode: 'OFF', preset: 'manual'};
                      case 3: // away
                          return {system_mode: 'heat', away_mode: 'ON', preset: 'vacation'};
                      case 0: // auto
                          return {system_mode: 'auto', away_mode: 'OFF', preset: 'schedule'};
                      default:
                          meta.logger.warn('zigbee-herdsman-converters:zsThermostat: ' +
                              `preset ${value} is not recognized.`);
                          break;
                      }
                      break;
      
                  case tuya.dataPoints.runningState:
                      return {running_state: value ? 'heat' : 'idle'};
      
                  default:
                      meta.logger.warn(`zigbee-herdsman-converters:zsThermostat: Unrecognized DP #${
                          dp} with data ${JSON.stringify(msg.data)}`);
                  }
              },
          },
      };
      const tzLocal = {
          zs_thermostat_child_lock: {
              key: ['child_lock'],
              convertSet: async (entity, key, value, meta) => {
                  await tuya.sendDataPointBool(entity, tuyaLocal.dataPoints.zsChildLock, value === 'LOCK');
              },
          },
          zs_thermostat_window_detection: {
              key: ['window_detection'],
              convertSet: async (entity, key, value, meta) => {
                  await tuya.sendDataPointBool(entity, tuyaLocal.dataPoints.zsWindowDetection, value === 'ON');
              },
          },
          zs_thermostat_current_heating_setpoint: {
              key: ['current_heating_setpoint'],
              convertSet: async (entity, key, value, meta) => {
                  const temp = Math.round(value * 10);
                  await tuya.sendDataPointValue(entity, tuyaLocal.dataPoints.zsHeatingSetpoint, temp);
              },
          },
          zs_thermostat_comfort_temp: {
              key: ['comfort_temp_preset'],
              convertSet: async (entity, key, value, meta) => {
                  const temp = Math.round(value * 10);
                  await tuya.sendDataPointValue(entity, tuyaLocal.dataPoints.zsComfortTemp, temp);
              },
          },
          zs_thermostat_away_temp: {
              key: ['away_preset_temperature'],
              convertSet: async (entity, key, value, meta) => {
                  const temp = Math.round(value * 10);
                  await tuya.sendDataPointValue(entity, tuyaLocal.dataPoints.zsAwayTemp, temp);
              },
          },
          zs_thermostat_eco_temp: {
              key: ['eco_temp_preset'],
              convertSet: async (entity, key, value, meta) => {
                  const temp = Math.round(value * 10);
                  await tuya.sendDataPointValue(entity, tuyaLocal.dataPoints.zsEcoTemp, temp);
              },
          },
          zs_thermostat_system_mode_preset: {
              key: ['preset'],
              convertSet: async (entity, key, value, meta) => {
                  const lookup = {'schedule': 0, 'manual': 1, 'holiday': 3};
                  await tuya.sendDataPointEnum(entity, tuyaLocal.dataPoints.zsMode, lookup[value]);
              },
          },
          zs_thermostat_local_temperature_calibration: {
              key: ['local_temperature_calibration'],
              convertSet: async (entity, key, value, meta) => {
                  if (value > 0) value = value*10;
                  if (value < 0) value = value*10 + 0x100000000;
                  await tuya.sendDataPointValue(entity, tuyaLocal.dataPoints.zsTempCalibration, value);
              },
          },
      };       
      const device = {
          // Moes Tuya Alt Thermostat
          zigbeeModel: ['TS601'],
          fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_e9ba97vf'}],
          model: 'TV01-ZG',
          vendor: 'ZONNSMART',
          description: 'Radiator valve with thermostat',
          fromZigbee: [
              fz.ignore_basic_report,
              fz.ignore_tuya_set_time,  // handled in onEvent
              fzLocal.zs_thermostat,
              // fz.tuya_data_point_dump,
          ],
          toZigbee: [
              tzLocal.zs_thermostat_current_heating_setpoint,
              tzLocal.zs_thermostat_child_lock,
              tzLocal.zs_thermostat_comfort_temp,
              tzLocal.zs_thermostat_eco_temp,
              tzLocal.zs_thermostat_system_mode_preset,
              tzLocal.zs_thermostat_local_temperature_calibration,
              tzLocal.zs_thermostat_away_temp,
              tzLocal.zs_thermostat_window_detection,
              tzLocal.zs_thermostat_heatingBoostCountdown,
              tz.tuya_data_point_test
          ],
          onEvent: tuya.onEventSetLocalTime,
          meta: {
              configureKey: 1,
          },
          configure: async (device, coordinatorEndpoint, logger) => {
              const endpoint = device.getEndpoint(1);
              await reporting.bind(endpoint, coordinatorEndpoint, ['genBasic']);
          },
          exposes: [
              e.battery(), e.window_detection(), e.child_lock(), e.comfort_temperature(), e.eco_temperature(), e.away_preset_temperature(),
              exposes.climate().withSetpoint('current_heating_setpoint', 0.5, 29.5, 0.5)
                               .withLocalTemperature()
                               .withLocalTemperatureCalibration()
                               .withSystemMode(['off', 'heat', 'auto'], ea.STATE_SET) //system mode only: off, heat, auto
                               .withPreset(['schedule', 'manual', 'holiday']),
              exposes.numeric('heating_boost_countdown', ea.STATE)
                  ],
      };
      
      module.exports = device;
      
      serrj-sv created this issue in Koenkk/zigbee-herdsman-converters

      closed Request for support new Tuya/Moes Radiator Valve _TZE200_fhn3negr #1803

      wollo created this issue in Koenkk/zigbee-herdsman-converters

      closed added support for Moes Radiator Thermostat TZE200_fhn3negr #2209

      posted in ioBroker Allgemein
      D
      diti

    Latest posts made by diti

    • RE: Tuya Thermostat (_TZE200_hue3yfsn)

      @pete0815
      ich gehe davon aus dass, der Ventil nie die lokale Temperatur einfach so rum sendet. Die wird bekannt gegeben,wenn der Ventil von Smart Life, Tuya Smart angesprochen wird (auf welche Weise weiß ich nicht), oder wenn er ein Signal für Temperatur-Kalibrierung bekommt, hier muss er logisch Ergebnisse der Kalibrierung zeigen. Warum das bei dir nicht geht, weiß ich nicht. Aktualisierung der lokalen Temperatur mache ich mit einfachen Blockly-Skript
      4.PNG

      Was es um die Ventilposition geht, der Thermostat hat ja kein Data Point ID um das von extern zu steuern, oder?
      Danke für Info über Einpflegung in Zigbee2MQTT, jetzt läuft´s bei mir direkt ohne Umwege.
      1.PNG
      2.PNG
      3.PNG

      Das einzige Problem was ich habe nur diese Meldungen, die ständig auftreten

      2021-11-22 18:07:29.191 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe6314cb.local_temperature" has to be type "number" but received type "string"
      2021-11-22 18:07:29.314 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe6314cb.local_temperature_calibration" has to be type "number" but received type "string"
      2021-11-22 18:12:20.998 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe6314f1.current_heating_setpoint" has to be type "number" but received type "string"
      2021-11-22 18:12:21.024 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe6314aa.current_heating_setpoint" has to be type "number" but received type "string"
      2021-11-22 18:12:21.191 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe631473.current_heating_setpoint" has to be type "number" but received type "string"
      2021-11-22 18:12:22.051 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe6314cb.current_heating_setpoint" has to be type "number" but received type "string"
      2021-11-22 18:12:27.416 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe6314f1.local_temperature" has to be type "number" but received type "string"
      2021-11-22 18:12:27.514 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe6314aa.local_temperature" has to be type "number" but received type "string"
      2021-11-22 18:12:27.537 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe6314f1.local_temperature_calibration" has to be type "number" but received type "string"
      2021-11-22 18:12:27.630 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe6314aa.local_temperature_calibration" has to be type "number" but received type "string"
      2021-11-22 18:12:27.703 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe631473.local_temperature" has to be type "number" but received type "string"
      2021-11-22 18:12:27.809 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe631473.local_temperature_calibration" has to be type "number" but received type "string"
      2021-11-22 18:12:28.524 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe6314cb.local_temperature" has to be type "number" but received type "string"
      2021-11-22 18:12:28.633 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe6314cb.local_temperature_calibration" has to be type "number" but received type "string"
      2021-11-22 18:17:27.398 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe6314cb.local_temperature" has to be type "number" but received type "string"
      2021-11-22 18:17:27.490 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe631473.local_temperature" has to be type "number" but received type "string"
      2021-11-22 18:17:27.527 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe6314cb.local_temperature_calibration" has to be type "number" but received type "string"
      2021-11-22 18:17:27.621 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe631473.local_temperature_calibration" has to be type "number" but received type "string"
      2021-11-22 18:17:28.355 - info: zigbee.0 (8262) State value to set for "zigbee.0.50325ffffe6314f1.local_temperature" has to be type "number" but received type "string" 
      

      ich glaube das hat mit dem neuen Zigbee Adapter 1.6.7 zu tun hat.

      posted in ioBroker Allgemein
      D
      diti
    • RE: Tuya Thermostat (_TZE200_hue3yfsn)

      @asgothian ich bekomme folgende Meldungen wenn ich temperature_calibration an Thermostat sende

      v5.1.25
      012
      
      Log-Größe: 32.9 KB
      Zeit
      	
      Nachricht
      zigbee.0
      	2021-11-04 00:26:03.916	debug	Non-pingable device 0x50325ffffe6314aa TS0601 was last seen '127.197' seconds ago.
      zigbee.0
      	2021-11-04 00:25:03.916	debug	Non-pingable device 0x50325ffffe6314aa TS0601 was last seen '67.197' seconds ago.
      zigbee.0
      	2021-11-03 23:24:03.915	debug	Non-pingable device 0x50325ffffe6314aa TS0601 was last seen '7.196' seconds ago.
      zigbee.0
      	2021-11-03 23:23:56.750	silly	States user redis pmessage zigbee.0.*/zigbee.0.50325ffffe6314aa.local_temperature_calibration:{"val":"0.0","ack":true,"ts":1635981836743,"q":0,"from":"system.adapter.zigbee.0","user":"system.user.admin","lc":1635981836743}
      zigbee.0
      	2021-11-03 23:23:56.748	silly	States user redis pmessage zigbee.0.*/zigbee.0.50325ffffe6314aa.msg_from_zigbee:{"val":"{\"type\":\"commandGetData\",\"data\":{\"status\":0,\"transid\":7,\"dp\":27,\"datatype\":2,\"fn\":0,\"data\":{\"type\":\"Buffer\",\"data\":[0,0,0,0]}},\"linkquality\":141,\"groupID\":0,\"cluster\":\"manuSpecificTuya\",\"meta\":{\"zclTransactionSequenceNumber\":50,\"manufacturerCode\":null,\"frameControl\":{\"frameType\":1,\"manufacturerSpecific\":false,\"direction\":1,\"disableDefaultResponse\":false,\"reservedBits\":0}},\"endpoint_id\":1}","ack":true,"ts":1635981836743,"q":0,"from":"system.adapter.zigbee.0","user":"system.user.admin","lc":1635981836743}
      zigbee.0
      	2021-11-03 23:23:56.746	silly	States user redis pmessage zigbee.0.*/zigbee.0.50325ffffe6314aa.link_quality:{"val":141,"ack":true,"ts":1635981836743,"q":0,"from":"system.adapter.zigbee.0","user":"system.user.admin","lc":1635981836640}
      zigbee.0
      	2021-11-03 23:23:56.742	info	State value to set for "zigbee.0.50325ffffe6314aa.local_temperature_calibration" has to be type "number" but received type "string"
      zigbee.0
      	2021-11-03 23:23:56.734	warn	ELEVATED publishToState: value generated '"0.0"' from device 50325ffffe6314aa for 'Offset to be used in the local_temperature'
      zigbee.0
      	2021-11-03 23:23:56.733	warn	ELEVATED publishToState: message received '{"local_temperature_calibration":"0.0"}' from device 50325ffffe6314aa type 'TV01-ZB'
      zigbee.0
      	2021-11-03 23:23:56.732	debug	Publish {"local_temperature_calibration":"0.0"} to "50325ffffe6314aa"
      zigbee.0
      	2021-11-03 23:23:56.732	warn	ELEVATED publishToState: value generated '"{\"type\":\"commandGetData\",\"data\":{\"status\":0,\"transid\":7,\"dp\":27,\"datatype\":2,\"fn\":0,\"data\":{\"type\":\"Buffer\",\"data\":[0,0,0,0]}},\"linkquality\":141,\"groupID\":0,\"cluster\":\"manuSpecificTuya\",\"meta\":{\"zclTransactionSequenceNumber\":50,\"manufacturerCode\":null,\"frameControl\":{\"frameType\":1,\"manufacturerSpecific\":false,\"direction\":1,\"disableDefaultResponse\":false,\"reservedBits\":0}},\"endpoint_id\":1}"' from device 50325ffffe6314aa for 'Message from Zigbee'
      zigbee.0
      	2021-11-03 23:23:56.731	warn	ELEVATED publishToState: message received '{"msg_from_zigbee":"{\"type\":\"commandGetData\",\"data\":{\"status\":0,\"transid\":7,\"dp\":27,\"datatype\":2,\"fn\":0,\"data\":{\"type\":\"Buffer\",\"data\":[0,0,0,0]}},\"linkquality\":141,\"groupID\":0,\"cluster\":\"manuSpecificTuya\",\"meta\":{\"zclTransactionSequenceNumber\":50,\"manufacturerCode\":null,\"frameControl\":{\"frameType\":1,\"manufacturerSpecific\":false,\"direction\":1,\"disableDefaultResponse\":false,\"reservedBits\":0}},\"endpoint_id\":1}"}' from device 50325ffffe6314aa type 'TV01-ZB'
      zigbee.0
      	2021-11-03 23:23:56.731	warn	ELEVATED publishToState: value generated '141' from device 50325ffffe6314aa for 'Link quality'
      zigbee.0
      	2021-11-03 23:23:56.730	warn	ELEVATED publishToState: message received '{"linkquality":141}' from device 50325ffffe6314aa type 'TV01-ZB'
      zigbee.0
      	2021-11-03 23:23:56.721	debug	Type commandGetData device {"type":"device","device":{"ID":4,"_type":"EndDevice","_ieeeAddr":"0x50325ffffe6314aa","_networkAddress":32413,"_manufacturerID":4098,"_endpoints":[{"ID":1,"profileID":260,"deviceID":81,"inputClusters":[0,4,5,61184],"outputClusters":[25,10],"deviceNetworkAddress":32413,"deviceIeeeAddress":"0x50325ffffe6314aa","clusters":{"genBasic":{"attributes":{"modelId":"TS0601","manufacturerName":"_TZE200_hue3yfsn","powerSource":3,"zclVersion":3,"appVersion":69,"stackVersion":0,"hwVersion":1,"dateCode":""}}},"_binds":[],"_configuredReportings":[],"meta":{},"pendingRequests":[]}],"_manufacturerName":"_TZE200_hue3yfsn","_powerSource":"Battery","_modelID":"TS0601","_applicationVersion":69,"_stackVersion":0,"_zclVersion":3,"_hardwareVersion":1,"_dateCode":"","_interviewCompleted":true,"_interviewing":false,"_skipDefaultResponse":false,"_skipTimeResponse":false,"meta":{},"_lastSeen":1635981836719,"_linkquality":141},"mapped":{"fingerprint":[{"modelID":"TS0601","manufacturerName":"_TZE200_e9ba97vf"},{"modelID":"TS0601","manufacturerName":"_TZE200_hue3yfsn"}],"model":"TV01-ZB","vendor":"Moes","description":"Thermostat radiator valve","fromZigbee":[{"cluster":"manuSpecificTuya","type":["commandGetData","commandSetDataResponse","raw"]},{"cluster":"manuSpecificTuya","type":["commandSetTimeRequest"]}],"toZigbee":[{"key":["system_mode","window_detection","frost_detection","child_lock","current_heating_setpoint","local_temperature_calibration","holiday_temperature","comfort_temperature","eco_temperature","boost_mode","open_window_temperature","heating_stop","preset"]},{"key":["scene_store"]},{"key":["scene_recall"]},{"key":["scene_add"]},{"key":["scene_remove"]},{"key":["scene_remove_all"]},{"key":["read"]},{"key":["write"]}],"exposes":[{"type":"numeric","name":"battery","property":"battery","access":1,"unit":"%","description":"Remaining battery in %","value_min":0,"value_max":100},{"type":"lock","features":[{"type":"binary","name":"state","property":"child_lock","access":3,"value_on":"LOCK","value_off":"UNLOCK","description":"Enables/disables physical input on the device"}]},{"type":"switch","features":[{"type":"binary","name":"state","property":"window_detection","access":3,"value_on":"ON","value_off":"OFF","description":"Enables/disables window detection on the device","value_toggle":"TOGGLE"}]},{"type":"binary","name":"frost_detection","property":"frost_detection","access":3,"value_on":true,"value_off":false,"description":"Enables/disables frost detection on the device"},{"type":"binary","name":"heating_stop","property":"heating_stop","access":3,"value_on":true,"value_off":false,"description":"Stop heating"},{"type":"numeric","name":"holiday_temperature","property":"holiday_temperature","access":3,"description":"Holiday mode temperature"},{"type":"numeric","name":"comfort_temperature","property":"comfort_temperature","access":3,"description":"Comfort mode temperature"},{"type":"numeric","name":"eco_temperature","property":"eco_temperature","access":3,"description":"Eco mode temperature"},{"type":"numeric","name":"open_window_temperature","property":"open_window_temperature","access":3,"description":"Open window mode temperature"},{"type":"numeric","name":"boost_heating_countdown","property":"boost_heating_countdown","access":1,"description":"Boost heating countdown"},{"type":"numeric","name":"error_status","property":"error_status","access":1,"description":"Error status"},{"type":"climate","features":[{"type":"numeric","name":"current_heating_setpoint","property":"current_heating_setpoint","access":3,"value_min":5,"value_max":29.5,"value_step":1,"unit":"°C","description":"Temperature setpoint"},{"type":"numeric","name":"local_temperature","property":"local_temperature","access":1,"unit":"°C","description":"Current temperature measured on the device"},{"type":"numeric","name":"local_temperature_calibration","property":"local_temperature_calibration","access":3,"unit":"°C","description":"Offset to be used in the local_temperature"},{"type":"enum","name":"system_mode","property":"system_mode","access":3,"values":["off","heat","auto"],"description":"Mode of this device"},{"type":"enum","name":"preset","property":"preset","access":3,"values":["auto","manual","holiday"],"description":"Mode of this device (similar to system_mode)"}]},{"type":"numeric","name":"linkquality","property":"linkquality","access":1,"unit":"lqi","description":"Link quality (signal strength)","value_min":0,"value_max":255}],"options":[]},"name":"0x50325ffffe6314aa"} incoming event: {"type":"commandGetData","device":{"ID":4,"_type":"EndDevice","_ieeeAddr":"0x50325ffffe6314aa","_networkAddress":32413,"_manufacturerID":4098,"_endpoints":[{"ID":1,"profileID":260,"deviceID":81,"inputClusters":[0,4,5,61184],"outputClusters":[25,10],"deviceNetworkAddress":32413,"deviceIeeeAddress":"0x50325ffffe6314aa","clusters":{"genBasic":{"attributes":{"modelId":"TS0601","manufacturerName":"_TZE200_hue3yfsn","powerSource":3,"zclVersion":3,"appVersion":69,"stackVersion":0,"hwVersion":1,"dateCode":""}}},"_binds":[],"_configuredReportings":[],"meta":{},"pendingRequests":[]}],"_manufacturerName":"_TZE200_hue3yfsn","_powerSource":"Battery","_modelID":"TS0601","_applicationVersion":69,"_stackVersion":0,"_zclVersion":3,"_hardwareVersion":1,"_dateCode":"","_interviewCompleted":true,"_interviewing":false,"_skipDefaultResponse":false,"_skipTimeResponse":false,"meta":{},"_lastSeen":1635981836719,"_linkquality":141},"endpoint":"[Circular]","data":{"status":0,"transid":7,"dp":27,"datatype":2,"fn":0,"data":{"type":"Buffer","data":[0,0,0,0]}},"linkquality":141,"groupID":0,"cluster":"manuSpecificTuya","meta":{"zclTransactionSequenceNumber":50,"manufacturerCode":null,"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0}}}
      zigbee.0
      	2021-11-03 23:23:56.720	debug	Received Zigbee message from '0x50325ffffe6314aa', type 'commandGetData', cluster 'manuSpecificTuya', data '{"status":0,"transid":7,"dp":27,"datatype":2,"fn":0,"data":{"type":"Buffer","data":[0,0,0,0]}}' from endpoint 1 with groupID 0
      zigbee.0
      	2021-11-03 23:23:56.719	debug	handleMessage. {"type":"commandGetData","device":{"ID":4,"_type":"EndDevice","_ieeeAddr":"0x50325ffffe6314aa","_networkAddress":32413,"_manufacturerID":4098,"_endpoints":[{"ID":1,"profileID":260,"deviceID":81,"inputClusters":[0,4,5,61184],"outputClusters":[25,10],"deviceNetworkAddress":32413,"deviceIeeeAddress":"0x50325ffffe6314aa","clusters":{"genBasic":{"attributes":{"modelId":"TS0601","manufacturerName":"_TZE200_hue3yfsn","powerSource":3,"zclVersion":3,"appVersion":69,"stackVersion":0,"hwVersion":1,"dateCode":""}}},"_binds":[],"_configuredReportings":[],"meta":{},"pendingRequests":[]}],"_manufacturerName":"_TZE200_hue3yfsn","_powerSource":"Battery","_modelID":"TS0601","_applicationVersion":69,"_stackVersion":0,"_zclVersion":3,"_hardwareVersion":1,"_dateCode":"","_interviewCompleted":true,"_interviewing":false,"_skipDefaultResponse":false,"_skipTimeResponse":false,"meta":{},"_lastSeen":1635981836719,"_linkquality":141},"endpoint":"[Circular]","data":{"status":0,"transid":7,"dp":27,"datatype":2,"fn":0,"data":{"type":"Buffer","data":[0,0,0,0]}},"linkquality":141,"groupID":0,"cluster":"manuSpecificTuya","meta":{"zclTransactionSequenceNumber":50,"manufacturerCode":null,"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0}}}
      zigbee.0
      	2021-11-03 23:23:56.693	silly	States user redis pmessage zigbee.0.*/zigbee.0.50325ffffe6314aa.local_temperature:{"val":"21.3","ack":true,"ts":1635981836691,"q":0,"from":"system.adapter.zigbee.0","user":"system.user.admin","lc":1635981836691}
      zigbee.0
      	2021-11-03 23:23:56.687	info	State value to set for "zigbee.0.50325ffffe6314aa.local_temperature" has to be type "number" but received type "string"
      zigbee.0
      	2021-11-03 23:23:56.649	silly	States user redis pmessage zigbee.0.*/zigbee.0.50325ffffe6314aa.msg_from_zigbee:{"val":"{\"type\":\"commandGetData\",\"data\":{\"status\":0,\"transid\":6,\"dp\":24,\"datatype\":2,\"fn\":0,\"data\":{\"type\":\"Buffer\",\"data\":[0,0,0,213]}},\"linkquality\":141,\"groupID\":0,\"cluster\":\"manuSpecificTuya\",\"meta\":{\"zclTransactionSequenceNumber\":49,\"manufacturerCode\":null,\"frameControl\":{\"frameType\":1,\"manufacturerSpecific\":false,\"direction\":1,\"disableDefaultResponse\":false,\"reservedBits\":0}},\"endpoint_id\":1}","ack":true,"ts":1635981836641,"q":0,"from":"system.adapter.zigbee.0","user":"system.user.admin","lc":1635981836641}
      zigbee.0
      	2021-11-03 23:23:56.646	silly	States user redis pmessage zigbee.0.*/zigbee.0.50325ffffe6314aa.link_quality:{"val":141,"ack":true,"ts":1635981836640,"q":0,"from":"system.adapter.zigbee.0","user":"system.user.admin","lc":1635981836640}
      zigbee.0
      	2021-11-03 23:23:56.623	warn	ELEVATED publishToState: value generated '"21.3"' from device 50325ffffe6314aa for 'Current temperature measured on the device'
      zigbee.0
      	2021-11-03 23:23:56.622	warn	ELEVATED publishToState: message received '{"local_temperature":"21.3"}' from device 50325ffffe6314aa type 'TV01-ZB'
      zigbee.0
      	2021-11-03 23:23:56.619	debug	Publish {"local_temperature":"21.3"} to "50325ffffe6314aa"
      zigbee.0
      	2021-11-03 23:23:56.618	warn	ELEVATED publishToState: value generated '"{\"type\":\"commandGetData\",\"data\":{\"status\":0,\"transid\":6,\"dp\":24,\"datatype\":2,\"fn\":0,\"data\":{\"type\":\"Buffer\",\"data\":[0,0,0,213]}},\"linkquality\":141,\"groupID\":0,\"cluster\":\"manuSpecificTuya\",\"meta\":{\"zclTransactionSequenceNumber\":49,\"manufacturerCode\":null,\"frameControl\":{\"frameType\":1,\"manufacturerSpecific\":false,\"direction\":1,\"disableDefaultResponse\":false,\"reservedBits\":0}},\"endpoint_id\":1}"' from device 50325ffffe6314aa for 'Message from Zigbee'
      zigbee.0
      	2021-11-03 23:23:56.617	warn	ELEVATED publishToState: message received '{"msg_from_zigbee":"{\"type\":\"commandGetData\",\"data\":{\"status\":0,\"transid\":6,\"dp\":24,\"datatype\":2,\"fn\":0,\"data\":{\"type\":\"Buffer\",\"data\":[0,0,0,213]}},\"linkquality\":141,\"groupID\":0,\"cluster\":\"manuSpecificTuya\",\"meta\":{\"zclTransactionSequenceNumber\":49,\"manufacturerCode\":null,\"frameControl\":{\"frameType\":1,\"manufacturerSpecific\":false,\"direction\":1,\"disableDefaultResponse\":false,\"reservedBits\":0}},\"endpoint_id\":1}"}' from device 50325ffffe6314aa type 'TV01-ZB'
      zigbee.0
      	2021-11-03 23:23:56.616	warn	ELEVATED publishToState: value generated '141' from device 50325ffffe6314aa for 'Link quality'
      zigbee.0
      	2021-11-03 23:23:56.615	warn	ELEVATED publishToState: message received '{"linkquality":141}' from device 50325ffffe6314aa type 'TV01-ZB'
      zigbee.0
      	2021-11-03 23:23:56.596	debug	Type commandGetData device {"type":"device","device":{"ID":4,"_type":"EndDevice","_ieeeAddr":"0x50325ffffe6314aa","_networkAddress":32413,"_manufacturerID":4098,"_endpoints":[{"ID":1,"profileID":260,"deviceID":81,"inputClusters":[0,4,5,61184],"outputClusters":[25,10],"deviceNetworkAddress":32413,"deviceIeeeAddress":"0x50325ffffe6314aa","clusters":{"genBasic":{"attributes":{"modelId":"TS0601","manufacturerName":"_TZE200_hue3yfsn","powerSource":3,"zclVersion":3,"appVersion":69,"stackVersion":0,"hwVersion":1,"dateCode":""}}},"_binds":[],"_configuredReportings":[],"meta":{},"pendingRequests":[]}],"_manufacturerName":"_TZE200_hue3yfsn","_powerSource":"Battery","_modelID":"TS0601","_applicationVersion":69,"_stackVersion":0,"_zclVersion":3,"_hardwareVersion":1,"_dateCode":"","_interviewCompleted":true,"_interviewing":false,"_skipDefaultResponse":false,"_skipTimeResponse":false,"meta":{},"_lastSeen":1635981836591,"_linkquality":141},"mapped":{"fingerprint":[{"modelID":"TS0601","manufacturerName":"_TZE200_e9ba97vf"},{"modelID":"TS0601","manufacturerName":"_TZE200_hue3yfsn"}],"model":"TV01-ZB","vendor":"Moes","description":"Thermostat radiator valve","fromZigbee":[{"cluster":"manuSpecificTuya","type":["commandGetData","commandSetDataResponse","raw"]},{"cluster":"manuSpecificTuya","type":["commandSetTimeRequest"]}],"toZigbee":[{"key":["system_mode","window_detection","frost_detection","child_lock","current_heating_setpoint","local_temperature_calibration","holiday_temperature","comfort_temperature","eco_temperature","boost_mode","open_window_temperature","heating_stop","preset"]},{"key":["scene_store"]},{"key":["scene_recall"]},{"key":["scene_add"]},{"key":["scene_remove"]},{"key":["scene_remove_all"]},{"key":["read"]},{"key":["write"]}],"exposes":[{"type":"numeric","name":"battery","property":"battery","access":1,"unit":"%","description":"Remaining battery in %","value_min":0,"value_max":100},{"type":"lock","features":[{"type":"binary","name":"state","property":"child_lock","access":3,"value_on":"LOCK","value_off":"UNLOCK","description":"Enables/disables physical input on the device"}]},{"type":"switch","features":[{"type":"binary","name":"state","property":"window_detection","access":3,"value_on":"ON","value_off":"OFF","description":"Enables/disables window detection on the device","value_toggle":"TOGGLE"}]},{"type":"binary","name":"frost_detection","property":"frost_detection","access":3,"value_on":true,"value_off":false,"description":"Enables/disables frost detection on the device"},{"type":"binary","name":"heating_stop","property":"heating_stop","access":3,"value_on":true,"value_off":false,"description":"Stop heating"},{"type":"numeric","name":"holiday_temperature","property":"holiday_temperature","access":3,"description":"Holiday mode temperature"},{"type":"numeric","name":"comfort_temperature","property":"comfort_temperature","access":3,"description":"Comfort mode temperature"},{"type":"numeric","name":"eco_temperature","property":"eco_temperature","access":3,"description":"Eco mode temperature"},{"type":"numeric","name":"open_window_temperature","property":"open_window_temperature","access":3,"description":"Open window mode temperature"},{"type":"numeric","name":"boost_heating_countdown","property":"boost_heating_countdown","access":1,"description":"Boost heating countdown"},{"type":"numeric","name":"error_status","property":"error_status","access":1,"description":"Error status"},{"type":"climate","features":[{"type":"numeric","name":"current_heating_setpoint","property":"current_heating_setpoint","access":3,"value_min":5,"value_max":29.5,"value_step":1,"unit":"°C","description":"Temperature setpoint"},{"type":"numeric","name":"local_temperature","property":"local_temperature","access":1,"unit":"°C","description":"Current temperature measured on the device"},{"type":"numeric","name":"local_temperature_calibration","property":"local_temperature_calibration","access":3,"unit":"°C","description":"Offset to be used in the local_temperature"},{"type":"enum","name":"system_mode","property":"system_mode","access":3,"values":["off","heat","auto"],"description":"Mode of this device"},{"type":"enum","name":"preset","property":"preset","access":3,"values":["auto","manual","holiday"],"description":"Mode of this device (similar to system_mode)"}]},{"type":"numeric","name":"linkquality","property":"linkquality","access":1,"unit":"lqi","description":"Link quality (signal strength)","value_min":0,"value_max":255}],"options":[]},"name":"0x50325ffffe6314aa"} incoming event: {"type":"commandGetData","device":{"ID":4,"_type":"EndDevice","_ieeeAddr":"0x50325ffffe6314aa","_networkAddress":32413,"_manufacturerID":4098,"_endpoints":[{"ID":1,"profileID":260,"deviceID":81,"inputClusters":[0,4,5,61184],"outputClusters":[25,10],"deviceNetworkAddress":32413,"deviceIeeeAddress":"0x50325ffffe6314aa","clusters":{"genBasic":{"attributes":{"modelId":"TS0601","manufacturerName":"_TZE200_hue3yfsn","powerSource":3,"zclVersion":3,"appVersion":69,"stackVersion":0,"hwVersion":1,"dateCode":""}}},"_binds":[],"_configuredReportings":[],"meta":{},"pendingRequests":[]}],"_manufacturerName":"_TZE200_hue3yfsn","_powerSource":"Battery","_modelID":"TS0601","_applicationVersion":69,"_stackVersion":0,"_zclVersion":3,"_hardwareVersion":1,"_dateCode":"","_interviewCompleted":true,"_interviewing":false,"_skipDefaultResponse":false,"_skipTimeResponse":false,"meta":{},"_lastSeen":1635981836591,"_linkquality":141},"endpoint":"[Circular]","data":{"status":0,"transid":6,"dp":24,"datatype":2,"fn":0,"data":{"type":"Buffer","data":[0,0,0,213]}},"linkquality":141,"groupID":0,"cluster":"manuSpecificTuya","meta":{"zclTransactionSequenceNumber":49,"manufacturerCode":null,"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0}}}
      zigbee.0
      	2021-11-03 23:23:56.595	debug	Received Zigbee message from '0x50325ffffe6314aa', type 'commandGetData', cluster 'manuSpecificTuya', data '{"status":0,"transid":6,"dp":24,"datatype":2,"fn":0,"data":{"type":"Buffer","data":[0,0,0,213]}}' from endpoint 1 with groupID 0
      zigbee.0
      	2021-11-03 23:23:56.592	debug	handleMessage. {"type":"commandGetData","device":{"ID":4,"_type":"EndDevice","_ieeeAddr":"0x50325ffffe6314aa","_networkAddress":32413,"_manufacturerID":4098,"_endpoints":[{"ID":1,"profileID":260,"deviceID":81,"inputClusters":[0,4,5,61184],"outputClusters":[25,10],"deviceNetworkAddress":32413,"deviceIeeeAddress":"0x50325ffffe6314aa","clusters":{"genBasic":{"attributes":{"modelId":"TS0601","manufacturerName":"_TZE200_hue3yfsn","powerSource":3,"zclVersion":3,"appVersion":69,"stackVersion":0,"hwVersion":1,"dateCode":""}}},"_binds":[],"_configuredReportings":[],"meta":{},"pendingRequests":[]}],"_manufacturerName":"_TZE200_hue3yfsn","_powerSource":"Battery","_modelID":"TS0601","_applicationVersion":69,"_stackVersion":0,"_zclVersion":3,"_hardwareVersion":1,"_dateCode":"","_interviewCompleted":true,"_interviewing":false,"_skipDefaultResponse":false,"_skipTimeResponse":false,"meta":{},"_lastSeen":1635981836591,"_linkquality":141},"endpoint":"[Circular]","data":{"status":0,"transid":6,"dp":24,"datatype":2,"fn":0,"data":{"type":"Buffer","data":[0,0,0,213]}},"linkquality":141,"groupID":0,"cluster":"manuSpecificTuya","meta":{"zclTransactionSequenceNumber":49,"manufacturerCode":null,"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0}}}
      zigbee.0
      	2021-11-03 23:23:55.384	debug	target: {"ID":1,"profileID":260,"deviceID":81,"inputClusters":[0,4,5,61184],"outputClusters":[25,10],"deviceNetworkAddress":32413,"deviceIeeeAddress":"0x50325ffffe6314aa","clusters":{"genBasic":{"attributes":{"modelId":"TS0601","manufacturerName":"_TZE200_hue3yfsn","powerSource":3,"zclVersion":3,"appVersion":69,"stackVersion":0,"hwVersion":1,"dateCode":""}}},"_binds":[],"_configuredReportings":[],"meta":{},"pendingRequests":[]}
      
      
      
      posted in ioBroker Allgemein
      D
      diti
    • RE: Tuya Thermostat (_TZE200_hue3yfsn)

      local_temperature funktioniert doch nicht, ich habe immer noch Skript aktiv gehabt. Wie kann man überprüfen ob Thermostat was sendet? Vielleicht mit zigbee.0.info.debugmessages?

      posted in ioBroker Allgemein
      D
      diti
    • RE: Tuya Thermostat (_TZE200_hue3yfsn)

      @bluefish bei mir funktioniert von allein die Child_lock, local_temperature, früher musste ich auch mit einem Skript local_temperature_calibration auf 0-Grad jedesmal setzen um die aktuelle Temperatur zu bekommen.

      posted in ioBroker Allgemein
      D
      diti
    • RE: Tuya Thermostat (_TZE200_hue3yfsn)

      @bluefish danke für deine Anleitung, leider wenn ich externen Converter benutze, bekomme ich von den Thermostaten keine Rückmeldung also keine locale Temperatur, ich hab verschiedene ausprobiert und mit immer gleichem Ergebnis. Auf Bildern von dir current Temperatur auch unbekannt, geht das?

      Mittlerweile habe ich andere "Mitfahrgelegenheit" für Thermostat (_TZE200_hue3yfsn) gefunden, und zwar bei TV01-ZB von Moes. Alle Data Point ID sind mit unserem identisch und alle steuerbar, Rückmeldung von TRV ist auch vorhanden, das heißt man muss nicht in /opt/iobroker/node_modules/zigbee-herdsman-converters/lib/tuya.js Anpassungen machen sondern in /opt/iobroker/node_modules/zigbee-herdsman-converters/devices/moes.js Thermostat-Name {modelID: 'TS0601', manufacturerName: '_TZE200_hue3yfsn'} einfügen.

      fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_e9ba97vf'}, {modelID: 'TS0601', manufacturerName: '_TZE200_hue3yfsn'}],
              model: 'TV01-ZB',
              vendor: 'Moes',
              description: 'Thermostat radiator valve',
              fromZigbee: [fz.moes_thermostat_tv, fz.ignore_tuya_set_time],
              toZigbee: [tz.moes_thermostat_tv],
      

      1111.PNG
      11111.PNG
      TV01-ZB ist frisch in zigbee4mqtt integriert, deswegen musst ihr Zigbee-Adapter oder zigbee-herdsmann-converters aktualisieren, bei mir steht nämlich v1.6.4.
      Nicht vergessen alle gemachte Änderungen und Anpassungen in
      /opt/iobroker/node_modules/zigbee-herdsman-converters/devices/tuya.js und in /opt/iobroker/node_modules/zigbee-herdsman-converters/lib/tuya.js wieder rückgängig machen, oder die werden mit Aktualisierung überschrieben.

      posted in ioBroker Allgemein
      D
      diti
    • RE: Tuya Thermostat (_TZE200_hue3yfsn)

      @pete0815
      dann sind deine Thermostate in zigbee2mqtt eingepflegt, du musst gar nicht verändern, probier Mal die in Home Assistant da kannst du eventuell mehr Funktionen herausholen.

      posted in ioBroker Allgemein
      D
      diti
    • RE: Tuya Thermostat (_TZE200_hue3yfsn)

      @pete0815 sagte in Tuya Thermostat (_TZE200_hue3yfsn):

      nur die Target Temperature setzen und nicht die Ventilstellung

      bei mir geht die Ventilstellung-Steuerung auch nicht laut der Liste
      DPs.PNG
      diese Thermostate haben kein Data Point ID um das zu steuern.
      Die Preset Mode ( 'manual', 'boost', 'complex', 'comfort', 'eco') benutze ich nicht, ich hab noch Werkeinstellungen. Ich hab bei mir einige Blockly Skripte laufen: ein Skript zum Beispiel in Interval 20 min. überprüft ob die Fenster geöffnet oder geschlossen sind, Uhrzeit und steuert entsprechend target_temperatur.

      Im Bild mit Device Information was du gepostet hast steht manufacturerName: '_TZE200_cwnjrr72 warum?
      Ich hab bei mir solche:5555.PNG

      Was hast du geändert oder ist das der originale Name von Thermostat?

      posted in ioBroker Allgemein
      D
      diti
    • RE: Tuya Thermostat (_TZE200_hue3yfsn)

      @asgothian
      Ich weiß, habe nur diese, rückgängig kann man auch machen habe ich schon probiert.
      ich habe im Github Forum externen Converter von kvazis gefunden die Data Points sind identisch, der Converter aber für HA gemacht. Ich habe da kleine Anpassungen gemacht , Temperatur einstellen funktioniert zwar aber Rückmeldung von TRV kommt nicht, was ist falsch ?

      /// Based on:
      // https://gist.github.com/basveeling/96ff0f16cd7185b0277a26c8d9305633
      // https://github.com/Koenkk/zigbee-herdsman-converters/issues/1803
      // https://github.com/Koenkk/zigbee-herdsman-converters/pull/2209
      //https://gist.github.com/serrj-sv/af142b25de2d7ac54c3a2eb2623d9a6d#file-moes_radiator_alt-js-L328
      //// Credits:
      // @serrj-sv, @wollo, @basveeling
      //// Usage: 
      // zzonesmart_tvg01zg.js in the root of your zigbee2mqtt data folder (as stated in data_path, e.g. /config/zigbee2mqtt_data)
      // In your zigbee2mqtt hassio addon configuration, add the following two lines:
      // ...
      // external_converters:
      //   - zzonesmart_tvg01zg.js
      // ...
      const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
      const tz = require('zigbee-herdsman-converters/converters/toZigbee');
      const tuya = require('zigbee-herdsman-converters/lib/tuya');
      const exposes = require('zigbee-herdsman-converters/lib/exposes');
      const reporting = require('zigbee-herdsman-converters/lib/reporting');
      const e = exposes.presets;
      const ea = exposes.access;
      
      const tuyaLocal = {
      	dataPoints: {
          // ZONNSMART
          zsHeatingSetpoint: 16,
          zsFrostDetection: 10,
          zsWindowDetection: 8,
          zsChildLock: 40,
          zsTempCalibration: 27,
          zsLocalTemp: 24,
          zsBattery: 35,
          zsHeatingBoostCountdown: 101,
          zsComfortTemp: 104,
          zsEcoTemp: 105,
          zsAwayTemp: 32,
          zsErrorStatus: 45,
          zsMode: 2,
          zsHeatingStop: 107,
      	},
      };
      const fzLocal = {
          zs_thermostat: {
              cluster: 'manuSpecificTuya',
              type: ['commandGetData', 'commandSetDataResponse'],
              convert: (model, msg, publish, options, meta) => {
                  const dp = msg.data.dp;
                  const value = tuya.getDataValue(msg.data.datatype, msg.data.data);
      
                  // if (dp >= 101 && dp <=107) return; // handled by tuya_thermostat_weekly_schedule
      
                  switch (dp) {
                  case tuya.dataPoints.state: // on/off
                      return !value ? {system_mode: 'off'} : {};
      
                  case tuyaLocal.dataPoints.zsChildLock:
                      return {child_lock: value ? 'LOCK' : 'UNLOCK'};
      
                  case tuyaLocal.dataPoints.zsHeatingSetpoint:
                      return {current_heating_setpoint: (value / 10).toFixed(1)};
      
                  case tuyaLocal.dataPoints.zsLocalTemp:
                      return {local_temperature: (value / 10).toFixed(1)};
      
                  case tuyaLocal.dataPoints.zsBattery:
                       return {battery: value};
      
                  case tuyaLocal.dataPoints.zsTempCalibration:
                      return {local_temperature_calibration: value > 55 ?
                          ((value - 0x100000000)/10).toFixed(1): (value/ 10).toFixed(1)};
      
                  case tuyaLocal.dataPoints.zsHeatingBoostCountdown:
                      return {heating_boost_countdown: value};
      
                  case tuyaLocal.dataPoints.zsWindowDetection:
                      return {window_detection: value ? 'ON' : 'OFF'};
      
                  case tuyaLocal.dataPoints.zsComfortTemp:
                      return {comfort_temperature: (value / 10).toFixed(1)};
      
                  case tuyaLocal.dataPoints.zsEcoTemp:
                      return {eco_temperature: (value / 10).toFixed(1)};
      
                  case tuyaLocal.dataPoints.zsAwayTemp:
                      return {away_preset_temperature: (value / 10).toFixed(1)};
      
                  case tuyaLocal.dataPoints.zsMode:
                      switch (value) {
                      case 1: // manual
                          return {system_mode: 'heat', away_mode: 'OFF', preset: 'manual'};
                      case 3: // away
                          return {system_mode: 'heat', away_mode: 'ON', preset: 'vacation'};
                      case 0: // auto
                          return {system_mode: 'auto', away_mode: 'OFF', preset: 'schedule'};
                      default:
                          meta.logger.warn('zigbee-herdsman-converters:zsThermostat: ' +
                              `preset ${value} is not recognized.`);
                          break;
                      }
                      break;
      
                  case tuya.dataPoints.runningState:
                      return {running_state: value ? 'heat' : 'idle'};
      
                  default:
                      meta.logger.warn(`zigbee-herdsman-converters:zsThermostat: Unrecognized DP #${
                          dp} with data ${JSON.stringify(msg.data)}`);
                  }
              },
          },
      };
      const tzLocal = {
          zs_thermostat_child_lock: {
              key: ['child_lock'],
              convertSet: async (entity, key, value, meta) => {
                  await tuya.sendDataPointBool(entity, tuyaLocal.dataPoints.zsChildLock, value === 'LOCK');
              },
          },
          zs_thermostat_window_detection: {
              key: ['window_detection'],
              convertSet: async (entity, key, value, meta) => {
                  await tuya.sendDataPointBool(entity, tuyaLocal.dataPoints.zsWindowDetection, value === 'ON');
              },
          },
          zs_thermostat_current_heating_setpoint: {
              key: ['current_heating_setpoint'],
              convertSet: async (entity, key, value, meta) => {
                  const temp = Math.round(value * 10);
                  await tuya.sendDataPointValue(entity, tuyaLocal.dataPoints.zsHeatingSetpoint, temp);
              },
          },
          zs_thermostat_comfort_temp: {
              key: ['comfort_temp_preset'],
              convertSet: async (entity, key, value, meta) => {
                  const temp = Math.round(value * 10);
                  await tuya.sendDataPointValue(entity, tuyaLocal.dataPoints.zsComfortTemp, temp);
              },
          },
          zs_thermostat_away_temp: {
              key: ['away_preset_temperature'],
              convertSet: async (entity, key, value, meta) => {
                  const temp = Math.round(value * 10);
                  await tuya.sendDataPointValue(entity, tuyaLocal.dataPoints.zsAwayTemp, temp);
              },
          },
          zs_thermostat_eco_temp: {
              key: ['eco_temp_preset'],
              convertSet: async (entity, key, value, meta) => {
                  const temp = Math.round(value * 10);
                  await tuya.sendDataPointValue(entity, tuyaLocal.dataPoints.zsEcoTemp, temp);
              },
          },
          zs_thermostat_system_mode_preset: {
              key: ['preset'],
              convertSet: async (entity, key, value, meta) => {
                  const lookup = {'schedule': 0, 'manual': 1, 'holiday': 3};
                  await tuya.sendDataPointEnum(entity, tuyaLocal.dataPoints.zsMode, lookup[value]);
              },
          },
          zs_thermostat_local_temperature_calibration: {
              key: ['local_temperature_calibration'],
              convertSet: async (entity, key, value, meta) => {
                  if (value > 0) value = value*10;
                  if (value < 0) value = value*10 + 0x100000000;
                  await tuya.sendDataPointValue(entity, tuyaLocal.dataPoints.zsTempCalibration, value);
              },
          },
      };       
      const device = {
          // Moes Tuya Alt Thermostat
          zigbeeModel: ['TS601'],
          fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_e9ba97vf'}],
          model: 'TV01-ZG',
          vendor: 'ZONNSMART',
          description: 'Radiator valve with thermostat',
          fromZigbee: [
              fz.ignore_basic_report,
              fz.ignore_tuya_set_time,  // handled in onEvent
              fzLocal.zs_thermostat,
              // fz.tuya_data_point_dump,
          ],
          toZigbee: [
              tzLocal.zs_thermostat_current_heating_setpoint,
              tzLocal.zs_thermostat_child_lock,
              tzLocal.zs_thermostat_comfort_temp,
              tzLocal.zs_thermostat_eco_temp,
              tzLocal.zs_thermostat_system_mode_preset,
              tzLocal.zs_thermostat_local_temperature_calibration,
              tzLocal.zs_thermostat_away_temp,
              tzLocal.zs_thermostat_window_detection,
              tzLocal.zs_thermostat_heatingBoostCountdown,
              tz.tuya_data_point_test
          ],
          onEvent: tuya.onEventSetLocalTime,
          meta: {
              configureKey: 1,
          },
          configure: async (device, coordinatorEndpoint, logger) => {
              const endpoint = device.getEndpoint(1);
              await reporting.bind(endpoint, coordinatorEndpoint, ['genBasic']);
          },
          exposes: [
              e.battery(), e.window_detection(), e.child_lock(), e.comfort_temperature(), e.eco_temperature(), e.away_preset_temperature(),
              exposes.climate().withSetpoint('current_heating_setpoint', 0.5, 29.5, 0.5)
                               .withLocalTemperature()
                               .withLocalTemperatureCalibration()
                               .withSystemMode(['off', 'heat', 'auto'], ea.STATE_SET) //system mode only: off, heat, auto
                               .withPreset(['schedule', 'manual', 'holiday']),
              exposes.numeric('heating_boost_countdown', ea.STATE)
                  ],
      };
      
      module.exports = device;
      
      serrj-sv created this issue in Koenkk/zigbee-herdsman-converters

      closed Request for support new Tuya/Moes Radiator Valve _TZE200_fhn3negr #1803

      wollo created this issue in Koenkk/zigbee-herdsman-converters

      closed added support for Moes Radiator Thermostat TZE200_fhn3negr #2209

      posted in ioBroker Allgemein
      D
      diti
    • RE: Tuya Thermostat (_TZE200_hue3yfsn)

      @bluefish
      Idealerweise um volle Funktionalität von diesen Thermostaten zu haben, man muss einen "externen Converter" für die Dinge schreiben, leider bin ich nicht so weit in Programmierung oder ehrlich zu sagen gar nicht so weit. Das einzige was mir eingefallen ist, die Namen von Thermostaten zu bestehenden beizumischen und Datenpunkten anzupassen. Dadurch es ist möglich geworden: gewünschte Temperatur zusetzen, lokale Temp. auszulesen, mehr brauche ich nicht.
      Also zu Sache.
      Eine Datei tuya.js finden.
      /opt/iobroker/node_modules/zigbee-herdsman-converters/devices/tuya.js
      Thermostat-Name {modelID: 'TS0601', manufacturerName: '_TZE200_hue3yfsn'}
      Zu den anderen einfügen ungefähr Zeile 650 und speichern.

      zigbeeModel: ['kud7u2l'],
              fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_ckud7u2l'}, {modelID: 'TS0601', manufacturerName: '_TZE200_ywdxldoj'},
                  {modelID: 'TS0601', manufacturerName: '_TZE200_cwnjrr72'}, {modelID: 'TS0601', manufacturerName: '_TZE200_hue3yfsn'}],
              model: 'TS0601_thermostat',
              vendor: 'TuYa',
      

      Nächste Datei finden unter:
      /opt/iobroker/node_modules/zigbee-herdsman-converters/lib/tuya.js
      Und Data Point ID anzupassen.

      const dataPoints = {
          // Common data points
          // Below data points are usually shared between devices
          state: 1,
          heatingSetpoint: 16,
          coverPosition: 2,
          dimmerLevel: 3,
          localTemp: 24,
          coverArrived: 3,
          occupancy: 3,
          mode: 4,
          fanMode: 5,
          motorDirection: 5,
          config: 5,
          childLock: 40,
          coverChange: 7,
          runningState: 14,
          valveDetection: 20,
          battery: 35,
          tempCalibration: 27,
          // Data points above 100 are usually custom function data points
          waterLeak: 101,
          minTemp: 118,
          maxTemp: 119,
          windowDetection: 8,
          boostTime: 105,
          coverSpeed: 105,
          forceMode: 106,
          comfortTemp: 104,
          ecoTemp: 105,
          valvePos: 109,
          batteryLow: 35,
          weekFormat: 111,
          scheduleWorkday: 112,
          scheduleHoliday: 113,
          awayTemp: 32,
          autoLock: 116,
          awayDays: 31,
      

      Ich habe nicht alle Data Points geändert nur die, die ich brauche, ihr könnt mit den anderen ausprobieren vielleicht bekommt noch mehr Funktionen.
      Datei speichern, Ziegbee-Adapter neu starten und mit Kopplung anfangen.
      Viel Erfolg!

      posted in ioBroker Allgemein
      D
      diti
    • RE: Tuya Thermostat (_TZE200_hue3yfsn)

      @diti
      Ich schreibe dir eine Anleitung wie du die zum laufen bringst, aber morgen, jetzt muss ich leider zur Arbeit.

      posted in ioBroker Allgemein
      D
      diti
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo