Royal Gardineer Ventile (ZigBee) zur Gartenbewässerung

Hallo Zusammen
Ich haben von Pearl 2 Royal Gardineer Ventile (ZigBee), die von ZHA erkannt werden, aber leider nur mit den Entitäten zur Sendestärke.
Im Netz habe ich eine Python/ZigPy-Datei ( ts0601_valve.py) gefunden, die das erweiterte Erkennen der Entitäten ermöglichen soll..... aber wie und wo bringe ich HA dazu die zu benutzen? Einfach mal blind nach \HA-IP\config\custom_components\zha_toolkit\ts0601_valve.py kopieren hilft anscheinend nicht

https://github.com/zigpy/zha-device-handlers/blob/71c95b76751ada487314eda2bc3bde5246f7dea0/zhaquirks/tuya/ts0601_valve.py

Habe jetzt 1/2 Jahr auf die Lieferung gewartet, aber wenn ich nicht kurzfristig eine Lösung finde schicke ich sie zurück.

Hat von Euch jemand eine Idee?

Nachdem ich bisher nicht so nicht weiter gekommen war habe ich meinen alten Lidl-Hub reaktiviert und mit der Tuya-App lässt sich das Ventil steuer.

Also voller Optimismus Simons Videos geschaut und Tuya in mein HA integriert. Hat alles prima geklappt....bis auf die Tatsache, dass das Ventil unsupported jetzt ohne Entitäten im HA ist 😥

Erledigt - Nachdem sich das Ventil nicht mal Dauerhaft in der Tuya-App einbinden ließ schicke ich die Ventile zurück.

Wenn jemand eine HA-kompatiblen Alternative kennt bin ich an einem Tip interessiert

Moin,

deine Ventile kenne ich nicht. Ich habe bei mir Hunter oder Rainbird Ventile 230V eingebaut. Die steuere ich ganz einfach jeweils über einen Shelly 1. Funktioniert ohne Probleme.

viel Spass noch

Jens

Leider habe ich an der Stelle keine 220v verlegt

Hallo Zusammen

Kurzes Update: Ich bin fündig geworden 😀

Woox R7060 (https://www.amazon.de/gp/product/B08M9RWQP6/ref=ppx_od_dt_b_asin_title_s00?ie=UTF8&psc=1)

Vom Design nicht ganz so stylisch aber mit je 4 Batterien besser mit Strom versorgt. Bei der Bestellung waren die auch noch ca. 7€ preiswerter.

Einbingung unter ZHA kein Problem. Entitäten: ON/OFF, Batterie und wenn man will 2x was zum Empfang

@balear59 Hallo, könnte man die Hunter Magnetventile auch über eine Zigbee Steckdose steuern?

Leider ein kleines Update: 2 der 3 gekauften Ventile gehen bei mir in ZHA immer wieder verloren. Über Tuya angemeldet auf einem Silverquest/Lidl-Hub klappt die Integration bisher stabil - allerdings nur mit der ON/OFF-Entität

Willkommen im Forum!

Sollte eigentlich nichts gegen sprechen

@__alex__ Moin,

kenne dein Gerät nicht, aber es sollte wohl funktionieren. Eigentlich braucht man ja nur einen einfachen Schalter. (Strom an oder Strom aus). Ich habe den Shelly 1 in eine "wasserdichte" Verteilerdose gebaut und auf den Deckel eine "wasserdichten" mechanischen Schalter gesetzt. So bin ich in der Lage das Ventil manuell vor Ort zu schalten oder über Homeassistant.

viel Spass noch

Jens

Hallo zusammen,

ich bin mehr durch Zufall auf das Thema hier im Forum gestoßen.
@klaus123, dir wird es vermutlich nicht mehr viel helfen. Vielleicht aber ja einem anderen, der zu gegebener Zeit hier vorbei schaut.

Diese Thema wurde schonmal im offiziellen Forum der HomeAssitant Community diskutiert. Hier der Link dazu Royal Gardineer garden water valve - Hardware - Home Assistant Community

Kurz zusammen gefass, sind also folgende Schritte zu tun.

  1. in der “configuration.yaml” folgende Zeilen hinzufügen …
zha:
  custom_quirks_path: /config/custom_zha_quirks/
  1. einen neuen Ordner mit dem Name “custom_zha_quirks” im “config”-Verzeichnis erstellen
  2. in dem zuvor erstellten Ordner nun eine neue Datei mit dem Namen “ts0601_valve.py” anlegen.
  3. in die eben erstellte Datei folgenden Inhalt kopieren …
"""Collection of Tuya Valve devices e.g. water valves, gas valve etc."""
from typing import Dict

from zigpy.profiles import zha
from zigpy.quirks import CustomDevice
import zigpy.types as t
from zigpy.zcl.clusters.general import Basic, Groups, Identify, OnOff, Ota, Scenes, Time
from zigpy.zcl.clusters.smartenergy import Metering

from zhaquirks import DoublingPowerConfigurationCluster  
from zhaquirks import Bus
from zhaquirks.const import (
    DEVICE_TYPE,
    ENDPOINTS,
    INPUT_CLUSTERS,
    MODELS_INFO,
    OUTPUT_CLUSTERS,
    PROFILE_ID,
)
from zhaquirks.tuya import (
    TuyaLocalCluster,
    TuyaPowerConfigurationCluster,
)
from zhaquirks.tuya.mcu import (
    DPToAttributeMapping,
    EnchantedDevice,
#    TuyaDPType,
    TuyaMCUCluster,
    TuyaOnOff,
    TuyaPowerConfigurationCluster,
)


class TuyaValveWaterConsumed(Metering, TuyaLocalCluster):
    """Tuya Valve Water consumed cluster."""

    VOLUME_LITERS = 0x0007

    """Setting unit of measurement."""
    _CONSTANT_ATTRIBUTES = {0x0300: VOLUME_LITERS}
    

class TuyaValveManufCluster(TuyaMCUCluster):
    """On/Off Tuya cluster with extra device attributes."""

    attributes = TuyaMCUCluster.attributes.copy()
    attributes.update(
        {
            0xEF01: ("time_left", t.uint32_t, True),
            0xEF02: ("state", t.enum8, True),
            0xEF03: ("last_valve_open_duration", t.uint32_t, True),
            0xEF04: ("dp_6", t.uint32_t, True),
        }
    )

    dp_to_attribute: Dict[int, DPToAttributeMapping] = {
        1: DPToAttributeMapping(
            TuyaOnOff.ep_attribute,
            "on_off",
         #   dp_type=TuyaDPType.BOOL,
        ),
        5: DPToAttributeMapping(
            TuyaValveWaterConsumed.ep_attribute,
            "current_summ_delivered",
         #   TuyaDPType.VALUE,
        ),
        6: DPToAttributeMapping(
            TuyaMCUCluster.ep_attribute,
            "dp_6",
          #  TuyaDPType.VALUE,
        ),
        7: DPToAttributeMapping(
             TuyaPowerConfigurationCluster.ep_attribute,
             # DoublingPowerConfigurationCluster.ep_attribute,
            "battery_percentage_remaining",
          #  TuyaDPType.VALUE,
        ),
        11: DPToAttributeMapping(
            TuyaMCUCluster.ep_attribute,
            "time_left",
         #   TuyaDPType.VALUE,
        ),
        12: DPToAttributeMapping(
            TuyaMCUCluster.ep_attribute,
            "state",
         #   TuyaDPType.VALUE,
        ),
        15: DPToAttributeMapping(
            TuyaMCUCluster.ep_attribute,
            "last_valve_open_duration",
          #  TuyaDPType.VALUE,
        ),
    }

    data_point_handlers = {
        1: "_dp_2_attr_update",
        5: "_dp_2_attr_update",
        6: "_dp_2_attr_update",
        7: "_dp_2_attr_update",
        11: "_dp_2_attr_update",
        12: "_dp_2_attr_update",
        15: "_dp_2_attr_update",
    }


class TuyaValve(CustomDevice):
    """Tuya valve device."""
    
    def __init__(self, *args, **kwargs):
        """Init device."""
        self.battery_bus = Bus()
        super().__init__(*args, **kwargs)


    signature = {
        MODELS_INFO: [("_TZE200_2wg5qrjy", "TS0601")],
        # SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=81, device_version=1,
        # input_clusters=[0, 4, 5, 61184], output_clusters=[25, 10])
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaValveManufCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            }
        },
    }

    replacement = {
        ENDPOINTS: {
            1: {
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaOnOff,
                    TuyaValveWaterConsumed,
                    TuyaPowerConfigurationCluster,
                    # DoublingPowerConfigurationCluster,
                    TuyaValveManufCluster,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            }
        }
    }
  1. HomeAssistant neustarten.

Damit sollte es funktionieren.

1 „Gefällt mir“

Trotzdem vielen Dank.

Im Nachhinein hatte ich zu den Ventilen allerdings auch gelesen, dass sie einen sehr hohen Durchströmwiderstand haben sollen - für viele Anwendungen auch ei KO-Kriterium

Super. Vielen Dank! Habe gerade zwei auf dem Schreibtisch und wollte sie schon frustriert zurückschicken.

Moin @manu93,
Dein Code würde nur bei ZHA funktionieren, richtig? Ich benutze Z2M und stehe vor der Entscheidung, ob ich mir das Ventil zulege, oder nicht. Hast du Erfahrung, ob es, bzw. wie es mit Z2M funktioniert/funktionieren würde?
Liebe Grüße!

Hallo @Exultabo,
ich bin zwischenzeitlich von ZHA zu Z2M gewechselt.
Das Ventil wird sogar ganz offiziell von Z2M unterstützt.

https://www.zigbee2mqtt.io/devices/ZVG1.html