elad-bar / ha-blueiris

Integration with Blue Iris Video Security Software
181 stars 42 forks source link

Cant get this to work #5

Closed hooray4me closed 5 years ago

hooray4me commented 5 years ago

Is there anything special I need to do to get this work?

elad-bar commented 5 years ago

Can you provide more details?

Thanks

hooray4me commented 5 years ago

the entities don't load. In the logs it only says that blueiris hasn't been tested.

hooray4me commented 5 years ago

For clarification, my config directory (linux) is /home//.homeassistant/

I created a custom_components folder here and added the blueiris sub-folder with the 4 python scripts in it and made them executable.

I updated my config file and secrets file very similar to your example. My blueiris server is on the latest version.

Any ideas?

hooray4me commented 5 years ago

image

elad-bar commented 5 years ago

Are you using the short camera name as id? If you are trying to access BI webserver can you see the camera over there?

If you can see it by accessing the webserver directly, try to go to the camera you are trying to add and make sure the id is the same

example: image

hooray4me commented 5 years ago

I am. it doesn't work. Also I I get errors if I specify more than one camera. `blueiris:

hostname / ip of BlueIris WebServer

host: !secret blueiris_host

port of BlueIris WebServer

port: !secret blueiris_port

Optional - will create switch if defined

profile:

armed profile number

armed: 1
#unarmed profile number
unarmed: 2

Username

username: !secret blueiris_api_username

Password

password: !secret blueiris_api_password

Optional - will allow creating binary sensors

mqtt:

Watchdog MQTT Topic

watchdog: BlueIris/[camera_id]/Connectivity
#Motion MQTT Topic
motion: BlueIris/[camera_id]/Motion

List of camera object

camera:

switch:

camera:

image

image

elad-bar commented 5 years ago

Was it solved?

thanks

hooray4me commented 5 years ago

no it wasn't. I ended up just adding the cameras individually to ha... Still use BI from the web.

elad-bar commented 5 years ago

can you try the latest version? if it still doesn't work, please send me the logs

thanks

hooray4me commented 5 years ago

does the config file really start with configuration? `configuration: blueiris:

hostname / ip of BlueIris WebServer

host: !secret blueiris_host`
elad-bar commented 5 years ago

No, it just to explain that it should be at the same level of all other domain under the root tag which is configuration

hooray4me commented 5 years ago

blueiris:

hostname / ip of BlueIris WebServer

host: !secret blueiris_host

port of BlueIris WebServer

port: !secret blueiris_port

Optional - will create switch if defined

profile:

armed profile number

armed: !secret blueiris_profile_armed
#unarmed profile number
unarmed: !secret blueiris_profile_unarmed

Username

username: !secret blueiris_api_username

Password

password: !secret blueiris_api_password

Optional - will allow creating binary sensors

mqtt:

Watchdog MQTT Topic

watchdog: BlueIris/[camera_id]/Connectivity
#Motion MQTT Topic
motion: BlueIris/[camera_id]/Motion

List of camera object

camera:

name of the camera for display

- name: 'Olivias Room'
  #BlueIris camera's short name
  id: olivia
  #Room name (adds as attribute)
  room: Upstairs
- name: 'Noahs Room'
  #BlueIris camera's short name
  id: noah
  #Room name (adds as attribute)
  room: Upstairs
- name: 'Driveway'
  #BlueIris camera's short name
  id: front
  #Room name (adds as attribute)
  room: Outside

custom_updater: track:

camera:

creates cameras according to the camera defined in the platform

binary_sensor:

creates binary sensors according per camera defined in the platform with the topics defined

switch:

creates switch to arm and disarm BlueIris (available only when profile provided)

this is the logs: 2019-04-09 17:19:31 WARNING (MainThread) [homeassistant.loader] You are using a custom component for custom_updater which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant. 2019-04-09 17:19:31 WARNING (MainThread) [homeassistant.loader] You are using a custom component for blueiris which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant. 2019-04-09 17:19:31 WARNING (MainThread) [homeassistant.components.http] legacy_api_password support has been enabled. If you don't require it, remove the 'api_password' from your http config. 2019-04-09 17:19:33 WARNING (MainThread) [homeassistant.loader] You are using a custom component for blueiris.camera which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant. 2019-04-09 17:19:33 ERROR (MainThread) [homeassistant.loader] Unable to find platform blueiris 2019-04-09 17:19:33 WARNING (MainThread) [homeassistant.loader] You are using a custom component for blueiris.switch which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant. 2019-04-09 17:19:34 WARNING (MainThread) [homeassistant.loader] You are using a custom component for cisco_ios.device_tracker which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant. 2019-04-09 17:19:34 WARNING (MainThread) [homeassistant.loader] You are using a custom component for lennox.climate which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant. 2019-04-09 17:19:43 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved Traceback (most recent call last): File "/home/rob/.homeassistant/custom_components/custom_updater.py", line 217, in extra_init await self.cache_versions() File "/home/rob/.homeassistant/custom_components/custom_updater.py", line 222, in cache_versions information = await self.pyupdate.get_sensor_data(True) File "/home/rob/homeassistant/lib/python3.6/site-packages/pyupdate/ha_custom/custom_components.py", line 56, in get_sensor_data components = await self.get_info_all_components(force) File "/home/rob/homeassistant/lib/python3.6/site-packages/pyupdate/ha_custom/custom_components.py", line 33, in get_info_all_components for name, component in response.json().items(): File "/home/rob/homeassistant/lib/python3.6/site-packages/requests/models.py", line 897, in json return complexjson.loads(self.text, **kwargs) File "/usr/lib/python3.6/json/__init__.py", line 354, in loads return _default_decoder.decode(s) File "/usr/lib/python3.6/json/decoder.py", line 339, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.6/json/decoder.py", line 357, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 7 column 1 (char 6)

hooray4me commented 5 years ago

image

elad-bar commented 5 years ago

it lacks of the begining of the errors, can you cleanup the logs before starting the ha and after it fails copy that

in addition, it seems that there is a problem with your custom updater

hooray4me commented 5 years ago

Im going to manually install and then see what happens... BTW there is a typo in in your blueiris json file on line 17 /which.py should be switch.py

hooray4me commented 5 years ago

2019-04-09 18:01:57 WARNING (MainThread) [homeassistant.loader] You are using a custom component for blueiris which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant. 2019-04-09 18:01:57 WARNING (MainThread) [homeassistant.components.http] legacy_api_password support has been enabled. If you don't require it, remove the 'api_password' from your http config. 2019-04-09 18:01:58 WARNING (MainThread) [homeassistant.loader] You are using a custom component for cisco_ios.device_tracker which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant. 2019-04-09 18:01:59 WARNING (MainThread) [homeassistant.loader] You are using a custom component for blueiris.binary_sensor which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant. 2019-04-09 18:01:59 WARNING (MainThread) [homeassistant.loader] You are using a custom component for blueiris.switch which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.

2019-04-09 18:01:59 ERROR (MainThread) [homeassistant.loader] Error loading custom_components.blueiris.camera. Make sure all dependencies are installed Traceback (most recent call last): File "/home/rob/homeassistant/lib/python3.6/site-packages/homeassistant/loader.py", line 147, in _load_file module = importlib.import_module(path) File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/home/rob/.homeassistant/custom_components/blueiris/camera.py", line 14, in <module> from homeassistant.components.generic.camera import (CONF_LIMIT_REFETCH_TO_URL_CHANGE, ModuleNotFoundError: No module named 'homeassistant.components.generic' 2019-04-09 18:01:59 ERROR (MainThread) [homeassistant.loader] Unable to find platform blueiris 2019-04-09 18:01:59 WARNING (MainThread) [homeassistant.loader] You are using a custom component for lennox.climate which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.

hooray4me commented 5 years ago

Here's the latest log: 2019-04-09 18:10:00 WARNING (MainThread) [homeassistant.components.http] legacy_api_password support has been enabled. If you don't require it, remove the 'api_password' from your http config. 2019-04-09 18:10:02 ERROR (MainThread) [homeassistant.loader] Error loading custom_components.blueiris.switch. Make sure all dependencies are installed Traceback (most recent call last): File "/home/rob/homeassistant/lib/python3.6/site-packages/homeassistant/loader.py", line 147, in _load_file module = importlib.import_module(path) File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 941, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/home/rob/.homeassistant/custom_components/blueiris/__init__.py", line 18, in <module> from .blue_iris_data import BlueIrisData File "/home/rob/.homeassistant/custom_components/blueiris/blue_iris_data.py", line 4, in <module> from homeassistant.components.generic.camera import (CONF_STREAM_SOURCE, CONF_STILL_IMAGE_URL) ModuleNotFoundError: No module named 'homeassistant.components.generic' 2019-04-09 18:10:02 ERROR (MainThread) [homeassistant.loader] Unable to find platform blueiris 2019-04-09 18:10:02 WARNING (MainThread) [homeassistant.loader] You are using a custom component for lennox.climate which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant. 2019-04-09 18:10:02 WARNING (MainThread) [homeassistant.loader] You are using a custom component for cisco_ios.device_tracker which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant. 2019-04-09 18:10:02 ERROR (MainThread) [homeassistant.loader] Error loading custom_components.blueiris.binary_sensor. Make sure all dependencies are installed Traceback (most recent call last): File "/home/rob/homeassistant/lib/python3.6/site-packages/homeassistant/loader.py", line 147, in _load_file module = importlib.import_module(path) File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 941, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/home/rob/.homeassistant/custom_components/blueiris/__init__.py", line 18, in <module> from .blue_iris_data import BlueIrisData File "/home/rob/.homeassistant/custom_components/blueiris/blue_iris_data.py", line 4, in <module> from homeassistant.components.generic.camera import (CONF_STREAM_SOURCE, CONF_STILL_IMAGE_URL) ModuleNotFoundError: No module named 'homeassistant.components.generic' 2019-04-09 18:10:02 ERROR (MainThread) [homeassistant.loader] Unable to find platform blueiris 2019-04-09 18:10:02 ERROR (MainThread) [homeassistant.loader] Error loading custom_components.blueiris.camera. Make sure all dependencies are installed Traceback (most recent call last): File "/home/rob/homeassistant/lib/python3.6/site-packages/homeassistant/loader.py", line 147, in _load_file module = importlib.import_module(path) File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 941, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/home/rob/.homeassistant/custom_components/blueiris/__init__.py", line 18, in <module> from .blue_iris_data import BlueIrisData File "/home/rob/.homeassistant/custom_components/blueiris/blue_iris_data.py", line 4, in <module> from homeassistant.components.generic.camera import (CONF_STREAM_SOURCE, CONF_STILL_IMAGE_URL) ModuleNotFoundError: No module named 'homeassistant.components.generic' 2019-04-09 18:10:02 ERROR (MainThread) [homeassistant.loader] Unable to find platform blueiris 2019-04-09 18:10:02 ERROR (MainThread) [homeassistant.loader] Error loading custom_components.blueiris. Make sure all dependencies are installed Traceback (most recent call last): File "/home/rob/homeassistant/lib/python3.6/site-packages/homeassistant/loader.py", line 147, in _load_file module = importlib.import_module(path) File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/home/rob/.homeassistant/custom_components/blueiris/__init__.py", line 18, in <module> from .blue_iris_data import BlueIrisData File "/home/rob/.homeassistant/custom_components/blueiris/blue_iris_data.py", line 4, in <module> from homeassistant.components.generic.camera import (CONF_STREAM_SOURCE, CONF_STILL_IMAGE_URL) ModuleNotFoundError: No module named 'homeassistant.components.generic' 2019-04-09 18:10:02 ERROR (MainThread) [homeassistant.loader] Unable to find component blueiris 2019-04-09 18:10:02 ERROR (MainThread) [homeassistant.setup] Setup failed for blueiris: Component not found. 2019-04-09 18:10:03 ERROR (SyncWorker_14) [homeassistant.components.sensor.rest] Error fetching data: <PreparedRequest [GET]> from http://localhost:5556/devices/bathroom/apps/tv.emby.embyatv/state failed with HTTPConnectionPool(host='localhost', port=5556): Max retries exceeded with url: /devices/bathroom/apps/tv.emby.embyatv/state (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f7da400c518>: Failed to establish a new connection: [Errno 111] Connection refused',)) 2019-04-09 18:10:03 ERROR (SyncWorker_7) [homeassistant.components.sensor.rest] Error fetching data: <PreparedRequest [GET]> from http://localhost:5556/devices/state/oliviaroom failed with HTTPConnectionPool(host='localhost', port=5556): Max retries exceeded with url: /devices/state/oliviaroom (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f7da4053f98>: Failed to establish a new connection: [Errno 111] Connection refused',)) 2019-04-09 18:10:03 ERROR (SyncWorker_8) [homeassistant.components.sensor.rest] Error fetching data: <PreparedRequest [GET]> from http://localhost:5556/devices/state/playroom failed with HTTPConnectionPool(host='localhost', port=5556): Max retries exceeded with url: /devices/state/playroom (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f7d9c1b1278>: Failed to establish a new connection: [Errno 111] Connection refused',)) 2019-04-09 18:10:03 ERROR (SyncWorker_4) [homeassistant.components.sensor.rest] Error fetching data: <PreparedRequest [GET]> from http://localhost:5556/devices/state/bathroom failed with HTTPConnectionPool(host='localhost', port=5556): Max retries exceeded with url: /devices/state/bathroom (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f7d9c1b1be0>: Failed to establish a new connection: [Errno 111] Connection refused',)) 2019-04-09 18:10:03 ERROR (SyncWorker_10) [homeassistant.components.sensor.rest] Error fetching data: <PreparedRequest [GET]> from http://localhost:5556/devices/oliviaroom/apps/tv.emby.embyatv/state failed with HTTPConnectionPool(host='localhost', port=5556): Max retries exceeded with url: /devices/oliviaroom/apps/tv.emby.embyatv/state (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f7d9c1b6978>: Failed to establish a new connection: [Errno 111] Connection refused',)) 2019-04-09 18:10:03 ERROR (SyncWorker_5) [homeassistant.components.sensor.rest] Error fetching data: <PreparedRequest [GET]> from http://localhost:5556/devices/playroom/apps/tv.emby.embyatv/state failed with HTTPConnectionPool(host='localhost', port=5556): Max retries exceeded with url: /devices/playroom/apps/tv.emby.embyatv/state (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f7d9c1cb080>: Failed to establish a new connection: [Errno 111] Connection refused',)) 2019-04-09 18:10:04 WARNING (MainThread) [homeassistant.components.sensor] Platform rest not ready yet. Retrying in 30 seconds. 2019-04-09 18:10:04 WARNING (MainThread) [homeassistant.components.sensor] Platform rest not ready yet. Retrying in 30 seconds. 2019-04-09 18:10:04 WARNING (MainThread) [homeassistant.components.sensor] Platform rest not ready yet. Retrying in 30 seconds. 2019-04-09 18:10:04 WARNING (MainThread) [homeassistant.components.sensor] Platform rest not ready yet. Retrying in 30 seconds. 2019-04-09 18:10:04 WARNING (MainThread) [homeassistant.components.sensor] Platform rest not ready yet. Retrying in 30 seconds. 2019-04-09 18:10:04 WARNING (MainThread) [homeassistant.components.sensor] Platform rest not ready yet. Retrying in 30 seconds.

elad-bar commented 5 years ago

what version of HA are you using?

hooray4me commented 5 years ago

0.88.2

elad-bar commented 5 years ago

component is aligned with latest version of HA v0.91, HA changed the structure of components that's why it didn't find the generic camera class

elad-bar commented 5 years ago

did you try that with latest version of HA?

hooray4me commented 5 years ago

no havent had time to make sure nothing else breaks...

Get Outlook for Androidhttps://aka.ms/ghei36


From: elad-bar notifications@github.com Sent: Saturday, April 20, 2019 12:50:57 PM To: elad-bar/ha-custom-components Cc: Rob; Author Subject: Re: [elad-bar/ha-custom-components] Cant get this to work (#1)

did you try that with latest version of HA?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Felad-bar%2Fha-custom-components%2Fissues%2F1%23issuecomment-485146828&data=02%7C01%7C%7C0487f8666dfb4207773908d6c5b8bf15%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636913794595455237&sdata=dkiwu8m6zS90sjr8nfESGhnX9KqlaofVh%2FfwaK0eCjQ%3D&reserved=0, or mute the threadhttps://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAC6TEIR6N5O7H75CSTPZXJDPRNJYDANCNFSM4HETH3WA&data=02%7C01%7C%7C0487f8666dfb4207773908d6c5b8bf15%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636913794595465260&sdata=qqZCJZJ232tWF2neI2CR1Wif6fEo%2FcQkqD18U%2F%2Fhtwk%3D&reserved=0.

hooray4me commented 5 years ago

I upgraded to .91. I am not able to get this to run from custom_updater. rob@ha:~/.homeassistant$ tail home-assistant.log for name, component in response.json().items(): File "/home/rob/homeassistant/lib/python3.6/site-packages/requests/models.py", line 897, in json return complexjson.loads(self.text, **kwargs) File "/usr/lib/python3.6/json/__init__.py", line 354, in loads return _default_decoder.decode(s) File "/usr/lib/python3.6/json/decoder.py", line 339, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.6/json/decoder.py", line 357, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 7 column 1 (char 6) rob@ha:~/.homeassistant$ tail home-assistant.log for name, component in response.json().items(): File "/home/rob/homeassistant/lib/python3.6/site-packages/requests/models.py", line 897, in json return complexjson.loads(self.text, **kwargs) File "/usr/lib/python3.6/json/__init__.py", line 354, in loads return _default_decoder.decode(s) File "/usr/lib/python3.6/json/decoder.py", line 339, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.6/json/decoder.py", line 357, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 7 column 1 (char 6) config: `custom_updater: track:

hooray4me commented 5 years ago

I manually updated the blueiris component. I can get the elements to show up in unused entities, but they do not work and I don't show a login in blueiris for my ha user.

No errors in the logs

_rob@ha:~/.homeassistant$ tail home-assistant.log 2019-04-23 14:53:52 WARNING (MainThread) [homeassistant.loader] You are using a custom component for blueiris which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.

2019-04-23 14:53:54 WARNING (MainThread) [homeassistant.loader] You are using a custom component for blueiris.binary_sensor which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.

2019-04-23 14:53:55 WARNING (MainThread) [homeassistant.loader] You are using a custom component for blueiris.camera which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.

2019-04-23 14:53:55 WARNING (MainThread) [homeassistant.loader] You are using a custom component for myicomfort.climate which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.

2019-04-23 14:53:55 WARNING (MainThread) [homeassistant.loader] You are using a custom component for blueiris.switch which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant._

`blueiris: host: !secret blueiris_host port: !secret blueiris_port profile: armed: !secret blueiris_profile_armed unarmed: !secret blueiris_profile_unarmed username: !secret blueiris_api_username password: !secret blueiris_api_password mqtt: watchdog: BlueIris/[camera_id]/Connectivity motion: BlueIris/[camera_id]/Motion camera:

blueiris_host: 172.17.17.75 blueiris_port: 80 blueiris_api_username: ha blueiris_api_password: Bartlebee92 blueiris_profile_armed: 1 blueiris_profile_unarmed: 2

binary_sensor:

camera:

switch:

image

hooray4me commented 5 years ago

It looks like the camera_proxy_stream api is not passing the blueiris credentials to the blueiris server. I see repeated login attempts without a username on the blueiris server. image image

hooray4me commented 5 years ago

I've even set the logger level to debug for the blueiris components, but can't seem to get any more information from it.

logger: default: critical logs: homeassistant.loader: warning homeassistant.components.blueiris: debug homeassistant.components.blueiris.camera: debug homeassistant.components.blueiris.binary_sensor: debug homeassistant.components.command_line.sensor: critical homeassistant.components.rest.sensor: critical

hooray4me commented 5 years ago

I found that it won't work if you have use secure session keys enabled, which kinda stinks... with out it I don't get the nice UI3 login page or the security that comes from it. image

do you have any examples of what controls I can use for these cameras as ui cards?

elad-bar commented 5 years ago

I'm not using it, will check it in the weekend and see how to fix that security settings, I'm using the motion sensor on top of the image from the camera, It supports binary sensors of:

2 first just added thanks to @darkgrue

In addition switch to control whether the BlueIris is armed or not:

darkgrue commented 5 years ago

The Use secure session keys and login page uses HTTP_DIGEST_AUTHENTICATION. Which you probably don't want to use for two reasons. First, I see in other component integrations there are comments that "currently aiohttp only works with basic authentication". Also, if you wish to use Casting, I don't think Chromecast or Google Assistant supports passing authentication values (though you may get away with passing it in the URL, not clear on that - but you cannot perform HTTP Digest auth passing values in the URL, it must be in the header). So, to cast you'd need to set Require from Non-LAN only, and uncheck Use secure session keys and login page.

To be fair, HTTP Digest auth only gives you marginal better security, you'd be far better served setting up SSL (which appears to be another prerequisite for integrating with Google Assistant). I threw another Pi running a NGINX reverse-proxy in front of my Home Assistant and Blue Iris servers for that reason.

darkgrue commented 5 years ago

do you have any examples of what controls I can use for these cameras as ui cards?

@hooray4me these are the Lovelace cards I use in my setup so far. I'm using one custom card custom:vertical-stack-in-card that would be a prerequisite. You can use a regular vertical-stack if you don't want to install the custom one, and it'd be perfectly functional. I think the custom one looks better.

Obviously some of the entity names would have to be edited to reflect your configuration, but it'll get you started on ideas on how to display your cards and sensors...

cards:
  - type: custom:vertical-stack-in-card
    cards:
      # System cameras
      - type: horizontal-stack
        cards:
          - type: custom:vertical-stack-in-card
#            title: All Cameras
            cards:
              - type: picture-entity
                entity: camera.bi_all
                name: All
                show_state: false
          - type: custom:vertical-stack-in-card
#            title: Camera Cycle
            cards:
              - type: picture-entity
                entity: camera.bi_cycle
                name: Cycle
                show_state: false
      # Blue Iris Armed / Disarm Profiles
      - type: entities
        title: Blue Iris
        show_header_toggle: false
        entities:
          - entity: switch.bi_alerts
            name: Arm / Disarm

  # Front Door camera
  - type: custom:vertical-stack-in-card
#    title: Front Door
    cards:
      - type: picture-entity
        entity: camera.bi_front_door
        name: Front Door
        show_state: false
      - type: glance
        entities:           
          - entity: binary_sensor.bi_front_door_motion
            name: Motion
          - entity: binary_sensor.bi_front_door_audio
            name: Audio
          - entity: binary_sensor.bi_front_door_watchdog
            name: Watchdog

  # Front Drive camera
  - type: custom:vertical-stack-in-card
#    title: Front Drive
    cards:
      - type: picture-entity
        entity: camera.bi_front_drive
        name: Front Drive
        show_state: false
      - type: glance
        entities:
          - entity: binary_sensor.bi_front_drive_motion
            name: Motion
          - entity: binary_sensor.bi_front_drive_audio
            name: Audio
          - entity: binary_sensor.bi_front_drive_watchdog
            name: Watchdog  

  # Garage camera
  - type: custom:vertical-stack-in-card
#    title: Garage
    cards:
      - type: picture-entity
        entity: camera.bi_garage
        name: Garage
        show_state: false
      - type: glance
        entities:
          - entity: binary_sensor.bi_garage_motion
            name: Motion
          - entity: binary_sensor.bi_garage_audio
            name: Audio
          - entity: binary_sensor.bi_garage_watchdog
            name: Watchdog
hooray4me commented 5 years ago

@darkgrue how do I get audio and watchdog into my configuration?

darkgrue commented 5 years ago

@darkgrue how do I get audio and watchdog into my configuration?

I just put in a pull request (#7) with updated documentation and screenshots that shows the necessary configuration in Blue Iris to support the new MQTT messages. You can see the new documentation on my fork (it's not real practical to try an read it through the pull request, I think).

The new alerts only work with cameras that support it, of course. If the AUDIO and EXTERNAL events don't work in BI with your camera, they won't ever trigger a MQTT message for those events, either.

hooray4me commented 5 years ago

and is there a way to limit the cameras in the cycle? I have 3 cams, one is outside and the other 2 are for my kids rooms when they are sleeping. I'd like to cycle just 2 of the 3

hooray4me commented 5 years ago

also there is a typo in the blueiris.json for the customer updater. switch.yaml is witch.yaml.

darkgrue commented 5 years ago

and is there a way to limit the cameras in the cycle? I have 3 cams, one is outside and the other 2 are for my kids rooms when they are sleeping. I'd like to cycle just 2 of the 3

The "All" and "Cycle" cameras are internally-generated views created by Blue Iris. I didn't see any options to specify which cameras get included in those views. But that configuration would be done on the BI side, if it was possible.

hooray4me commented 5 years ago

The only other functionality I'd like to see is a toggle for infrared...

hooray4me commented 5 years ago

@darkgrue How do the additional binary sensors get created? I can see the mqtt topic come thru when I unplug the camera... but a binary sensor isn't getting created...

darkgrue commented 5 years ago

The only other functionality I'd like to see is a toggle for infrared...

There's a pretty extensive JSON interface for Blue Iris (which appears to be mirrored by the HTTP interface, even if it isn't fully documented as such), that can do that. I'm thinking about trying to implement a better integration with that, but it's getting towards the edges of the limits of my understanding of the HA architecture and OO programming. (I'm also wondering if polluting the entity space with tons of auto-generated switches makes sense, since not all BI cameras are going to be able to support the associated actions.)

However, in the meantime, you could always create switches with scripted actions inside of HA (number of different ways to do that, look at something like an Command Line Switch; or use the BI REST interface with a RESTful Switch, probably a few dozen other ways...).

Something (not tested) along the lines of this might work:

http://[{username}:{password}@]{host}:{port}/cam/{cam shortname}/pos=34 # IR on
http://[{username}:{password}@]{host}:{port}/cam/{cam shortname}/pos=35 # IR off

I'd recommend getting it working in BI with a web browser and/or CURL first, then working on the HA part, 'cause if it doesn't work in BI first, trying to get it working in HA is going to be futile.

hooray4me commented 5 years ago

@darkgrue Now you're speaking my language... I'm very big into json/bash/etc.. Thanks!

darkgrue commented 5 years ago

@darkgrue How do the additional binary sensors get created? I can see the mqtt topic come thru when I unplug the camera... but a binary sensor isn't getting created...

Should just work, but it's possible all the necessary prerequisite configurations haven't been met. I'm not familiar with troubleshooting this issue. Things to check:

darkgrue commented 5 years ago

@darkgrue Now you're speaking my language... I'm very big into json/bash/etc.. Thanks!

You're welcome!

Also, keep in mind that if Blue Iris' integration with your cameras doesn't support a feature, you could use the same technique to just call the camera's API directly (if it has one). You wouldn't necessarily have to have BI proxy the command (though it might be preferable from the standpoint of notifying BI of state changes in the camera, assuming BI wouldn't be notified otherwise, or was tracking them at all).

elad-bar commented 5 years ago

I saw the rest API earlier today and thought to switch to it... hope that I'll have some results by the end of the weekend

darkgrue commented 5 years ago

I saw the rest API earlier today and thought to switch to it... hope that I'll have some results by the end of the weekend

You'll probably beat me to it. It looks like most/all the status and UI controls (with the obvious exceptions of setup and configuration), is exposed with the API. It looks like the REST and the HTTP APIs are pretty symmetrical, even though the docs might lead you to think they're not.

BTW, looks like the API can return the list of and status of all the cameras, so that per-camera configuration can be eliminated too and the platform can auto-discover (though probably would want to create an exclude pragma, like the other discoverable platforms have, to be able to not show particular cams in HA you may want to still see in BI without hiding them there too).

Right now I'm trying to figure out the problems with casting. I need to start troubleshooting the input_select.py module. I've only started looking at it, but it doesn't seem to be building the list entities, and I'm not sure if that's because it's not being called at all, or there's a problem. Following the Chromecast-style cast-to-device working from Lovelace instructions, I've got that working basically doing the same thing by hand (yaml config). But building those lists programmatically would be much slicker.

The other, bigger priority, for me is getting Google Assistant streaming to work - I want to be able to tell a HUB "Show me the Front Door camera" - because I can't get that working at all.

I think I know why the integration isn't exposing cameras to GA, but even setting a camera up manually using the Generic Camera component doesn't fully succeed. Because even though doing it that way GA can see that camera with a sync devices command, when I tell it to show the camera (or invoke camera.play_stream), it will respond to the command by saying it's playing, I see a HA log entry that indicates the Stream component is being pinged, and the Hub looks like it's running a player... It basically shows a black screen until it times out and returns to the homepage/screensaver. I can't see any errors anywhere that indicate why. I don't know if it's because there's some setting in BI I've mucked up, or just the HA stream component doesn't work fully yet (I'm on hass.io on a Raspberry Pi, BTW). I've tried HTTP, HTTPS, and every different streaming URL BI offers with the same result. Frustrating, 'cause it looks like other people might have success (which makes me wonder if other people are on different HA platforms and the problem is hass.io isn't caught up). =(

hooray4me commented 5 years ago

I do some automation like this to play a movie from my emby server onto my daughter's firestick in her room. image

I'm not a fan of the Google Home/Alexa listening devices... I'll take a look at casting to my firesticks though! Mine HA on Ubuntu Server 18.04 straight home assistant in a Python virtual environment on fitlet-x hardware.

darkgrue commented 5 years ago

I'm not a fan of the Google Home/Alexa listening devices... I'll take a look at casting to my firesticks though!

I've got a lot of mixed feelings about them, but at the same time, it's pretty clear that the voice control of Google Assistant is that one feature that people really expect out of home automation, even if they might not use it.

And let's face it, getting it to work with BI, or with some $25 Dafang-Hacks piece of hardware, instead of a $200-300 Nest cam... I can buy a LOT of T20-SOC-based cameras before I can buy even one Nest. Or buy more HA hardware, or beer...

elad-bar commented 5 years ago

managed to understand how the rest API is working including the pre-login and login (claim token), the following details available for status: alerts, clips, cpu, mem, memfree, profile, signal, uptime, disks [] for each disk - allocated, disk, free, total, used

camera list - for each camera: name, short name (ID), active, FPS, color, ptz, audio, width, height, new alerts, last alert, alert utc, webcast, is enabled, is online, hidden, temp full, active, type, profile, lock, pause, is paused, is recording, is manual recording, manual recording elapsed, manual recording limit, is yellow, is motion, is triggered, is no signal, is alerting, number of alerts, number of triggers, number of clips, number of no signal, error

Set configuration in level of the web server or specific camera

Didn't find (yet through REST API) how to set IR state, but will be able to add it through regular API

I'm planning to:

What do you think?

elad-bar commented 5 years ago

by the way, the rest api is much faster and it can be called every 5-10 seconds without noticing any difference in the machine running the BI.

the main purpose of the input_select.py was to generate dropdown to allow casting, the problem was that I didn't manage to initiate it, though about different approach with that - by set new state of HA with all the options.

hooray4me commented 5 years ago

I like it. Anything REST is going to be faster... the sheer size of the call is smaller and processes more efficiently.

hooray4me commented 5 years ago

Maybe you can explain something to me in blueiris... what is the methodology behind armed vs disarmed and the multiple profiles. I'm wondering if I'm not using BI to its fullest capacity.

hooray4me commented 5 years ago

also ir ON: {"cmd":"ptz","session":"182c8a04f7d4ab042ff8e4a2","camera":"olivia","button":"34"} ir OFF: {"cmd":"ptz","session":"182c8a04f7d4ab042ff8e4a2","camera":"olivia","button":"35"}