Outils pour utilisateurs

Outils du site


linux:homeassitant (lu 7305 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
linux:homeassitant [04-01-2026 11:26] – créée edmc73linux:homeassitant [07-07-2026 19:44] (Version actuelle) – [Neato] edmc73
Ligne 15: Ligne 15:
  
   bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/vm/haos-vm.sh)"   bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/vm/haos-vm.sh)"
-  + 
 +===== HACS ===== 
 + 
 +Ajout de HACS 
 + 
 +https://www.hacs.xyz/docs/use/download/download/#to-download-hacs 
 + 
 +Il faut cliquer sur le lien qu'il donne (par exemple:  https://my.home-assistant.io/redirect/supervisor_addon/?addon=cb646a50_get&repository_url=https%3A%2F%2Fgithub.com%2Fhacs%2Faddons ) 
 + 
 +Et ensuite, valider l'url permettant d'accéder à homeassistant, puis une connexion se fera avec votre compte github avec un code à copier/coller 
 + 
 +Après il suffit de suivre la doc -> https://www.hacs.xyz/docs/use/configuration/basic/ 
 + 
 +===== Widget durée trajet ===== 
 + 
 +Depuis le temps que je voulais retrouver un widget que proposait Google Maps il y a fort longtemps, je peux enfin le faire maintenant grâce à Home Assistant ! 
 + 
 +  * Ajouter une intégration **Temps de trajet Waze** 
 +  * Mettez le nom, le point de départ, le point d'arrivé et la région 
 +    * Repérer l'id de l'entité (ex: ''sensor.waze_travel_time''
 +  * Installez l'app Home Assistant Companion sur Android 
 +  * Ajouter un widget Home Assistant / Widget de modèle 
 +  * Et copier / adapté le code ci-dessous (le temps de trajet par exemple) 
 + 
 +<code> 
 +{% set raw_value = states('sensor.waze_travail') %} 
 +{% set entity_value = raw_value | int %} 
 +{% if entity_value <= 14 %} 
 +    {% set color = '#05DF72' %} 
 +{% elif entity_value > 14 and entity_value <= 20 %} 
 +    {% set color = '#FDC745' %} 
 +{% elif entity_value > 20 and entity_value <= 25 %} 
 +    {% set color = '#FB2C36' %} 
 +{% else %} 
 +    {% set color = '#0C0A09' %} 
 +{% endif %} 
 +<div style="text-align: center;"> 
 +    Trajet travail<br> 
 +    <span style="color: {{ color }};">{{ entity_value }} min</span> {{ state_attr('sensor.waze_travail', 'distance') }} km 
 +</div> 
 +</code> 
 + 
 + 
 +===== UPS USB ===== 
 + 
 +Paramètres -> Modules complémentaires -> Network UPS Tools 
 + 
 +Dans configuration, mettez un nom d'utilisateur et un mot de passe. 
 + 
 +Ensuite, il est important de redémarrer complètement la VM (et pas juste redémarrer HA) 
 + 
 +Ajouter une intégration **Network UPS Tools (NUT)** et renseignez le hostname comme il est écrit sur la page du module (ex: a0d7b954-nut ) et renseignez votre user password 
 + 
 +===== Objets à acheter ===== 
 + 
 +==== Concentrateur Zigbee/Thread/Matter ==== 
 + 
 +  * SMLIGHT MR1U -> https://www.domadoo.fr/fr/produits-de-domotique/8370-smlight-adaptateur-usb-ethernet-poe-zigbee-et-thread-cc2652p-efr32mg21-slzb-mr1u.html 
 + 
 +==== Commutateur ==== 
 +  * Sonoff ZBMINIL2 (sans neutre) 11€ -> https://www.domadoo.fr/fr/peripheriques/6619-sonoff-commutateur-intelligent-sans-neutre-zigbee-30-zbminil2-6920075778298.html?domid=117 
 +  * Sonoff ZBMINIR2 (module 10A) 7.50€ -> https://www.domadoo.fr/fr/peripheriques/7474-sonoff-module-zigbee-commutateur-onoff-10a-zbminir2-compatible-zigbee2mqtt-et-home-assistant.html?domid=117 
 +  * Nous (simple) 10€ -> https://www.domadoo.fr/fr/objets-communicants/6797-nous-module-connecte-zigbee-tuya-et-zigbee2mqtt-onoff-10a-5905072800266.html 
 + 
 + 
 +==== Ampoules ===== 
 + 
 +  * IKEA (meilleur qualité/prix) 
 +  * innr -> https://www.domadoo.fr/fr/peripheriques/6612-innr-ampoule-connectee-e27-zigbee-30-rgbw-blanc-reglable.html?domid=117 
 +  * Hue essential 
 +  * Hue (top mais cher) 
 + 
 +  * Tuya 29€ les 5 -> https://fr.aliexpress.com/item/1005006266102655.html?spm=a2g0o.order_list.order_list_main.20.21ef5e5bPzvGsa&gatewayAdapt=glo2fra#nav-specification 
 + 
 +==== Prises connectées ==== 
 +  * IKEA (+ consommation) 10€ -> https://www.ikea.com/fr/fr/p/inspelning-fiche-connecte-compteur-denergie-40569839/ 
 +  * NOUS (compact) + consommation 17€ -> https://www.domadoo.fr/fr/prises-connectees/6165-nous-prise-intelligente-zigbee-30-mesure-de-consommation-5907772033517.html?domid=117 
 + 
 +==== Capteurs ==== 
 +  * Température / humidité 
 +    * IKEA avec affichage 8€ -> https://www.ikea.com/fr/fr/p/timmerflotte-capteur-dhumidite-temperature-connecte-30597606/ 
 +    * Sonoff avec écran, 4 pour 50€ (12€ seul) -> https://www.domadoo.fr/fr/suivi-energie/6968-sonoff-pack-4x-capteurs-de-temperature-et-d-humidite-zigbee-ecran.html 
 +  * Fuite d'eau 
 +    * IKEA 8€ -> https://www.ikea.com/fr/fr/p/klippbok-detecteur-de-fuites-deau-connecte-30604193/ 
 +  * Ouverture porte 
 +    * IKEA 8€ -> https://www.ikea.com/fr/fr/p/myggbett-capteur-fenetre-porte-connecte-00603864/ 
 +  * Détecteur de présence humaine (différent de mouvement) 
 +    * Sonoff 12€ -> https://www.domadoo.fr/fr/alarme-connectee/6827-sonoff-capteur-de-presence-humaine-zigbee-30-technologie-radar.html 
 + 
 + 
 +===== intégration à Google Home ===== 
 + 
 +https://www.youtube.com/watch?v=goNB9Cgh_Fk&t=5s 
 + 
 +===== Neato ===== 
 + 
 +Reprendre le controle sur son robot aspirateur -> https://github.com/Philip2809/neato-connected 
 + 
 +===== ZHA Device Handlers ===== 
 + 
 +Les gestionnaires de périphériques ZHA sont des implémentations personnalisées de particularités pour Zigpy , la bibliothèque qui fournit la prise en charge Zigbee pour le composant ZHA dans Home Assistant. 
 + 
 +https://github.com/zigpy/zha-device-handlers/tree/dev 
 + 
 +ça m'a sauvé la vie pour mon module **Sone Smart One Variateur Zigbee 200W – Micromodule Dimmer Éclairage TRIAC 39×39×18 mm, Compatible Tuya Smart Life, Alexa, Google Home, Home Assistant (Zigbee2MQTT)** 
 + 
 +Il suffit de rajouter ça dans le fichier de configuration.yaml 
 +<code> 
 +zha: 
 +  custom_quirks_path: /config/custom_zha_quirks/ 
 +</code> 
 + 
 +De créer le répertoire ''/custom_zha_quirks'' et de créer le fichier suivant à l'intérieur 
 + 
 +<code python file ts110e.py> 
 +"""Tuya Dimmer TS110E Custom Quirk.""" 
 + 
 +from typing import Any, Final, Union 
 + 
 +from zigpy.profiles import zgp, zha 
 +import zigpy.types as t 
 +from zigpy.zcl import foundation 
 +from zigpy.zcl.clusters.general import ( 
 +    Basic, 
 +    GreenPowerProxy, 
 +    Groups, 
 +    LevelControl, 
 +    OnOff, 
 +    Ota, 
 +    Scenes, 
 +    Time, 
 +
 +from zigpy.zcl.foundation import ZCLAttributeDef 
 + 
 +from zhaquirks.const import ( 
 +    DEVICE_TYPE, 
 +    ENDPOINTS, 
 +    INPUT_CLUSTERS, 
 +    MODELS_INFO, 
 +    OUTPUT_CLUSTERS, 
 +    PROFILE_ID, 
 +
 +from zhaquirks.tuya import ( 
 +    NoManufacturerCluster, 
 +    TuyaDimmerSwitch, 
 +    TuyaZBExternalSwitchTypeCluster, 
 +
 + 
 +TUYA_LEVEL_ATTRIBUTE = 0xF000 
 +TUYA_BULB_TYPE_ATTRIBUTE = 0xFC02 
 +TUYA_MIN_LEVEL_ATTRIBUTE = 0xFC03 
 +TUYA_MAX_LEVEL_ATTRIBUTE = 0xFC04 
 +TUYA_CUSTOM_LEVEL_COMMAND = 0x00F0 
 + 
 + 
 +class TuyaLevelPayload(t.Struct): 
 +    """Tuya Level payload.""" 
 + 
 +    level: t.uint16_t 
 +    transtime: t.uint16_t 
 + 
 + 
 +class TuyaBulbType(t.enum8): 
 +    """Tuya bulb type.""" 
 + 
 +    LED = 0x00 
 +    INCANDESCENT = 0x01 
 +    HALOGEN = 0x02 
 + 
 + 
 +class F000LevelControlCluster(NoManufacturerCluster, LevelControl): 
 +    """LevelControlCluster that reports to attrid 0xF000.""" 
 + 
 +    class ServerCommandDefs(LevelControl.ServerCommandDefs): 
 +        """Server command definitions.""" 
 + 
 +        moveToLevelTuya = foundation.ZCLCommandDef(  # noqa: N815 
 +            id=TUYA_CUSTOM_LEVEL_COMMAND, 
 +            schema={"payload": TuyaLevelPayload}, 
 +            is_manufacturer_specific=False, 
 +        ) 
 + 
 +    class AttributeDefs(LevelControl.AttributeDefs): 
 +        """Attribute definitions.""" 
 + 
 +        manufacturer_current_level: Final = ZCLAttributeDef( 
 +            id=TUYA_LEVEL_ATTRIBUTE, type=t.uint16_t 
 +        ) 
 +        bulb_type: Final = ZCLAttributeDef( 
 +            id=TUYA_BULB_TYPE_ATTRIBUTE, type=TuyaBulbType 
 +        ) 
 +        manufacturer_min_level: Final = ZCLAttributeDef( 
 +            id=TUYA_MIN_LEVEL_ATTRIBUTE, type=t.uint16_t 
 +        ) 
 +        manufacturer_max_level: Final = ZCLAttributeDef( 
 +            id=TUYA_MAX_LEVEL_ATTRIBUTE, type=t.uint16_t 
 +        ) 
 + 
 +    def _update_attribute(self, attrid, value): 
 +        if attrid == TUYA_LEVEL_ATTRIBUTE: 
 +            self.debug("Getting brightness %s", value) 
 +            value = (value + 4 - 10) * 254 // (1000 - 10) 
 +            attrid = 0x0000 
 +        super()._update_attribute(attrid, value) 
 + 
 +    async def command( 
 +        self, 
 +        command_id: Union[foundation.GeneralCommand, int, t.uint8_t], 
 +        *args, 
 +        manufacturer: Union[int, t.uint16_t] | None = None, 
 +        expect_reply: bool = True, 
 +        tsn: Union[int, t.uint8_t] | None = None, 
 +        **kwargs: Any, 
 +    ): 
 +        if command_id in (0x0000, 0x0001, 0x0004): 
 +            if kwargs and "level" in kwargs: 
 +                level = kwargs["level"
 +            elif args: 
 +                level = args[0] 
 +            else: 
 +                level = 0 
 +            brightness = level * (1000 - 10) // 254 + 10 
 +            self.debug("Setting brightness to %s", brightness) 
 +            return await super().command( 
 +                TUYA_CUSTOM_LEVEL_COMMAND, 
 +                TuyaLevelPayload(level=brightness, transtime=0), 
 +                manufacturer=manufacturer, 
 +                expect_reply=expect_reply, 
 +                tsn=tsn, 
 +            ) 
 +        return super().command( 
 +            command_id, *args, manufacturer, expect_reply, tsn, **kwargs 
 +        ) 
 + 
 + 
 +class DimmerSwitchWithNeutral1Gang(TuyaDimmerSwitch): 
 +    """Tuya Dimmer Switch Module With Neutral 1 Gang.""" 
 + 
 +    signature = { 
 +        MODELS_INFO: [("_TZ3210_ngqk6jia", "TS110E")], 
 +        ENDPOINTS: { 
 +            1: { 
 +                PROFILE_ID: zha.PROFILE_ID, 
 +                DEVICE_TYPE: zha.DeviceType.DIMMABLE_LIGHT, 
 +                INPUT_CLUSTERS:
 +                    Basic.cluster_id,    # 0x0000 
 +                    0x0003,              # Identify (Ajouté) 
 +                    Groups.cluster_id,   # 0x0004 
 +                    Scenes.cluster_id,   # 0x0005 
 +                    OnOff.cluster_id,    # 0x0006 
 +                    LevelControl.cluster_id, # 0x0008 
 +                    0x1000,              # LightLink (Ajouté) 
 +                    TuyaZBExternalSwitchTypeCluster.cluster_id, # 0xe001 
 +                ], 
 +                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id], 
 +            }, 
 +            242: { 
 +                PROFILE_ID: zgp.PROFILE_ID, 
 +                DEVICE_TYPE: zgp.DeviceType.PROXY_BASIC, 
 +                INPUT_CLUSTERS: [], 
 +                OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id], 
 +            }, 
 +        }, 
 +    } 
 +    replacement = { 
 +        ENDPOINTS: { 
 +            1: { 
 +                PROFILE_ID: zha.PROFILE_ID, 
 +                DEVICE_TYPE: zha.DeviceType.DIMMABLE_LIGHT, 
 +                INPUT_CLUSTERS:
 +                    Basic.cluster_id, 
 +                    0x0003, 
 +                    Groups.cluster_id, 
 +                    Scenes.cluster_id, 
 +                    OnOff.cluster_id, 
 +                    F000LevelControlCluster, # Applique le traitement spécifique Tuya 
 +                    0x1000, 
 +                    TuyaZBExternalSwitchTypeCluster, 
 +                ], 
 +                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id], 
 +            }, 
 +            242: { 
 +                PROFILE_ID: zgp.PROFILE_ID, 
 +                DEVICE_TYPE: zgp.DeviceType.PROXY_BASIC, 
 +                INPUT_CLUSTERS: [], 
 +                OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id], 
 +            }, 
 +        }, 
 +    } 
 +</code> 
 + 
 +Redémarrer Home Assistant, supprimer le module et le reintégrer.
linux/homeassitant.1767525984.txt.gz · Dernière modification : de edmc73