Closed SylvainDx closed 1 year ago
petit update, en ajoutant le dossier dans le openbasedir php le script a bien crée le fichier .env
mais j'ai toujours une 500 sur l'url de configuration avec le token
Hello, tu dois en réalité être le premier à l'essayer 😅 quelle est l'url du endpoint dans ton fichier Tiko.env? correspond elle a l'adresse d'accès à ton script?
ça devrait ressembler à https://tonip/tiko.php
est ce le cas?
Le lun. 6 mars 2023, 07:41, SylvainDx @.***> a écrit :
petit update, en ajoutant le dossier dans le openbasedir php le script a bien crée le fichier .env
mais j'ai toujours une 500 sur l'url de configuration avec le token
— Reply to this email directly, view it on GitHub https://github.com/noiwid/tiko_heating_api/issues/1#issuecomment-1455539902, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFML5A7CCG76KM2T5OK33IDW2WBK7ANCNFSM6AAAAAAVQWM3OI . You are receiving this because you are subscribed to this thread.Message ID: @.***>
quelle est la version de PHP qui tourne sur ton synology?
pour le savoir, il suffit de mettre un fichier php qui contient cette instruction :
<?php phpinfo(); >
profite-en pour regarder sur le phpinfo si tu trouves le paramètre short_open_tag à true.
Le lun. 6 mars 2023, 07:41, SylvainDx @.***> a écrit :
petit update, en ajoutant le dossier dans le openbasedir php le script a bien crée le fichier .env
mais j'ai toujours une 500 sur l'url de configuration avec le token
— Reply to this email directly, view it on GitHub https://github.com/noiwid/tiko_heating_api/issues/1#issuecomment-1455539902, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFML5A7CCG76KM2T5OK33IDW2WBK7ANCNFSM6AAAAAAVQWM3OI . You are receiving this because you are subscribed to this thread.Message ID: @.***>
l'existance de ton poste avec ta premiere page php m'a inciter a passer le pas vers tiko. mon installation date de vendredi dernier ;)
pour le .Env oui l'adresse correspond bien. j'ai essayé avec l'ip a la place du nom local même punition.
PHP Version 7.0.33 short_open_tag | On
Hello, il manquait une fonction PHP utilisée dans mon script ;)
Je viens de publier une seconde version du fichier qui corrige également quelques détails :
Peux-tu retenter? il faut supprimer le fichier tiko.env qui sera recréé au prochain passage ;)
Merci pour ces modifications ! il y a du changements ! ça me donne un peu de boulot en plus ;) a suivre
après activation du curl ça avance un peu plus loin. Je passe le login mot de passe puis "file not foud" tu appel un fichier heat.php non présent dans le dossier
j'ai remplacé par tiko.php, on va un peu plus loins avec les consignes pour HA. a suivre ;)
j'aurais pu lire jusqu'au bout avant de faire les manips :p la génération du fichier yaml est vide pour l'instant ^^
en remplaçant heat.php par tiko.php dans le fichier tiko.php le résultat est le même
Pour info, j'ai fait un petit retour arrière pour éprouver la vérification des droits ^^ ça fonctionne bien, et cela ne nécessite pas de modifier le open_base_dir comme je l'ai écrit plus haut.
en fait, l'affichage du code semble bloquer la page. en supprimant les lignes 626 à 628 j'obtient cela :
et en supprimant celles du bloc 5 j'ai une belle mise en page qui apparait :)
Hello, je viens de remettre une nouvelle version corrigée ; ) Il faut remettre le nouveau fichier PHP dans ton dossier et supprimer le fichier .env pour relancer le processus. Le fichier principal doit bien s'appeler tiko.php. Est-ce que ton fichier spyc.php est bien rempli ?
hmmm. il était vide le fichier spyc.php, quelle nouille de ne pas l'avoir vérifier ^^
J'imagine que c'est parce qu'a la première tentative il n'avait pas les droits pour le remplir.
2 options:
a devenir chèvre ... l'erreur 500 est de retour après la saisie du formulaire et aucun fichier n'est créé dans le dossier
1- Pour simplifier les questions de dossiers, met dans la variable $currentFolder ton path : /volume2/web/tiko/ 2- Vérifie que le fichier tiko.env contient bien les 4 variables attendues, et que le end_point URL correspond bien à l'URL d'accès à ton script PHP 3- Vérifie également que le fichier spyc.env contient la même chose que sur l'URL que j'ai mise au dessus
Si celà ne fonctionne toujours pas, tu devrais pouvoir débugger en ajoutant ces deux lignes en haut du fichier, juste après l'ouverture du PHP ;
error_reporting(E_ERROR);
ini_set('display_errors', '1');
rhaaaa pardon ma faute, a tripatouiller dans tous les sens j'étais en PHP5 et non 7. donc retour a la case départ ou presque, il n'y a plus le problème d'erreur de cible avec le heat mais les conversion en yaml ne se font toujours pas pour cause de fichier spyc.php vide
j'ai remplis le fichier spyc.php et la page s'affiche correctement !
au passage tu es sur de ce lien : Vertical Stack In Card : ##### ?
Effectivement, cette URL n'aurait jamais du se retrouver là 😅 Voici la bonne URL : https://github.com/ofekashery/vertical-stack-in-card
Le serveur Apache à besoin que le paramètre allow_url_fopen soit actif pour pouvoir aller chercher tout seul le contenu du fichier spyc.php, le problème doit venir de là ;)
Est-ce que tout est ok de ton côté ?
Pour une raison qui m'échappe, il y a un petit souci dans la config des automations H.A qui cause l'extinction régulière des radiateurs (le mode OFF est activé tout seul). J'ai déjà rencontré et corrigé ce problème sur une autre instance de H.A qui tourne chez moi et me permet de gérer les radiateurs de mon bureau, mais je n'arrive plus à me souvenir comment 😅.
Ce package que j'avais monté à la main tourne très bien, c'est lui qui m'a servi de base à monter le script qui autogénère l'installeur. J'ai du rater un truc... je vais creuser la question cet après-midi ;)
on doit toucher au but :) mais avant le reboot HA la vérificateur de config fait la tête sur les fichiers yaml
[140368657555104] The system cannot restart because the configuration is not valid: Error loading /config/configuration.yaml: 'utf-8' codec can't decode byte 0xb0 in position 8885: invalid start byte 13:13:15 – (ERREUR) Home Assistant WebSocket API The system cannot restart because the configuration is not valid: Error loading /config/configuration.yaml: 'utf-8' codec can't decode byte 0xb0 in position 8885: invalid start byte 13:13:15 – (ERREUR) Home Assistant Core Integration Unable to read file /config/packages/tiko/tiko.yaml: 'utf-8' codec can't decode byte 0xb0 in position 8885: invalid start byte 13:13:15 – (ERREUR) util/yaml/loader.py
J'imagine que tu as des accents dans le nom d'un de tes raditateur ? C'est également mon cas, cela ne devrait en théorie pas poser de problème. Dans le fichier tiko.yaml qui est généré, les accents s'affichent ils bien ? Tu peux le voir dès le début du fichier, dans les attributs "name" du bloc climate.
As tu d'autres caractères spéciaux dans les noms de tes radiateurs?
bon je pense que j'aurais heurté tous les murs disponibles. j'ai re-enregistré les fichier en UTF8 je ne sais pas pourquoi mon editeur de texte a modifier ça
par contre j'ai toujours un pb avec HA suite à la ligne ajoutée dans le configuration.yaml
le package doit être installé dans le dossier/fichier: /config/packages/tiko/tiko.yaml
la ligne dans le fichier /config/configuration.yaml doit être dans le bloc homeassistant: packages: !include_dir_merge_named packages/
en fait il faut ça dans le fichier configuration : homeassistant: packages: !include_dir_merge_named packages/
après c'est peut être la faute à une installation très fraiche ;)
il me semble que c'était précisé dans la doc ;)
il me semble que c'était précisé dans la doc ;)
ça c'est bas !
bon sinon il reste encore quelques murs ^^ c'est fou ^^
Bon, la phase de config s'est bien passée. J'ai créé les fichier yaml avec le bon encodage mis les bonnes entrées dans le configuration.yaml et HA a bien voulu redémarrer !
j'ai bien ajouté les compléments lovelace et créé cette magnifique carte personnalisée !
mais la aucune info ne remonte et les ordres ne passent pas non plus.
C'est mon premier package github, c'est formateur 😅
Tu devrais pouvoir vérifier si les infos sont bien accessibles par le endpoint en testant l'URL : https://tonip/tiko.php?hash=[ENDPOINT_TOKEN] -> à remplacer par la valeur que tu trouves dans le tiko.env
Il m'affiche en retour un tableau :
{
boost: false,
frost: false,
absence: false,
disableHeating: false,
bureau_1_cur: 18.6,
bureau_1_tar: 28,
bureau_1_dry: 47,
bureau_1_on: true,
entree_cur: 16.4,
entree_tar: 22.4,
entree_dry: 46,
entree_on: true,
bureau_2_cur: 17.9,
bureau_2_tar: 22.4,
bureau_2_dry: 42,
bureau_2_on: true
}
Regardes dans les logs de H.A, il devrait te donner quelques précisions ;)
rien ne vaux un gentil boulay qui débarque pour tester un produit ! { "boost":false, "frost":false, "absence":false, "disableHeating":false, "salon_cur":17.9, "salon_tar":17, "salon_dry":49, "salon_on":false, "palier_cur":20.3, "palier_tar":21, "palier_dry":50, "palier_on":true } les infos sont bonnes en sortie du php !
sync_temp_salon: Error executing script. Invalid data for call_service at pos 1: expected float for dictionary value @ data['temperature'] Error while executing automation automation.sync_temp_salon: expected float for dictionary value @ data['temperature']
Template variable error: 'value_json' is undefined when rendering '{% if (value_json.disableHeating) %} mdi:radiator-off {% else %} mdi:radiator-off {% endif %}' Template variable error: 'value_json' is undefined when rendering '{% if (value_json.boost) %} mdi:sun-thermometer {% else %} mdi:lightning-bolt-outline {% endif %}' Template variable error: 'value_json' is undefined when rendering '{% if (value_json.frost) %} mdi:snowflake-thermometer {% else %} mdi:snowflake-thermometer {% endif %}' Template variable error: 'value_json' is undefined when rendering '{% if (value_json.absence) %} mdi:door-closed-lock {% else %} mdi:door {% endif %}'
Error parsing value: 'value_json' is undefined (value: <!DOCTYPE html>
Unable to parse output as JSON: <!DOCTYPE html>
ça me semble un peu brut et avec de l'allemand dedans qui doit venir de l'integration termostat
C'est très bon signe ;)
Le premier endroit ou regarder, c'est dans H.A, Developer Tools, States, et rechercher "tiko_"
Tu devrais voir sensor.tiko_consumption avec en attribute un truc qui ressemble à ça :
today_total_wh: 15744
yesterday_total_same_time_wh: 452
last_month_total_wh: 328183
this_month_total_wh: 91169
last_month_total_same_day_wh: 67494
unit_of_measurement: W
friendly_name: Tiko_consumption
Ainsi que sensor.tiko_settings avec en attribute :
boost: false
frost: false
absence: false
disableHeating: false
bureau_1_cur: 18.7
bureau_1_tar: 24.4
bureau_1_dry: 47
bureau_1_on: true
entree_cur: 16.6
entree_tar: 22.4
entree_dry: 46
entree_on: true
bureau_2_cur: 18
bureau_2_tar: 22.4
bureau_2_dry: 42
bureau_2_on: true
friendly_name: Tiko_settings
Si c'est pas le cas, direction les logs de home assistant. Si c'est le cas, est-ce que les entités climate.salon, climate.palier sont là ? les temperatures dedans sont elles récupérées ? Voilà un exemple sur un mes radiateurs :
hvac_modes: heat, off
min_temp: 7
max_temp: 35
target_temp_step: 0.1
current_temperature: 18.7
temperature: 25
hvac_action: idle
friendly_name: Bureau 1
supported_features: 1
Wait, j'avais pas vu tes logs, ton synology renvoie une erreur 403 à ton home assistant, il doit y avoir un problème de droits.
c'est dans le fichier tiko.yaml l'appel il manque le tiko.php dans l'url ^^ palier_set_temp: '/usr/bin/curl -X POST http://192.168.1.16/tiko/?hash=11843de3
il faut que la variable ENDPOINT URL qui est dans le fichier tiko.env ressemble à ça: ENDPOINT_URL='http://192.168.1.16/tiko/tiko.php'
C'est bizarre qu'il ne l'ait pas récupérée tout seul à l'install 🤔
Il faut que tu corriges cette variable, et que tu récupère une mise à jour du fichier tiko.yaml via l'url d'install ;) il faut ensuite redémarrer H.A ;)
yep ça fonctionne a merveille !
Génial ;)
Bon, il me reste à fixer ce bug énervant qui éteint en boucle les radiateurs...
Merci beaucoup pour ton travail, ton support et ta patience !
pour alimenter la machine, j'ai essayé de me faire un thermostat individuel. et comme je suis curieux j'ai remis a false tous les true type: custom:better-thermostat-ui-card name: Buanderie entity: climate.buanderie eco_temperature: 5 disable_window: true disable_summer: true disable_heat: true disable_eco: true disable_off: true set_current_as_main: false
dès que j'active le bouton chauffe de la carte ça envoie le signal OFF à Tiko et ça l'enlève quand je desactive la chauffe
sur un radiateur changé en Chauffe. déclenché par le service climate.set_hvac_mode déclenche le Off de Tiko mais je ne sais pas qui il appelle ce .set_hvac_mode
par contre du coup il serait possible de savoir si un radiateur chauffe avec ce mode la non ?
Ok, j'ai trouvé d'où vient le bug ;)
Sur les entités climate en haut du fichier tiko.yaml, les heater doivent être
heater: switch.radiateurs_on_off
et non pas
heater: switch.radiateurs_off
Je viens de corriger le fichier PHP. Je n'avais pas créé ces switchs on_off pour rien 😅
Le système récupère toutes les 60 secondes les infos des radiateurs, donc en temps normal (= une fois le bug juste au dessus corrigé), si tu changes le statut d'un radiateur via l'APP TIKO (ou via une programmation), Home Assistant devrait le répercuter et réaffiché le le radiateur allumé dans les 60 secondes (idem pour les changements de température ou de mode).
Les consommations ne sont récupérées qu'une fois par heure.
J'ai trouvé pour la remonté d'état :) Dans la fonction sync_status_on tu cherches un statut "heat" qui n'existe pas a la place d'un statut "on"
id: sync_status_on_palier alias: sync_status_on_palier description: > on H.A startup or heater status change, check if heater is currently on to update the climate object in HA trigger: - platform: homeassistant event: start - platform: state entity_id: binary_sensor.palier_chauffage condition: - condition: state entity_id: binary_sensor.palier_chauffage state: heat
state: "on"
Merci pour ton retour, effectivement c'était un point que j'avais changé à la version 1.1, et corrigé à la version 1.2 ;) je pensais que mon problème d'extinction venait de là ;)
j'aurai du te le préciser, je pensais que tu reprendrai le fichier PHP complet !
ok tu as gagné, je supprime tout et je recommence de 0 !
Haha, si tu peux me confirmer que tout passe, ce serait top 😅 J'ai corrigé les différents problèmes que tu m'as remonté au fil de l'eau donc tout devrait être ok.
Je suis content de pouvoir partager ces devs avec quelqu'un, le reverse engineering de leur API n'a pas été simple. Leur support m'a d'ailleurs répondu qu'ils n'avaient pas d'API 😂 Bref, content que ce soit transposable... J'espère que quelqu'un en fera une belle intégration clé en main depuis H.A....
First 😁
Bonjour et merci pour ce package ! j'ai la pression d'être le premier boulet a rencontrer un problème lors de son implémentation.
j'ai déposé le script sur un dossier du webserver de mon synology. et il me renvoi une erreur 500 lors de l'enregistrement des informations de login.
a ce stade j'ai vérifié que le groupe http ai bien accès en écriture pour créer le fichier .env (a priori ok)
et petite précision, quand on parle d'héberger le script, un webserver local suffit ou faut-il qu'il soit exposé sur le web ?
merci encore pour ce package !