Stockage de texte long

Hello,

Dans le cadre d’un de mes projets, je stocke actuellement dans un input text un json qui décrit l’état de certaines de mes entités (état sur lequel je n’ai pas de retour, je ne peux le stocker que lorsque je le définit).

Sauf que je m’approche de la limite des 255 caractères.

Comment feriez vous pour stocker un texte plus long dans HA SVP ?
L’idéal serait même un fichier sur le disque, comme ça ça serait résistant au reboot.

Je n’ai pas l’impression que l’intégration file corresponde à mon besoin, je ne veux pas un log, mais vraiment pouvoir écrire / lire en direct :slight_smile:

Merci d’avance !

Tu peux le stocker dans les attributs d’un sensor.

1 « J'aime »

Tu m’intéresse :slight_smile: tu ferait ça comment STP ?

Je ne sais pas si on peut le faire nativement dans HA. Je passe par des messages via un broken MQTT.

Il existe des scripts pour faire cela : GitHub - pmazz/ps_hassio_entities: Python script to handle state and attributes of existing sensors and entities

1 « J'aime »

Merci, je vais regarder ta solution plus en détail.

Du coup tu m’a donné l’idée de passer par un sensor mqtt MQTT Sensor - Home Assistant

Mais pareil, dès que le payload dépasse 255 caractères, le sensor récupéré affiche unknown.

Le monde est mal fait :slight_smile:

Ok, tu m’as mis sur la piste, le sensor MQTT est la solution, il ne faut juste pas compter sur le state (qui est visiblement limité à 255 caractères).

Donc ma solution complète :

  • dans le configuration.yaml :
mqtt:
  sensor:
    - name: "My state storage"
      state_topic: "hacs/my_state_storage"
      json_attributes_topic: "hacs/my_state_storage"
  • on recharge la config via « Outils de développement → YAML → Redémarrer → Rechargement rapide » (après avoir fait la vérification)
  • On publie nos données de test via « Outils de développement → Actions » :
action: mqtt.publish
data:
  topic: hacs/my_state_storage
  payload: |-
    {"widget": {
        "debug": "on",
        "window": {
            "title": "Sample Konfabulator Widget",
            "name": "main_window",
            "width": 500,
            "height": 500
        },
        "image": { 
            "src": "Images/Sun.png",
            "name": "sun1",
            "hOffset": 250,
            "vOffset": 250,
            "alignment": "center"
        },
        "text": {
            "data": "Click Here",
            "size": 36,
            "style": "bold",
            "name": "text1",
            "hOffset": 250,
            "vOffset": 100,
            "alignment": "center",
            "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
        }
    }}    
  • et maintenant, on regarde la tronche de notre sensor dans « Outils de développement → Etats » :

  • on peut donc accéder à nos données comme suit :

{{ state_attr('sensor.my_state_storage', 'widget') }}

Bref, un énorme merci à toi pour le mettage sur la bonne voie !

Et je suis tombé là dessus aussi, mais pas testé :