Call to undefined function is_home() or any conditional tags

It’s a timing issue. This tries to call is_home() before that function exists.

$my_ver = check_home();   

It works in the function called by add_action because then is_home() does exist because WP has fully loaded.

If you load php files in your plugin, then you can call check_home anytime in those files.

For example:

define( 'MY_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
function ab_load_files() {
   require( MY_PLUGIN_PATH . '/ab-functions.php' );
}    
add_action( 'init', 'ab_load_files' );

Then this code will work if placed in ab-functions.php

$my_ver = check_home();
echo $my_ver;