seyko
Septembre 9, 2023, 11:37
1
Bonjour à tous,
je découvre depuis quelques jours HAS, j’ai crée une machine virtuel sous windows afin de tester ce nouveau systeme. Je suis depuis des années sous Eedomus, le fonctionnement n’a rien a voir. Pourtant pas un débutant en domotique mais je dois avouer que dans HAS je suis complétement a la ramasse, moi qui n’ai jamais codé… je suis litéralement perdu.
Mon but et de ramener tout ce que je fait dans eedomus sous HAS. Notament pour profiter de local tuya.
Jusqu’ici tout va bien, j’ai installé l’ensemble de HAS, local tuya, HACS pour les addons, file editor etc
la base de mon probléme est que je récupére ma valeur de ph via un module de local tuya, seulement celui-ci au lieu de me sortir une valeur 7.2 il me sort 720.
Aprés moulte recherche j’ai tenté de créer un sensor dans le fichier sensors.yaml mais rien ne fonctionne.
Pouvez-vous m’aider a comprendre et réaliser cette action s’il vous plait?
j’ai fait des essais dans le module de dev mais je n’arrive pas a l’appliquer dans sensor.yaml
Merci de votre aide
Ma configuration
Pour le moment : Machine virtuel sous windows 11 virtual box
A venir : Raspberry Pi4 8G + SSD
Herbs
Septembre 10, 2023, 6:55
2
Salut @seyko
Dans ton code je pense que « device_class » et « state_class » ne sont pas bons.
Essais avec le code suivant dans ton configuration.yaml :
template:
- sensor:
- name: "pH"
unique_id: ph_orp
unit_of_measurement: "pH"
device_class: ph
state_class: measurement
state: "{{ states('sensor.ph_orp') | int(default=700) / 100 }}"
Et puis faire un tour sur la doc officielle aussi
3 « J'aime »
Salut,
Pareil, si tu mets l’unité dans unit_of_measurement
il ne faut pas l’ajouter en texte
dans la valeur produite state
.
@Herbs en tiens compte dans son exemple
1 « J'aime »
seyko
Septembre 10, 2023, 9:30
4
Bonjour,
Merci a vous deux pour votre retour, j’ai reussi a le configurer dans le fichier configuration.yaml grace au code de Herbs, en revanche device_class j’ai du mettre water car pH il ne connait pas.
j’ai meme reussi a l’ajouter au tableau de bord !
Petite question, la on a écrit le code dans configuration.yaml, mais si je veux le mettre dans le fichier sensors.yaml sous quel forme dois-je le coder?
j’ai beau lire la doc je ne saisie pas la logique
Par contre je ne comprend pas le défaut=700 ? commment traduisez vous cela ?
Herbs:
int(default=700)
UN GRAND MERCI
Bonjour,
Le nouveau format de template n’est plus dans sensor.yaml. Maintenant c’est dans template.yaml, créer un fichier template.yaml dans /config.
Ajoute dans le configuration.yaml, la ligne:
template: !include template.yaml
Inclus le code du sensor dans le template.yaml, sans le template: au début.
- sensor:
- name: "pH"
unique_id: ph_orp
unit_of_measurement: "pH"
device_class: ph
state_class: measurement
state: "{{ states('sensor.ph_orp') | int(default=700) / 100 }}"
Herbs:
int(default=700)
C’est quand tu reboot, si la valeur est indisponible, la valeur par défaut sera 700 ( 7 ph ) .
Herbs
Septembre 10, 2023, 10:19
6
Vu la doc c’est ph et non pH , faut prendre la valeur en « gras » dans la doc :
Voilà @WarC0zes a tout dit, juste faire gaffe, du code précédent il faudra supprimer :
- template:
et ne mettre que ça dans template.yaml
:
- sensor:
- name: "pH"
unique_id: ph_orp
unit_of_measurement: "pH"
device_class: ph
state_class: measurement
state: "{{ states('sensor.ph_orp') | int(default=7) / 100 }}"
Et si tu veux créer un second « sensor » ne pas mulitplier - sensor:
- sensor:
- name: "pH"
unique_id: ph_orp
unit_of_measurement: "pH"
device_class: ph
state_class: measurement
state: "{{ states('sensor.ph_orp') | int(default=7) / 100 }}"
- name: "pH2"
unique_id: ph_orp2
unit_of_measurement: "pH"
device_class: ph
state_class: measurement
state: "{{ states('sensor.ph_orp') | int(default=7) / 100 }}"
seyko
Septembre 10, 2023, 10:35
7
Merci beaucoup, ça devient plus clair pour moi.
Je vais apprendre au fil de l’eau mais c’est vrai que les débuts sont toujours difficile .
Je mettrais tout ça dans template alors, histoire de faire un truc super propre.
Par ailleurs je peux y mettre n’importe quel type de capteur ?
Herbs, peux tu m’expliquer pour le int défaut =7?
Encore merci, on sens la communauté soudé ça fait plaisir.
Herbs
Septembre 10, 2023, 10:48
8
Comme a dit @WarC0zes j’ajouterai juste un « et /ou »
En gros la template est évaluée par rapport à l’état du sensor sensor.ph_orp
, si celui-ci n’est pas disponible la valeur par défaut utilisée pour le calcul sera 700 / 100
.
C’est un prérequis depuis la v2021.10 de HA.
I keep seeing the same question about the new default argument for the templating. This post will cover all possible ways to define default. All the methods that were changed: acos as_timestamp asin atan atan2 cos float log round sin sqrt...
Reading time: 20 mins 🕑
Likes: 89 ❤
home-assistant:dev
← home-assistant:template_warn_no_default
opened 12:29PM - 20 Sep 21 UTC
<!--
You are amazing! Thanks for contributing to our project!
Please, DO N… OT DELETE ANY TEXT from this template! (unless instructed).
-->
## Breaking change
<!--
If your PR contains a breaking change for existing users, it is important
to tell them what breaks, how to make it work again and why we did this.
This piece of text is published with the release notes, so it helps if you
write it towards our users, not us.
Note: Remove this section if this PR is NOT a breaking change.
-->
The following template filters and functions will now log a warning instead of silently returning the input if the input is invalid and no default value is specified: `round`, `multiply`, `log`, `sin`, `cos`, `tan`, `asin`, `acos`, `atan`, `atan2`, `sqrt`, `timestamp_custom`, `timestamp_local`, `timestamp_utc`, `as_timestamp`, `strptime`, `float`.
The `float` filter will now log a warning instead of silently returning `0` if the input is invalid and no default value is specified.
In Home Assistant core 2021.12 the template will fail to render if no default value is specified.
Examples:
`{{ "abc" | float }}` - Will render as `0`, and a warning will be logged
`{{ "abc" | float(default=5) }}` - Will render as -5, no warning will be logged
`{{ float("abc") }}` - Will render as `"abc"`, and a warning will be logged
`{{ float("abc", default=5) }}` - Will render as -5, no warning will be logged
## Proposed change
<!--
Describe the big picture of your changes here to communicate to the
maintainers why we should accept this pull request. If it fixes a bug
or resolves a feature request, be sure to link to that issue in the
additional information section.
-->
Warn if the following template functions or filters fail and no default is specified: `round`, `multiply`, `log`, `sin`, `cos`, `tan`, `asin`, `acos`, `atan`, `atan2`, `sqrt`, `timestamp_custom`, `timestamp_local`, `timestamp_utc`, `as_timestamp`, `strptime`, `float`.
In addition these functions and filters now accept a `default` parameter.
## Type of change
<!--
What type of change does your PR introduce to Home Assistant?
NOTE: Please, check only 1! box!
If your PR requires multiple boxes to be checked, you'll most likely need to
split it into multiple PRs. This makes things easier and faster to code review.
-->
- [ ] Dependency upgrade
- [ ] Bugfix (non-breaking change which fixes an issue)
- [ ] New integration (thank you!)
- [ ] New feature (which adds functionality to an existing integration)
- [x] Breaking change (fix/feature causing existing functionality to break)
- [ ] Code quality improvements to existing code or addition of tests
## Additional information
<!--
Details are important, and help maintainers processing your PR.
Please be sure to fill out additional details, if applicable.
-->
- Link to documentation pull requests:
- https://github.com/home-assistant/home-assistant.io/pull/19494
- https://github.com/home-assistant/home-assistant.io/pull/19506
## Checklist
<!--
Put an `x` in the boxes that apply. You can also fill these out after
creating the PR. If you're unsure about any of them, don't hesitate to ask.
We're here to help! This is simply a reminder of what we are going to look
for before merging your code.
-->
- [ ] The code change is tested and works locally.
- [ ] Local tests pass. **Your PR cannot be merged unless tests pass**
- [ ] There is no commented out code in this PR.
- [ ] I have followed the [development checklist][dev-checklist]
- [ ] The code has been formatted using Black (`black --fast homeassistant tests`)
- [ ] Tests have been added to verify that the new code works.
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated for [www.home-assistant.io][docs-repository]
If the code communicates with devices, web services, or third-party tools:
- [ ] The [manifest file][manifest-docs] has all fields filled out correctly.
Updated and included derived files by running: `python3 -m script.hassfest`.
- [ ] New or updated dependencies have been added to `requirements_all.txt`.
Updated by running `python3 -m script.gen_requirements_all`.
- [ ] For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.
- [ ] Untested files have been added to `.coveragerc`.
The integration reached or maintains the following [Integration Quality Scale][quality-scale]:
<!--
The Integration Quality Scale scores an integration on the code quality
and user experience. Each level of the quality scale consists of a list
of requirements. We highly recommend getting your integration scored!
-->
- [ ] No score or internal
- [ ] 🥈 Silver
- [ ] 🥇 Gold
- [ ] 🏆 Platinum
<!--
This project is very active and we have a high turnover of pull requests.
Unfortunately, the number of incoming pull requests is higher than what our
reviewers can review and merge so there is a long backlog of pull requests
waiting for review. You can help here!
By reviewing another pull request, you will help raise the code quality of
that pull request and the final review will be faster. This way the general
pace of pull request reviews will go up and your wait time will go down.
When picking a pull request to review, try to choose one that hasn't yet
been reviewed.
Thanks for helping out!
-->
To help with the load of incoming pull requests:
- [ ] I have reviewed two other [open pull requests][prs] in this repository.
[prs]: https://github.com/home-assistant/core/pulls?q=is%3Aopen+is%3Apr+-author%3A%40me+-draft%3Atrue+-label%3Awaiting-for-upstream+sort%3Acreated-desc+review%3Anone
<!--
Thank you for contributing <3
Below, some useful links you could explore:
-->
[dev-checklist]: https://developers.home-assistant.io/docs/en/development_checklist.html
[manifest-docs]: https://developers.home-assistant.io/docs/en/creating_integration_manifest.html
[quality-scale]: https://developers.home-assistant.io/docs/en/next/integration_quality_scale_index.html
[docs-repository]: https://github.com/home-assistant/home-assistant.io
1 « J'aime »
seyko
Septembre 10, 2023, 11:33
9
Excuse moi Herbs, je n’avais tout simplement pas vu ce passage dans le message de WarC0zes.
Je commence à piger la logique.
Mais le plus dur reste à venir. Je dois retranscrire une programmation que j’ai faite sur eedomus dans HA et pour le moment je ne vois absolument pas comment la réaliser .
Je vous met la PJ de mon automatisation eedomus.
seyko
Septembre 10, 2023, 5:50
10
Pour revenir sur le défaut=7
Si toutefois je veux que la dernière valeur mesurée d’un capteur soit affichée sur le capteur si celui-ci passe en indisponible.
Comment pourrais-je écrire cette fonction ?
J’ai lu à priori qu’il faut créer un input ?
Herbs
Septembre 10, 2023, 8:14
11
Désolé @seyko je n’ai aucune compétence en eedomus
Les screens que tu partages sont comme des hiéroglyphes pour moi.
seyko:
Si toutefois je veux que la dernière valeur mesurée d’un capteur soit affichée sur le capteur si celui-ci passe en indisponible.
Comment pourrais-je écrire cette fonction ?
J’ai lu à priori qu’il faut créer un input ?
C’est une piste à creuser si tu ne t’en sors pas n’hésites pas à créer un nouveau topic.
Et un peu de lecture :
seyko
Septembre 10, 2023, 8:34
12
En fait ma programmation eedomus est assez simple.
a 20h50 la pompe de piscine s’active, l’eau se brasse et mon capteur de température se stabilise.
a 21h le script lance la pompe, releve la température de mon capteur.
de la il determine le nombres d’heure de filtration par un simple calcul Temp de l’eau * 0.7 = nbr d’heure de filtration.
mais ça a traduire dans HA … j’ai beau lire et chercher des choses qui se rapproche je ne comprend pas ou ne trouve pas
Pareil ça fait 2h que je cherche comment garder la derniere valeur relevée d’un capteur lorsque celui-ci passe en indisponible. j’ai tenter plusieurs modeles mais aucun resultat probant.
Herbs
Septembre 10, 2023, 8:40
13
J’ai pas tout lu, mais jette un oeil à ça :
Bonjour à tous,
Je souhaite indexer le temp de filtration de ma piscine à la température de l’eau.
Tout les matins à une heure déterminée (9h par exemple) je souhaite calculer le temp de filtration de la piscine pour la journée en fonction de la température de l’eau et lancer la filtration pour cette durée.
J’ai créé un sensor qui calcul en divisant par 2 la température de l’eau :
## calcul tmp filtration piscine
- platform: template
sensors:
tmpfiltrationpiscine:
value_t…
Ça pourrait te servir de base.