tomaae / homeassistant-openmediavault Goto Github PK
View Code? Open in Web Editor NEWOpenMediaVault integration for Home Assistant
License: Apache License 2.0
OpenMediaVault integration for Home Assistant
License: Apache License 2.0
When trying to setup the OMV integration, I get the following error: "SSL certificate verify failed".
I'm using SSL access for my OMV.
Any help will be appreciated.
Hi, I recently installed this Integration in my Homeassistant. But I have a problem with my login. I have a user for my own to get access to the storage, but with this user it seems that I have not enough rights to get informations about CPU load etc.
When I create a new user where I would give the specific rights there is an error message with the login.
This is the error message: [%key:common::config_flow::error::cannot_connect%]
Whats wrong. Additionaly the informationtext for the credentialtextboxes are looking like this: [%key:common::config_flow::data::ssl%]
Is something wrong with the installation of the repository?
Hi Tomaae I have opened a new ticket.
Practically there are continuous disconnections of the integration creating an error in the LOG. Also in the event log it always says entity not available.
I am attaching the LOG photos from the reboot as you asked me, hoping it will be useful.
The SSL certificate of HA for remote access works with duckdns.
I run supervised home assistant in docker version 2021.04.03 with your integration 1.1.6 and OVM 5.6.4.1 Usul.
I'm at your disposal, thank you very much in advance. You are the only one who can help me.
I'm able to do complete a clean install using HACS, I'm able to add the integration, although configuration screen looks odd however, sensor don't have any values. Below is what I've tried.
-Clear browser cache
-Uninstall from HACS, restart Hass, ensure no omv directory in "custom_components"
-Reinstall from HACS, restart Hass
Not sure how
NA
use btrace to check disk access, you will see that smartctl reads every minute, uninstall the custom component from home assistant and the readings will disappear, allowing the disks to go into spindown
Hi,
I followed al you're steps , and also added the intergration for OMV. but there aren't any sensors showing up.. But there is something showing in the log file, see below.
Log Details (ERROR)
Logger: homeassistant.config_entries
Source: custom_components/openmediavault/omv_controller.py:133
First occurred: 3:45:24 PM (1 occurrences)
Last logged: 3:45:24 PM
Error setting up entry OMV for openmediavault
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 216, in async_setup
hass, self
File "/config/custom_components/openmediavault/init.py", line 31, in async_setup_entry
await controller.async_update()
File "/config/custom_components/openmediavault/omv_controller.py", line 104, in async_update
await self.hass.async_add_executor_job(self.get_hwinfo)
File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/openmediavault/omv_controller.py", line 133, in get_hwinfo
int(self.data["hwinfo"]["memUsed"]) / int(self.data["hwinfo"]["memTotal"])
ZeroDivisionError: division by zero
Thanks for looking into it!!
The integration crashes on startup with a division by zero-error. See log.
2020-04-27 10:34:59 DEBUG (SyncWorker_26) [custom_components.openmediavault.omv_api] OpenMediaVault 192.168.1.130 connected
2020-04-27 10:34:59 DEBUG (SyncWorker_26) [custom_components.openmediavault.omv_api] OpenMediaVault 192.168.1.130 query: System, getInformation, {}, {'updatelastaccess': False}
2020-04-27 10:35:00 DEBUG (SyncWorker_26) [custom_components.openmediavault.omv_api] OpenMediaVault 192.168.1.130 query response: {'response': [{'name': 'Hostname', 'value': 'myhost.workgroup', 'type': 'string', 'index': 0}, {'name': 'Version', 'value': '4.1.35-1 (Arrakis)', 'type': 'string', 'index': 1}, {'name': 'Processor', 'value': 'Intel(R) Xeon(R) CPU E3-1265L V2 @ 2.50GHz', 'type': 'string', 'index': 2}, {'name': 'Kernel', 'value': 'Linux 4.19.0-0.bpo.8-amd64', 'type': 'string', 'index': 3}, {'name': 'System time', 'value': 'Mon Apr 27 10:35:00 2020', 'type': 'string', 'index': 4}, {'name': 'Uptime', 'value': '11 days 22 hours 50 minutes 51 seconds', 'type': 'string', 'index': 5}, {'name': 'Load average', 'value': '3.46, 2.34, 2.31', 'type': 'string', 'index': 6}, {'name': 'CPU usage', 'value': {'text': '38%', 'value': 38.403041825095}, 'type': 'progress', 'index': 7}, {'name': 'Memory usage', 'value': {'text': '54% of 11.68 GiB', 'value': 54}, 'type': 'progress', 'index': 8}], 'error': None}
2020-04-27 10:35:00 DEBUG (SyncWorker_26) [custom_components.openmediavault.helper] Processing source [[{'name': 'Hostname', 'value': 'myhost.workgroup', 'type': 'string', 'index': 0}, {'name': 'Version', 'value': '4.1.35-1 (Arrakis)', 'type': 'string', 'index': 1}, {'name': 'Processor', 'value': 'Intel(R) Xeon(R) CPU E3-1265L V2 @ 2.50GHz', 'type': 'string', 'index': 2}, {'name': 'Kernel', 'value': 'Linux 4.19.0-0.bpo.8-amd64', 'type': 'string', 'index': 3}, {'name': 'System time', 'value': 'Mon Apr 27 10:35:00 2020', 'type': 'string', 'index': 4}, {'name': 'Uptime', 'value': '11 days 22 hours 50 minutes 51 seconds', 'type': 'string', 'index': 5}, {'name': 'Load average', 'value': '3.46, 2.34, 2.31', 'type': 'string', 'index': 6}, {'name': 'CPU usage', 'value': {'text': '38%', 'value': 38.403041825095}, 'type': 'progress', 'index': 7}, {'name': 'Memory usage', 'value': {'text': '54% of 11.68 GiB', 'value': 54}, 'type': 'progress', 'index': 8}]]
2020-04-27 10:35:00 DEBUG (SyncWorker_26) [custom_components.openmediavault.helper] Processing entry [{'name': 'Hostname', 'value': 'myhost.workgroup', 'type': 'string', 'index': 0}, {'name': 'Version', 'value': '4.1.35-1 (Arrakis)', 'type': 'string', 'index': 1}, {'name': 'Processor', 'value': 'Intel(R) Xeon(R) CPU E3-1265L V2 @ 2.50GHz', 'type': 'string', 'index': 2}, {'name': 'Kernel', 'value': 'Linux 4.19.0-0.bpo.8-amd64', 'type': 'string', 'index': 3}, {'name': 'System time', 'value': 'Mon Apr 27 10:35:00 2020', 'type': 'string', 'index': 4}, {'name': 'Uptime', 'value': '11 days 22 hours 50 minutes 51 seconds', 'type': 'string', 'index': 5}, {'name': 'Load average', 'value': '3.46, 2.34, 2.31', 'type': 'string', 'index': 6}, {'name': 'CPU usage', 'value': {'text': '38%', 'value': 38.403041825095}, 'type': 'progress', 'index': 7}, {'name': 'Memory usage', 'value': {'text': '54% of 11.68 GiB', 'value': 54}, 'type': 'progress', 'index': 8}]
2020-04-27 10:35:00 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry OMV for openmediavault
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 216, in async_setup
hass, self
File "/config/custom_components/openmediavault/__init__.py", line 31, in async_setup_entry
await controller.async_update()
File "/config/custom_components/openmediavault/omv_controller.py", line 104, in async_update
await self.hass.async_add_executor_job(self.get_hwinfo)
File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/openmediavault/omv_controller.py", line 133, in get_hwinfo
int(self.data["hwinfo"]["memUsed"]) / int(self.data["hwinfo"]["memTotal"])
ZeroDivisionError: division by zero`
Hey, thanks for the great integration!
How often does the integration update the sensor values? On my install, the sensors are only updated when I restart HomeAssistant. Is there any way to force an update? Or set an update_interval ?
If the sensors are not updated frequently, then it´s kinda useless to have a CPU load or HDD temperature entity.
Installed openmediavault using HACS.
openmediavault is located on custom_copoment directory
ha core logs says : 2021-09-17 07:09:48 WARNING (SyncWorker_1) [homeassistant.loader] We found a custom integration renault which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
when I go to configuration / integrations / add / search 'openmedia....' component dosent appears in list.
dont know
view OpenMediaVault in integration list.
I just added this integration, but I get this error...
2020-04-30 14:43:32 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry OMV for openmediavault
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/config_entries.py", line 216, in async_setup
hass, self
File "/home/homeassistant/.homeassistant/custom_components/openmediavault/__init__.py", line 31, in async_setup_entry
await controller.async_update()
File "/home/homeassistant/.homeassistant/custom_components/openmediavault/omv_controller.py", line 104, in async_update
await self.hass.async_add_executor_job(self.get_hwinfo)
File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/home/homeassistant/.homeassistant/custom_components/openmediavault/omv_controller.py", line 133, in get_hwinfo
int(self.data["hwinfo"]["memUsed"]) / int(self.data["hwinfo"]["memTotal"])
ZeroDivisionError: division by zero
Hello!
Cant install the integration : "SSL certificate verify failed", even if i uncheck the box "SSL" and "verify SSL Certificate".
Dont know sorry
Integration work for others, not for me
OpenMediaVault 192.168.1.60 connection error: HTTPSConnectionPool(host='192.168.1.60', port=443): Max retries exceeded with url: /rpc.php (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate (_ssl.c:1125)')))
Logger: homeassistant.util.async_
Source: util/async_.py:105
First occurred: 1:11:14 PM (2 occurrences)
Last logged: 1:11:56 PM
Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for openmediavault doing I/O at custom_components/openmediavault/omv_api.py, line 128: response = self._connection.post(
Would it be possible to add an uptime sensor to this component ?
Home Assistant errors while trying to setup the integration.
Steps to reproduce the behavior:
Expected the integration to complete the setup
WARNING (MainThread) [homeassistant.util.async_] Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for openmediavault doing I/O at custom_components/openmediavault/omv_api.py, line 134: response = self._connection.post(
ERROR (MainThread) [custom_components.openmediavault.omv_api] OpenMediaVault (IP) error while connect : unknown
I tried to set it up with and without SSL. Got the same result.
I am aware that an issue similar to this was created already, but it was closed&locked without a solution.
Hello!
Cant install the integration : "SSL certificate verify failed", even if i uncheck the box "SSL" and "verify SSL Certificate".
EDIT : i have unchecked the "verify SSL Certificate" and it works...sorry mate
Dont know sorry
Integration work for others, not for me
OpenMediaVault 192.168.1.60 connection error: HTTPSConnectionPool(host='192.168.1.60', port=443): Max retries exceeded with url: /rpc.php (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate (_ssl.c:1125)')))
As in title, if OMV is configured to require HTTPS, you cannot configure the integration.
It works fine if you disable the forced SSL.
If you enable SSL after configuring the integration, the sensors stop working.
My OMV is using a self-signed certificate, probably HASS doesn't trust it.
If that's the problem, is it possible to add a flag to bypass verification?
After applying a recent update (1 or 2 versions ago as of writing this), all the entities are no longer reporting:
This of course breaks cards, for example:
In the above screenshot, those 4 broken cards are sensors are hard drive's used space values in a Gauge card.
existing entities stay intact after update.
I am not deleting and re-adding the integration after updating the plugin. Is this required?
device_state_attributes
is deprecated and needs to be changed to extra_state_attributes
Run HA 2021.12.0+
n/a
n/a
(<class 'custom_components.openmediavault.binary_sensor.OMVBinarySensor'>) implements device_state_attributes. Please report it to the custom component author.
(<class 'custom_components.openmediavault.sensor.OMVSensor'>) implements device_state_attributes. Please report it to the custom component author.
(<class 'custom_components.openmediavault.sensor.OMVFileSystemSensor'>) implements device_state_attributes. Please report it to the custom component author.
(<class 'custom_components.openmediavault.sensor.OMVDiskSensor'>) implements device_state_attributes. Please report it to the custom component author.
n/a
Hi tomaae,
First of all, thanks for this addon.
I would like create a custom user in omv which is only for this addon. This user shall have as few rights as possible.
Can you tell me what user groups I have to set in omv to get all devices/entities/sensors in Home Assistant?
Thanks
Here is the log
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/aiohttp/web_protocol.py", line 422, in _handle_request
resp = await self._request_handler(request)
File "/usr/local/lib/python3.9/site-packages/aiohttp/web_app.py", line 499, in _handle
resp = await handler(request)
File "/usr/local/lib/python3.9/site-packages/aiohttp/web_middlewares.py", line 119, in impl
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 98, in forwarded_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 24, in request_context_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 78, in ban_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 138, in auth_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 135, in handle
result = await result
File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 157, in post
return await super().post(request, flow_id)
File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 62, in wrapper
result = await method(view, request, *args, **kwargs)
File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 110, in post
result = await self._flow_mgr.async_configure(flow_id, data)
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 246, in async_configure
result = await self._async_handle_step(flow, cur_step["step_id"], user_input)
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 320, in _async_handle_step
result: FlowResult = await getattr(flow, method)(user_input)
File "/config/custom_components/openmediavault/config_flow.py", line 75, in async_step_user
if not await self.hass.async_add_executor_job(api.connect):
File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 52, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/openmediavault/omv_api.py", line 128, in connect
cookies = load_cookies(self._cookie_jar_file)
File "/config/custom_components/openmediavault/omv_api.py", line 23, in load_cookies
return pickle_load(f)
EOFError: Ran out of input
Could you add LAN data in and out? This would be very useful.
Also Disk capacity info: amount used, amount available. etc.
Thanks
My OMV entities all started showing as 'Unavailable' 2 days ago in HA. I tried to remove the integration and add it back but it gives errors when trying to enter my OMV info.
This is what it looks like when trying to add the integration now:
I don't use HACS, but would really like to use your custom component.
It would be awesome, if you would add the possibility to add your custom_component manually, by adding it to the custom_components-folder and add an entry to the integration.yaml.
Error on startup of Home Assistant
Start 2021.5.0b1 with OMV
No startup errors.
n/a
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 269, in async_setup
result = await component.async_setup_entry(hass, self) # type: ignore
File "/config/custom_components/openmediavault/__init__.py", line 38, in async_setup_entry
device_registry.async_get_or_create(
File "/usr/src/homeassistant/homeassistant/helpers/device_registry.py", line 266, in async_get_or_create
raise RequiredParameterMissing(["identifiers", "connections"])
homeassistant.exceptions.RequiredParameterMissing: (RequiredParameterMissing(...), 'Call must include at least one of the following parameters: identifiers, connections')
this is the error:
<Integration tomaae/homeassistant-openmediavault> Could not read manifest.json [GitHub returned 500 for https://api.github.com/repos/tomaae/homeassistant-openmediavault/contents/custom_components/openmediavault/manifest.json]
Just started using this plugin and it has been great so far. I noticed one slight bug in that all of my ZFS filesystems are not being properly enumerated, likely because the UUID being returned by OMV is null
. This value seems to be valid as their documentation shows a null
being returned for a ZFS filesystem (I could not tell you the reason why, however). See Example 1 Here. I noticed that in the get_fs
function, the key seems to be 'uuid', so my best guess is that is likely the culprit.
I expect to see my ZFS filesystems in Home Assistant.
Edit: To clarify: The second "NAS" filesystem is /boot/efi
No errors are being thrown.
My OMV setup includes a ZFS array (/storage/tank) as well as a mergerfs+snapraid array (data1-6/parity1-2, label is "pool").
Here is the JSON response from my own personal OMV from the rpc.php call:
{
"response": [
{
"devicefile": "/srv/8b534f37-f272-41d5-8fb3-7a5858c07074",
"parentdevicefile": null,
"uuid": "8b534f37-f272-41d5-8fb3-7a5858c07074",
"label": "win10-backup",
"type": "cifs",
"blocks": "23437766648",
"mounted": true,
"mountpoint": "/srv/8b534f37-f272-41d5-8fb3-7a5858c07074",
"used": "1.20 TiB",
"available": "22673158574080",
"size": "24000273047552",
"percentage": 6,
"description": "win10-backup (20.62 TiB available)",
"propposixacl": true,
"propquota": false,
"propresize": false,
"propfstab": false,
"propreadonly": false,
"propcompress": false,
"propautodefrag": false,
"hasmultipledevices": false,
"devicefiles": [
"/srv/8b534f37-f272-41d5-8fb3-7a5858c07074"
],
"_readonly": false,
"_used": true
},
{
"devicefile": "/srv/82663518-4709-4c81-91a5-b969a495afda",
"parentdevicefile": null,
"uuid": "82663518-4709-4c81-91a5-b969a495afda",
"label": "MediaBackup",
"type": "cifs",
"blocks": "7516174332",
"mounted": true,
"mountpoint": "/srv/82663518-4709-4c81-91a5-b969a495afda",
"used": "5.94 TiB",
"available": "1157901864960",
"size": "7696562515968",
"percentage": 85,
"description": "MediaBackup (1.05 TiB available)",
"propposixacl": true,
"propquota": false,
"propresize": false,
"propfstab": false,
"propreadonly": false,
"propcompress": false,
"propautodefrag": false,
"hasmultipledevices": false,
"devicefiles": [
"/srv/82663518-4709-4c81-91a5-b969a495afda"
],
"_readonly": false,
"_used": true
},
{
"devicefile": "/dev/disk/by-id/usb-Samsung_Flash_Drive_FIT_0375120060042250-0:0-part2",
"parentdevicefile": "/dev/sdm",
"uuid": "283f5930-b08f-4eb9-af3e-02816c38887f",
"label": "",
"type": "ext4",
"blocks": "28060600",
"mounted": true,
"mountpoint": "/",
"used": "4.43 GiB",
"available": "22485962752",
"size": "28734054400",
"percentage": 18,
"description": "/dev/disk/by-id/usb-Samsung_Flash_Drive_FIT_0375120060042250-0:0-part2 (20.94 GiB available)",
"propposixacl": true,
"propquota": true,
"propresize": true,
"propfstab": true,
"propreadonly": false,
"propcompress": false,
"propautodefrag": false,
"hasmultipledevices": false,
"devicefiles": [
"/dev/sdm2"
],
"_readonly": true,
"_used": true
},
{
"devicefile": "/dev/disk/by-label/parity2",
"parentdevicefile": "/dev/sdj",
"uuid": "ea5934fe-d9e7-4d4d-87fe-5e569f2ca605",
"label": "parity2",
"type": "ext4",
"blocks": "3844640564",
"mounted": true,
"mountpoint": "/srv/dev-disk-by-label-parity2",
"used": "1.51 TiB",
"available": "2270824759296",
"size": "3936911937536",
"percentage": 43,
"description": "parity2 (2.06 TiB available)",
"propposixacl": true,
"propquota": true,
"propresize": true,
"propfstab": true,
"propreadonly": false,
"propcompress": false,
"propautodefrag": false,
"hasmultipledevices": false,
"devicefiles": [
"/dev/sdj1"
],
"_readonly": false,
"_used": true
},
{
"devicefile": "/dev/disk/by-label/data2",
"parentdevicefile": "/dev/sdf",
"uuid": "0ecea242-bf93-483a-a9f4-9dbfd38bd9ad",
"label": "data2",
"type": "ext4",
"blocks": "2883220084",
"mounted": true,
"mountpoint": "/srv/dev-disk-by-label-data2",
"used": "1.00 TiB",
"available": "1844650225664",
"size": "2952417366016",
"percentage": 38,
"description": "data2 (1.67 TiB available)",
"propposixacl": true,
"propquota": true,
"propresize": true,
"propfstab": true,
"propreadonly": false,
"propcompress": false,
"propautodefrag": false,
"hasmultipledevices": false,
"devicefiles": [
"/dev/sdf1"
],
"_readonly": false,
"_used": true
},
{
"devicefile": "/dev/disk/by-label/data1",
"parentdevicefile": "/dev/sde",
"uuid": "490c1bc1-6440-4e6c-8697-85ce2704a597",
"label": "data1",
"type": "ext4",
"blocks": "2883220084",
"mounted": true,
"mountpoint": "/srv/dev-disk-by-label-data1",
"used": "1.00 TiB",
"available": "1843629953024",
"size": "2952417366016",
"percentage": 38,
"description": "data1 (1.67 TiB available)",
"propposixacl": true,
"propquota": true,
"propresize": true,
"propfstab": true,
"propreadonly": false,
"propcompress": false,
"propautodefrag": false,
"hasmultipledevices": false,
"devicefiles": [
"/dev/sde1"
],
"_readonly": false,
"_used": true
},
{
"devicefile": "/dev/disk/by-label/data5",
"parentdevicefile": "/dev/sdk",
"uuid": "06a36f93-cac3-42b1-b956-d7ee34187be9",
"label": "data5",
"type": "ext4",
"blocks": "2883220084",
"mounted": true,
"mountpoint": "/srv/dev-disk-by-label-data5",
"used": "1.01 TiB",
"available": "1841749798912",
"size": "2952417366016",
"percentage": 38,
"description": "data5 (1.67 TiB available)",
"propposixacl": true,
"propquota": true,
"propresize": true,
"propfstab": true,
"propreadonly": false,
"propcompress": false,
"propautodefrag": false,
"hasmultipledevices": false,
"devicefiles": [
"/dev/sdk1"
],
"_readonly": false,
"_used": true
},
{
"devicefile": "/dev/disk/by-label/data6",
"parentdevicefile": "/dev/sdl",
"uuid": "09ca8040-62c9-4c01-a03f-8bae49f8c9e2",
"label": "data6",
"type": "ext4",
"blocks": "2883220084",
"mounted": true,
"mountpoint": "/srv/dev-disk-by-label-data6",
"used": "1.00 TiB",
"available": "1842444972032",
"size": "2952417366016",
"percentage": 38,
"description": "data6 (1.67 TiB available)",
"propposixacl": true,
"propquota": true,
"propresize": true,
"propfstab": true,
"propreadonly": false,
"propcompress": false,
"propautodefrag": false,
"hasmultipledevices": false,
"devicefiles": [
"/dev/sdl1"
],
"_readonly": false,
"_used": true
},
{
"devicefile": "/dev/disk/by-label/data3",
"parentdevicefile": "/dev/sdg",
"uuid": "46354e12-9bd2-49bd-b6ff-a789137928d8",
"label": "data3",
"type": "ext4",
"blocks": "2883220084",
"mounted": true,
"mountpoint": "/srv/dev-disk-by-label-data3",
"used": "1.00 TiB",
"available": "1843355181056",
"size": "2952417366016",
"percentage": 38,
"description": "data3 (1.67 TiB available)",
"propposixacl": true,
"propquota": true,
"propresize": true,
"propfstab": true,
"propreadonly": false,
"propcompress": false,
"propautodefrag": false,
"hasmultipledevices": false,
"devicefiles": [
"/dev/sdg1"
],
"_readonly": false,
"_used": true
},
{
"devicefile": "/dev/disk/by-label/data4",
"parentdevicefile": "/dev/sdh",
"uuid": "6ccbaed1-c8c6-426b-be6d-01ba013cd73c",
"label": "data4",
"type": "ext4",
"blocks": "2883220084",
"mounted": true,
"mountpoint": "/srv/dev-disk-by-label-data4",
"used": "1.00 TiB",
"available": "1843055652864",
"size": "2952417366016",
"percentage": 38,
"description": "data4 (1.67 TiB available)",
"propposixacl": true,
"propquota": true,
"propresize": true,
"propfstab": true,
"propreadonly": false,
"propcompress": false,
"propautodefrag": false,
"hasmultipledevices": false,
"devicefiles": [
"/dev/sdh1"
],
"_readonly": false,
"_used": true
},
{
"devicefile": "/dev/disk/by-label/parity1",
"parentdevicefile": "/dev/sdi",
"uuid": "5e626981-b5e8-467e-a92d-1740cfa7077f",
"label": "parity1",
"type": "ext4",
"blocks": "3844640564",
"mounted": true,
"mountpoint": "/srv/dev-disk-by-label-parity1",
"used": "1.51 TiB",
"available": "2270824742912",
"size": "3936911937536",
"percentage": 43,
"description": "parity1 (2.06 TiB available)",
"propposixacl": true,
"propquota": true,
"propresize": true,
"propfstab": true,
"propreadonly": false,
"propcompress": false,
"propautodefrag": false,
"hasmultipledevices": false,
"devicefiles": [
"/dev/sdi1"
],
"_readonly": false,
"_used": true
},
{
"devicefile": "/srv/09b736f8-fc65-4ab8-91be-1b11e40259de",
"parentdevicefile": false,
"uuid": "09b736f8-fc65-4ab8-91be-1b11e40259de",
"label": "pool",
"type": "fuse.mergerfs",
"blocks": "17299320504",
"mounted": true,
"mountpoint": "/srv/09b736f8-fc65-4ab8-91be-1b11e40259de",
"used": "6.05 TiB",
"available": "11058885783552",
"size": "17714504196096",
"percentage": 38,
"description": "pool (10.05 TiB available)",
"propposixacl": true,
"propquota": false,
"propresize": false,
"propfstab": false,
"propreadonly": false,
"propcompress": false,
"propautodefrag": false,
"hasmultipledevices": false,
"devicefiles": [
"/srv/09b736f8-fc65-4ab8-91be-1b11e40259de"
],
"_readonly": false,
"_used": true
},
{
"devicefile": "/dev/disk/by-id/usb-Samsung_Flash_Drive_FIT_0375120060042250-0:0-part1",
"parentdevicefile": "/dev/sdm",
"uuid": "3126-5227",
"label": "",
"type": "vfat",
"blocks": "523248",
"mounted": true,
"mountpoint": "/boot/efi",
"used": "152.00 KiB",
"available": "535650304",
"size": "535805952",
"percentage": 1,
"description": "/dev/disk/by-id/usb-Samsung_Flash_Drive_FIT_0375120060042250-0:0-part1 (510.83 MiB available)",
"propposixacl": false,
"propquota": false,
"propresize": false,
"propfstab": true,
"propreadonly": false,
"propcompress": false,
"propautodefrag": false,
"hasmultipledevices": false,
"devicefiles": [
"/dev/sdm1"
],
"_readonly": false,
"_used": false
},
{
"devicefile": "tank",
"parentdevicefile": null,
"uuid": null,
"label": "tank",
"type": "zfs",
"blocks": 7325981081.599999,
"mounted": true,
"mountpoint": "/storage/tank",
"used": "23.40 GiB",
"available": 7476679068876.8,
"size": 7501804627558.399,
"percentage": 0,
"description": "tank (6.80 TiB available)",
"propposixacl": true,
"propquota": false,
"propresize": false,
"propfstab": false,
"propreadonly": false,
"propcompress": false,
"propautodefrag": false,
"hasmultipledevices": false,
"devicefiles": "tank",
"_readonly": false,
"_used": false
},
{
"devicefile": "tank/appdata",
"parentdevicefile": null,
"uuid": null,
"label": "tank/appdata",
"type": "zfs",
"blocks": 7304254586.88,
"mounted": true,
"mountpoint": "/storage/tank/appdata",
"used": "2.68 GiB",
"available": 7476679068876.8,
"size": 7479556696965.12,
"percentage": 0,
"description": "tank/appdata (6.80 TiB available)",
"propposixacl": true,
"propquota": false,
"propresize": false,
"propfstab": false,
"propreadonly": false,
"propcompress": false,
"propautodefrag": false,
"hasmultipledevices": false,
"devicefiles": "tank/appdata",
"_readonly": false,
"_used": false
},
{
"devicefile": "tank/home",
"parentdevicefile": null,
"uuid": null,
"label": "tank/home",
"type": "zfs",
"blocks": 7323149926.4,
"mounted": true,
"mountpoint": "/storage/tank/home",
"used": "20.70 GiB",
"available": 7476679068876.8,
"size": 7498905524633.6,
"percentage": 0,
"description": "tank/home (6.80 TiB available)",
"propposixacl": true,
"propquota": false,
"propresize": false,
"propfstab": false,
"propreadonly": false,
"propcompress": false,
"propautodefrag": false,
"hasmultipledevices": false,
"devicefiles": "tank/home",
"_readonly": false,
"_used": false
}
],
"error": null
}
HA has added support for icons and logos in the Integrations page. This HACS integration does not have the new icons.
Screenshots:
Here's the Add Integration list, filtered:
Here's the Integrations page card
It is a simple fix and only requires two image files. since this integration is not a part of the out of the box Supervisor, the solution should still be the same as long as the images are copied to the correct locaiton.
Details here https://github.com/home-assistant/brands
Hi,
This would be nice to be able to select the port we want when doing the setup.
Indeed due to other applications using port 80 I had to change omv port.
Great job anyway!
At some point OMV has stopped working - im not sure if it was after a system upgrade or something else - havent been checking OMV tab in HA for a while.
2021-03-10 18:01:36 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry OMV for openmediavault
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 248, in async_setup
result = await component.async_setup_entry(hass, self) # type: ignore
File "/config/custom_components/openmediavault/__init__.py", line 31, in async_setup_entry
await controller.async_hwinfo_update()
File "/config/custom_components/openmediavault/omv_controller.py", line 114, in async_hwinfo_update
await self.hass.async_add_executor_job(self.get_hwinfo)
File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/openmediavault/omv_controller.py", line 158, in get_hwinfo
source=self.api.query("System", "getInformation"),
File "/config/custom_components/openmediavault/omv_api.py", line 274, in query
return self.query(service, method, params, options)
File "/config/custom_components/openmediavault/omv_api.py", line 274, in query
return self.query(service, method, params, options)
File "/config/custom_components/openmediavault/omv_api.py", line 274, in query
return self.query(service, method, params, options)
[Previous line repeated 169 more times]
File "/config/custom_components/openmediavault/omv_api.py", line 273, in query
if self.connect():
File "/config/custom_components/openmediavault/omv_api.py", line 142, in connect
data = response.json()
File "/usr/local/lib/python3.8/site-packages/requests/models.py", line 900, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/local/lib/python3.8/site-packages/simplejson/__init__.py", line 525, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.8/site-packages/simplejson/decoder.py", line 370, in decode
obj, end = self.raw_decode(s)
File "/usr/local/lib/python3.8/site-packages/simplejson/decoder.py", line 400, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Hello, I am getting the error spelled out below in my home-assistant logs. It still works but might become an issue in the future.
Logger: homeassistant.util.async_
Source: util/async_.py:105
First occurred: 6:21:30 PM (1 occurrences)
Last logged: 6:21:30 PM
Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for openmediavault doing I/O at custom_components/openmediavault/omv_api.py, line 128: response = self._connection.post(
I'm unable to get any entity from home assistant. OMV is on a different machine. After filling all the requested information, (use SSL and Verify SSL are unchecked since ATM i do not have ssl certificate on this machine) i get some errors on log. please check below.
No errors in log, plugin showing server entities.
Log Details (WARNING)
Logger: homeassistant.util.async_
Source: util/async_.py:120
First occurred: 1:31:47 PM (1 occurrences)
Last logged: 1:31:47 PM
Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for openmediavault doing I/O at custom_components/openmediavault/omv_api.py, line 140: verify=self._ssl_verify,
Logger: homeassistant.config_entries
Source: custom_components/openmediavault/helper.py:15
First occurred: 1:31:50 PM (1 occurrences)
Last logged: 1:31:50 PM
Error setting up entry OMV for openmediavault
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 216, in async_setup
hass, self
File "/config/custom_components/openmediavault/init.py", line 31, in async_setup_entry
await controller.async_hwinfo_update()
File "/config/custom_components/openmediavault/omv_controller.py", line 116, in async_hwinfo_update
await self.hass.async_add_executor_job(self.get_disk)
File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/openmediavault/omv_controller.py", line 233, in get_disk
{"name": "smartsupportis", "type": "bool", "default": False},
File "/config/custom_components/openmediavault/helper.py", line 86, in parse_api
data = fill_vals(data, entry, uid, vals)
File "/config/custom_components/openmediavault/helper.py", line 225, in fill_vals
data[_name] = from_entry(entry, _source, default=_default)
File "/config/custom_components/openmediavault/helper.py", line 15, in from_entry
if param not in entry:
TypeError: argument of type 'NoneType' is not iterable
Thank you
Is there any plans to implement power off, power on by sending WoL package and rebooting? This will be good feature to power off for example after enabling alarm without using ssh commands in HA, etc.
I wan't to add OWV integration to my home assistant installation. But after install it with HACS, and refresh the cash, and several restart, the integration isn't availble.
OMV integration visible in the list
hi, after a snapshot restore (supervisored to hassos), i can't see any sensor for OMV.... i removed integration, deleted cookie, restarted, re-create integration... all works, but i can't see any sensor.
why?
removed verify ssl certificate, i'm using it in http mode.
Hello!
After installing this integration, omv hdd is not spinning down anymore. Using hd-idle for spinning down, with 30 min. idle time.
Is this normal?
Not working after upgrade to 6.0-20 (Shaitan)
Just clean install of latest omv 6.0-20 (Shaitan)
Here is error in HA:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 293, in async_setup
result = await component.async_setup_entry(hass, self) # type: ignore
File "/config/custom_components/openmediavault/__init__.py", line 23, in async_setup_entry
await controller.async_hwinfo_update()
File "/config/custom_components/openmediavault/omv_controller.py", line 112, in async_hwinfo_update
await self.hass.async_add_executor_job(self.get_hwinfo)
File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 52, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/openmediavault/omv_controller.py", line 171, in get_hwinfo
tmp = self.data["hwinfo"]["uptime"].split(" ")
AttributeError: 'float' object has no attribute 'split'
Home Assistant version: 2021.7.4
openmediavault integration version: 1.1.7
openmediavault software version: 6.0-20 (Shaitan)
My uptime currently says that I have been up for 595 hours, not 24 days which would be much easier to intuitively understand after ~48 hours.
Hello,
In log of Core, this message appears (every minutes):
/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py:1013: InsecureRequestWarning: Unverified HTTPS request is being made to host '192.168.x.x'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings warnings.warn(
192.168.x.x is the IP of my NAS. (OMV)
Thanks for your help.
New requirements for custom components.
2021-03-01 12:28:29 WARNING (MainThread) [homeassistant.loader] No 'version' key in the manifest file for custom integration 'openmediavault'. This will not be allowed in a future version of Home Assistant. Please report this to the maintainer of 'openmediavault'
n/a
n/a
n/a
n/a
n/a
I have OpenMediaVault version 5.6.2-1 installed on a VM.
I'm trying to setup the HA integration by using the IP (port 80) and the same username I used before.
Keep in mind that this problem came out about three days ago and I don't know what the cause might be.
`Logger: aiohttp.server
Source: custom_components/openmediavault/omv_api.py:20
First occurred: 11:23:00 (25 occurrences)
Last logged: 11:25:38
Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/aiohttp/web_protocol.py", line 422, in _handle_request
resp = await self._request_handler(request)
File "/usr/local/lib/python3.8/site-packages/aiohttp/web_app.py", line 499, in _handle
resp = await handler(request)
File "/usr/local/lib/python3.8/site-packages/aiohttp/web_middlewares.py", line 119, in impl
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 56, in security_filter_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 18, in request_context_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 72, in ban_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 129, in auth_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 129, in handle
result = await result
File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 150, in post
return await super().post(request, flow_id)
File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 60, in wrapper
result = await method(view, request, *args, **kwargs)
File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 106, in post
result = await self._flow_mgr.async_configure(flow_id, data)
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 158, in async_configure
result = await self._async_handle_step(flow, cur_step["step_id"], user_input)
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 216, in _async_handle_step
result: Dict = await getattr(flow, method)(user_input)
File "/config/custom_components/openmediavault/config_flow.py", line 78, in async_step_user
if not api.connect():
File "/config/custom_components/openmediavault/omv_api.py", line 122, in connect
cookies = load_cookies(self._cookie_jar_file)
File "/config/custom_components/openmediavault/omv_api.py", line 20, in load_cookies
return pickle_load(f)
EOFError: Ran out of input
`
Hi!
Thanks for a integration, it's a long awaited and cool! :)
One question 'bout cpu and memory sensors, I just added the integration, and seems my cpu and memory sensors is still at zero point - it's normal or what the period for update they?
This screenshot for 15 minutes after integration is done.
Thanks.
Is it possible to install manual, without HACS?
Hi, i have my OMV server in a rack with fans, i want to start fan on hight server cpu temperature
What do you think about expose it like drives temperature?
For now i'm using MQTT to expose it but i think will be better with this integration.
good work for this integration
every time i restart home assistant i receive an email for access from my user.
there is a way for fix this without disabling email alerts for this event?
new 0.110 support logos in integration for custom_components
Beta for now.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.