Pilotez vos radiateurs électriques gratuitement avec tiko / Mon Pilotage Elec

Bonjour à tous,

J’ai récemment fait installer la solution tiko chez moi (aussi nommé Mon Pilotage Elec en marque blanche).

J’ai créé un add-on permettant de faire remonter les informations de chauffage et de consommation dans Home Assistant, ainsi que de pouvoir contrôler la température cible et les modes :

Je l’utilise depuis plusieurs jours et je considère que l’add-on est suffisamment stable pour le partager et le faire tester.

La configuration est très simple et nécessite seulement :

  • Un broker MQTT (comme l’add-on Mosquitto)
  • L’intégration MQTT
  • Votre email et mot de passe tiko

Les entités sont ensuite créées automatiquement dans Home Assistant.

Étant utilisateur de tiko France pour ma part, je n’ai pu tester que ce cas de figure.

Si vous êtes utilisateur de Mon Pilotage Elec (Mise à jour : L’add-on fonctionne maintenant correctement avec Mon Pilotage Elec, merci @LeCed pour les tests !) ou tiko Suisse, n’hésitez pas à tester et à m’indiquer si vous rencontrez un problème, il est possible qu’il y’ait des endpoints spécifiques à configurer de mon côté. :wink:

6 « J'aime »

Salut,
Bravo pour le boulot, mais effectivement, concernant l’installation ‹ Mon Pilotage Elec ›, cela ne fonctionne pas, ça doit être du au fait que toutes les requêtes qui passent par : ‹ https://particuliers-tiko.fr/ › doivent passer par ‹ https://portal-engie.tiko.ch/ ›

Le journal en dessous même si je pense pas qu’il serve vraiment ^^

[21:19:57] INFO: MQTT_BROKER_URL not set, using MQTT addon service...
[21:19:57.609] ERROR (7): Failed to fetch data from Tiko; are the credentials correct?
    err: {
      "type": "ZodError",
      "message": "[\n  {\n    \"code\": \"invalid_type\",\n    \"expected\": \"object\",\n    \"received\": \"null\",\n    \"path\": [\n      \"data\",\n      \"logIn\"\n    ],\n    \"message\": \"Expected object, received null\"\n  }\n]",
      "stack":
          ZodError: [
            {
              "code": "invalid_type",
              "expected": "object",
              "received": "null",
              "path": [
                "data",
                "logIn"
              ],
              "message": "Expected object, received null"
            }
          ]
              at get error [as error] (file:///app/node_modules/zod/lib/index.mjs:538:31)
              at doTikoRequest (file:///app/dist/tiko/client.js:132:31)
              at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
              at async TikoClient.getToken (file:///app/dist/tiko/client.js:15:28)
              at async TikoClient.fetchData (file:///app/dist/tiko/client.js:29:29)
              at async file:///app/dist/index.js:16:27
      "aggregateErrors": [
        {
          "type": "Object",
          "message": "Expected object, received null",
          "stack":
              
          "code": "invalid_type",
          "expected": "object",
          "received": "null",
          "path": [
            "data",
            "logIn"
          ]
        }
      ],
      "issues": [
        {
          "code": "invalid_type",
          "expected": "object",
          "received": "null",
          "path": [
            "data",
            "logIn"
          ],
          "message": "Expected object, received null"
        }
      ],
      "name": "ZodError"
    }
1 « J'aime »

Merci pour ton retour ! Je viens de publier la version 1.0.4 qui ajoute l’option Mon Pilotage Elec, est-ce que tu pourrais réessayer ?

Pas de soucis, j’ai vu ça sur ton git oui ^^

Là pour le coup, ça se lance puis ça crashe en quelques secondes & j’ai que ça dans le journal

Sachant que dans le matos Tiko fourni par Mon Pilotage Elec, il n’y a pas de module sans fil en plus du module du radiateur (Qui ne contient qu’un capteur de température et pas de capteur d’humidité)

  "code": "invalid_type",
          "expected": "number",
          "received": "null",
          "path": [
            "data",
            "properties",
            0,
            "rooms",
            0,
            "humidity"
          ],
          "message": "Expected number, received null"
        },
        {
          "code": "invalid_type",
          "expected": "number",
          "received": "null",
          "path": [
            "data",
            "properties",
            0,
            "rooms",
            1,
            "humidity"
          ],
          "message": "Expected number, received null"
        },
        {
          "code": "invalid_type",
          "expected": "number",
          "received": "null",
          "path": [
            "data",
            "properties",
            0,
            "rooms",
            2,
            "humidity"
          ],
          "message": "Expected number, received null"
        },
        {
          "code": "invalid_type",
          "expected": "number",
          "received": "null",
          "path": [
            "data",
            "properties",
            0,
            "rooms",
            3,
            "humidity"
          ],
          "message": "Expected number, received null"
        },
        {
          "code": "invalid_type",
          "expected": "number",
          "received": "null",
          "path": [
            "data",
            "properties",
            0,
            "rooms",
            4,
            "humidity"
          ],
          "message": "Expected number, received null"
        },
        {
          "code": "invalid_type",
          "expected": "number",
          "received": "null",
          "path": [
            "data",
            "properties",
            0,
            "rooms",
            5,
            "humidity"
          ],
          "message": "Expected number, received null"
        },
        {
          "code": "invalid_type",
          "expected": "number",
          "received": "null",
          "path": [
            "data",
            "properties",
            0,
            "rooms",
            6,
            "humidity"
          ],
          "message": "Expected number, received null"
        }
      ],
      "name": "ZodError"
    }
1 « J'aime »

Intéressant, est-ce que l’humidité est remontée dans ton application Mon Pilotage Elec ?

Nope, j’ai edit mon message d’au-dessus pendant que tu répondais

Sachant que dans le matos Tiko fourni par Mon Pilotage Elec, il n’y a pas de module sans fil en plus du module du radiateur (Qui ne contient qu’un capteur de température et pas de capteur d’humidité)

1 « J'aime »

J’ai publié la 1.0.5 qui devrait tolérer l’absence du capteur d’humidité :slight_smile:

J’ai l’impression que ça fonctionne en effet

[22:09:36] INFO: MQTT_BROKER_URL not set, using MQTT addon service...
[22:09:37.181] INFO (7): List of properties
    0: {
      "id": 100046344,
      "name": "Home"
    }
[22:09:37.248] INFO (7): Connected to MQTT broker
[22:09:37.248] INFO (7): Subscribing to topic
    topic: "homeassistant/status"
[22:09:37.250] INFO (7): Subscribing to topic
    topic: "homeassistant/climate/tiko_100052577/set"
[22:09:37.251] INFO (7): Subscribing to topic
    topic: "homeassistant/climate/tiko_100052588/set"
[22:09:37.251] INFO (7): Subscribing to topic
    topic: "homeassistant/climate/tiko_100052592/set"
[22:09:37.252] INFO (7): Subscribing to topic
    topic: "homeassistant/climate/tiko_100052606/set"
[22:09:37.252] INFO (7): Subscribing to topic
    topic: "homeassistant/climate/tiko_100052612/set"
[22:09:37.253] INFO (7): Subscribing to topic
    topic: "homeassistant/climate/tiko_100052620/set"
[22:09:37.253] INFO (7): Subscribing to topic
    topic: "homeassistant/climate/tiko_100052630/set"
[22:09:37.253] INFO (7): Connection ready

Merci pour ta réactivité ! Tu me confirmes que les capteurs de consommation et les entités thermostat apparaissent bien ? Et que les contrôles de la température et du mode fonctionnent correctement ?

Pas de soucis, merci à toi !
Désolé, petit soucis de mon côté, j’ai delete la mauvaise VM, j’ai du refaire mon install d’HA ^^

J’ai ça dans le dashboard qui est remonté en auto pour chacun des radiateurs
image
Je teste le reste

Pour tous les radiateurs, je n’ai que les entités heating_consumption
Et pour les appareil, idem


(Désolé je débute totalement sur HA, Homebridge me suffisait jusqu’à maintenant ^^)

1 « J'aime »

Hello, j’aime beaucoup l’idée de ton addon et le passage par MQTT. Par contre je ne suis pas sous HAOS et donc je n’ai pas de supervisor et autres add-on. Mais j’ai bien tout en Docker sur un pi4.
J’ai donc lancé ton docker à la main avec les différentes variables d’environnement dans un docker-compose.yml :

  tiko:
    container_name: tiko
    image: "ghcr.io/marvinroger/hass-addon-tiko-aarch64:1.0.5"
    restart: unless-stopped
    depends_on:
      - mosquitto
    environment:
      - TIKO_PROVIDER=tiko
      - TIKO_EMAIL="************"
      - TIKO_PASSWORD="****************"
      - MQTT_BROKER_URL="mqtt://mosquitto"
      - UPDATE_INTERVAL_MINUTES=1

Sachant que mosquitto est le nom de mon container avec MQTT.

Pourtant après lancement cela ne fonctionne pas car il ne trouve pas le mqtt. J’ai les erreurs suivantes en boucle :

[21:54:08] INFO: MQTT_BROKER_URL not set, using MQTT addon service…
[21:54:08] FATAL: MQTT_BROKER_URL is not set and no MQTT addon service is configured

Une idée ?

Merci
Stéphane

Est-ce que tu peux essayer la 1.0.6 ? Il y’avait en effet un problème dans l’envoi du message de discovery

Hello Stéphane !
Je n’avais pas envisagé ce cas d’usage, je viens de publier la 1.1.0 qui devrait autoriser l’add-on à fonctionner en dehors du contexte du Supervisor :wink:

Pas mieux.

Je te mets les premiers messages, après ça boucle sur les 2 MQTT_URL

curl: (6) Could not resolve host: supervisor
[22:24:22] ERROR: Something went wrong contacting the API
[22:24:23] INFO: MQTT_BROKER_URL not set, using MQTT addon service…
[22:24:23] FATAL: MQTT_BROKER_URL is not set and no MQTT addon service is configured

Merci

Tu utilises bien la 1.1.0 ? J’ai rajouté une ligne de logs à chaque branche et aucune des deux n’apparaît.

Un docker run --rm ghcr.io/marvinroger/hass-addon-tiko-aarch64:1.1.0 fonctionne bien de mon côté

Au top, encore merci pour le boulot !
On peut tout faire monter maintenant :slight_smile:


Juste un petit bug sur ‹ Hors Gel › & sur ‹ Off ›
Mais rien de bien grave !
Et la modif de température semble rester sans bug. Beau boulot !

Nos réponses se sont croisées. Mon précédent message était avec la 1.06.
Avec la 1.1.0, je passe le problème du supervisor et il me dit tourné en standalone.

Après quelques corrections dans mon docker-compose (avec les essais j’avais un peu le bazzar) cela fonctionne.

Merci pour le correctif ultra rapide.

Stéphane

Super, merci beaucoup pour l’aide ! L’add-on fonctionne donc officiellement avec Mon Pilotage Elec :smiley:

Pour la petite explication, ce ne sont pas des bugs, mais c’est le seul moyen que j’ai trouvé pour remonter toutes les informations dans Home Assistant.

Il y’a deux « limitations » :

  • Le seul moyen que j’ai trouvé pour afficher l’information « Le chauffage chauffe », information qu’on peut retrouver dans l’application tiko, c’est de définir deux modes, « Chauffe » et « Off ». C’est cliquable dans l’UI d’Home Assistant (et on ne peut pas désactiver le fait que ce soit cliquable malheureusement) mais c’est en fait en lecture seule, ça n’a pas d’impact derrière
  • Le preset « Hors Gel » fonctionne bien, mais définir le preset « Off » n’a pas d’effet. C’est une contrainte de l’API tiko, on ne peut pas éteindre un radiateur individuellement, on ne peut le faire que pour l’ensemble des radiateurs de la propriété. Donc le radiateur peut se retrouver dans le preset « Off » en même temps que tous les autres (d’où son existence dans l’UI), mais on ne peut pas le définir
2 « J'aime »

Génial, merci également pour ton retour !

1 « J'aime »