twrecked / lovelace-hass-aarlo

Lovelace card for hass-aarlo integration.
75 stars 23 forks source link

Broken image displayed #140

Open justinmaiuto opened 1 year ago

justinmaiuto commented 1 year ago

The card has been working great for years. Recently one of my cameras battery went flat. Even though it is now charged and connected to HA (i can set alarm mode, take snapshots etc via service calls), the card just displays a broken image. All other cameras and their cards are working fine.

entity: camera.aarlo_front_door_camera
image_view: start-stream
image_click: play
name: Front outdoor camera
play_direct: true
show:
  - motion
  - sound
  - snapshot
  - battery_level
  - signal_strength
  - captured_today
  - image_date
top_date: false
top_status: false
top_title: false
type: custom:aarlo-glance

Screenshot_20230225_065641_Chrome

justinmaiuto commented 1 year ago

Have tried restarting and disabling/enabling the camera with no help. Nothing suspect in the logs either

twrecked commented 1 year ago

Does CTRL+SHIFT+R help? It could be caching.

edit: I just noticed it's a phone...

justinmaiuto commented 1 year ago

Yep, problem is happening on all devices I try, phone/tablet/laptop.

justinmaiuto commented 1 year ago

Could these be related?

Logger: homeassistant.components.websocket_api.http.connection Source: components/websocket_api/connection.py:150 Integration: Home Assistant WebSocket API (documentation, issues) First occurred: 06:42:13 (1 occurrences) Last logged: 06:42:13 [140691642349792] Error handling message: required key not provided @ data['filename']. Got None (invalid_format) from 192.168.1.61 (Mozilla/5.0 (Linux; Android 13; SM-S901E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Mobile Safari/537.36)

Logger: homeassistant.helpers.script.websocket_api_script Source: helpers/script.py:409 First occurred: 06:42:13 (1 occurrences) Last logged: 06:42:13 websocket_api script: Error executing script. Invalid data for call_service at pos 1: required key not provided @ data['filename']

twrecked commented 1 year ago

There are a couple of things we can look at:

Go to Developer Tools > STATES and find your cameras, they will be named something like camera.aarlo_..... Look the last_thumbnail entry. Copy and paste that into your web browser. Try it with a camera that works and one that doesn't. You should see a thumbnail appear.

Now look for entity_picture. Paste your Home Assistant URL with entity_picture after into the web browser. Does that show the thumbnails?

justinmaiuto commented 1 year ago

Last_Thumbnail appears for the camera that are working and also the one not working.

The entity_picture also displays in the browser directly and is the same as the last_thumbnail

justinmaiuto commented 1 year ago

Screenshot_20230225_083110_Chrome Screenshot_20230225_083041_Chrome

twrecked commented 1 year ago

Interesting. The second URL is what the Lovelace card uses to get its picture. You any good with web browsing debugging?

This will need to be done on a desktop. And these instructions assume you are using Chrome.

Open the camera web page, press CTRL+SHIFT+I and then CTRL+SHIFT+R. This will load the page into the debugger.

Now select this button and click right on a camera image. select

The debug window should pop up and you'll see something like this but with a proper URL as src.

<img class="aarlo-image" id="camera-viewer-camera-aarlo-front-door-bell"
     style="" title="automatically captured at 02-23 20:29"
    src="XXXXXXX" alt="automatically captured at 02-23 20:29">

You can click on the src URL. Does that work. And src should look like the one you pasted in.

(And seeing all that green and sun made me jealous, I'm still under 4 feet of snow here!)

justinmaiuto commented 1 year ago

I can see the img block and the url is correct (obfuscated some urls with xxxx):

<img class="aarlo-image" style="display:none" id="camera-viewer-camera-aarlo-front-door-camera" title="snapshot captured at 02-25 15:00" src="/api/camera_proxy/camera.aarlo_front_door_camera?xxxx" alt="snapshot captured at 02-25 15:00">

but this is not what is displayed, when I hover over this in the debugger, it highlights the broken image on the page:

<div class="aarlo-image aarlo-broken-image" style="height: 100px" id="broken-image-camera-aarlo-front-door-camera">
                    </div>

here is the whole block if that helps:

<ha-card class="type-custom-aarlo-glance">
                <div class="aarlo-base aarlo-aspect-16x9" id="aarlo-wrapper-camera-aarlo-front-door-camera">
                    <video class="aarlo-video" style="display:none" playsinline="" muted="" id="video-player-camera-aarlo-front-door-camera">
                        Your browser does not support the video tag.
                    </video>
                    <img class="aarlo-image" style="display:none" id="camera-viewer-camera-aarlo-front-door-camera" title="snapshot captured at 02-25 15:00" src="/api/camera_proxy/camera.aarlo_front_door_camera?token=xxxx" alt="snapshot captured at 02-25 15:00">
                    <div class="aarlo-image" style="display:none" id="library-viewer-camera-aarlo-front-door-camera"><div style="display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); gap: 1px; padding: 2px;"><div style="position: relative; grid-area: 1 / 1 / auto / auto;"><img id="library-0-camera-aarlo-front-door-camera" title="captured: 02-21 17:29
reason: vehicle" src="xxxx" alt="captured: 02-21 17:29
reason: vehicle" style="width: 100%; height: 100%; object-fit: cover;"><div id="library-box-0-camera-aarlo-front-door-camera" title="captured: 02-21 17:29
reason: vehicle" style="width: 16.6%; height: 14%; position: absolute; top: 5.8%; left: 44.7%; border-style: solid; border-width: thin; border-color: yellow;"></div><a id="library-a-0-camera-aarlo-front-door-camera" download="" href="xxxx" style="position: absolute; left: 2%; top: 5%; display: none;"><ha-icon class="aarlo-icon-small" icon="mdi:download" style="color: white;"></ha-icon></a></div><div style="position: relative; grid-area: 1 / 2 / auto / auto;"><img id="library-1-camera-aarlo-front-door-camera" title="captured: 02-21 17:23" src="xxxx" alt="captured: 02-21 17:23" style="width: 100%; height: 100%; object-fit: cover;"><div id="library-box-1-camera-aarlo-front-door-camera" style="width: 100%; height: 100%; position: absolute; top: 0px; display: none;"></div><a id="library-a-1-camera-aarlo-front-door-camera" download="" href="xxxx" style="position: absolute; left: 2%; top: 5%; display: none;"><ha-icon class="aarlo-icon-small" icon="mdi:download" style="color: white;"></ha-icon></a></div><div style="position: relative; grid-area: 1 / 3 / auto / auto;"><img id="library-2-camera-aarlo-front-door-camera" title="captured: 02-21 15:59" src="xxxx" alt="captured: 02-21 15:59" style="width: 100%; height: 100%; object-fit: cover;"><div id="library-box-2-camera-aarlo-front-door-camera" style="width: 100%; height: 100%; position: absolute; top: 0px; display: none;"></div><a id="library-a-2-camera-aarlo-front-door-camera" download="" href="xxxx" style="position: absolute; left: 2%; top: 5%; display: none;"><ha-icon class="aarlo-icon-small" icon="mdi:download" style="color: white;"></ha-icon></a></div><div style="position: relative; grid-area: 2 / 1 / auto / auto;"><img id="library-3-camera-aarlo-front-door-camera" title="captured: 02-21 15:50" src="xxxx" alt="captured: 02-21 15:50" style="width: 100%; height: 100%; object-fit: cover;"><div id="library-box-3-camera-aarlo-front-door-camera" style="width: 100%; height: 100%; position: absolute; top: 0px; display: none;"></div><a id="library-a-3-camera-aarlo-front-door-camera" download="" href="xxxx" style="position: absolute; left: 2%; top: 5%; display: none;"><ha-icon class="aarlo-icon-small" icon="mdi:download" style="color: white;"></ha-icon></a></div><div style="position: relative; grid-area: 2 / 2 / auto / auto;"><img id="library-4-camera-aarlo-front-door-camera" title="captured: 02-21 15:45" src="xxxx" alt="captured: 02-21 15:45" style="width: 100%; height: 100%; object-fit: cover;"><div id="library-box-4-camera-aarlo-front-door-camera" style="width: 100%; height: 100%; position: absolute; top: 0px; display: none;"></div><a id="library-a-4-camera-aarlo-front-door-camera" download="" href="xxxx" style="position: absolute; left: 2%; top: 5%; display: none;"><ha-icon class="aarlo-icon-small" icon="mdi:download" style="color: white;"></ha-icon></a></div><div style="position: relative; grid-area: 2 / 3 / auto / auto;"><img id="library-5-camera-aarlo-front-door-camera" title="captured: 02-21 14:07" src="xxxx" alt="captured: 02-21 14:07" style="width: 100%; height: 100%; object-fit: cover;"><div id="library-box-5-camera-aarlo-front-door-camera" style="width: 100%; height: 100%; position: absolute; top: 0px; display: none;"></div><a id="library-a-5-camera-aarlo-front-door-camera" download="" href="xxxx" style="position: absolute; left: 2%; top: 5%; display: none;"><ha-icon class="aarlo-icon-small" icon="mdi:download" style="color: white;"></ha-icon></a></div><div style="position: relative; grid-area: 3 / 1 / auto / auto;"><img id="library-6-camera-aarlo-front-door-camera" title="captured: 02-21 13:47" src="xxxx" alt="captured: 02-21 13:47" style="width: 100%; height: 100%; object-fit: cover;"><div id="library-box-6-camera-aarlo-front-door-camera" style="width: 100%; height: 100%; position: absolute; top: 0px; display: none;"></div><a id="library-a-6-camera-aarlo-front-door-camera" download="" href="xxxx" style="position: absolute; left: 2%; top: 5%; display: none;"><ha-icon class="aarlo-icon-small" icon="mdi:download" style="color: white;"></ha-icon></a></div><div style="position: relative; grid-area: 3 / 2 / auto / auto;"><img id="library-7-camera-aarlo-front-door-camera" title="captured: 02-21 10:55" src="xxxx" alt="captured: 02-21 10:55" style="width: 100%; height: 100%; object-fit: cover;"><div id="library-box-7-camera-aarlo-front-door-camera" style="width: 100%; height: 100%; position: absolute; top: 0px; display: none;"></div><a id="library-a-7-camera-aarlo-front-door-camera" download="" href="xxxx" style="position: absolute; left: 2%; top: 5%; display: none;"><ha-icon class="aarlo-icon-small" icon="mdi:download" style="color: white;"></ha-icon></a></div><div style="position: relative; grid-area: 3 / 3 / auto / auto;"><img id="library-8-camera-aarlo-front-door-camera" title="captured: 02-21 10:33
reason: package" src="xxxx" alt="captured: 02-21 10:33
reason: package" style="width: 100%; height: 100%; object-fit: cover;"><div id="library-box-8-camera-aarlo-front-door-camera" style="width: 100%; height: 100%; position: absolute; top: 0px;"></div><a id="library-a-8-camera-aarlo-front-door-camera" download="" style="position: absolute; left: 2%; top: 5%;"><ha-icon class="aarlo-icon-small" icon="mdi:download" style="color: white;"></ha-icon></a></div></div></div>
                    <div class="aarlo-image aarlo-broken-image" style="height: 100px" id="broken-image-camera-aarlo-front-door-camera">
                    </div>
                </div>
                <div class="box box-top" style="display:none" id="top-bar-camera-aarlo-front-door-camera">
                </div>
                <div class="box box-bottom" style="display:none" id="bottom-bar-camera-aarlo-front-door-camera"><div class="box-align-left"><ha-icon class="aarlo-icon-medium" id="camera-motion-camera-aarlo-front-door-camera" title="motion: clear"></ha-icon><ha-icon class="aarlo-icon-medium" id="camera-sound-camera-aarlo-front-door-camera" title="sound: clear"></ha-icon><ha-icon class="aarlo-icon-medium" id="camera-library-camera-aarlo-front-door-camera" title="library: click to open"></ha-icon><ha-icon class="aarlo-icon-medium" id="camera-snapshot-camera-aarlo-front-door-camera" title="take a snapshot"></ha-icon><ha-icon class="aarlo-icon-medium" id="camera-battery-camera-aarlo-front-door-camera" title="battery strength: 97%" style="color: rgb(204, 204, 204);"></ha-icon><ha-icon class="aarlo-icon-medium" id="camera-signal-camera-aarlo-front-door-camera" title="signal strength: 3"></ha-icon></div><div class="box-align-right"></div></div>
                <div class="box box-bottom" style="display:none" id="library-controls-camera-aarlo-front-door-camera">
                    <div>
                        <ha-icon id="library-control-first-camera-aarlo-front-door-camera" class="aarlo-icon-medium">
                        </ha-icon>
                        <ha-icon id="library-control-previous-camera-aarlo-front-door-camera" class="aarlo-icon-medium">
                        </ha-icon>
                    </div>
                    <div style="margin-left: auto; margin-right: auto">
                        <ha-icon id="library-control-resize-camera-aarlo-front-door-camera" class="aarlo-icon-medium" style="display: none; color: white;">
                        </ha-icon>
                        <ha-icon id="library-control-close-camera-aarlo-front-door-camera" class="aarlo-icon-medium" style="color: white;">
                        </ha-icon>
                    </div>
                    <div>
                        <ha-icon id="library-control-next-camera-aarlo-front-door-camera" class="aarlo-icon-medium">
                        </ha-icon>
                        <ha-icon id="library-control-last-camera-aarlo-front-door-camera" class="aarlo-icon-medium">
                        </ha-icon>
                    </div>
                </div>
                <div class="box box-bottom" style="display:none" id="video-controls-camera-aarlo-front-door-camera">
                    <div>
                        <ha-icon id="video-door-lock-camera-aarlo-front-door-camera">
                        </ha-icon>
                        <ha-icon id="video-light-on-camera-aarlo-front-door-camera">
                        </ha-icon>
                        <ha-icon id="video-toggle-sound-camera-aarlo-front-door-camera">
                        </ha-icon>
                        <ha-icon id="video-stop-camera-aarlo-front-door-camera" title="stop">
                        </ha-icon>
                        <ha-icon id="video-play-pause-camera-aarlo-front-door-camera">
                        </ha-icon>
                    </div>
                    <div class="slidecontainer">
                        <input class="slider" type="range" value="0" min="1" max="100" id="video-seek-camera-aarlo-front-door-camera">
                    </div>
                    <div>
                        <ha-icon id="video-full-screen-camera-aarlo-front-door-camera" title="go full screen">
                        </ha-icon>
                    </div>
                </div>
            <card-mod slot="none"><!---->
      <style>
        <!---->
      <!----></style>
    </card-mod></ha-card>
twrecked commented 1 year ago

One thing I just noticed. Can try you changing this in the config:

image_view: direct

And that might explain the strange message you are seeing in the config. Did you want it to start streaming when you opened the GUI?

justinmaiuto commented 1 year ago

Yep I tried that and it doesnt fix the issue. All the other cameras are configured the same and display the image preview as expected, although the stream doesnt start for any of them on load as i had hoped. They have all been configured this way for years, and the only thing that has changed for the camera with the broken image is that it went completely flat (assume a broken image view is what should be shown when there is no connection?) Its like it just hasnt come back from that state even though its fully charged and controllable by HA

twrecked commented 1 year ago

I'll try and reproduce it here and look through the code.

It looks like it's choosing it knows about the thumbnail image but is choosing to give you the broken one.

twrecked commented 1 year ago

Sorry, it's back to the debug window. Is there anything appearing in the console? On Chrome it's a tab on the left, middle to bottom of the screen.

justinmaiuto commented 1 year ago

Console output:

CARD-MOD 3.2.0 IS INSTALLED
3e82212d.js:2          GET http://192.168.1.7:8123/webrtc/webrtc-camera.js?v2.3.0 net::ERR_ABORTED 404 (Not Found)
(anonymous) @ 3e82212d.js:2
r @ 3e82212d.js:2
s @ 3e82212d.js:2
(anonymous) @ ha-icon-button-arrow-next.ts:37
s @ ha-icon-button-arrow-next.ts:37
(anonymous) @ ha-panel-lovelace.ts:147
Promise.then (async)
value @ ha-panel-lovelace.ts:147
value @ ha-panel-lovelace.ts:147
_$AE @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
u @ styles.ts:372
g @ styles.ts:372
k @ styles.ts:372
r @ ha-icon-button-arrow-next.ts:37
E @ typography.js:181
t @ typography.js:181
value @ hass-loading-screen.ts:84
value @ hass-loading-screen.ts:84
_currentLoadProm.l.then._currentLoadProm @ hass-loading-screen.ts:84
Promise.then (async)
value @ hass-loading-screen.ts:84
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
u @ styles.ts:372
g @ styles.ts:372
r @ hass-loading-screen.ts:84
r @ app-drawer-layout.js:189
E @ typography.js:181
t @ typography.js:181
v @ styles.ts:372
$ @ styles.ts:372
_$AI @ styles.ts:372
j @ styles.ts:372
update @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
u @ styles.ts:372
g @ styles.ts:372
k @ styles.ts:372
i @ app-drawer-layout.js:189
E @ typography.js:181
t @ typography.js:181
v @ styles.ts:372
$ @ styles.ts:372
_$AI @ styles.ts:372
j @ styles.ts:372
update @ styles.ts:372
value @ home-assistant.ts:66
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
value @ styles.ts:372
(anonymous) @ styles.ts:372
s @ core.0dfb5639.js:1
(anonymous) @ core.0dfb5639.js:1
Promise.then (async)
d @ core.0dfb5639.js:1
u @ core.0dfb5639.js:1
(anonymous) @ core.0dfb5639.js:1
subscribe @ core.0dfb5639.js:1
S @ core.0dfb5639.js:1
(anonymous) @ core.0dfb5639.js:1
Promise.then (async)
(anonymous) @ core.0dfb5639.js:1
(anonymous) @ core.0dfb5639.js:1
(anonymous) @ core.0dfb5639.js:1
3e82212d.js:2 Uncaught (in promise) http://192.168.1.7:8123/webrtc/webrtc-camera.js?v2.3.0
n.onerror @ 3e82212d.js:2
error (async)
(anonymous) @ 3e82212d.js:2
r @ 3e82212d.js:2
s @ 3e82212d.js:2
(anonymous) @ ha-icon-button-arrow-next.ts:37
s @ ha-icon-button-arrow-next.ts:37
(anonymous) @ ha-panel-lovelace.ts:147
Promise.then (async)
value @ ha-panel-lovelace.ts:147
value @ ha-panel-lovelace.ts:147
_$AE @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
u @ styles.ts:372
g @ styles.ts:372
k @ styles.ts:372
r @ ha-icon-button-arrow-next.ts:37
E @ typography.js:181
t @ typography.js:181
value @ hass-loading-screen.ts:84
value @ hass-loading-screen.ts:84
_currentLoadProm.l.then._currentLoadProm @ hass-loading-screen.ts:84
Promise.then (async)
value @ hass-loading-screen.ts:84
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
u @ styles.ts:372
g @ styles.ts:372
r @ hass-loading-screen.ts:84
r @ app-drawer-layout.js:189
E @ typography.js:181
t @ typography.js:181
v @ styles.ts:372
$ @ styles.ts:372
_$AI @ styles.ts:372
j @ styles.ts:372
update @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
u @ styles.ts:372
g @ styles.ts:372
k @ styles.ts:372
i @ app-drawer-layout.js:189
E @ typography.js:181
t @ typography.js:181
v @ styles.ts:372
$ @ styles.ts:372
_$AI @ styles.ts:372
j @ styles.ts:372
update @ styles.ts:372
value @ home-assistant.ts:66
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
value @ styles.ts:372
(anonymous) @ styles.ts:372
s @ core.0dfb5639.js:1
(anonymous) @ core.0dfb5639.js:1
Promise.then (async)
d @ core.0dfb5639.js:1
u @ core.0dfb5639.js:1
(anonymous) @ core.0dfb5639.js:1
subscribe @ core.0dfb5639.js:1
S @ core.0dfb5639.js:1
(anonymous) @ core.0dfb5639.js:1
Promise.then (async)
(anonymous) @ core.0dfb5639.js:1
(anonymous) @ core.0dfb5639.js:1
(anonymous) @ core.0dfb5639.js:1
mini-climate-card-bundle.js?hacstag=268163975243:1  MINI-CLIMATE-CARD  v2.4.3 
main.js?hacstag=237887092130:3  Thermostat Card   Version  1.3.0 
hass-aarlo.js:1820 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'split')
    at AarloGlance._updateLibraryView (hass-aarlo.js:1820:53)
    at AarloGlance.updateLibraryView (hass-aarlo.js:1887:18)
    at AarloGlance.initialSetup (hass-aarlo.js:2191:14)
    at hass-aarlo.js:2156:22
_updateLibraryView @ hass-aarlo.js:1820
updateLibraryView @ hass-aarlo.js:1887
initialSetup @ hass-aarlo.js:2191
(anonymous) @ hass-aarlo.js:2156
Promise.then (async)
initialSetup @ hass-aarlo.js:2155
(anonymous) @ hass-aarlo.js:2148
Promise.then (async)
initialSetup @ hass-aarlo.js:2147
render @ hass-aarlo.js:312
update @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
u @ styles.ts:372
g @ styles.ts:372
k @ styles.ts:372
AarloGlance @ hass-aarlo.js:116
E @ typography.js:181
t @ typography.js:181
a @ hui-error-badge.ts:49
(anonymous) @ hui-error-badge.ts:49
h @ hui-error-badge.ts:49
d @ hui-error-badge.ts:49
w @ hui-error-badge.ts:49
value @ hui-stack-card.ts:99
value @ hui-stack-card.ts:99
t.addEventListener.once @ hui-stack-card.ts:99
i @ typography.js:181
(anonymous) @ hui-error-badge.ts:49
Promise.then (async)
(anonymous) @ hui-error-badge.ts:49
h @ hui-error-badge.ts:49
d @ hui-error-badge.ts:49
w @ hui-error-badge.ts:49
value @ hui-stack-card.ts:99
(anonymous) @ hui-light-card.ts:359
value @ hui-light-card.ts:359
(anonymous) @ hui-error-badge.ts:49
Promise.then (async)
(anonymous) @ hui-error-badge.ts:49
h @ hui-error-badge.ts:49
d @ hui-error-badge.ts:49
w @ hui-error-badge.ts:49
value @ hui-masonry-view.ts:357
(anonymous) @ hui-masonry-view.ts:357
value @ hui-masonry-view.ts:357
value @ hui-masonry-view.ts:357
value @ hui-masonry-view.ts:357
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
u @ styles.ts:372
g @ styles.ts:372
r @ hui-masonry-view.ts:357
E @ typography.js:181
t @ typography.js:181
value @ hui-root.ts:548
(anonymous) @ hui-root.ts:548
hass-aarlo.js:1820 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'split')
    at AarloGlance._updateLibraryView (hass-aarlo.js:1820:53)
    at hass-aarlo.js:842:26
_updateLibraryView @ hass-aarlo.js:1820
(anonymous) @ hass-aarlo.js:842
Promise.then (async)
_updateStatuses @ hass-aarlo.js:840
updateStatuses @ hass-aarlo.js:1038
initialSetup @ hass-aarlo.js:2177
(anonymous) @ hass-aarlo.js:2156
Promise.then (async)
initialSetup @ hass-aarlo.js:2155
(anonymous) @ hass-aarlo.js:2148
DevTools failed to load source map: Could not load content for https://cdn.jsdelivr.net/npm/hls.min.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
38hass-aarlo.js:1820 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'split')
    at AarloGlance._updateLibraryView (hass-aarlo.js:1820:53)
    at AarloGlance.updateLibraryView (hass-aarlo.js:1887:18)
    at AarloGlance.updateView (hass-aarlo.js:2116:14)
    at set hass [as hass] (hass-aarlo.js:474:18)
    at HTMLElement.value (hui-light-card.ts:359:1)
    at HTMLElement._$AE (styles.ts:372:1)
    at HTMLElement.performUpdate (styles.ts:372:1)
    at HTMLElement.scheduleUpdate (styles.ts:372:1)
    at HTMLElement._$Ej (styles.ts:372:1)
_updateLibraryView @ hass-aarlo.js:1820
updateLibraryView @ hass-aarlo.js:1887
updateView @ hass-aarlo.js:2116
set hass @ hass-aarlo.js:474
value @ hui-light-card.ts:359
_$AE @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
(anonymous) @ hui-masonry-view.ts:357
value @ hui-masonry-view.ts:357
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
value @ hui-root.ts:548
_$AE @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
j @ styles.ts:372
_$AI @ styles.ts:372
p @ styles.ts:372
$ @ styles.ts:372
_$AI @ styles.ts:372
j @ styles.ts:372
update @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
value @ app-drawer-layout.js:189
value @ hass-loading-screen.ts:84
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
j @ styles.ts:372
_$AI @ styles.ts:372
p @ styles.ts:372
$ @ styles.ts:372
_$AI @ styles.ts:372
j @ styles.ts:372
update @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
j @ styles.ts:372
_$AI @ styles.ts:372
p @ styles.ts:372
$ @ styles.ts:372
_$AI @ styles.ts:372
j @ styles.ts:372
update @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
value @ styles.ts:372
(anonymous) @ styles.ts:372
s @ core.0dfb5639.js:1
(anonymous) @ core.0dfb5639.js:1
e.subscribeMessage.type @ core.0dfb5639.js:1
(anonymous) @ core.0dfb5639.js:1
_handleMessage @ core.0dfb5639.js:1
6e8a92ad.js:1          GET http://192.168.1.7:8123/api/hls/c80d56a4f0d4469db39fd2d3100b9d940b79c4f14aa33db947327cf950643981/playlist.m3u8?_HLS_msn=4&_HLS_part=16 400 (Bad Request)
t.loadInternal @ 6e8a92ad.js:1
t.load @ 6e8a92ad.js:1
t.load @ 6e8a92ad.js:1
t.onLevelLoading @ 6e8a92ad.js:1
o.emit @ 6e8a92ad.js:1
a.emit @ 6e8a92ad.js:1
a.trigger @ 6e8a92ad.js:1
l.loadPlaylist @ 6e8a92ad.js:1
(anonymous) @ 6e8a92ad.js:1
setTimeout (async)
t.playlistLoaded @ 6e8a92ad.js:1
l.onLevelLoaded @ 6e8a92ad.js:1
o.emit @ 6e8a92ad.js:1
a.emit @ 6e8a92ad.js:1
a.trigger @ 6e8a92ad.js:1
t.handlePlaylistLoaded @ 6e8a92ad.js:1
t.handleTrackOrLevelPlaylist @ 6e8a92ad.js:1
t.loadsuccess @ 6e8a92ad.js:1
t.readystatechange @ 6e8a92ad.js:1
XMLHttpRequest.send (async)
t.loadInternal @ 6e8a92ad.js:1
t.load @ 6e8a92ad.js:1
t.load @ 6e8a92ad.js:1
t.onLevelLoading @ 6e8a92ad.js:1
o.emit @ 6e8a92ad.js:1
a.emit @ 6e8a92ad.js:1
a.trigger @ 6e8a92ad.js:1
l.loadPlaylist @ 6e8a92ad.js:1
t.playlistLoaded @ 6e8a92ad.js:1
l.onLevelLoaded @ 6e8a92ad.js:1
o.emit @ 6e8a92ad.js:1
a.emit @ 6e8a92ad.js:1
a.trigger @ 6e8a92ad.js:1
t.handlePlaylistLoaded @ 6e8a92ad.js:1
t.handleTrackOrLevelPlaylist @ 6e8a92ad.js:1
t.loadsuccess @ 6e8a92ad.js:1
t.readystatechange @ 6e8a92ad.js:1
hass-aarlo.js:1820 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'split')
    at AarloGlance._updateLibraryView (hass-aarlo.js:1820:53)
    at AarloGlance.updateLibraryView (hass-aarlo.js:1887:18)
    at AarloGlance.updateView (hass-aarlo.js:2116:14)
    at set hass [as hass] (hass-aarlo.js:474:18)
    at HTMLElement.value (hui-light-card.ts:359:1)
    at HTMLElement._$AE (styles.ts:372:1)
    at HTMLElement.performUpdate (styles.ts:372:1)
    at HTMLElement.scheduleUpdate (styles.ts:372:1)
    at HTMLElement._$Ej (styles.ts:372:1)
_updateLibraryView @ hass-aarlo.js:1820
updateLibraryView @ hass-aarlo.js:1887
updateView @ hass-aarlo.js:2116
set hass @ hass-aarlo.js:474
value @ hui-light-card.ts:359
_$AE @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
(anonymous) @ hui-masonry-view.ts:357
value @ hui-masonry-view.ts:357
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
value @ hui-root.ts:548
_$AE @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
j @ styles.ts:372
_$AI @ styles.ts:372
p @ styles.ts:372
$ @ styles.ts:372
_$AI @ styles.ts:372
j @ styles.ts:372
update @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
value @ app-drawer-layout.js:189
value @ hass-loading-screen.ts:84
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
j @ styles.ts:372
_$AI @ styles.ts:372
p @ styles.ts:372
$ @ styles.ts:372
_$AI @ styles.ts:372
j @ styles.ts:372
update @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
j @ styles.ts:372
_$AI @ styles.ts:372
p @ styles.ts:372
$ @ styles.ts:372
_$AI @ styles.ts:372
j @ styles.ts:372
update @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
value @ styles.ts:372
(anonymous) @ styles.ts:372
s @ core.0dfb5639.js:1
(anonymous) @ core.0dfb5639.js:1
e.subscribeMessage.type @ core.0dfb5639.js:1
(anonymous) @ core.0dfb5639.js:1
_handleMessage @ core.0dfb5639.js:1
6e8a92ad.js:1          GET http://192.168.1.7:8123/api/hls/0f4000e92dca95a816a14c7488fd7a8abedb0536a369c81d55e8390527ef98d7/playlist.m3u8?_HLS_msn=2531&_HLS_part=16 400 (Bad Request)
t.loadInternal @ 6e8a92ad.js:1
t.load @ 6e8a92ad.js:1
t.load @ 6e8a92ad.js:1
t.onLevelLoading @ 6e8a92ad.js:1
o.emit @ 6e8a92ad.js:1
a.emit @ 6e8a92ad.js:1
a.trigger @ 6e8a92ad.js:1
l.loadPlaylist @ 6e8a92ad.js:1
(anonymous) @ 6e8a92ad.js:1
setTimeout (async)
t.playlistLoaded @ 6e8a92ad.js:1
l.onLevelLoaded @ 6e8a92ad.js:1
o.emit @ 6e8a92ad.js:1
a.emit @ 6e8a92ad.js:1
a.trigger @ 6e8a92ad.js:1
t.handlePlaylistLoaded @ 6e8a92ad.js:1
t.handleTrackOrLevelPlaylist @ 6e8a92ad.js:1
t.loadsuccess @ 6e8a92ad.js:1
t.readystatechange @ 6e8a92ad.js:1
XMLHttpRequest.send (async)
t.loadInternal @ 6e8a92ad.js:1
t.load @ 6e8a92ad.js:1
t.load @ 6e8a92ad.js:1
t.onLevelLoading @ 6e8a92ad.js:1
o.emit @ 6e8a92ad.js:1
a.emit @ 6e8a92ad.js:1
a.trigger @ 6e8a92ad.js:1
l.loadPlaylist @ 6e8a92ad.js:1
t.playlistLoaded @ 6e8a92ad.js:1
l.onLevelLoaded @ 6e8a92ad.js:1
o.emit @ 6e8a92ad.js:1
a.emit @ 6e8a92ad.js:1
a.trigger @ 6e8a92ad.js:1
t.handlePlaylistLoaded @ 6e8a92ad.js:1
t.handleTrackOrLevelPlaylist @ 6e8a92ad.js:1
t.loadsuccess @ 6e8a92ad.js:1
t.readystatechange @ 6e8a92ad.js:1
XMLHttpRequest.send (async)
t.loadInternal @ 6e8a92ad.js:1
t.load @ 6e8a92ad.js:1
t.load @ 6e8a92ad.js:1
t.onLevelLoading @ 6e8a92ad.js:1
o.emit @ 6e8a92ad.js:1
a.emit @ 6e8a92ad.js:1
a.trigger @ 6e8a92ad.js:1
l.loadPlaylist @ 6e8a92ad.js:1
t.playlistLoaded @ 6e8a92ad.js:1
l.onLevelLoaded @ 6e8a92ad.js:1
o.emit @ 6e8a92ad.js:1
a.emit @ 6e8a92ad.js:1
a.trigger @ 6e8a92ad.js:1
t.handlePlaylistLoaded @ 6e8a92ad.js:1
t.handleTrackOrLevelPlaylist @ 6e8a92ad.js:1
t.loadsuccess @ 6e8a92ad.js:1
t.readystatechange @ 6e8a92ad.js:1
hass-aarlo.js:1820 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'split')
    at AarloGlance._updateLibraryView (hass-aarlo.js:1820:53)
    at AarloGlance.updateLibraryView (hass-aarlo.js:1887:18)
    at AarloGlance.updateView (hass-aarlo.js:2116:14)
    at set hass [as hass] (hass-aarlo.js:474:18)
    at HTMLElement.value (hui-light-card.ts:359:1)
    at HTMLElement._$AE (styles.ts:372:1)
    at HTMLElement.performUpdate (styles.ts:372:1)
    at HTMLElement.scheduleUpdate (styles.ts:372:1)
    at HTMLElement._$Ej (styles.ts:372:1)
_updateLibraryView @ hass-aarlo.js:1820
updateLibraryView @ hass-aarlo.js:1887
updateView @ hass-aarlo.js:2116
set hass @ hass-aarlo.js:474
value @ hui-light-card.ts:359
_$AE @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
(anonymous) @ hui-masonry-view.ts:357
value @ hui-masonry-view.ts:357
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
value @ hui-root.ts:548
_$AE @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
j @ styles.ts:372
_$AI @ styles.ts:372
p @ styles.ts:372
$ @ styles.ts:372
_$AI @ styles.ts:372
j @ styles.ts:372
update @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
value @ app-drawer-layout.js:189
value @ hass-loading-screen.ts:84
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
j @ styles.ts:372
_$AI @ styles.ts:372
p @ styles.ts:372
$ @ styles.ts:372
_$AI @ styles.ts:372
j @ styles.ts:372
update @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
j @ styles.ts:372
_$AI @ styles.ts:372
p @ styles.ts:372
$ @ styles.ts:372
_$AI @ styles.ts:372
j @ styles.ts:372
update @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
value @ styles.ts:372
(anonymous) @ styles.ts:372
s @ core.0dfb5639.js:1
(anonymous) @ core.0dfb5639.js:1
e.subscribeMessage.type @ core.0dfb5639.js:1
(anonymous) @ core.0dfb5639.js:1
_handleMessage @ core.0dfb5639.js:1
6e8a92ad.js:1          GET http://192.168.1.7:8123/api/hls/0dac1e1dc8461d5ab18ff5bfccaa74cb12dd273c138341e4823bd40630fd3932/playlist.m3u8?_HLS_msn=2994&_HLS_part=17 400 (Bad Request)
t.loadInternal @ 6e8a92ad.js:1
t.load @ 6e8a92ad.js:1
t.load @ 6e8a92ad.js:1
t.onLevelLoading @ 6e8a92ad.js:1
o.emit @ 6e8a92ad.js:1
a.emit @ 6e8a92ad.js:1
a.trigger @ 6e8a92ad.js:1
l.loadPlaylist @ 6e8a92ad.js:1
(anonymous) @ 6e8a92ad.js:1
setTimeout (async)
t.playlistLoaded @ 6e8a92ad.js:1
l.onLevelLoaded @ 6e8a92ad.js:1
o.emit @ 6e8a92ad.js:1
a.emit @ 6e8a92ad.js:1
a.trigger @ 6e8a92ad.js:1
t.handlePlaylistLoaded @ 6e8a92ad.js:1
t.handleTrackOrLevelPlaylist @ 6e8a92ad.js:1
t.loadsuccess @ 6e8a92ad.js:1
t.readystatechange @ 6e8a92ad.js:1
XMLHttpRequest.send (async)
t.loadInternal @ 6e8a92ad.js:1
t.load @ 6e8a92ad.js:1
t.load @ 6e8a92ad.js:1
t.onLevelLoading @ 6e8a92ad.js:1
o.emit @ 6e8a92ad.js:1
a.emit @ 6e8a92ad.js:1
a.trigger @ 6e8a92ad.js:1
l.loadPlaylist @ 6e8a92ad.js:1
t.playlistLoaded @ 6e8a92ad.js:1
l.onLevelLoaded @ 6e8a92ad.js:1
o.emit @ 6e8a92ad.js:1
a.emit @ 6e8a92ad.js:1
a.trigger @ 6e8a92ad.js:1
t.handlePlaylistLoaded @ 6e8a92ad.js:1
t.handleTrackOrLevelPlaylist @ 6e8a92ad.js:1
t.loadsuccess @ 6e8a92ad.js:1
t.readystatechange @ 6e8a92ad.js:1
XMLHttpRequest.send (async)
t.loadInternal @ 6e8a92ad.js:1
t.load @ 6e8a92ad.js:1
t.load @ 6e8a92ad.js:1
t.onLevelLoading @ 6e8a92ad.js:1
o.emit @ 6e8a92ad.js:1
a.emit @ 6e8a92ad.js:1
a.trigger @ 6e8a92ad.js:1
l.loadPlaylist @ 6e8a92ad.js:1
t.playlistLoaded @ 6e8a92ad.js:1
l.onLevelLoaded @ 6e8a92ad.js:1
o.emit @ 6e8a92ad.js:1
a.emit @ 6e8a92ad.js:1
a.trigger @ 6e8a92ad.js:1
t.handlePlaylistLoaded @ 6e8a92ad.js:1
t.handleTrackOrLevelPlaylist @ 6e8a92ad.js:1
t.loadsuccess @ 6e8a92ad.js:1
t.readystatechange @ 6e8a92ad.js:1
55hass-aarlo.js:1820 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'split')
    at AarloGlance._updateLibraryView (hass-aarlo.js:1820:53)
    at AarloGlance.updateLibraryView (hass-aarlo.js:1887:18)
    at AarloGlance.updateView (hass-aarlo.js:2116:14)
    at set hass [as hass] (hass-aarlo.js:474:18)
    at HTMLElement.value (hui-light-card.ts:359:1)
    at HTMLElement._$AE (styles.ts:372:1)
    at HTMLElement.performUpdate (styles.ts:372:1)
    at HTMLElement.scheduleUpdate (styles.ts:372:1)
    at HTMLElement._$Ej (styles.ts:372:1)
_updateLibraryView @ hass-aarlo.js:1820
updateLibraryView @ hass-aarlo.js:1887
updateView @ hass-aarlo.js:2116
set hass @ hass-aarlo.js:474
value @ hui-light-card.ts:359
_$AE @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
(anonymous) @ hui-masonry-view.ts:357
value @ hui-masonry-view.ts:357
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
value @ hui-root.ts:548
_$AE @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
j @ styles.ts:372
_$AI @ styles.ts:372
p @ styles.ts:372
$ @ styles.ts:372
_$AI @ styles.ts:372
j @ styles.ts:372
update @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
value @ app-drawer-layout.js:189
value @ hass-loading-screen.ts:84
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
j @ styles.ts:372
_$AI @ styles.ts:372
p @ styles.ts:372
$ @ styles.ts:372
_$AI @ styles.ts:372
j @ styles.ts:372
update @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
j @ styles.ts:372
_$AI @ styles.ts:372
p @ styles.ts:372
$ @ styles.ts:372
_$AI @ styles.ts:372
j @ styles.ts:372
update @ styles.ts:372
performUpdate @ styles.ts:372
scheduleUpdate @ styles.ts:372
_$Ej @ styles.ts:372
await in _$Ej (async)
requestUpdate @ styles.ts:372
set @ styles.ts:372
value @ styles.ts:372
(anonymous) @ styles.ts:372
s @ core.0dfb5639.js:1
(anonymous) @ core.0dfb5639.js:1
e.subscribeMessage.type @ core.0dfb5639.js:1
(anonymous) @ core.0dfb5639.js:1
_handleMessage @ core.0dfb5639.js:1
justinmaiuto commented 1 year ago

Randomly, the problem is fixed. The camera in question captured some recordings while it was armed when we were out. Now its dosplaying properly