Différences entre les versions de « Une courbe de température en Python »

De Wiki de Mémoire Vive
Aller à la navigation Aller à la recherche
 
(5 versions intermédiaires par le même utilisateur non affichées)
Ligne 38 : Ligne 38 :
       {{ 18.5 | float }}
       {{ 18.5 | float }}
     {% elif now().hour == 23 %}
     {% elif now().hour == 23 %}
       {{ 18.5 | float }}
       {{ 10.0 | float }}
     {% endif %}
     {% endif %}
</pre>
</pre>


Puis je lui ai demandé de le présenter proprement, ce qu'il a fait avec application,
en lui demandant de le présenter proprement, ce qu'il a fait avec application,
<pre>
<pre>
6h : 17.0°C
6h : 17.0°C
Ligne 68 : Ligne 68 :
https://wiki.memoirevive79.mooo.com/images/8/84/Figure_1.png
https://wiki.memoirevive79.mooo.com/images/8/84/Figure_1.png


J'imagine qu'avec cette technique on devrait pouvoir générer automatiquement des graphes dans HA avec des valeurs enregistrées, pour ensuite se les faire envoyer par mail ou autre.


<pre>
<pre>
import matplotlib.pyplot as plt
import matplotlib.pyplot as plt


# Heures et températures
# Heures et températures correspondantes
heures = [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
heures = [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
temperatures = [17.0, 18.0, 18.0, 18.0, 18.0, 18.5, 18.5, 19.0, 18.0, 18.0, 18.0, 18.0, 18.5, 19.0, 19.0, 19.0, 18.5, 18.5]
temperatures = [17.0, 18.0, 18.0, 18.0, 18.0, 18.5, 18.5, 19.0, 18.0, 18.0, 18.0, 18.0, 18.5, 19.0, 19.0, 19.0, 18.5, 10.0]


# Création du graphique
# Création du graphique avec des points en abscisse pour chaque heure entière
plt.figure(figsize=(10, 6))
plt.figure(figsize=(10, 6))
plt.plot(heures, temperatures, marker='o', linestyle='-', color='b')
plt.plot(heures, temperatures, marker='o', linestyle='-', color='b')
# Afficher un point pour chaque heure entière
plt.xticks(range(min(heures), max(heures)+1))


# Ajout de titres et de labels
# Ajout de titres et de labels
Ligne 89 : Ligne 93 :
plt.tight_layout()
plt.tight_layout()
plt.show()
plt.show()


</pre>
</pre>

Version actuelle datée du 16 novembre 2023 à 22:49

Après avoir paramétré une automatisation Home Assistant pour régler la température de consigne de ma chaudière, l'idée m'est venue d'en tracer la courbe, pour jouer.

Je suis donc parti de cet extrait de script pour demander à Chatgpt de le remettre en forme,

{% if now().hour == 6 %}
      {{ 17 | float }}
    {% elif now().hour == 7 %}
      {{ 18 | float }}
    {% elif now().hour == 8 %}
      {{ 18 | float }}
    {% elif now().hour == 9 %}
      {{ 18 | float }}
    {% elif now().hour == 10 %}
      {{ 18 | float }}
    {% elif now().hour == 11 %}
      {{ 18.5 | float }}
    {% elif now().hour == 12 %}
      {{ 18.5 | float }}
    {% elif now().hour == 13 %}
      {{ 19 | float }}
    {% elif now().hour == 14 %}
      {{ 18 | float }}
    {% elif now().hour == 15 %}
      {{ 18 | float }}
    {% elif now().hour == 16 %}
      {{ 18 | float }}
    {% elif now().hour == 17 %}
      {{ 18 | float }}
    {% elif now().hour == 18 %}
      {{ 18.5 | float }}
    {% elif now().hour == 19 %}
      {{ 19 | float }}
    {% elif now().hour == 20 %}
      {{ 19 | float }}
    {% elif now().hour == 21 %}
      {{ 19 | float }}
    {% elif now().hour == 22 %}
      {{ 18.5 | float }}
    {% elif now().hour == 23 %}
      {{ 10.0 | float }}
    {% endif %}

en lui demandant de le présenter proprement, ce qu'il a fait avec application,

6h : 17.0°C
7h : 18.0°C
8h : 18.0°C
9h : 18.0°C
10h : 18.0°C
11h : 18.5°C
12h : 18.5°C
13h : 19.0°C
14h : 18.0°C
15h : 18.0°C
16h : 18.0°C
17h : 18.0°C
18h : 18.5°C
19h : 19.0°C
20h : 19.0°C
21h : 19.0°C
22h : 18.5°C
23h : 10°C

Et enfin j'ai demandé une courbe, et il m'a généré ce script, qui marche très bien !

https://wiki.memoirevive79.mooo.com/images/8/84/Figure_1.png

J'imagine qu'avec cette technique on devrait pouvoir générer automatiquement des graphes dans HA avec des valeurs enregistrées, pour ensuite se les faire envoyer par mail ou autre.

import matplotlib.pyplot as plt

# Heures et températures correspondantes
heures = [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
temperatures = [17.0, 18.0, 18.0, 18.0, 18.0, 18.5, 18.5, 19.0, 18.0, 18.0, 18.0, 18.0, 18.5, 19.0, 19.0, 19.0, 18.5, 10.0]

# Création du graphique avec des points en abscisse pour chaque heure entière
plt.figure(figsize=(10, 6))
plt.plot(heures, temperatures, marker='o', linestyle='-', color='b')

# Afficher un point pour chaque heure entière
plt.xticks(range(min(heures), max(heures)+1))

# Ajout de titres et de labels
plt.title('Variation de la température par heure')
plt.xlabel('Heure')
plt.ylabel('Température (°C)')

# Affichage du graphique
plt.grid(True)
plt.tight_layout()
plt.show()