"Hi, first of all thank you for this amazing card. The doors opening and the color-synced lights were nice surprises! They’re the kind of thing that makes this whole home automation thing worth the countless invested hours. The temperature displayed with a transparent box and overlay is nice too. But alas, I do have a few issues… though I am not sure if it is me, or the code. So far these issues seem to persist:
#1. I seem to have a problem with the text feature. I can’t get state text to appear or any other text for that matter for any entity and its states! (which is weird because the color: feature works just fine with those same entities, and entitiy states). I have tried NO input for the attribute: selection, which I am assuming is supposed to display the state. I have tried the app_name: attribute, and even the freindly_name: just to get it to display something. I have tried displaying it on a glass window in case the image is displayed on the wrong side of the surface. I have tried deleting all my other entities from the 3d card configuration to see if there was some sort of conflict. I have tried loading both the .glb and .obj. I have spent about 5 hours so far just on this issue alone, with help from ChatGPT and I still can’t figure it out.
#2 This issue is basically the same, but with the show: and hide: features instead, and the addition of errors preventing the model from rendering. But this gets a little weirder… If I load the UI with the entity in the desired state for the ‘hide’ or ‘show’ feature to work, only then will the errors appear. Furthermore, if the desired state is not achieved at the time the UI loads, the UI will load just fine, with the model entity working as expected, disappearing and appearing as expected with the state changes.
#3 Having 2 levels, I use the HASS plugin for SweetHome, and the overlay for the level selection is far too small, and the actual button doesn’t seem to line up exactly with the UI. I have been left many times frustrated with trying to select the right level. It would be nice to customize those buttons a bit.
#4 This one is more of a feature request. It would be nice to also have a mdi:run icon show above/on the room floor. Obviously for room presence detection. I tried just painting the floor a color instead, but when using the temperature room feature, it’s very hard to see, no matter what color I choose.
#5 Another request: maybe the addition of a camera_postion: argument to the zoom: feature. I found it extremely difficult to get the right angle, when relying on the position of the camera to be determined by locking onto and setting a distance of an object. Something that would help a bit if it’s easier to implement than the above mentioned, is the addition of elevation as well as distance, to help get that right camera position.
#6 A few other requests might include: animations more devices, like waves for air cons and soundwaves for speakers. But these probably wouldn’t be necessary with the icon request I mentioned earlier.
#7 Last request: some of us can load their models on low powered devices, like my Samsung A8 tablet. But loading the whole thing at once can be a miserable experience. If there was a way to choose which floor or section to load at first, and toggle between them easily (leaving only 1 level or section displayed at a time), it would make the experience usable on many more devices.
Anyway thanks again for the amazing card! I cant see myself not using it now, even with the bugs i mentioned.
I am available to troubleshoot if needed, but my time and knowledge about code is extremely limited, I rely heavily on GPT to write what i can.
BTW: If its relevant i am running hassOS, and these are the only logs i can find…
Logger: frontend.js.latest.202212131
Source: components/system_log/__init__.py:256
First occurred: 11:49:47 AM (26 occurrences)
Last logged: 11:56:44 AM
http://homeassistant.local:8123/home-family-tab/3d-view?edit=1:0:0 Uncaught
http://homeassistant.local:8123/home-family-tab/3d-view:0:0 Uncaught
http://homeassistant.local:8123/developer-tools/state:0:0 Uncaught
and my working ui config is here
type: custom:floor3d-card
path: /local/Home_3D_Floor_Plan_V7
name: Home
objfile: home.glb
lock_camera: 'no'
header: 'no'
click: 'yes'
overlay: 'no'
backgroundColor: '#000000'
hideLevelsMenu: 'no'
globalLightPower: '0.7'
shadow: 'no'
extralightmode: 'no'
show_axes: 'no'
sky: 'no'
overlay_bgcolor: transparent
overlay_alignment: top-left
overlay_width: '33'
overlay_height: '20'
north:
x: -1
z: 0
camera_position:
x: -798.4686843957337
'y': 2999.705681430588
z: 187.13911849970634
camera_rotate:
x: -100.27666287624484
'y': -0.06338710578585374
z: -0.20614306531041865
camera_target:
x: -608.930533661716
'y': 141.7872224966762
z: -678.5812746304193
object_groups:
- object_group: stair_case_full
objects:
- object_id: Curve_staircase_19
- object_id: Curve_staircase_31
- object_id: Curve_staircase_23
- object_id: Curve_staircase_26
- object_id: Curve_staircase_15
- object_id: Curve_staircase_5
- object_id: Curve_staircase_32
- object_id: Curve_staircase_14
- object_id: Curve_staircase_9
- object_id: Curve_staircase_7
- object_id: Curve_staircase_16
- object_id: Curve_staircase_18
- object_group: diningroom_blinds
objects:
- object_id: Blind_1_2
- object_id: Blind_2_2
- object_id: Blind_3_2
entities:
- entity: media_player.samsung_q7_series_65
type3d: color
object_id: TV_3
colorcondition:
- state: 'on'
color: blue
- state: 'off'
color: black
action: more-info
- entity: sensor.living_room_temperature_sensor_a_c_temperature_2
type3d: room
object_id: room_13_1
room:
transparency: '80'
label_text: state
label: 'yes'
colorcondition:
- color: red
state: hot
- color: green
state: cool
entity_template: '[[[ if ($entity > 27) { "hot" } else { "cool" } ]]]'
action: overlay
- entity: sensor.master_bedroom_temperature_sensor_temperature
type3d: room
object_id: room_16_1
room:
transparency: '80'
label_text: state
label: 'yes'
colorcondition:
- color: red
state: hot
- color: green
state: cool
entity_template: '[[[ if ($entity > 27) { "hot" } else { "cool" } ]]]'
action: overlay
- entity: sensor.temperature_humidity_sensor_3_temperature
type3d: room
object_id: room_10_1
room:
transparency: '80'
label_text: state
label: 'yes'
colorcondition:
- color: red
state: hot
- color: green
state: cool
entity_template: '[[[ if ($entity > 27) { "hot" } else { "cool" } ]]]'
action: overlay
- entity: sensor.luca_s_bedroom_temperature_sensor_temperature
type3d: room
object_id: room_14_1
room:
transparency: '80'
label_text: state
label: 'yes'
colorcondition:
- color: red
state: hot
- color: green
state: cool
entity_template: '[[[ if ($entity > 27) { "hot" } else { "cool" } ]]]'
action: overlay
- entity: binary_sensor.ensuite_contact_sensor
type3d: door
door:
side: left
doortype: swing
direction: outer
object_id: Ensuite_Door_9
- entity: binary_sensor.walk_in_contact_sensor_2
type3d: door
door:
side: left
direction: inner
doortype: swing
object_id: Walk_In_Door_9
- entity: binary_sensor.bathroom_contact_sensor_2
type3d: door
door:
side: left
direction: outer
doortype: swing
object_id: Bathroom_Door_9
- entity: binary_sensor.toilet_contact_sensor_2
type3d: door
door:
doortype: swing
side: left
direction: outer
object_id: Toilet_Door_9
- entity: binary_sensor.front_door_contact_sensor_2
type3d: door
door:
side: right
direction: inner
doortype: swing
object_id: Door_9
- entity: light.master_bedroom_light
type3d: light
object_id: Master_Bedroom_Light_2
light:
lumens: '800'
decay: '2'
- entity: light.ensuite_light
type3d: light
object_id: Ensuite_Light_2
light:
lumens: '1000'
decay: '2'
distance: '200'
shadow: 'no'
- entity: light.bathroom_light
type3d: light
object_id: Bathroom_Light_2
light:
lumens: '600'
decay: '2'
- entity: light.hallway_light
type3d: light
object_id: Hallway_light_2
light:
lumens: '800'
decay: '6'
- entity: light.toilet_light
type3d: light
object_id: Toilet_Light_2
light:
lumens: '800'
decay: '5'
- entity: light.luca_s_bedroom_light
type3d: light
object_id: Lucas_Bedroom_Light_2
light:
lumens: '800'
decay: '2'
- entity: light.stairs_strip_light_2
type3d: light
object_id: Stairs_Light_2
light:
lumens: '50000'
decay: '4'
distance: '300'
- entity: light.back_patio_light
object_id: Livingroom_Light_2
type3d: light
light:
lumens: '4000'
angle: '90'
light_target: room_13_1
distance: '600'
vertical_alignment: bottom
- entity: light.walk_in_light
type3d: light
object_id: Walk_In_Light_2
light:
lumens: '2000'
light_target: room_15_1
distance: '400'
angle: '90'
vertical_alignment: middle
decay: '2'
- entity: light.kitchen_light
type3d: light
object_id: Kitchen_Light_2
light:
lumens: '5000'
vertical_alignment: middle
distance: '300'
light_target: room_2_1
decay: '1'
angle: '90'
shadow: 'no'
- entity: light.laundry_light
type3d: light
object_id: Laundry_Light_2
light:
lumens: '2000'
distance: '398'
light_target: Washbasin_with_cabinet_7
angle: '90'
- entity: light.front_patio_light
type3d: light
object_id: Front_Patio_Light_5
light:
lumens: '2000'
- entity: light.zac_s_bedroom_light
type3d: light
object_id: Zacs_Bedroom_Light_2
light:
lumens: '2000'
distance: '400'
decay: '2'
- entity: camera.blue_iris_amcrest_front_door_camera
type3d: camera
object_id: Amcrest_Front_Door_6
- entity: camera.blue_iris_amcrest_back_door_camera
type3d: camera
object_id: Amcrest_Camera_Back_Door_6
- entity: camera.blue_iris_sonoff_livingrooom_camera
type3d: camera
object_id: Sonoff_Camera_Livingroom_13
- entity: camera.luca_s_camera
type3d: camera
object_id: Nest_Camera_Luca_7
- entity: camera.kitchen_display
type3d: camera
object_id: Nest_Display_Kitchen_2
- entity: binary_sensor.living_room_occupancy
type3d: color
object_id: room_13_1
colorcondition:
- state: 'on'
color: '#000000'
- entity: binary_sensor.pir_master_bedroom
type3d: color
object_id: room_16_1
colorcondition:
- state: 'on'
color: '#000000'
- entity: binary_sensor.pir_laundry
type3d: color
object_id: room_3_1
colorcondition:
- state: 'on'
color: '#000000'
- entity: binary_sensor.pir_kitchen_2
type3d: color
object_id: room_2_1
colorcondition:
- state: 'on'
color: '#000000'
- entity: binary_sensor.pir_bottom_stairs_2
type3d: color
object_id: <stair_case_full>
colorcondition:
- state: 'on'
color: '#000000'
- entity: binary_sensor.pir_top_stairs_2
type3d: color
object_id: <stair_case_full>
colorcondition:
- state: 'on'
color: '#000000'
- entity: binary_sensor.pir_top_stairs_2
type3d: color
object_id: room_10_1
colorcondition:
- state: 'on'
color: '#000000'
- entity: binary_sensor.pir_luca_s_bedroom_2
type3d: color
object_id: room_14_1
colorcondition:
- state: 'on'
color: '#000000'
action: default
- entity: binary_sensor.pir_ensuite
type3d: color
object_id: room_16_1
colorcondition:
- state: 'on'
color: '#000000'
- entity: binary_sensor.pir_aqara_bathroom
type3d: color
object_id: room_7_1
colorcondition:
- state: 'on'
color: '#000000'
- type3d: color
object_id: room_11_1
colorcondition:
- state: 'on'
color: '#000000'
entity: pir_aqara_ensuite
- entity: pir_aqara_toilet
type3d: color
object_id: room_8_1
colorcondition:
- state: 'on'
color: '#000000'
- entity: binary_sensor.marks_bed_sensor
action: more-info
type3d: color
object_id: Bed_18
colorcondition:
- color: yellow
state: 'off'
mtlfile: home.mtl
objectlist: home.json
selectionMode: 'no'
editModeNotifications: 'yes'
zoom_areas:
- zoom: Livingroom Cameras
object_id: Sonoff_Camera_Livingroom_13
distance: '50'
rotation:
x: -0.4295283840084365
'y': 600.9757211209288
z: 400.36254777125407
direction:
x: -608.930533661716
'y': 141.7872224966762
z: -2047.716542480854
- zoom: Livingroom Cameras test
object_id: Livingroom_Light_2
distance: '130'
rotation:
x: -2.4632749935981453
'y': -1.0750672405640795
z: -2.524936951300191
direction:
x: -233.1642459094933
'y': -57.951761908927885
z: -103.1472103125235