Great detective work Andreas!

And thanks for sharing your solution.

I hope the rest of your Gnucash voyage is plain sailing.

Regards

Geoff
=====

On 13/09/2020 9:27 pm, Andreas Vyrides wrote:
Dear Geoff and Ralls,

I would like to let you know that I have finally realised and fixed the issue. Since this is an open source application I will be describing all steps that I have taken as well as describe my results from the aforementioned 7 and a half points provided by Geoff. In case anyone else reading this is not interested in what happened I will be adding a TLDR:SOLUTION paragraph towards the end.

I partially agree with point #1 that our tests showed that my API key was functioning adequately. Unfortunately as it turns out my antivirus (more details on that later) was the culprit all along.

I had already done point number 2 at least 3 times by this point, but one more time would not hurt, after all insanity is doing the same thing over and over again and expecting different results. Of course that did not work.

Point #3 sort of goes a bit with point number 1, but at first glance, I had no luck with it.

Point #4 although valid I had already searched high and low for an issue with perl and alphavatage, but the vast issues were nothing like mine as well as outdated, usually discussing issues with gnucash 2.6.

To be completely honest point #5 was no help at all. I did attempt modifying the file and removing the # (commenting on that line) which could potentially give more information, but no luck. I would still get "Urgh! Nothing back"

I was not willing to even go through the process of point #7 since I believe it would be quite a hustle to maintain a VM just for the sake of running one application. I had already used Windows Sandbox as suggested by Mr Ralls, which oddly enough was successful.

One of my last attempts was to test if this was working on other devices in the house. I installed gnucash and perl on my brother's laptop. No surprises there, it worked flawlessly.

Finally we get to point #6. I was already fed up at this point in time since I have been trying to get this working for over a week, long before I posted on the mail server. Sounds like a last ditch effort, why not try it, it's not like I haven't wiped my laptop numerous times before.

I wiped the disk, installed a fresh version of Windows 10 pro (version 2004, latest at the time). First thing I installed was firefox, then gnucash. After that I let the online price retrieval script run. I went into cmd and types the following commands (# will be used for comments and are not part of the command):

set ALPHAVANTAGE_API_KEY= #my key#

echo %ALPHAVANTAGE_API_KEY%  #make sure that the variable has the correct value

cd .. #change into \gnucash\bin\ directory

perl gnc-fq-dump currency GBP EUR

After the final command, I got the correct result which was the exchange rate at the moment.

At this point I was relieved and I wanted to know how I was unable to connect to the server. I installed my antivirus - ESET ENDPOINT SECURITY, allowed it to set up and update. Then I ran the command "perl gnc-fq-dump currency GBP EUR" in the same cmd window that I had before with the correct result This time I got "1 EUR = <unknown> GBP"

At this point I knew that just disabling the antivirus and firewall were not enough.

TLDR:SOLUTION

Some antiviruses have webmail and internet protection embedded into them, just like mine. This might eventually lead to some of your traffic getting blocked. I will discuss step by step what I did and where exactly I had to navigate in this version of this specific antivirus that I own (as mentioned above, ESET ENDPOINT SECURITY), you should be able to adapt accordingly.


Go to >>SETUP<< (left side of the window), then at the bottom right >> Advanced SetUp<<. A new window will open, you will need to navigate to >>Web and Mail<<. These should be an >>SSL/TLS<< list with multiple options.Now, if you don't really care, you can just disable that and Bob's your Uncle. In the case you want to keep that on for more security there are 2 more ways of going about doing it below.

Method 1

Next to >>List of SSL/TLS filtered applications<< there should be an >>Edit<< link for you to press. In the new window the list of applications will include "C:\Strawberry\perl\bin\perl.exe" as well as a scan action, often set up as >>Auto<<. Select the application and edit the option from >>Auto<< to >>Ignore<< (a new window will pop up again with option). With this you are done with method 1, as whenever perl runs, it will not be blocked by the antivirus, but this means if you are not sure what you are running, in the future something might get missed. This is where method 2 comes in.

Method 2

In the >>Advanced setup<< under >>SSL/TLS<< there should also be an option for >>List of known certificates<<. Press >>Edit<<, a new window will appear, you will need to press >>Add<< to create a new certificate. In the new window, press >>URL<< and type "www.alphavantage.co <http://www.alphavantage.co>", press >>OK<<. You will have a number of options below about Access and Scan actions. I have set mine up us >>Access action - Allow (even if untrusted)<< and >>Scan action - Ignore<<. Press >>OK<< throughout all the windows you have opened, save your changes and you are done

I would suggest running "perl gnc-fq-dump currency GBP EUR" to verify that the request goes through in both methods.

Thank you for all your assistance. I hope in the future if anyone else reads this, he will be able to solve this problem without having to wipe his windows install.

Kind Regards

Andreas Vyrides



On Sun, 13 Sep 2020 at 01:57, Geoff <[email protected] <mailto:[email protected]>> wrote:

    Well Andreas, this is not looking promising, and I suspect it is beyond
    my capabilities to solve.  Anyway, below are 7.5 further suggestions
    for
    you to try out at your discretion, ranging from the simple to the
    extreme.

    1. These results have confirmed that your API key is good and you have
    connectivity to Alphavantage.  I very much doubt that your anti-virus
    will be the problem, but it won't hurt to momentarily turn it off to
    double check.

    2. My next step would be to completely uninstall your Strawberry Perl
    installation, and double check to see that all related directories have
    been removed (and delete them if not).  Then do a vanilla installation
    exactly as you did on the Sandbox.

    3. If that doesn't work, there might be something else on your PC - do
    you have any custom firewall rules for example?  Control Panel ->
    Firewall -> Advanced settings -> Outbound rules etc.

    4. We seem to have established that this may be a Perl problem, it is
    definitely not a GnuCash one.  You could seek help on Perl forums
    instead of this list - perhaps https://stackoverflow.com/, or even
    Reddit.

    5. If you feel comfortable, you could hack into the Finance::Quote code
    to try and get some diagnostics instead of just the "Urgh!  Nothing
back" error from currency-lookup.pl <http://currency-lookup.pl>. The code for the currency function
    in Quote.pm is just calling the Alphavantage API and deciphering the
    results.  Start by removing the "#" at the start of line 277 to see
    what
    that "Failed" message prints out (see attached screenshot):
    #####
        my $ALPHAVANTAGE_API_KEY = $ENV{'ALPHAVANTAGE_API_KEY'};
        return undef unless ( defined $ALPHAVANTAGE_API_KEY );

        my $try_cnt = 0;
        my $json_data;
        do {
          $try_cnt += 1;
          my $reply = $ua->request(GET "${ALPHAVANTAGE_CURRENCY_URL}"
            . "&from_currency=" . ${from}
            . "&to_currency=" . ${to}
            . "&apikey=" . ${ALPHAVANTAGE_API_KEY} );

          my $code = $reply->code;
          my $desc = HTTP::Status::status_message($code);
          return undef unless ($code == 200);

          my $body = $reply->content;

          $json_data = JSON::decode_json $body;
          if ( !$json_data || $json_data->{'Error Message'} ) {
            return undef;
          }
    #     print "Failed: " . $json_data->{'Information'} . "\n" if
    (($try_cnt < 5) && ($json_data->{'Information'}));
          sleep (20) if (($try_cnt < 5) && ($json_data->{'Information'}));
        } while (($try_cnt < 5) && ($json_data->{'Information'}));

        my $exchange_rate = $json_data->{'Realtime Currency Exchange
    Rate'}->{'5. Exchange Rate'};
    #####

    6. Otherwise, are you are prepared to wipe and rebuild your Windows 10
    installation?  The Sandbox demonstrated it will work on a clean install.

    7. The only other suggestion I have (not ideal) is to set up a virtual
    machine to run a Linux distribution to host GnuCash.  Google is your
    guide:
    
https://www.windowscentral.com/how-run-linux-distros-windows-10-using-hyper-v
    https://itsfoss.com/install-linux-in-virtualbox/

    7.5 Someone else on this list may have some suggestions?


    Good luck, and do let us know if you find a solution.

    Regards

    Geoff
    =====
    On 12/09/2020 11:32 pm, Andreas Vyrides wrote:
     > Dear Geoff,
     >
     > Thank you for all your feedback. I have done as you instructed.
     >
     > I was able to follow the instructions from the 3 first points with
     > success, as I am able to access the documentation, the demo key,
    as well
     > as the exchange rates using my own key. Please see the screenshot
    (6)
     > provided (using my own key)
     >
     > I was also able to do a clean install in windows sandbox, which
    was also
     > a success, where I am able to get forex data from both cmd as
    well as
     > gnucash (from F::Q) (please see attached screenshot 8).
     >
     > The issue at this point in time is that I am not aware of how to
     > proceed, in order to allow F::Q to work on my machine without
    requiring
     > the use of sandbox. I have already removed and re-installed
    gnucash and
     > F::Q multiple times without any changes. On first look one of the
    things
     > that differs from the native windows environment and sandbox is the
     > presence of my antivirus, which would be an unlikely candidate as
    I have
     > the same antivirus in a desktop computer and F::Q works fine.
     >
     > I am open to any type of suggestions.
     >
     > I appreciate all your help and feedback helping me deal with this
    issue.
     >
     > Kind Regards
     >
     > Andreas Vyrides
     >
     > On 12/09/2020 12:19, Geoff wrote:
     >> OK Andreas, so this isn't really a GnuCash issue per se, and we
    seem
     >> to have narrowed down the problem to one of Perl / Finance::Quote /
     >> Alphavantage / Your computer.
     >>
     >> The next steps are to independently verify the connection from your
     >> computer to Alphavantage.
     >>
     >> Step 1: Can you access their API documentation page?
     >>
     >> https://www.alphavantage.co/documentation/
     >>
     >> Step 2: Can you call their API using their *demo* API Key?
     >>
     >>
    
https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&from_currency=USD&to_currency=JPY&apikey=demo

     >>
     >>
     >> Step 3: Can you call their API using *your* API Key?
     >> Don't forget to append your actual API key to the URL:
     >>
     >>
    
https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&from_currency=GBP&to_currency=EUR&apikey==__Your_Actual_Key__

     >>
     >>
     >> See attached screenshot.
     >>
     >>
     >> If all of the above are working, my recommendation would be to
     >> uninstall Perl and reinstall from scratch *or* (if you have
    Windows 10
     >> Professional) you could use a Windows 10 Sandbox to do a clean
     >> installation of both GnuCash and Perl to try and further isolate
    the
     >> cause of the problem.
     >>
     >>
    
https://www.howtogeek.com/399290/how-to-use-windows-10s-new-sandbox-to-safely-test-apps/

     >>
     >>
     >>
     >> Good luck!
     >>
     >> Geoff
     >> =====
     >> P.S. What version of Windows do you have?
     >> P.P.S.  What version of Strawberry Perl are you running?
     >> perl -v
     >>
     >> On 12/09/2020 6:41 pm, Andreas Vyrides wrote:
     >>> Dear Geoff and Ralls
     >>>
     >>> After following along with the provided link, I ended up running
     >>> "force install Finance::Quote", to verify the integrity of the
     >>> module, and tried a different API key. The similarities end in the
     >>> post on the 8th of august, where Samantha is able to query
     >>> alphavantage and get a correct exchange rate via the terminal,
    where
     >>> I am not. Please see the attached screenshot for the information
     >>> described above.
     >>>
     >>> All previous tests that I have run in cmd remain the same
     >>>
     >>> Kind Regards
     >>>
     >>> Andreas Vyrides
     >>>
     >>> On 12/09/2020 08:54, Andreas Vyrides wrote:
     >>>>
     >>>> Dear Geoff
     >>>>
     >>>> I apologise for the misunderstanding. Yes I did run set my
     >>>> alphavantage key before running the commands. Please see the
     >>>> attached screenshot.
     >>>>
     >>>> I will have a close look at the link provided. In case you
    have any
     >>>> other ideas about why this is happening, please do not
    hesitate to
     >>>> contact me
     >>>>
     >>>> Kind Regards
     >>>>
     >>>> Andreas Vyrides
     >>>>
     >>>> On 12/09/2020 01:59, Geoff wrote:
     >>>>> Dear Andreas
     >>>>>
     >>>>> Did you set your Alphavantage key as an environment variable
    before
     >>>>> you ran this test script?  Try entering these commands first:
     >>>>>
     >>>>> set ALPHAVANTAGE_API_KEY=__Your_Actual_Key__
     >>>>> echo %ALPHAVANTAGE_API_KEY%
     >>>>>
     >>>>> See attached screenshot.
     >>>>>
     >>>>> See also this long thread on resolving a perl related currency
     >>>>> problem on Windows:
     >>>>>
     >>>>>
    
http://gnucash.1415818.n4.nabble.com/GNC-Difficulty-with-online-price-retrieval-John-Ralls-tc4720222.html

     >>>>>
     >>>>>
     >>>>> Regards
     >>>>>
     >>>>> Geoff
     >>>>> =====
     >>>>>
     >>

_______________________________________________
gnucash-user mailing list
[email protected]
To update your subscription preferences or to unsubscribe:
https://lists.gnucash.org/mailman/listinfo/gnucash-user
If you are using Nabble or Gmane, please see 
https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
-----
Please remember to CC this list on all your replies.
You can do this by using Reply-To-List or Reply-All.

Reply via email to