OpenHASP - utiliser un esp avec écran tactile pour contrôler Home assistant

En effet, j’ai une version v3
Si j’ai bien compris, le firmware actuel openhasp ne doit pas prendre en compte le tactile sur cette dernière version.
Et comme je ne sais pas faire un firmware, je vais devoir laisser tomber openhsp :frowning:

Merci Warcozes pour ces réponses qui explique tout.

edit:
J’ai trouvé un firmware plus recent (rc13) ici : Releases · HASwitchPlate/openHASP
je l’ai mis mais apparemment, toujours pas de tactile :frowning:

lol, je l’avais pu vu celui-là :wink:
je vérifiais sur la page des firmwares nightly.

edit:
maj faite :wink:
ok pour moi, mais j’ai une version 1.

idem pour le sunton 7pouce

Au point ou j’en suis, j’ai essayé avec esphome en suivant ce tuto :
Contrôle de la luminosité de l’écran tactile DPI avec ESPHome

Ca marche pas mieux mais sur ce fil, il semble qu’ils ont changé le driver avec la v3

L’écran 7 pouces V3 touch fonctionne maintenant avec l’exemple de code. — ELECROW - FORUM

il utilise un pilote tactile différent TAMC_GT911 dans l’encart touch.h de lgfx ::Touch_GT911

Pb, j’ai pas compris comment on change :roll_eyes:. mais ca doit être une piste…
Si c’est ca et qu’on peut compiler avec openhasp, ca serait top :wink:

bonsoir a tous,
Je suis tomber voila quelque temps sur ce projet qui me plait assez. J’ai acheté un mini kit esp32 et un ecran tft de 2.4 pouces. J’ai flashé l’esp32 en Version 0.7.0-rc12. Configuré le wifi, connecté en mqtt, mais quand il s’agit de l’inclure a homeassistant , je bloque, je ne sais pas ou est le probleme, j’ai bien openhasp d’installé, quand rempli la config mqtt, openhasp me demande d’ajouter ou ignorer, je ne change rien dans le nom du plate et le topic mqtt, juste l’emplacement du fichier "pages.jsonl. Je valide et… rien ne se passe. Dans tout ce que je vois de tutos, tout se passe a ce niveau sans probleme, je ne pige pas ou il y a soucis.




Bonjour,
j’ai installé un nouveau sunton esp32 7 pouces le WE dernier. Il ne voulait pas valider mon intégration et j’ai redémarré HA et c’est passer après.

Il y a la version 0.7.0-rc13 disponible :

Bonjour a tous,
Je repond a moi même, je cherchais beaucoup trop compliqué, il suffisait de changer un exemple dans pages.jsonl et surtout ajouter également la suite de l’exemple dans configuration.yaml:

openhasp:
plate…:
objects:

1 « J'aime »

Hello,

Je me permet une bébé question… Où trouvez-vous les codes pour afficher les différentes icônes SVP ?

J’en ai isolé un certain nombre dans les différents exemples, mais là je cherche une prise, et de quoi symboliser un chauffage / feu, mais je n’arrive pas à savoir comment dégoter ces codes ?

En attendant, ceux que j’ai ci-dessous.

Merci d’avance

{"comment":"---------------------------------------------------------"}
{"comment":"---------- Unicode trouvés ----------"}
{"comment":"---------------------------------------------------------"}
{"comment":"\uE335 : Ampoule éteinte"}
{"comment":"\uE6E8 : Ampoule allumée"}
{"comment":"\uE50F : Thermomètre"}
{"comment":"\uE210 : Pales de ventilateur"}
{"comment":"\uE05D : Flèche vers le haut"}
{"comment":"\uE045 : Flèche vers le bas"}
{"comment":"\uE4DB : Carré rempli (stop)"}
{"comment":"\uF11C : Volet fermé"}
{"comment":"\uF11D : Volet en cours d'ouverture"}
{"comment":"\uF11E : Volet ouvert"}
{"comment":"\uE4AE : Previous"}
{"comment":"\uE40A : Play"}
{"comment":"\uE4AD : Next"}
{"comment":"\uE425 : Power switch"}
{"comment":"\uE57E : Speaker"}
{"comment":"\uE75F : Speaker muted"}
{"comment":"\uE457 : Flèche vers la gauche + flèche vers la droite bérrées"}
{"comment":"\uE458 : Repeat 1"}
{"comment":"\uE456 : Repeat All"}
{"comment":"\uE49E : Double flèche vers la droite"}
{"comment":"\uE49D : Double flèche vers la droite, mais croisées (shuffle)"}
{"comment":"\uE141 : Chevron vers la gauche"}
{"comment":"\uE2DC : Maison (remplie)"}
{"comment":"\uE6A1 : Maison (outline)"}
{"comment":"\uE142 : Chevron vers la droite"}
{"comment":"\uE5A9 : WiFi"}
{"comment":"\uF40B : Eclair"}
{"comment":"\u2022 : point"}

Salut,
ici :

image

1 « J'aime »

Merci beaucoup, au top comme d’hab !

Je me permet de partager ici mes écrans, ainsi que le code associé.

J’en profite pour insister sur l’importance du type « obj »:« obj ». ça permet de créer des “groupes” dans lesquels on met nos éléments, qu’on positionne en relatif par rapport au groupe.

En gros, si je veux déplacer mon bloc qui gère ma clim dans les pages, je n’ai qu’un jeu de coordonnées à modifier, et pas l’ensemble à tout recalculer.

Pages.jsonl
{"comment":"Designer Config","plate":{"w":480,"h":480,"size_name":"large_square","primary_color":"#00b6ff","secondary_color":"#ff9962","theme":"Material Dark"}}

{"comment":"---------------------------------------------------------"}
{"comment":"---------- Online éditor ----------"}
{"comment":"---------------------------------------------------------"}
{"comment":"https://haspdesigner.qrisonline.nl/"}

{"comment":"---------------------------------------------------------"}
{"comment":"---------- Liste des icônes ----------"}
{"comment":"---------------------------------------------------------"}
{"comment":"https://www.openhasp.com/0.7.0/design/fonts/#icons"}

{"comment":"---------------------------------------------------------"}
{"comment":"---------- Page 0 - Commun à toutes les pages ----------"}
{"comment":"---------------------------------------------------------"}
{"page":0}
{"id":1,"obj":"btn","action":{"down": "page prev"},"x":0,"y":440,"w":79,"h":40,"bg_color":"#2C3E50","text":"\uE141","radius":0,"border_side":0,"text_font":24}
{"id":2,"obj":"btn","action":{"down": "page back"},"x":80,"y":440,"w":320,"h":40,"bg_color":"#2C3E50","text":"\uE2DC","radius":0,"border_side":0,"text_font":24}
{"id":3,"obj":"btn","action":{"down": "page next"},"x":401,"y":440,"w":79,"h":40,"bg_color":"#2C3E50","text":"\uE142","radius":0,"border_side":0,"text_font":24}

{"comment":"---------------------------------------------------------"}
{"comment":"---------- Limit page prev/next between 1 and 3 ----------"}
{"comment":"---------------------------------------------------------"}
{"page":1,"id":0,"prev":3}
{"page":3,"id":0,"next":1}

{"comment":"---------------------------------------------------------"}
{"comment":"---------- Page 1 - Salon ----------"}
{"comment":"---------------------------------------------------------"}
{"page":1}
{"comment":"Header"}
{"id":1,"obj":"obj","x":0,"y":0,"w":480,"h":40,"enabled":0}
{"parentid":1,"id":10,"obj":"btn","x":0,"y":0,"w":480,"h":40,"text":"Salon","text_font":28,"bg_color":"#2C3E50","radius":0,"border_side":0}
{"parentid":1,"id":11,"obj":"label","x":350,"y":3,"w":100,"h":40,"text":"0°C","text_font":24, "align":"right"}
{"parentid":1,"id":12,"obj":"label","x":440,"y":3,"w":40,"h":40,"text":"\uE50F","text_font":24, "align":"right","text_color":"#ff004c"}
{"parentid":1,"id":13,"obj":"label","x":30,"y":3,"w":100,"h":40,"text":"100%","text_font":24, "align":"left"}
{"parentid":1,"id":14,"obj":"label","x":-10,"y":3,"w":40,"h":40,"text":"\uE58C","text_font":24, "align":"right","text_color":"#0084ff"}
{"comment":"Clim"}
{"id":2,"obj":"obj","x":140,"y":300,"w":200,"h":130,"enabled":0,"border_width":1,"border_color":"#FFFFFF"}
{"parentid":2,"id":20,"obj":"btn","x":0,"y":0,"w":200,"h":60,"text":"\uE238 ","text_font":40,"bg_color":"#CCCCCC","radius":5,"border_side":0}
{"parentid":2,"id":21,"obj":"btn","x":5,"y":65,"w":60,"h":60,"text":"-","text_font":28,"bg_color":"#2C3E50","text_color":"#0084ff","radius":5,"border_side":0}
{"parentid":2,"id":22,"obj":"label","x":66,"y":75,"w":68,"h":60,"text":"28°C","text_font":28, "align":"center"}
{"parentid":2,"id":23,"obj":"btn","x":135,"y":65,"w":60,"h":60,"text":"+","text_font":28,"bg_color":"#2C3E50","text_color":"#ff004c","radius":5,"border_side":0}
{"comment":"Lumières"}
{"id":3,"obj":"obj","x":5,"y":45,"w":120,"h":120,"enabled":0,"border_color":"#FFFFFF","bg_color":"#2C3E50"}
{"parentid":3,"id":30,"obj":"btn","x":0,"y":0,"w":120,"h":120,"text":"\uE335","text_font":32,"align":"center","border_width":0,"radius":5}
{"parentid":3,"id":31,"obj":"label","x":0,"y":0,"w":120,"h":60,"text":"Lumières","text_font":28, "align":"center"}
{"comment":"Prise TV"}
{"id":4,"obj":"obj","x":130,"y":45,"w":120,"h":120,"enabled":0,"border_color":"#FFFFFF"}
{"parentid":4,"id":40,"obj":"btn","x":0,"y":0,"w":120,"h":120,"text":"\uE6A5","text_font":32,"align":"center","border_width":0,"radius":5}
{"parentid":4,"id":41,"obj":"label","x":0,"y":0,"w":120,"h":60,"text":"Prise TV","text_font":28, "align":"center"}

{"comment":"Heure début cours"}
{"id":5,"obj":"obj","x":3,"y":180,"w":474,"h":40,"enabled":0,"border_width":0}
{"parentid":5,"id":50,"obj":"label","x":0,"y":0,"h":40,"w":180,"text":"Début des cours :","text_font":26}
{"parentid":5,"id":51,"obj":"label","x":185,"y":0,"h":40,"w":250,"text":"00:00","text_font":26}
{"comment":"Heure fin cours"}
{"id":6,"obj":"obj","x":3,"y":220,"w":474,"h":40,"enabled":0,"border_width":0}
{"parentid":6,"id":60,"obj":"label","x":0,"y":0,"h":40,"w":180,"text":"Fin des cours :","text_font":26}
{"parentid":6,"id":61,"obj":"label","x":185,"y":0,"h":40,"w":250,"text":"00:00","text_font":26}

{"comment":"---------------------------------------------------------"}
{"comment":"-------------------- Page 2 - Bureau --------------------"}
{"comment":"---------------------------------------------------------"}
{"page":2}
{"comment":"Header"}
{"id":1,"obj":"obj","x":0,"y":0,"w":480,"h":40,"enabled":0}
{"parentid":1,"id":10,"obj":"btn","x":0,"y":0,"w":480,"h":40,"text":"Bureau","text_font":28,"bg_color":"#2C3E50","radius":0,"border_side":0}
{"parentid":1,"id":11,"obj":"label","x":360,"y":3,"w":100,"h":40,"text":"0°C","text_font":24, "align":"right"}
{"comment":"Clim"}
{"id":2,"obj":"obj","x":140,"y":300,"w":200,"h":130,"enabled":0,"border_width":1,"border_color":"#FFFFFF"}
{"parentid":2,"id":20,"obj":"btn","x":0,"y":0,"w":200,"h":60,"text":"\uE238 ","text_font":40,"bg_color":"#CCCCCC","radius":5,"border_side":0}
{"parentid":2,"id":21,"obj":"btn","x":5,"y":65,"w":60,"h":60,"text":"-","text_font":28,"bg_color":"#2C3E50","text_color":"#0084ff","radius":5,"border_side":0}
{"parentid":2,"id":22,"obj":"label","x":66,"y":75,"w":68,"h":60,"text":"28°C","text_font":28, "align":"center"}
{"parentid":2,"id":23,"obj":"btn","x":135,"y":65,"w":60,"h":60,"text":"+","text_font":28,"bg_color":"#2C3E50","text_color":"#ff004c","radius":5,"border_side":0}
{"comment":"Lumières"}
{"id":3,"obj":"obj","x":5,"y":45,"w":120,"h":120,"enabled":0,"border_color":"#FFFFFF","bg_color":"#2C3E50"}
{"parentid":3,"id":30,"obj":"btn","x":0,"y":0,"w":120,"h":120,"text":"\uE335","text_font":32,"align":"center","border_width":0,"radius":5}
{"parentid":3,"id":31,"obj":"label","x":0,"y":0,"w":120,"h":60,"text":"Lumières","text_font":28, "align":"center"}

{"comment":"---------------------------------------------------------"}
{"comment":"---------- Page 3 - Infos ----------"}
{"comment":"---------------------------------------------------------"}
{"page":3}
{"comment":"Header"}
{"id":1,"obj":"btn","x":0,"y":0,"w":480,"h":40,"text":"Infos","text_font":28,"bg_color":"#2C3E50","radius":0,"border_side":0}
{"comment":"IP"}
{"id":2,"obj":"obj","x":3,"y":40,"w":474,"h":40,"enabled":0,"border_width":0}
{"parentid":2,"id":20,"obj":"label","x":0,"y":0,"h":40,"w":35,"text":"IP :","text_font":26}
{"parentid":2,"id":21,"obj":"label","x":40,"y":0,"h":40,"w":180,"text":"adressip","text_font":26}
{"comment":"SSID"}
{"id":3,"obj":"obj","x":3,"y":80,"w":474,"h":40,"enabled":0,"border_width":0}
{"parentid":3,"id":30,"obj":"label","x":0,"y":0,"h":40,"w":60,"text":"SSID :","text_font":26}
{"parentid":3,"id":31,"obj":"label","x":65,"y":0,"h":40,"w":180,"text":"ssidbox","text_font":26}
{"comment":"UPTIME"}
{"id":4,"obj":"obj","x":3,"y":120,"w":474,"h":40,"enabled":0,"border_width":0}
{"parentid":4,"id":40,"obj":"label","x":0,"y":0,"h":40,"w":95,"text":"UPTIME :","text_font":26}
{"parentid":4,"id":41,"obj":"label","x":100,"y":0,"h":40,"w":250,"text":"uptimebox","text_font":26}
{"comment":"VERSION"}
{"id":5,"obj":"obj","x":3,"y":160,"w":474,"h":40,"enabled":0,"border_width":0}
{"parentid":5,"id":50,"obj":"label","x":0,"y":0,"h":40,"w":105,"text":"VERSION :","text_font":26}
{"parentid":5,"id":51,"obj":"label","x":110,"y":0,"h":40,"w":250,"text":"version","text_font":26}

openhasp.yaml
plate_salon:
  objects:
    # ------------------------------------------------------------
    # PAGE 1
    # ------------------------------------------------------------
    # Température de la pièce
    - obj: "p1b11"
      properties:
        "text": '{{ states("sensor.capteur_salon_temperature") }}°C'
    # Humidité de la pièce
    - obj: "p1b13"
      properties:
        "text": '{{ states("sensor.capteur_salon_humidity") }}%'
    # ------------------------------
    # THERMOSTAT
    # ------------------------------
    - obj: "p1b20" # Bouton d'allumage / extinction de la clim'
      properties:
        "text": >
          {% if is_state('climate.salon', 'cool') %}
          {{ "\uE717" }}
          {% elif is_state('climate.salon', 'heat') %}
          {{ "\uE238" }}
          {% else %}
          {{ "\uE425" }} 
          {% endif %}
        "text_color": >
          {% if is_state('climate.salon', 'cool') %}
          {{ "blue" }}
          {% elif is_state('climate.salon', 'heat') %}
          {{ "orange" }}
          {% else %}
          {{ "white" }} 
          {% endif %}
      event:
        "up":
          - service: climate.toggle
            data:
              entity_id: climate.salon
    - obj: "p1b21" # Bouton de baisse de la consigne clim
      event:
        "up":
          - service: script.change_temperature_clim
            data:
              climate_id: climate.salon
              temp_increment: -1
    - obj: "p1b23" # Bouton de hausse de la consigne clim
      event:
        "up":
          - service: script.change_temperature_clim
            data:
              climate_id: climate.salon
              temp_increment: 1
    - obj: "p1b22" # Consigne de la clim
      properties:
        "text": '{{ state_attr("climate.salon", "temperature") }}°C'
    # ------------------------------
    # FIN THERMOSTAT
    # ------------------------------
    # Heure début cours
    - obj: "p1b51"
      properties:
        "text": >
          {{ state_attr('sensor.pronote_antoine_today_s_timetable', 'day_start_at').strftime('%Hh%M') }}
    # Heure fin cours
    - obj: "p1b61"
      properties:
        "text": >
          {{ state_attr('sensor.pronote_antoine_today_s_timetable', 'day_end_at').strftime('%Hh%M') }}
    - obj: "p1b30" # Bouton de bascule des lumières
      properties:
        "text": >
          {{ "\uE6E8" if is_state("group.lampes_salon", "on") else "\uE335" }}
        "text_color": >
          {{ "yellow" if is_state("group.lampes_salon", "on") else "white" }}
      event:
        "up":
          - service: script.custom_toggle_for_lights
            data:
              group_id: group.lampes_salon
    - obj: "p1b40" # Bouton de gestion des prises
      properties:
        "text_color": >
          {{ "yellow" if is_state("switch.prise_tv", "on") else "white" }}
      event:
        "up":
          - service: switch.toggle
            target:
              entity_id: switch.prise_tv
    # ------------------------------------------------------------
    # PAGE 2
    # ------------------------------------------------------------
    # Température de la pièce
    - obj: "p2b11"
      properties:
        "text": '{{ states("sensor.capteur_bureau_temperature") }}°C'
    # ------------------------------
    # THERMOSTAT
    # ------------------------------
    - obj: "p2b20" # Bouton d'allumage / extinction de la clim'
      properties:
        "text": >
          {% if is_state('climate.bureau', 'cool') %}
          {{ "\uE717" }}
          {% elif is_state('climate.bureau', 'heat') %}
          {{ "\uE238" }}
          {% else %}
          {{ "\uE425" }} 
          {% endif %}
        "text_color": >
          {% if is_state('climate.bureau', 'cool') %}
          {{ "blue" }}
          {% elif is_state('climate.bureau', 'heat') %}
          {{ "orange" }}
          {% else %}
          {{ "white" }} 
          {% endif %}
      event:
        "up":
          - service: climate.toggle
            data:
              entity_id: climate.versatile_bureau
    - obj: "p2b21" # Bouton de baisse de la consigne clim
      event:
        "up":
          - service: script.change_temperature_clim
            data:
              climate_id: climate.versatile_bureau
              temp_increment: -1
    - obj: "p2b23" # Bouton de hausse de la consigne clim
      event:
        "up":
          - service: script.change_temperature_clim
            data:
              climate_id: climate.versatile_bureau
              temp_increment: 1
    - obj: "p2b22" # Consigne de la clim
      properties:
        "text": '{{ state_attr("climate.bureau", "temperature") }}°C'
    # ------------------------------
    # FIN THERMOSTAT
    # ------------------------------
    - obj: "p2b30" # Bouton de bascule des lumières
      properties:
        "text": >
          {{ "\uE6E8" if is_state("group.lampes_bureau", "on") else "\uE335" }}
        "text_color": >
          {{ "yellow" if is_state("group.lampes_bureau", "on") else "white" }}
      event:
        "up":
          - service: script.custom_toggle_for_lights
            data:
              group_id: group.lampes_bureau
    # ------------------------------------------------------------
    # PAGE 3
    # ------------------------------------------------------------
    - obj: "p3b21"
      properties:
        "text": > # IP de la plate
          {% if state_attr("openhasp.plate_salon","ip") == None %}
          {{ "Wait" }}
          {% else %}
          {{ state_attr("openhasp.plate_salon","ip") }}
          {% endif%}
    - obj: "p3b31"
      properties:
        "text": > # SSID du WIFI de la plate
          {% if state_attr("openhasp.plate_salon","ssid") == None %}
          {{ "Wait" }}
          {% else %}
          {{ state_attr("openhasp.plate_salon","ssid") }}
          {% endif%}
    - obj: "p3b41"
      properties:
        "text": > # Uptime de la plate
          {% set uptime = state_attr('openhasp.plate_salon','uptime') | int(0) %}
          {% set jours = (uptime / 86400) | int(0) %}
          {%- if jours > 0 -%}
            {{ jours }} jours, {{ (uptime - (jours * 86400)) | int(0) | timestamp_custom('%H:%M:%S', false) }}
          {%- else -%}
            {{ uptime | int(0) | timestamp_custom('%H:%M:%S', false) }}
          {%- endif -%}
    - obj: "p3b51"
      properties:
        "text": > # Version HASP de la plate
          {% if state_attr("openhasp.plate_salon","version") == None %}
          {{ "Wait" }}
          {% else %}
          {{ state_attr("openhasp.plate_salon","version") }}
          {% endif%}

Si besoin d’un dernier firmware compilé, vous pouvez les trouver ici :

Pour faire des captures, il faut se connecter à la page web :


Puis un copier sur l’image et coller dans un message :wink:

1 « J'aime »

Mais qu’il est désagréable cet homme à tout savoir :wink:

Merci, je MAJ aussi de l’autre côté pour la peine.



1 « J'aime »

il faut bien, après deux ans d’utilisation d’OpenHASP. :grin:

1 « J'aime »

J’ai ajouté un nouveau lien pour contruire un menu :

1 « J'aime »