Your Home Digital Twin: Interactive floor 3d plan

20 mb GLB should not be a big problem for the card in a recent iOS device. There is nothing I can do to improve, the WebGL based library I’m using (three.js) does HW acceleration whenever the device supports it. Have you tried to use the same model in obj format ? The support of GLB is really experimental in the card and there might be some collateral effects. Obj format is slower to load though (even when cached)

OBJ worked great! Ill stick with that. I know you really don’t have the time to maintain the project but I really do love it, keep up the great work.

Hej,
Can you add the possibility of setting the initial floor level? It always starts with level 1 and I want level 0 to be the default

In order to make the models computationally minimal and render on devices with limited resources, is it possible to replace the light behavior such that a double-click can be used to change color of the object (instead of actually modeling how light waves behave)? I can do this by changing lumens to 0, but I wonder if it is still using more resources than just a simple color change for the object.

Hello @potrgani , in reality it starts with all level displayed, I’m not releasing new versions since a lot of time so I cannot promise you anything, you should start by putting a ticket in github with your requirements…

Hello @FortranFour, what I did in the light card that I have created is to use the spotlight. Spotlights are generating less workload because the volume they cover is limited, if I’m not mistaken you can have more than 16 spotlights in the model (never tried).

You turn your light into a spotlight by putting values in the following 2 parameters of the light:

light_target: when this parameter is filled, the light becomes a spotlight, you need to put here the object_id of the target of the spot
light_direction: when this parameter is filled, the light becomes a spotlight, you put here the direction vector of the spotlight. It can only be changed in the code editor. in the format x: xxx, y: yyy, z: zzz. See coordinate explanation above

Maybe you have already tried.

1 Like

Thanks. I did not see a big difference in performance between spotlight vs non-spotlight lighting. What seems to have made the biggest difference is, in Windows 11, switching web browsers from Chrome to Edge. Despite Edge being a Chrome derivative, it performs much better than Chrome. In fact, running a large model (~30 - 40 lights) on Chrome actually crashes my computer (11th Gen Intel Core i7 with built-in graphics), whereas your integration runs fairly smoothly on Edge.

Interactive floor 3d plan and browser_mod (GitHub - thomasloven/hass-browser_mod: 🔹 A Home Assistant integration to turn your browser into a controllable entity and media player) make for a nice combination. It can sometimes be a little difficult to click on objects, so I grouped together entities within rooms and using Room Card (Custom card: Room Card), with a call from a ‘type3d: gesture’, a pop-up can be used to control individual entities.

2 Likes

Very nice, in the end you opted for directional lights. I will give it a try

Hi @adizanni,

first of all thank you so much for developing this great tool. I started a week ago designing my home with SH3D and after some initial “challenges” I got it into HASS. Most things are working fine but there are three problems I cannot solve even with all the tips and trick of you all here in this forum.

  1. I cannot get levels to work. I used the export tool and I can get it into home assistant. But levels are not showing up, so I only see the full model and have no option to switch between them. After it failed with my home I just made a very basic model with two levels, one room in each level and some windows and a light. But even with this model there is no level menu showing up. No matter if I use yes or no in the “hide levels” option. I tried it with several different browsers (Safari, Chrome, Duckduck) a Win 11, a macbook and the IOS app.

  2. When I use the home.json file, I cannot enter the object ID with copy paste. I need to scroll through all object IDs of the model. And as it shows up to 15 IDs for a light alone this is not manageable. Without the home.json file it works as expected with clicking on an object and copy and paste it into the object ID.

  3. One level (the top floor) cannot be exported with the SW3D tool. I tried to delete some of the objects, renamed them but it does not save the zip file. The normal obj export works fine and I can open it in home assistant.

Maybe someone has any further suggestion what I can do to get these problems solved.

Cheers,

Drago

Hello, first suggestion is to use only ASCIi characters for the name of the objects, no accent, umlaut or special characters (ex. Window_1, light_1, etc). Objects should have unique names. This is usually preventing the plug-in to work properly. If you still have trouble please send me your sh3d file and/or obj file via private message

Thank you for the suggestion. I will double check if I still have these characters in. For the other levels there are special characters but it still is possible to export. Do you have any suggestion why the levels menu does jot show up?

The export of the top level was really blocked by the naming of the objects. THANK YOU!

Here are some screenshots of the test model for the levels. It is basic but I have no possibility to get the level menu to work…





Screenshot_5

The names of the objects are not unique: Fenster is used twice. Go for Fenster1 and Fenster2. This shouldn’t cause the problem with levels but can cause problem with the entity assignment. If you still cannot see the level, I really need to test your model

Hello all,

not sure if you had noticed, I have created an add-on in Home Assistant for editing the Sweethome3d model in a web application and export the obj directly in a home assistant folder. It is still a little rudimentary (does not support Ingres) but it is working quite well, please test it and give me some feedback:

I just wondered if anyone had any success with assigning light attributes to one object, but having another object activate / deactivate the action?

I have small lamps in a room, setting these lights up to emit light when one isn’t an issue, but I’m finding it difficult to selected these smaller objects from the UI. Is it even possible to have Object_A’s on click action initiate a light coming from Object_B?

Thanks!

Yes, here’s what I did for the three lights in my L-shaped hallway:

I set up template sensors for two of the lights, to mirror the third:

switch:
  - platform: template # Virtual switch for other two hallway lights to mirror the third actually linked to the switch in 3D floorplan
    switches:
      hallway2:
        friendly_name: "Hallway light 2"
        value_template: "{{ is_state('switch.in_wall_paddle_switch_qfsw_700s', 'on') }}"
        turn_on:
          service: switch.turn_on
          target:
            entity_id: switch.in_wall_paddle_switch_qfsw_700s
        turn_off:
          service: switch.turn_off
          target:
            entity_id: switch.in_wall_paddle_switch_qfsw_700s

  - platform: template # Virtual switch for other two hallway lights to mirror the third actually linked to the switch in 3D floorplan
    switches:
      hallway3:
        friendly_name: "Hallway light 3"
        value_template: "{{ is_state('switch.in_wall_paddle_switch_qfsw_700s', 'on') }}"
        turn_on:
          service: switch.turn_on
          target:
            entity_id: switch.in_wall_paddle_switch_qfsw_700s
        turn_off:
          service: switch.turn_off
          target:
            entity_id: switch.in_wall_paddle_switch_qfsw_700s

The corresponding code in the card:

  - object_group: hall
    objects:
      - object_id: Outdoor_lamp_1
      - object_id: Outdoor_lamp_1_1
      - object_id: Outdoor_lamp_1_2

  - entity: switch.in_wall_paddle_switch_qfsw_700s
    type3d: color
    object_id: <hall>
    colorcondition:
      - state: 'off'
        color: LightSteelBlue
      - state: 'on'
        color: Gold
  - entity: switch.in_wall_paddle_switch_qfsw_700s
    type3d: light
    object_id: <hall>
    light:
      shadow: 'no'
      color: '#FFB830'
      distance: '325'
      lumens: '400'
      decay: '0.4'
      light_direction:
        x: 0
        'y': -5
        z: 0                 

In your specific case, you would not group the lights and set the one you don’t want to display to zero lumens. Also see my post about using browser mod to create a pop-up card with controls, which I activate with a gesture linked to clicking on the floor of the corresponding room. Hope that helps.

1 Like

Hi, I’m a beginner and a little confused.
Please advise how to navigate the TYPES of 3D objects. I mastered LIGHT and ROTATION, but the other types fail me.

Hello @Davidov78 , it is difficult to give you more guidelines here than there are in the existing documentation and video. I’m surprised by what you say because the light and rotation are probably the 2 hardest 3d types, others should come even easier. Have you read the Read.me (floor3d-card/README.md at 00b911eb8eb258faa4dbe13d64f23d10f0c4dc7a · adizanni/floor3d-card · GitHub) ?