Tuya Zigbee ohne Hub einbinden

Hallo,

ich nutze seit neuestem HA mit ZHA mit dem conbee2 Stick. Habe seit neustem ein Hama Thermostat, basiert wohl auf der tuya-Technik und hat die Bezeichnung Modell: TS0601 und Hersteller: _TZE200_h4cgnbzg, ABER kein Tuya-Hub. Wozu auch, habe ja den Zigbee-Stick.

Ich kann zwar in HA das Thermostat koppeln und die Temperatur auslesen, aber nicht steuern. Habe es über den weg der tuya IoT-Plattform vesucht, alles eingerichtet, aber kann dort den Thermostat nicht zu den devices hinzufügen, hab ja kein Hub.

Hat jemand ne Idee wie ich das lösen kann oder brauche ich fürs einmalige einrichten so ein Zigbee-Hub?

lg kitty

Willkommen in der Community,

sollte eigentlich mit ZHA funktionieren.
Hast du schon probiert das noch mal neu zu Verbinden?

ich würde sagen Nein.

LG

Der ConBee ist in diesem Fall Dein Hub.

Und lt. einen Beitrag von Anfang des Jahres

sollte das ganze zwischenzeitlich funktionieren.

Würde es auch noch mal neu anlernen und ggf. Neustarten. Manchmal wirkt das Wunder.

Die aktuellen Versionen setzt Du ein, oder?

@totow : ja dachte ich auch. hab schon x-mal das neu gekoppelt. der thermostat wird in den geräten und entitäten angezeigt, aber kann eben nichts über HA steuern. über Local tuya wird entsprechend der themostat nicht gefunden, da ich den über Tuya IoT nicht hinzufügen kann.

habs auch schon mit allen möglichgen quirks versucht.
und ja alles aktuell :wink:

sieht bei mir so aus:

Okay, hab jetzt sooo viele Quirks probiert, neu gekoppelt und hantiert, aber nichts scheint zu funktionieren, ich krieg den Thermostat einfach nicht zum laufen:
Ich kann mit Better Thermostat rumspielen wie ich will, es ändert sich nur was wenn ich am Thermostat selbst drehe.
Habe das alles versucht:
die init in local tuya angepasst, verschiedene quirks mit bezug zu TS0601.

Muss, dass es funktioniert, zwingend das Gerät bei Tuya IoT verbunden sein?


{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2023.11.2",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.11.6",
    "docker": true,
    "arch": "aarch64",
    "timezone": "Europe/Berlin",
    "os_name": "Linux",
    "os_version": "6.1.21-v8",
    "supervisor": "2023.11.3",
    "host_os": "Home Assistant OS 11.1",
    "docker_version": "24.0.6",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {
    "govee": {
      "version": "0.2.2",
      "requirements": [
        "govee-api-laggat==0.2.2",
        "dacite==1.6.0"
      ]
    },
    "hacs": {
      "version": "1.33.0",
      "requirements": [
        "aiogithubapi>=22.10.1"
      ]
    },
    "better_thermostat": {
      "version": "1.4.0",
      "requirements": []
    },
    "localtuya": {
      "version": "5.2.1",
      "requirements": []
    }
  },
  "integration_manifest": {
    "domain": "zha",
    "name": "Zigbee Home Automation",
    "after_dependencies": [
      "onboarding",
      "usb"
    ],
    "codeowners": [
      "@dmulcahey",
      "@adminiuga",
      "@puddly"
    ],
    "config_flow": true,
    "dependencies": [
      "file_upload"
    ],
    "documentation": "https://www.home-assistant.io/integrations/zha",
    "iot_class": "local_polling",
    "loggers": [
      "aiosqlite",
      "bellows",
      "crccheck",
      "pure_pcapy3",
      "zhaquirks",
      "zigpy",
      "zigpy_deconz",
      "zigpy_xbee",
      "zigpy_zigate",
      "zigpy_znp",
      "universal_silabs_flasher"
    ],
    "requirements": [
      "bellows==0.36.8",
      "pyserial==3.5",
      "pyserial-asyncio==0.6",
      "zha-quirks==0.0.106",
      "zigpy-deconz==0.21.1",
      "zigpy==0.59.0",
      "zigpy-xbee==0.19.0",
      "zigpy-zigate==0.11.0",
      "zigpy-znp==0.11.6",
      "universal-silabs-flasher==0.0.14",
      "pyserial-asyncio-fast==0.11"
    ],
    "usb": [
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*2652*",
        "known_devices": [
          "slae.sh cc2652rb stick"
        ]
      },
      {
        "vid": "1A86",
        "pid": "55D4",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus v2"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*zigstar*",
        "known_devices": [
          "ZigStar Coordinators"
        ]
      },
      {
        "vid": "1CF1",
        "pid": "0030",
        "description": "*conbee*",
        "known_devices": [
          "Conbee II"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8A2A",
        "description": "*zigbee*",
        "known_devices": [
          "Nortek HUSBZB-1"
        ]
      },
      {
        "vid": "0403",
        "pid": "6015",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate+"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8B34",
        "description": "*bv 2010/10*",
        "known_devices": [
          "Bitron Video AV2010/10"
        ]
      }
    ],
    "zeroconf": [
      {
        "type": "_esphomelib._tcp.local.",
        "name": "tube*"
      },
      {
        "type": "_zigate-zigbee-gateway._tcp.local.",
        "name": "*zigate*"
      },
      {
        "type": "_zigstar_gw._tcp.local.",
        "name": "*zigstar*"
      },
      {
        "type": "_uzg-01._tcp.local.",
        "name": "uzg-01*"
      },
      {
        "type": "_slzb-06._tcp.local.",
        "name": "slzb-06*"
      }
    ],
    "is_built_in": true
  },
  "data": {
    "ieee": "**REDACTED**",
    "nwk": 38139,
    "manufacturer": "_TZE200_h4cgnbzg",
    "model": "TS0601",
    "name": "_TZE200_h4cgnbzg TS0601",
    "quirk_applied": true,
    "quirk_class": "zhaquirks.tuya.ts0601_trv_sas.Thermostat_TZE200_c88teujp",
    "quirk_id": null,
    "manufacturer_code": 4417,
    "power_source": "Battery or Unknown",
    "lqi": 255,
    "rssi": -48,
    "last_seen": "2023-11-19T15:06:55",
    "available": true,
    "device_type": "EndDevice",
    "signature": {
      "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
      "endpoints": {
        "1": {
          "profile_id": "0x0104",
          "device_type": "0x0301",
          "input_clusters": [
            "0x0000",
            "0x0001",
            "0x0004",
            "0x0005",
            "0x000d",
            "0x0201",
            "0xef00"
          ],
          "output_clusters": [
            "0x000a",
            "0x0019"
          ]
        }
      },
      "manufacturer": "_TZE200_h4cgnbzg",
      "model": "TS0601"
    },
    "active_coordinator": false,
    "entities": [
      {
        "entity_id": "climate.tze200_h4cgnbzg_ts0601_thermostat",
        "name": "_TZE200_h4cgnbzg TS0601"
      },
      {
        "entity_id": "sensor.tze200_h4cgnbzg_ts0601_batterie",
        "name": "_TZE200_h4cgnbzg TS0601"
      },
      {
        "entity_id": "sensor.tze200_h4cgnbzg_ts0601_hlk_aktion",
        "name": "_TZE200_h4cgnbzg TS0601"
      },
      {
        "entity_id": "number.tze200_h4cgnbzg_ts0601_nummer_temperature_offset",
        "name": "_TZE200_h4cgnbzg TS0601"
      }
    ],
    "neighbors": [],
    "routes": [],
    "endpoint_names": [
      {
        "name": "THERMOSTAT"
      }
    ],
    "user_given_name": null,
    "device_reg_id": "94baabd552213acec0ffc089a7d00da9",
    "area_id": null,
    "cluster_details": {
      "1": {
        "device_type": {
          "name": "THERMOSTAT",
          "id": 769
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0000": {
            "endpoint_attribute": "basic",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0001": {
            "endpoint_attribute": "power",
            "attributes": {
              "0x0021": {
                "attribute_name": "battery_percentage_remaining",
                "value": 200
              }
            },
            "unsupported_attributes": {
              "0x0020": {
                "attribute_name": "battery_voltage"
              },
              "0x0021": {
                "attribute_name": "battery_percentage_remaining"
              },
              "0x0033": {
                "attribute_name": "battery_quantity"
              },
              "0x0031": {
                "attribute_name": "battery_size"
              }
            }
          },
          "0x0004": {
            "endpoint_attribute": "groups",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0005": {
            "endpoint_attribute": "scenes",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0201": {
            "endpoint_attribute": "thermostat",
            "attributes": {
              "0x001b": {
                "attribute_name": "ctrl_sequence_of_oper",
                "value": 2
              },
              "0x0000": {
                "attribute_name": "local_temperature",
                "value": 1960
              },
              "0x0016": {
                "attribute_name": "max_heat_setpoint_limit",
                "value": 3000
              },
              "0x0015": {
                "attribute_name": "min_heat_setpoint_limit",
                "value": 500
              },
              "0x0012": {
                "attribute_name": "occupied_heating_setpoint",
                "value": 500
              },
              "0x001e": {
                "attribute_name": "running_mode",
                "value": 0
              },
              "0x001c": {
                "attribute_name": "system_mode",
                "value": 0
              }
            },
            "unsupported_attributes": {
              "0x0000": {
                "attribute_name": "local_temperature"
              },
              "0x0002": {
                "attribute_name": "occupancy"
              },
              "0x0003": {
                "attribute_name": "abs_min_heat_setpoint_limit"
              },
              "0x0004": {
                "attribute_name": "abs_max_heat_setpoint_limit"
              },
              "0x0005": {
                "attribute_name": "abs_min_cool_setpoint_limit"
              },
              "0x0006": {
                "attribute_name": "abs_max_cool_setpoint_limit"
              },
              "0x0012": {
                "attribute_name": "occupied_heating_setpoint"
              },
              "0x0007": {
                "attribute_name": "pi_cooling_demand"
              },
              "0x0008": {
                "attribute_name": "pi_heating_demand"
              },
              "0x0029": {
                "attribute_name": "running_state"
              },
              "0x0011": {
                "attribute_name": "occupied_cooling_setpoint"
              },
              "0x0013": {
                "attribute_name": "unoccupied_cooling_setpoint"
              },
              "0x0014": {
                "attribute_name": "unoccupied_heating_setpoint"
              },
              "0x0017": {
                "attribute_name": "min_cool_setpoint_limit"
              },
              "0x0018": {
                "attribute_name": "max_cool_setpoint_limit"
              },
              "0x001c": {
                "attribute_name": "system_mode"
              },
              "0x001e": {
                "attribute_name": "running_mode"
              }
            }
          },
          "0xef00": {
            "endpoint_attribute": "tuya_manufacturer",
            "attributes": {
              "0x0569": {
                "attribute_name": "battery_state",
                "value": 0
              },
              "0x0267": {
                "attribute_name": "heating_setpoint",
                "value": 50
              },
              "0x0266": {
                "attribute_name": "local_temperature",
                "value": 196
              },
              "0x016c": {
                "attribute_name": "schedule_enabled",
                "value": 1
              },
              "0x0165": {
                "attribute_name": "state",
                "value": 0
              },
              "0x021b": {
                "attribute_name": "temperature_calibration",
                "value": 0
              }
            },
            "unsupported_attributes": {}
          },
          "0x000d": {
            "endpoint_attribute": "analog_output",
            "attributes": {
              "0x0100": {
                "attribute_name": "application_type",
                "value": 9
              },
              "0x001c": {
                "attribute_name": "description",
                "value": "Temperature Offset"
              },
              "0x0075": {
                "attribute_name": "engineering_units",
                "value": 62
              },
              "0x0041": {
                "attribute_name": "max_present_value",
                "value": 6
              },
              "0x0045": {
                "attribute_name": "min_present_value",
                "value": -6
              },
              "0x0055": {
                "attribute_name": "present_value",
                "value": -3.0
              },
              "0x006a": {
                "attribute_name": "resolution",
                "value": 1
              }
            },
            "unsupported_attributes": {
              "0x0068": {
                "attribute_name": "relinquish_default"
              },
              "0x0055": {
                "attribute_name": "present_value"
              }
            }
          }
        },
        "out_clusters": {
          "0x000a": {
            "endpoint_attribute": "time",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0019": {
            "endpoint_attribute": "ota",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      }
    }
  }
}

Ein Zigbee-Gerät muss in keiner Weise mit Tuya verbunden sein, wenn es per Conbee/Skyconnect/… mit ZHA oder Z2M verbunden ist. Eine wirkliche Rolle spielt hier tatsächlich der Qirk und wie gut sich das Thermostat an den Zigbee-Standard hält.

Leider ist mir auch aufgefallen, dass viele “günstige” Hersteller gerne mal den Lieferanten wechseln, welcher die Implementation dann anders gemacht hat, aber die gleiche Modellnummer verwendet. Und dann geht plötzlich ein beim vermeintlich gleichen Gerät funktionierender Quirk nicht mehr.

Ich gehe daher stark davon aus, dass hier ein solcher oder ähnlicher Fall vorliegt und dementsprechend ggf. ein angepasster Quirk her muss.

Um aber eventuell ein wenig mehr Input zu erhalten, bekommst du denn eine Fehlermeldung, wenn du versuchst die Temperatur über HA einzustellen? Ggf. ist der Log hilfreich.

Danke für die Info.
Hm, ärgerlich mit dem Hersteller.

Nein, ich krieg keine Fehlermeldung. Wo finde ich die Logs?

Die Logs findest du unter “Einstellungen” → “System” → “Protokolle”.
Ich habe beispielsweise die Meldung “Failed to write attribute system_mode=<SystemMode.Off: 0>: <Status.INVALID_VALUE: 135>” im Log, wenn ich versuche mein Bosch Thermostat auszuschalten. Falls das von mir beschriebene Problem zutrifft, dürfte ein ähnlicher Fehler a la “Failed to write attribute…” in deinem Log zu finden sein. Die Vermutung mit dem fehlerhaften Quirk könnte auch den Zustand “Unbekannt” für den Sensor “HLK-Aktion” erklären.

Deswegen steigen viele von zha auf z2m (zigbee2mqtt) um.

Ist denn in Better Thermostat überhaupt das richtige Thermostat hinterlegt ?

1 „Gefällt mir“

@pdsccode Bei mir kommen da gar keine Logs bezüglich des Thermostats oO Muss ich die für die Entität erst mal einstellen?

@maxe Hm, würde ungern Umsteigen, aber wenn das die einzige Möglichkeit ist, werd ich wohl das migrieren müssen -.-

Ja, ist richtig hinterlegt, ich (akutell noch) nur das eine

Lag tatsächlich am Quirk! Habe das passende gefunden und klappt jetzt wunderbar :slight_smile: