Créer son FloorPlan 3D

Voila mon processus (je me le suis fait dans le cas d’ajout d’equipement) :

  • ouvrir fichier sh3D

  • installer une lampe

  • choisir le point de vue (faut réussir a trouver un point de vue sympa et penser a l’enregistrer)

  • allumer la nouvelle lumiere à 30%

  • Creer une photo en 2000x1000

  • ouvrir eteint.png avec gimp (c’est l’image de fond non eclairé pour moi date du 28/11/2022 à 18h avec un eclairage au dessus qui est plus grand que le plan complet)
    image

  • ouvrir en tant que calque la nouvelle photo

  • mode difference

  • couleur>Couleur vers alpha

  • Changer le blanc par noir.

  • Supprimer le calque eteint pour ne garder que le filtre.

  • Exporter le nouveau filtre

  • Ouvrir le nouveau filtre dans photofiltre

  • selectionner la forme de selection puis faites un recadrage (par rapport a la forme ca c’est pour avoir la meme dimension d’image et effacer le sol autour de la maison, je l’ai fait sur toutes mes images)

  • copier coller l’image pour la mettre dans un calque

  • supprimer l’image (en gardant le claque)

  • calque>transformation parametree> image en haut au milieu et hauteur 600

  • Reste plus qu’a l’implanter dans le floor

mon image finale fait cette taille:
1540x600

Pour l’integration des pieces eclairées, dans picture element:

          - type: image
            entity: light.lampe_salon_light
            tap_action:
              action: none
            state_image:
              'on': /local/floorplan/images de base/lampe salon.png
              'off': /local/floorplan/images de base/trans.png
              unavailable: /local/floorplan/images de base/trans.png
            style:
              top: 50%
              left: 50%
              width: 100%

Pour ce qui est de l’integration des capteurs, moi j’ai des icones et j’integre ca comme ca:
lumiere:

          - type: image
            entity: light.lampe_salon_light
            tap_action:
              action: toggle
            state_image:
              'on': /local/floorplan/icones/bulb-on2.png
              'off': /local/floorplan/icones/bulb-off2.png
              unavailable: /local/floorplan/icones/bulb-out2.png
            style:
              top: 4%
              left: 45%
              width: 2%

La clim (le orange):


- type: image
            entity: climate.clim_salon_2
            tap_action:
              action: fire-dom-event
              browser_mod:
                command: call-service
                service: browser_mod.popup
                data:
                  deviceID:
                    - this
                  content:
                    type: custom:mushroom-climate-card
                    entity: climate.clim_salon_2
                    name: Climatisation salon
                    layout: horizontal
                    fill_container: true
                    hvac_modes: []
                    show_temperature_control: true
                    icon_type: entity-picture
                    tap_action:
                      action: none
                    hold_action:
                      action: none
                    double_tap_action:
                      action: none
            state_image:
              heat_cool: /local/floorplan/icones/clim_auto2.png
              fan_only: /local/floorplan/icones/clim_fan2.png
              dry: /local/floorplan/icones/clim_dry2.png
              cool: /local/floorplan/icones/clim_cool2.png
              Inactif: /local/floorplan/icones/clim_off2.png
              heat: /local/floorplan/icones/clim_heat2.png
              'off': /local/floorplan/icones/clim_off2.png
              unavailable: /local/floorplan/icones/clim_off2.png
            style:
              top: 18%
              left: 57%
              width: 2%

Capteur de temperature:

          - type: state-badge
            entity: sensor.thermometre_Enfant2_temperature_2
            tap_action:
              action: fire-dom-event
              browser_mod:
                command: call-service
                service: browser_mod.popup
                data:
                  deviceID:
                    - this
                  title: Thermomètre Enfant2
                  content:
                    type: entities
                    entities:
                      - entity: sensor.thermometre_Enfant2_battery_2
                      - entity: sensor.thermometre_Enfant2_humidity_2
                      - entity: sensor.thermometre_Enfant2_temperature_2
                    state_color: true
            style:
              top: 50%
              left: 43%
              text-align: center
              font-weight: bold

Le code complet de mon floorplan, tu peux t’en inspirer librement:

`   title: Floorplan
    type: panel
    cards:
      - type: picture-elements
        card_mod:
          style:
            hui-state-badge-element:
              $ ha-state-label-badge:
                $ ha-label-badge $: |
                  .badge-container .title {
                    display:none;
                  }
                  .badge-container .label-badge {
                    border-width: 0.3em;
                  }
                  .badge-container .label-badge .label span {
                    font-size: 9px;
                  }
                .: |
                  [title='Thermometre Enfant1 Temperature']{
                    font-size: 9px;
                    --label-badge-background-color: {% if states('sensor.thermometre_Enfant1_humidity_2') | int > 62 %} #4a5654 {% elif states('sensor.thermometre_Enfant1_battery_2')|int < 15  %} #4a5654 {% else %} white {% endif %};
                    --label-badge-text-color: {% if states('sensor.thermometre_Enfant1_humidity_2') | int > 62 %} white {% elif states('sensor.thermometre_Enfant1_battery_2')|int < 15  %} white {% else %} black {% endif %};
                    --label-badge-red: {% if states('sensor.thermometre_Enfant1_humidity_2') | int > 62 %} blue {% elif states('sensor.thermometre_Enfant1_battery_2')|int < 15  %} red {% else %} green {% endif %};
                  }
                  [title='Thermometre Enfant2 Temperature']{
                    font-size: 9px;
                    --label-badge-background-color: {% if states('sensor.thermometre_Enfant2_humidity_2') | int > 62 %} #4a5654 {% elif states('sensor.thermometre_Enfant2_battery_2')|int < 15  %} #4a5654 {% else %} white {% endif %};
                    --label-badge-text-color: {% if states('sensor.thermometre_Enfant2_humidity_2') | int > 62 %} white {% elif states('sensor.thermometre_Enfant2_battery_2')|int < 15  %} white {% else %} black {% endif %};
                    --label-badge-red: {% if states('sensor.thermometre_Enfant2_humidity_2') | int > 62 %} blue {% elif states('sensor.thermometre_Enfant2_battery_2')|int < 15  %} red {% else %} green {% endif %};
                  }
                  [title='Thermometre parent Temperature']{
                    font-size: 9px;
                    --label-badge-background-color: {% if states('sensor.thermometre_e_and_o_humidity') | int > 62 %} #4a5654 {% elif states('sensor.thermometre_e_and_o_battery')|int < 15  %} #4a5654 {% else %} white {% endif %};
                    --label-badge-text-color: {% if states('sensor.thermometre_e_and_o_humidity') | int > 62 %} white {% elif states('sensor.thermometre_e_and_o_battery')|int < 15  %} white {% else %} black {% endif %};
                    --label-badge-red: {% if states('sensor.thermometre_e_and_o_humidity') | int > 62 %} blue {% elif states('sensor.thermometre_e_and_o_battery')|int < 15  %} red {% else %} green {% endif %};
                  }
                  [title='Thermometre SDB Temperature']{
                    font-size: 9px;
                    --label-badge-background-color: {% if states('sensor.thermometre_sdb_humidity_3') | int > 62 %} #4a5654 {% elif states('sensor.thermometre_sdb_battery_3')|int < 15  %} #4a5654 {% else %} white {% endif %};
                    --label-badge-text-color: {% if states('sensor.thermometre_sdb_humidity_3') | int > 62 %} white {% elif states('sensor.thermometre_sdb_battery_3')|int < 15  %} white {% else %} black {% endif %};
                    --label-badge-red: {% if states('sensor.thermometre_sdb_humidity_3') | int > 62 %} blue {% elif states('sensor.thermometre_sdb_battery_3')|int < 15  %} red {% else %} green {% endif %};
                  }
                  [title='Thermometre Salon Temperature']{
                    font-size: 9px;
                    --label-badge-background-color: {% if states('sensor.thermometre_salon_humidity') | int > 62 %} #4a5654 {% elif states('sensor.thermometre_salon_battery')|int < 15  %} #4a5654 {% else %} white {% endif %};
                    --label-badge-text-color: {% if states('sensor.thermometre_salon_humidity') | int > 62 %} white {% elif states('sensor.thermometre_salon_battery')|int < 15  %} white {% else %} black {% endif %};
                    --label-badge-red: {% if states('sensor.thermometre_salon_humidity') | int > 62 %} blue {% elif states('sensor.thermometre_salon_battery')|int < 15  %} red {% else %} green {% endif %};
                  }
        image: /local/floorplan/images de base/eteint2.png
        style:
          width: 160px
        elements:
          - type: image
            entity: light.mur_de_meuble
            tap_action:
              action: none
            state_image:
              'on': /local/floorplan/images de base/mur de meuble.png
              'off': /local/floorplan/images de base/trans.png
              unavailable: /local/floorplan/images de base/trans.png
            style:
              top: 50%
              left: 50%
              width: 100%
          - type: image
            entity: light.lampe_salon_light
            tap_action:
              action: none
            state_image:
              'on': /local/floorplan/images de base/lampe salon.png
              'off': /local/floorplan/images de base/trans.png
              unavailable: /local/floorplan/images de base/trans.png
            style:
              top: 50%
              left: 50%
              width: 100%
          - type: image
            entity: light.etagere_salon_light
            tap_action:
              action: none
            state_image:
              'on': /local/floorplan/images de base/etagere salon.png
              'off': /local/floorplan/images de base/trans.png
              unavailable: /local/floorplan/images de base/trans.png
            style:
              top: 50%
              left: 50%
              width: 100%
          - type: image
            entity: light.colr_Enfant1_light
            tap_action:
              action: none
            state_image:
              'on': /local/floorplan/images de base/couloir Enfant1.png
              'off': /local/floorplan/images de base/trans.png
              unavailable: /local/floorplan/images de base/trans.png
            style:
              top: 50%
              left: 50%
              width: 100%
          - type: image
            entity: light.colr_sdb_light_2
            tap_action:
              action: none
            state_image:
              'on': /local/floorplan/images de base/sdb.png
              'off': /local/floorplan/images de base/trans.png
              unavailable: /local/floorplan/images de base/trans.png
            style:
              top: 50%
              left: 50%
              width: 100%
          - type: image
            entity: light.ruban_Enfant2_light
            tap_action:
              action: none
            state_image:
              'on': /local/floorplan/images de base/bureau Enfant2.png
              'off': /local/floorplan/images de base/trans.png
              unavailable: /local/floorplan/images de base/trans.png
            style:
              top: 50%
              left: 50%
              width: 100%
          - type: image
            entity: light.lumiere_Enfant2_light
            tap_action:
              action: none
            state_image:
              'on': /local/floorplan/images de base/lampe Enfant2.png
              'off': /local/floorplan/images de base/trans.png
              unavailable: /local/floorplan/images de base/trans.png
            style:
              top: 50%
              left: 50%
              width: 100%
          - type: image
            entity: switch.multiprise_estelle_switch
            tap_action:
              action: none
            state_image:
              'on': /local/floorplan/images de base/estelle.png
              'off': /local/floorplan/images de base/trans.png
              unavailable: /local/floorplan/images de base/trans.png
            style:
              top: 50%
              left: 50%
              width: 100%
          - type: image
            entity: light.lumiere_barre_de_son
            tap_action:
              action: none
            state_image:
              'on': /local/floorplan/images de base/barre de son.png
              'off': /local/floorplan/images de base/trans.png
              unavailable: /local/floorplan/images de base/trans.png
            style:
              top: 50%
              left: 50%
              width: 100%
          - type: image
            entity: light.colr_sdb_light_2
            tap_action:
              action: call-service
              confirmation: false
              service: switch.toggle
              target:
                entity_id: switch.nodered_1ab61715d6b72698
            hold_action:
              action: call-service
              confirmation: false
              service: button.press
              target:
                entity_id: button.dodo_ma_puce
            state_image:
              'on': /local/floorplan/icones/bulb-on2.png
              'off': /local/floorplan/icones/bulb-off2.png
              unavailable: /local/floorplan/icones/bulb-out2.png
            style:
              top: 60%
              left: 47%
              width: 2%
          - type: image
            entity: light.colr_Enfant1_light
            tap_action:
              action: call-service
              confirmation: false
              service: switch.toggle
              target:
                entity_id: switch.nodered_1ab61715d6b72698
            hold_action:
              action: call-service
              confirmation: false
              service: button.press
              target:
                entity_id: button.dodo_ma_puce
            state_image:
              'on': /local/floorplan/icones/bulb-on2.png
              'off': /local/floorplan/icones/bulb-off2.png
              unavailable: /local/floorplan/icones/bulb-out2.png
            style:
              top: 60%
              left: 36%
              width: 2%
          - type: image
            entity: light.etagere_salon_light
            tap_action:
              action: toggle
            state_image:
              'on': /local/floorplan/icones/bulb-on2.png
              'off': /local/floorplan/icones/bulb-off2.png
              unavailable: /local/floorplan/icones/bulb-out2.png
            style:
              top: 4%
              left: 55%
              width: 2%
          - type: image
            entity: light.lampe_salon_light
            tap_action:
              action: toggle
            state_image:
              'on': /local/floorplan/icones/bulb-on2.png
              'off': /local/floorplan/icones/bulb-off2.png
              unavailable: /local/floorplan/icones/bulb-out2.png
            style:
              top: 4%
              left: 45%
              width: 2%
          - type: image
            entity: light.lumiere_barre_de_son
            tap_action:
              action: toggle
            state_image:
              'on': /local/floorplan/icones/bulb-on2.png
              'off': /local/floorplan/icones/bulb-off2.png
              unavailable: /local/floorplan/icones/bulb-out2.png
            style:
              top: 13%
              left: 44%
              width: 2%
          - type: image
            entity: binary_sensor.heiman_smokesensor_ef_3_0_iaszone
            state_image:
              'on': /local/floorplan/icones/detecteur feu pas ok.png
              'off': /local/floorplan/icones/detecteur feu ok.png
              unavailable: /local/floorplan/icones/detecteur feu out.png
            style:
              top: 60%
              left: 39%
              width: 2%
          - type: image
            entity: switch.multiprise_estelle_switch
            tap_action:
              action: toggle
            state_image:
              'on': /local/floorplan/icones/bulb-on2.png
              'off': /local/floorplan/icones/bulb-off2.png
              unavailable: /local/floorplan/icones/bulb-out2.png
            style:
              top: 55%
              left: 25%
              width: 2%
          - type: image
            entity: light.mur_de_meuble
            tap_action:
              action: toggle
            state_image:
              'on': /local/floorplan/icones/bulb-on2.png
              'off': /local/floorplan/icones/bulb-off2.png
              unavailable: /local/floorplan/icones/bulb-out2.png
            style:
              top: 4%
              left: 50%
              width: 2%
          - type: image
            entity: light.colr_Enfant1_light
            tap_action:
              action: call-service
              confirmation: true
              service: button.press
              target:
                entity_id: button.dodo_ma_puce
            state_image:
              'on': /local/floorplan/icones/bulb-on2.png
              'off': /local/floorplan/icones/bulb-off2.png
              unavailable: /local/floorplan/icones/bulb-out2.png
            style:
              top: 15%
              left: 65%
              width: 3%
          - type: service-button
            title: Veilleuse Enfant1
            style:
              top: 15%
              left: 73%
              '--primary-color': black
            service: button.press
            service_data:
              entity_id: button.dodo_ma_puce
          - type: image
            entity: switch.commande_salon
            tap_action:
              action: toggle
            state_image:
              'on': /local/floorplan/icones/bulb-on2.png
              'off': /local/floorplan/icones/bulb-off2.png
              unavailable: /local/floorplan/icones/bulb-out2.png
            style:
              top: 8%
              left: 65%
              width: 3%
          - type: service-button
            title: interrupteur du salon
            style:
              top: 8%
              left: 73%
              '--primary-color': black
            service: homeassistant.toggle
            service_data:
              entity_id: switch.commande_salon
          - type: state-badge
            entity: sensor.thermometre_salon_temperature
            tap_action:
              action: fire-dom-event
              browser_mod:
                command: call-service
                service: browser_mod.popup
                data:
                  deviceID:
                    - this
                  title: Thermomètre Salon
                  content:
                    type: entities
                    entities:
                      - entity: sensor.thermometre_salon_battery
                      - entity: sensor.thermometre_salon_humidity
                      - entity: sensor.thermometre_salon_temperature
                    state_color: true
            style:
              top: 20%
              left: 49%
              text-align: center
              font-weight: bold
          - type: state-badge
            entity: sensor.thermometre_sdb_temperature_3
            tap_action:
              action: fire-dom-event
              browser_mod:
                command: call-service
                service: browser_mod.popup
                data:
                  deviceID:
                    - this
                  title: Thermomètre salle de bain
                  content:
                    type: entities
                    entities:
                      - entity: sensor.thermometre_sdb_battery_3
                      - entity: sensor.thermometre_sdb_humidity_3
                      - entity: sensor.thermometre_sdb_temperature_3
                    state_color: true
            style:
              top: 60%
              left: 52%
              text-align: center
              font-weight: bold
          - type: state-badge
            entity: sensor.thermometre_Enfant1_temperature_2
            tap_action:
              action: fire-dom-event
              browser_mod:
                command: call-service
                service: browser_mod.popup
                data:
                  deviceID:
                    - this
                  title: Thermomètre Enfant1
                  content:
                    type: entities
                    entities:
                      - entity: sensor.thermometre_Enfant1_battery_2
                      - entity: sensor.thermometre_Enfant1_humidity_2
                      - entity: sensor.thermometre_Enfant1_temperature_2
                    state_color: true
            style:
              top: 50%
              left: 35%
              text-align: center
              font-weight: bold
          - type: state-badge
            entity: sensor.thermometre_Enfant2_temperature_2
            tap_action:
              action: fire-dom-event
              browser_mod:
                command: call-service
                service: browser_mod.popup
                data:
                  deviceID:
                    - this
                  title: Thermomètre Enfant2
                  content:
                    type: entities
                    entities:
                      - entity: sensor.thermometre_Enfant2_battery_2
                      - entity: sensor.thermometre_Enfant2_humidity_2
                      - entity: sensor.thermometre_Enfant2_temperature_2
                    state_color: true
            style:
              top: 50%
              left: 43%
              text-align: center
              font-weight: bold
          - type: state-badge
            entity: sensor.thermometre_e_and_o_temperature
            tap_action:
              action: fire-dom-event
              browser_mod:
                command: call-service
                service: browser_mod.popup
                data:
                  deviceID:
                    - this
                  title: Thermomètre parent
                  content:
                    type: entities
                    entities:
                      - entity: sensor.thermometre_e_and_o_battery
                      - entity: sensor.thermometre_e_and_o_humidity
                      - entity: sensor.thermometre_e_and_o_temperature
                    state_color: true
            style:
              top: 50%
              left: 23%
              text-align: center
              font-weight: bold
          - type: image
            entity: climate.clim_salon_2
            tap_action:
              action: fire-dom-event
              browser_mod:
                command: call-service
                service: browser_mod.popup
                data:
                  deviceID:
                    - this
                  content:
                    type: custom:mushroom-climate-card
                    entity: climate.clim_salon_2
                    name: Climatisation salon
                    layout: horizontal
                    fill_container: true
                    hvac_modes: []
                    show_temperature_control: true
                    icon_type: entity-picture
                    tap_action:
                      action: none
                    hold_action:
                      action: none
                    double_tap_action:
                      action: none
            state_image:
              heat_cool: /local/floorplan/icones/clim_auto2.png
              fan_only: /local/floorplan/icones/clim_fan2.png
              dry: /local/floorplan/icones/clim_dry2.png
              cool: /local/floorplan/icones/clim_cool2.png
              Inactif: /local/floorplan/icones/clim_off2.png
              heat: /local/floorplan/icones/clim_heat2.png
              'off': /local/floorplan/icones/clim_off2.png
              unavailable: /local/floorplan/icones/clim_off2.png
            style:
              top: 18%
              left: 57%
              width: 2%
          - type: image
            entity: climate.clim_Enfant1
            tap_action:
              action: fire-dom-event
              browser_mod:
                command: call-service
                service: browser_mod.popup
                data:
                  deviceID:
                    - this
                  content:
                    type: custom:mushroom-climate-card
                    entity: climate.clim_Enfant1
                    name: Climatisation chambre Enfant1
                    layout: horizontal
                    fill_container: true
                    hvac_modes: []
                    show_temperature_control: true
                    icon_type: entity-picture
                    tap_action:
                      action: none
                    hold_action:
                      action: none
                    double_tap_action:
                      action: none
            state_image:
              heat_cool: /local/floorplan/icones/clim_auto2.png
              fan_only: /local/floorplan/icones/clim_fan2.png
              dry: /local/floorplan/icones/clim_dry2.png
              cool: /local/floorplan/icones/clim_cool2.png
              Inactif: /local/floorplan/icones/clim_off2.png
              heat: /local/floorplan/icones/clim_heat2.png
              'off': /local/floorplan/icones/clim_off2.png
              unavailable: /local/floorplan/icones/clim_off2.png
            style:
              top: 39%
              left: 29%
              width: 2%
          - type: image
            entity: climate.clim_parent
            tap_action:
              action: fire-dom-event
              browser_mod:
                command: call-service
                service: browser_mod.popup
                data:
                  deviceID:
                    - this
                  content:
                    type: custom:mushroom-climate-card
                    entity: climate.clim_parent
                    name: Climatisation chambre parents
                    layout: horizontal
                    fill_container: true
                    hvac_modes: []
                    show_temperature_control: true
                    icon_type: entity-picture
                    tap_action:
                      action: none
                    hold_action:
                      action: none
                    double_tap_action:
                      action: none
            state_image:
              heat_cool: /local/floorplan/icones/clim_auto2.png
              fan_only: /local/floorplan/icones/clim_fan2.png
              dry: /local/floorplan/icones/clim_dry2.png
              cool: /local/floorplan/icones/clim_cool2.png
              Inactif: /local/floorplan/icones/clim_off2.png
              heat: /local/floorplan/icones/clim_heat2.png
              'off': /local/floorplan/icones/clim_off2.png
              unavailable: /local/floorplan/icones/clim_off2.png
            style:
              top: 39%
              left: 26%
              width: 2%
          - type: image
            entity: climate.clim_Enfant2_2
            tap_action:
              action: fire-dom-event
              browser_mod:
                command: call-service
                service: browser_mod.popup
                data:
                  deviceID:
                    - this
                  content:
                    type: custom:mushroom-climate-card
                    entity: climate.clim_Enfant2_2
                    name: Climatisation chambre Enfant2
                    layout: horizontal
                    fill_container: true
                    hvac_modes: []
                    show_temperature_control: true
                    icon_type: entity-picture
                    tap_action:
                      action: none
                    hold_action:
                      action: none
                    double_tap_action:
                      action: none
            state_image:
              heat_cool: /local/floorplan/icones/clim_auto2.png
              fan_only: /local/floorplan/icones/clim_fan2.png
              dry: /local/floorplan/icones/clim_dry2.png
              cool: /local/floorplan/icones/clim_cool2.png
              Inactif: /local/floorplan/icones/clim_off2.png
              heat: /local/floorplan/icones/clim_heat2.png
              'off': /local/floorplan/icones/clim_off2.png
              unavailable: /local/floorplan/icones/clim_off2.png
            style:
              top: 39%
              left: 43%
              width: 2%`
3 « J'aime »