Re: [mh] Weather and Weather_Chance_Of_Rain
Stephen Switzer <[email protected]>
| Newsgroups | gmane.comp.misc.misterhouse.user |
|---|---|
| Message-ID | <CALSXUc1ps-wnv=cdjLsRBDf04+Gjb1S14JtRo=5OCf_3EZr66A@mail.gmail.com> |
I very much appreciate your reply. I have a moment to dig in to this before
bed, so I change print Dumper(%INC); to print Dumper(@INC); and ran it:
@INC = (
'./../lib',
'./../lib/site',
'./../lib/fallback',
'/etc/perl',
'/usr/local/lib/x86_64-linux-gnu/perl/5.30.0',
'/usr/local/share/perl/5.30.0',
'/usr/lib/x86_64-linux-gnu/perl5/5.30',
'/usr/share/perl5',
'/usr/lib/x86_64-linux-gnu/perl/5.30',
'/usr/share/perl/5.30',
'/usr/local/lib/site_perl',
'/usr/lib/x86_64-linux-gnu/perl-base'
);
Interestingly, when I placed the Dumper line at the beginning of the file,
it didn't change. When I place it inside the BEGIN section:
BEGIN {
print Dumper(@INC);
eval "use lib '$Pgm_Path/../lib', '$Pgm_Path/../lib/site',
'$Pgm_Path/../lib/fallback'";
}
Then, I saw the library directories listed without any MisterHouse
directories, then the modified list after it, even though it was physically
after the other in the file:
@INC = (
'/etc/perl',
'/usr/local/lib/x86_64-linux-gnu/perl/5.30.0',
'/usr/local/share/perl/5.30.0',
'/usr/lib/x86_64-linux-gnu/perl5/5.30',
'/usr/share/perl5',
'/usr/lib/x86_64-linux-gnu/perl/5.30',
'/usr/share/perl/5.30',
'/usr/local/lib/site_perl',
'/usr/lib/x86_64-linux-gnu/perl-base'
);
@INC = (
'./../lib',
'./../lib/site',
'./../lib/fallback',
'/etc/perl',
'/usr/local/lib/x86_64-linux-gnu/perl/5.30.0',
'/usr/local/share/perl/5.30.0',
'/usr/lib/x86_64-linux-gnu/perl5/5.30',
'/usr/share/perl5',
'/usr/lib/x86_64-linux-gnu/perl/5.30',
'/usr/share/perl/5.30',
'/usr/local/lib/site_perl',
'/usr/lib/x86_64-linux-gnu/perl-base'
);
However, I can accept that since "BEGIN" implies that execution will BEGIN
there. :)
This makes whole problem is starting to make sense, since this reference
says that the directories provided in "use lib" are *prepended* to @INC:
https://docstore.mik.ua/orelly/perl2/prog/ch31_13.htm
I can't find any documentation on how to append directories to @INC, but I
tried this:
BEGIN {
print Dumper(@INC);
#eval "use lib '$Pgm_Path/../lib', '$Pgm_Path/../lib/site',
'$Pgm_Path/../lib/fallback'";
eval "push @INC, '$Pgm_Path/../lib'";
eval "push @INC, '$Pgm_Path/../lib/site'";
eval "push @INC, '$Pgm_Path/../lib/fallback'";
print Dumper(@INC);
}
...which didn't add to the array at all, nor did it give any error... so I
tried this:
BEGIN {
print Dumper(@INC);
#eval "use lib '$Pgm_Path/../lib', '$Pgm_Path/../lib/site',
'$Pgm_Path/../lib/fallback'";
push @INC, "$Pgm_Path/../lib";
push @INC, "$Pgm_Path/../lib/site";
push @INC, "$Pgm_Path/../lib/fallback";
print Dumper(@INC);
}
THAT WORKED... but according to the comment "perl2exe" won't be happy with
this approach.
I think this explains it, but I have no further sense of direction on this
matter. It appeared that adding fallback to this list was the issue, but
then I remembered that the modules were moved at the same time, so the old
module would have been found in site, and @INC was prepended at that time,
too.
I'm not sure what the right approach should be here.
Steve
On Mon, Dec 7, 2020 at 5:21 PM Brian M <[email protected]>
wrote:
> Good work. You're right, that doesn't make sense, but I think we'll
> figure it out.
>
> Instead of dumping %INC, would you please dump the contents of @INC while
> get_weather is in it's broken configuration? @INC is the list of library
> directories Perl is using to find modules, in descending order of
> preference. I'd like to see what it looks like from inside get_weather. I
> want to know what's actually getting used, rather than what we're
> configuring, in case something is monkeying with it along the way. Fallback
> should be at the very end, since we only want to use fallback if all other
> sources have been exhausted. If it's not last, we need to find out why and
> fix that.
>
> Also, did you "See note in lib/mh_perl2exe.pl for lib -> my_lib
> explaination" as mentioned in the get_weather comments. I haven't, and
> given what you're experiencing, maybe my_lib is the monkey fiddling @INC.
>
> And no, you're not out of your league. You're just diagnosing an issue in
> a big, complex project that's been fiddled with by many people over time.
> I've been dabbling with MH for over 15 years, and I still find it arcane.
> Amazingly flexible and effective, but arcane. No fault to HPlato and all
> the other big players in the MH world, they've done great stuff. I value
> their contributions and dedication, and they've been great helping me
> figure stuff out. There's just a lot going on in MH, and that makes it
> complex.
>
> -Brian M.
>
> On 12/7/20 1:43 PM, Stephen Switzer wrote:
>
> I'm starting to feel like a perl novice here. I'm not familiar with %INC
> and diagnosing this is confusing... but there's one thing here that's
> REALLY confusing me. I deleted URI, HTTP, LWP, etc, etc until there were NO
> fallback entries in %INC and it still didn't work. So, I removed the
> fallback directory from the list and it worked????
>
> Below is the entire list of diagnostic steps I performed:
>
> This is my baseline %INC before doing anything:
> %INC = (
> 'Exporter/Heavy.pm' => '/usr/share/perl/5.30/Exporter/Heavy.pm',
> 'lib.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.30/lib.pm',
> 'Tie/IxHash.pm' => '../lib/fallback/Tie/IxHash.pm',
> 'Tie/Hash.pm' => '../lib/fallback/Tie/Hash.pm',
> 'HTTP/Response.pm' => '../lib/fallback/HTTP/Response.pm',
> 'LWP/Simple.pm' => '../lib/fallback/LWP/Simple.pm',
> 'Text/Balanced.pm' => '/usr/share/perl/5.30/Text/Balanced.pm',
> 'IO.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.30/IO.pm',
> 'Fcntl.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.30/Fcntl.pm',
> 'URI/Escape.pm' => '../lib/fallback/URI/Escape.pm',
> 'strict.pm' => '/usr/share/perl/5.30/strict.pm',
> 'Text/Tabs.pm' => '/usr/share/perl/5.30/Text/Tabs.pm',
> 'warnings/register.pm' => '/usr/share/perl/5.30/warnings/
> register.pm',
> 'Data/Dumper.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Data/Dumper.pm',
> 'Exporter.pm' => '/usr/share/perl/5.30/Exporter.pm',
> 'parent.pm' => '/usr/share/perl/5.30/parent.pm',
> 'constant.pm' => '/usr/share/perl/5.30/constant.pm',
> 'URI.pm' => '../lib/fallback/URI.pm',
> 'vars.pm' => '/usr/share/perl/5.30/vars.pm',
> 'Storable.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Storable.pm',
> 'HTTP/Headers.pm' => '../lib/fallback/HTTP/Headers.pm',
> 'Filter/Util/Call.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Filter/Util/Call.pm',
> 'bytes.pm' => '/usr/share/perl/5.30/bytes.pm',
> 'Config.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.30/Config.pm',
> 're.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.30/re.pm',
> 'integer.pm' => '/usr/share/perl/5.30/integer.pm',
> 'Geo/WeatherNOAA.pm' => '../lib/site/Geo/WeatherNOAA.pm',
> 'LWP/UserAgent.pm' => '../lib/fallback/LWP/UserAgent.pm',
> 'LWP/Debug.pm' => '../lib/fallback/LWP/Debug.pm',
> 'Carp.pm' => '/usr/share/perl/5.30/Carp.pm',
> 'Getopt/Long.pm' => '/usr/share/perl/5.30/Getopt/Long.pm',
> 'Data/Dumper/Simple.pm' =>
> '/usr/share/perl5/Data/Dumper/Simple.pm',
> 'LWP/MemberMixin.pm' => '../lib/fallback/LWP/MemberMixin.pm',
> 'overload.pm' => '/usr/share/perl/5.30/overload.pm',
> 'HTTP/Request.pm' => '../lib/fallback/HTTP/Request.pm',
> 'HTTP/Message.pm' => '../lib/fallback/HTTP/Message.pm',
> 'HTTP/Status.pm' => '../lib/fallback/HTTP/Status.pm',
> 'LWP/Protocol.pm' => '../lib/fallback/LWP/Protocol.pm',
> 'overloading.pm' => '/usr/share/perl/5.30/overloading.pm',
> 'Symbol.pm' => '/usr/share/perl/5.30/Symbol.pm',
> 'IO/Handle.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/IO/Handle.pm',
> 'XSLoader.pm' => '/usr/share/perl/5.30/XSLoader.pm',
> 'SelectSaver.pm' => '/usr/share/perl/5.30/SelectSaver.pm',
> 'Filter/Simple.pm' => '/usr/share/perl/5.30/Filter/Simple.pm',
> 'Time/Local.pm' => '/usr/share/perl/5.30/Time/Local.pm',
> 'warnings.pm' => '/usr/share/perl/5.30/warnings.pm',
> 'LWP.pm' => '../lib/fallback/LWP.pm',
> 'handy_utilities.pl' => '../lib/handy_utilities.pl',
> 'HTTP/Date.pm' => '../lib/fallback/HTTP/Date.pm',
> 'SelfLoader.pm' => '/usr/share/perl/5.30/SelfLoader.pm',
> 'Text/Wrap.pm' => '/usr/share/perl/5.30/Text/Wrap.pm'
> );
>
> This is what I had after removing Tie, HTTP, URL & LWP from fallback
> (actually deleting the directories):
> %INC = (
> 'Fcntl.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.30/Fcntl.pm',
> 'LWP.pm' => '/usr/share/perl5/LWP.pm',
> 'URI.pm' => '/usr/share/perl5/URI.pm',
> 'Data/Dumper/Simple.pm' =>
> '/usr/share/perl5/Data/Dumper/Simple.pm',
> 'LWP/Simple.pm' => '/usr/share/perl5/LWP/Simple.pm',
> 'LWP/MemberMixin.pm' => '/usr/share/perl5/LWP/MemberMixin.pm',
> 'HTTP/Config.pm' => '/usr/share/perl5/HTTP/Config.pm',
> 'Tie/IxHash.pm' => '/usr/share/perl5/Tie/IxHash.pm',
> 'HTTP/Headers.pm' => '/usr/share/perl5/HTTP/Headers.pm',
> 'lib.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.30/lib.pm',
> 'Encode/Locale.pm' => '/usr/share/perl5/Encode/Locale.pm',
> 'Encode.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.30/Encode.pm',
> 'Encode/Encoding.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Encode/Encoding.pm',
> 'HTTP/Date.pm' => '/usr/share/perl5/HTTP/Date.pm',
> 'Sub/Util.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Sub/Util.pm',
> 'Try/Tiny.pm' => '/usr/share/perl5/Try/Tiny.pm',
> 'URI/Escape.pm' => '/usr/share/perl5/URI/Escape.pm',
> 'HTTP/Response.pm' => '/usr/share/perl5/HTTP/Response.pm',
> 'Symbol.pm' => '/usr/share/perl/5.30/Symbol.pm',
> 'LWP/UserAgent.pm' => '/usr/share/perl5/LWP/UserAgent.pm',
> 'Filter/Simple.pm' => '/usr/share/perl/5.30/Filter/Simple.pm',
> 'Encode/Config.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Encode/Config.pm',
> 'integer.pm' => '/usr/share/perl/5.30/integer.pm',
> 'strict.pm' => '/usr/share/perl/5.30/strict.pm',
> 'Carp.pm' => '/usr/share/perl/5.30/Carp.pm',
> 'warnings/register.pm' => '/usr/share/perl/5.30/warnings/
> register.pm',
> 'Scalar/Util.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Scalar/Util.pm',
> 'vars.pm' => '/usr/share/perl/5.30/vars.pm',
> 'parent.pm' => '/usr/share/perl/5.30/parent.pm',
> 'IO.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.30/IO.pm',
> 'Exporter.pm' => '/usr/share/perl/5.30/Exporter.pm',
> 'I18N/Langinfo.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/I18N/Langinfo.pm',
> 'XSLoader.pm' => '/usr/share/perl/5.30/XSLoader.pm',
> 'Text/Wrap.pm' => '/usr/share/perl/5.30/Text/Wrap.pm',
> 're.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.30/re.pm',
> 'Exporter/Heavy.pm' => '/usr/share/perl/5.30/Exporter/Heavy.pm',
> 'SelectSaver.pm' => '/usr/share/perl/5.30/SelectSaver.pm',
> 'Encode/MIME/Name.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Encode/MIME/Name.pm',
> 'List/Util.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/List/Util.pm',
> 'Config.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.30/Config.pm',
> 'bytes.pm' => '/usr/share/perl/5.30/bytes.pm',
> 'Encode/Alias.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Encode/Alias.pm',
> 'handy_utilities.pl' => '../lib/handy_utilities.pl',
> 'Getopt/Long.pm' => '/usr/share/perl/5.30/Getopt/Long.pm',
> 'HTTP/Status.pm' => '/usr/share/perl5/HTTP/Status.pm',
> 'SelfLoader.pm' => '/usr/share/perl/5.30/SelfLoader.pm',
> 'HTTP/Message.pm' => '/usr/share/perl5/HTTP/Message.pm',
> 'overload.pm' => '/usr/share/perl/5.30/overload.pm',
> 'IO/Handle.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/IO/Handle.pm',
> 'Tie/Hash.pm' => '/usr/share/perl/5.30/Tie/Hash.pm',
> 'Storable.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Storable.pm',
> 'Filter/Util/Call.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Filter/Util/Call.pm',
> 'base.pm' => '/usr/share/perl/5.30/base.pm',
> 'Time/Local.pm' => '/usr/share/perl/5.30/Time/Local.pm',
> 'warnings.pm' => '/usr/share/perl/5.30/warnings.pm',
> 'Geo/WeatherNOAA.pm' => '../lib/site/Geo/WeatherNOAA.pm',
> 'constant.pm' => '/usr/share/perl/5.30/constant.pm',
> 'Text/Tabs.pm' => '/usr/share/perl/5.30/Text/Tabs.pm',
> 'overloading.pm' => '/usr/share/perl/5.30/overloading.pm',
> 'HTTP/Request.pm' => '/usr/share/perl5/HTTP/Request.pm',
> 'Data/Dumper.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Data/Dumper.pm',
> 'LWP/Protocol.pm' => '/usr/share/perl5/LWP/Protocol.pm',
> 'Text/Balanced.pm' => '/usr/share/perl/5.30/Text/Balanced.pm'
> );
> Getting the forecast for Rochester, NY
>
> The forecast is As of :
>
> So, the *fallback directory is somehow prioritized above my local
> installed modules*.
>
> I decided to try removing the fallback directory from the path, and
> running it again. This is my edit in get_weather:
> ...
> #use my_lib "$Pgm_Path/../lib/site", "$Pgm_Path/../lib/fallback"; # See
> note in lib/mh_perl2exe.pl for lib -> my_lib explaination
> BEGIN {
> eval "use lib '$Pgm_Path/../lib', '$Pgm_Path/../lib/site'"*;#, *
> '$Pgm_Path/../lib/fallback'";
> } # Use BEGIN eval to keep perl2exe happy
>
> require 'handy_utilities.pl'; # For read_mh_opts funcion
> &main::read_mh_opts( \%config_parms, $Pgm_Path );
>
> use Geo::WeatherNOAA;
>
> $Geo::WeatherNOAA::proxy_from_env = 1;
>
>
> *use Data::Dumper::Simple; print Dumper(%INC);*
>
>
> if ( $data{conditions} ) {
> ...
>
> ...then ran it again:
>
> %INC = (
> 'Tie/Hash.pm' => '/usr/share/perl/5.30/Tie/Hash.pm',
> 'Storable.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Storable.pm',
> 'handy_utilities.pl' => '../lib/handy_utilities.pl',
> 'overloading.pm' => '/usr/share/perl/5.30/overloading.pm',
> 'vars.pm' => '/usr/share/perl/5.30/vars.pm',
> 'LWP/UserAgent.pm' => '/usr/share/perl5/LWP/UserAgent.pm',
> 'Data/Dumper.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Data/Dumper.pm',
> 'Symbol.pm' => '/usr/share/perl/5.30/Symbol.pm',
> 'constant.pm' => '/usr/share/perl/5.30/constant.pm',
> 'Encode/MIME/Name.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Encode/MIME/Name.pm',
> 'I18N/Langinfo.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/I18N/Langinfo.pm',
> 'warnings/register.pm' => '/usr/share/perl/5.30/warnings/
> register.pm',
> 'LWP/MemberMixin.pm' => '/usr/share/perl5/LWP/MemberMixin.pm',
> 'parent.pm' => '/usr/share/perl/5.30/parent.pm',
> 'Filter/Util/Call.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Filter/Util/Call.pm',
> 'Getopt/Long.pm' => '/usr/share/perl/5.30/Getopt/Long.pm',
> 'Exporter/Heavy.pm' => '/usr/share/perl/5.30/Exporter/Heavy.pm',
> 'HTTP/Date.pm' => '/usr/share/perl5/HTTP/Date.pm',
> 'Filter/Simple.pm' => '/usr/share/perl/5.30/Filter/Simple.pm',
> 'integer.pm' => '/usr/share/perl/5.30/integer.pm',
> 'LWP/Protocol.pm' => '/usr/share/perl5/LWP/Protocol.pm',
> 'LWP.pm' => '/usr/share/perl5/LWP.pm',
> 're.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.30/re.pm',
> 'Text/Balanced.pm' => '/usr/share/perl/5.30/Text/Balanced.pm',
> 'Encode/Config.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Encode/Config.pm',
> 'Config.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.30/Config.pm',
> 'List/Util.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/List/Util.pm',
> 'IO.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.30/IO.pm',
> 'HTTP/Config.pm' => '/usr/share/perl5/HTTP/Config.pm',
> 'Carp.pm' => '/usr/share/perl/5.30/Carp.pm',
> 'HTTP/Message.pm' => '/usr/share/perl5/HTTP/Message.pm',
> 'SelfLoader.pm' => '/usr/share/perl/5.30/SelfLoader.pm',
> 'Try/Tiny.pm' => '/usr/share/perl5/Try/Tiny.pm',
> 'Encode/Locale.pm' => '/usr/share/perl5/Encode/Locale.pm',
> 'URI/Escape.pm' => '/usr/share/perl5/URI/Escape.pm',
> 'Exporter.pm' => '/usr/share/perl/5.30/Exporter.pm',
> 'base.pm' => '/usr/share/perl/5.30/base.pm',
> 'SelectSaver.pm' => '/usr/share/perl/5.30/SelectSaver.pm',
> 'Data/Dumper/Simple.pm' =>
> '/usr/share/perl5/Data/Dumper/Simple.pm',
> 'Sub/Util.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Sub/Util.pm',
> 'Tie/IxHash.pm' => '/usr/share/perl5/Tie/IxHash.pm',
> 'overload.pm' => '/usr/share/perl/5.30/overload.pm',
> 'LWP/Simple.pm' => '/usr/share/perl5/LWP/Simple.pm',
> 'URI.pm' => '/usr/share/perl5/URI.pm',
> 'HTTP/Response.pm' => '/usr/share/perl5/HTTP/Response.pm',
> 'Encode/Alias.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Encode/Alias.pm',
> 'Geo/WeatherNOAA.pm' => '../lib/site/Geo/WeatherNOAA.pm',
> 'XSLoader.pm' => '/usr/share/perl/5.30/XSLoader.pm',
> 'Scalar/Util.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Scalar/Util.pm',
> 'Fcntl.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.30/Fcntl.pm',
> 'warnings.pm' => '/usr/share/perl/5.30/warnings.pm',
> 'bytes.pm' => '/usr/share/perl/5.30/bytes.pm',
> 'Encode/Encoding.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/Encode/Encoding.pm',
> 'lib.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.30/lib.pm',
> 'HTTP/Request.pm' => '/usr/share/perl5/HTTP/Request.pm',
> 'Text/Tabs.pm' => '/usr/share/perl/5.30/Text/Tabs.pm',
> 'Time/Local.pm' => '/usr/share/perl/5.30/Time/Local.pm',
> 'Text/Wrap.pm' => '/usr/share/perl/5.30/Text/Wrap.pm',
> 'Encode.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.30/Encode.pm',
> 'IO/Handle.pm' =>
> '/usr/lib/x86_64-linux-gnu/perl/5.30/IO/Handle.pm',
> 'HTTP/Status.pm' => '/usr/share/perl5/HTTP/Status.pm',
> 'strict.pm' => '/usr/share/perl/5.30/strict.pm',
> 'HTTP/Headers.pm' => '/usr/share/perl5/HTTP/Headers.pm'
> );
> Getting the forecast for Rochester, NY
>
> The forecast is As of 3:46pm Mon Dec 7, 2020:
> Tonight: Becoming mostly cloudy.
>
> It worked!
>
> I tried to see what would happen if I put the fallback path back into
> get_weather, but removed the actual fallback directory, and got this:
>
> Error in loading module=Device::SerialPort:
> Can't locate Device/SerialPort.pm in @INC (you may need to install the
> Device::SerialPort module) (@INC contains: /opt/mh/local/code
> ./../code/common /opt/mh/misterhouse/bin/../lib
> /opt/mh/misterhouse/bin/../lib/site . /etc/perl
> /usr/local/lib/x86_64-linux-gnu/perl/5.30.0 /usr/local/share/perl/5.30.0
> /usr/lib/x86_64-linux-gnu/perl5/5.30 /usr/share/perl5
> /usr/lib/x86_64-linux-gnu/perl/5.30 /usr/share/perl/5.30
> /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base
> /opt/mh/misterhouse/bin/../lib/fallback) at (eval 32) line 1.
> BEGIN failed--compilation aborted at (eval 32) line 1.
>
> - See install.html for instructions on how to install perl module
> Device::SerialPort
>
> At least you can see my @INC paths now. :)
> I took this one step further and put fallback back into lib, started MH
> and ran "Get the Internet weather forecast", which failed. Then with MH
> still running, I renamed fallback to __fallback and ran it again.... it
> worked. It doesn't like SOMETHING in fallback, but it's not reporting it in
> %INC.
>
> Big questions:
>
> 1. Why is fallback prioritized ahead of my local directories?
> 2. Why when there are no modules used from fallback does get_weather
> fail unless I remove the reference to fallback?
>
> I think I'm out of my league...
>
> Thanks!
>
> Steve
>
> On Mon, Dec 7, 2020 at 9:46 AM Brian M <[email protected]>
> wrote:
>
>> Stephen,
>>
>> You get credit for reading all the way through an overly long post. I
>> really have to learn to say things in fewer words, or at least add a
>> "TL;DR".
>>
>> I suggest you add back fallback, and then add some temporary diagnostic
>> code to get_weather.pl to dump %INC. That will show you every module
>> that it loaded and where they came from. Just look for the fallback
>> directory in the %INC values, and you should find which modules are being
>> pulled from that folder. That should give you a pretty short list of
>> suspects. Then you can rename them one by one (or in small batches), and
>> find the culprit.
>>
>> I've dabbled in similar areas. NOAA has changed their API format once or
>> twice. I suspect there's an old module in fallback that doesn't know about
>> that, but that's just a guess. I wish we could just update or delete
>> everything in fallback, but I think the MH carnage would probably be huge.
>> Luckily for me, it's not my call.
>>
>> -Brian M.
>>
>>
>>
>> On 12/7/20 6:20 AM, Stephen Switzer wrote:
>>
>> Brian,
>> Thank you for the effort to explain the fallback directory. I'm sorry
>> I may not have been clear enough on my thought process. I read the fallback
>> conversations on the list and saw the hplato commit that added this to the
>> external /bin files, so I knew what was happening... but I have yet to
>> figure out which module was causing the issue. I tried deleting every
>> module that WeatherNOAA depended on but there was still an error (blank
>> forecast).
>>
>> I thought that I was on the right path a few different times by
>> changing code, updating the weatherNOAA module, changing {zone} to {state},
>> etc, etc... but I recognized that I may need to take a step back and begin
>> again, since I have have drawn some false conclusions about what fixed it -
>> especially when I discovered that removing fallback had a positive effect.
>> I offered my code as a talking point, but realized it wasn't the "right"
>> fix.
>>
>> My question should be closer to something like this: Does anyone have
>> it working with the fallback directory in the library list? I deleted
>> LWP::* and restarted MH without any success, and moved on to Tie::IxHash,
>> then some Text module that I forgot the specifics on. I suppose I could
>> continue deleting modules and testing, but I was growing weary of the
>> process.
>>
>> Perhaps a better question is this: Who's running hplato/master with
>> internet_weather successfully? What did you modify?
>>
>> Steve
>>
>>
>> On Mon, Dec 7, 2020 at 12:40 AM Brian M <[email protected]>
>> wrote:
>>
>>> Stephen,
>>>
>>> I can clarify about fallback, and hopefully put you on the path to the
>>> right solution.
>>>
>>> MH has a long standing philosophy of having it "just work out of the
>>> box". (Others can probably represent this perspective better than I can as
>>> it's not mine, but I'll give it a shot and trust others to correct me where
>>> necessary.) What that meant was that they didn't want to have a lot of
>>> Perl pre-requisite modules. So instead, they packaged the commonly needed
>>> modules in with MH, so that when you unpack it, you get them too.
>>>
>>> The problem lies in that no one ever wanted to keep the packaged
>>> CPAN/distro modules embedded in MH up-to-date, so that for example the
>>> version of LWP::UserAgent (for interfacing with web-sites) provided with MH
>>> was so old it didn't support SSL, even though the version you or I would
>>> install via CPAN or our distro has supported SSL for years.
>>>
>>> To make things worse, MH explicitly set the Perl library path, so that
>>> the supplied versions preempted system versions (e.g. /usr/lib/perl or
>>> whatever from your distro or CPAN), so that the only way to update the MH
>>> version was to make and maintain a local mod to MH yourself. In my case,
>>> finding this out that meant many hours of trying to figure out why a piece
>>> of my code worked perfectly outside of MH (because it used the CPAN
>>> LWP::UserAgent), but not in MH (because it used a really old version that
>>> didn't support SSL). That's my perspective, at least.
>>>
>>> I wanted a solution that would be acceptable to those with the "just
>>> work out of the box/provide modules" perspective, while still allowing
>>> people that needed a newer version of a module to install it without
>>> hacking MH every time it updates. What I implemented to please everyone was
>>> to identify all the external Perl modules that MH packaged into it's
>>> distribution but wasn't maintaining. It's a long list. I then moved all
>>> of these that I could from MH's normal library into the newly created
>>> "fallback" library, which I listed at the end of the Perl5 library list.
>>> That way, if you have a newer version in the system libraries, your code
>>> could find it. If you didn't, the out-dated versions in fallback libraries
>>> would still get picked up and used. Essentially, the fallback libraries
>>> become the library of last resort instead of preempting the system
>>> libraries.
>>>
>>> That code went in in April (I think), and this is the first incident
>>> I've heard of where it broke something. What that tells me is that
>>> get_weather calls on a module that exists broken in fallback. By removing
>>> fallback, you've removed access to broken code, and it works again. How it
>>> works without the module it found in fallback is beyond me since there are
>>> no libraries to search after fallback. It may have some "if I can't find
>>> module X, use Y instead" logic in it, and you deleted access to X.
>>>
>>> Removing fallback is the wrong solution, however. The best and easiest
>>> solution is to identify the outdated, broken module get_weather is using
>>> out of the fallback library, and install a newer one via CPAN or your
>>> distro. get_weather will automatically pick up the newer one instead and I
>>> think you should be in good shape. Or find just delete the reference to
>>> the broken module so get_weather doesn't use it, since get_weather isn't
>>> using it when you removed fallback and appears to work fine.
>>>
>>> In any case, moving the outdated CPAN modules into fallback gives you
>>> options. If we hadn't implemented that change, get_weather would still
>>> break (because it would still find bad module X, just in lib instead of
>>> fallback/lib), but then you wouldn't be able to fix it by just installing a
>>> newer version of X. Moving the module from lib to fallback didn't break
>>> get_weather, it just made some other breakage you discovered easier to fix.
>>>
>>> -Brian M
>>>
>>>
>>>
>>>
>>> On 12/6/20 7:45 PM, Stephen Switzer wrote:
>>>
>>> A month later I was able to piece together a commit that seems to have
>>> all the needed changes from master.
>>>
>>>
>>> https://github.com/pmatis/misterhouse/commit/bbd8f73942cbe304403d953f7c614268c3783fde
>>>
>>> There are still some significant unanswered questions in my mind, but
>>> first...
>>>
>>> 1. I discovered that the Geo:WeatherNOAA module that I received was
>>> older than what was in master.
>>> 1. I only added a line for gracefully failing a little early,
>>> since continuing on is wasted cycles.
>>> 2. The get_weather script was out of date in master, lacking a
>>> change from 08/17/16 by Rick, but contained a nws_rwr_zone parameter
>>> that seems to be ignored in this file.
>>> 3. internet_weather.pl was calling "print_current( $parms{city},
>>> $parms{zone}..." instead of "print_current( $parms{city}, $parms{
>>> state}..." in one copy of that file I had. I can't seem to put my
>>> eye on it right now, though.
>>>
>>> The main thing that I'm questioning is the addition of '$Pgm_Path/../lib/fallback'
>>> in get_weather. While comparing versions of files that I had, I finally
>>> stumbled upon this difference and noticed that when I removed this from the
>>> path, the forecast was retrieved successfully. I went into the fallback
>>> directory and tried to determine what was in there that was seemingly too
>>> old. I looked into WeatherNOAA.pm to see what it depended on and removed
>>> the 2 LWP modules, then tried again with the entire LWP directory. I moved
>>> on Tie::IxHash, then the entire Tie directory, Text... I was removing huge
>>> chunks of these files and nothing changed the results except removing the
>>> fallback directory from the path.
>>>
>>> I have a sneaking suspicion that I missed something. At least for now I
>>> have something that makes master work for me. There's a bunch of commits
>>> that I can cherry pick into my running code and have it work. Anyone else
>>> care to peek at this?
>>>
>>> Thanks!
>>> Steve
>>>
>>> On Tue, Nov 3, 2020 at 4:40 PM Rick Steeves via misterhouse-users <
>>> [email protected]> wrote:
>>>
>>>> D'oh, I had also updated the internet_weather page - I should have sent
>>>> that to you as well! sprry...
>>>>
>>>> Rick
>>>>
>>>>
>>>> On 11/3/2020 11:14 AM, Stephen Switzer wrote:
>>>> > An update to everyone, I incorporated these two files, experimented
>>>> and
>>>> > modified them along with internet_weather.pl
>>>> > <http://internet_weather.pl> and finally have it working. I'll have
>>>> to
>>>> > diff things and boil down what really mattered then submit a pull
>>>> > request. Meanwhile, if anyone else is interested, please let me know.
>>>> > I'll share.
>>>> >
>>>> > Thanks, Rick!
>>>> >
>>>> > Steve
>>>> >
>>>> > On Mon, Nov 2, 2020 at 10:37 AM Rick Steeves via misterhouse-users
>>>> > <[email protected]
>>>> > <mailto:[email protected]>> wrote:
>>>> >
>>>> >
>>>> > Set you my copies of get_weather and weatherNOAA.pm under separate
>>>> > email.
>>>> >
>>>> > rick
>>>> >
>>>> >
>>>> >
>>>> > On 11/2/2020 8:51 AM, Stephen Switzer wrote:
>>>> > > I'm still recovering my system and would like this portion to
>>>> > work now.
>>>> > > Are there any updates to this since then? I checked out the
>>>> > current GIT
>>>> > > repo and that version doesn't work for me with get_weather
>>>> either.
>>>> > >
>>>> > > Would appreciate any pointers to getting back up with forecasts
>>>> > so I can
>>>> > > enjoy the "chance of rain" announcements a little more before
>>>> it
>>>> > changes
>>>> > > over to the "s" word for winter. ewwww.
>>>> > >
>>>> > > Thanks!
>>>> > >
>>>> > > On Wed, Sep 28, 2016 at 9:18 PM Wayne Gatlin <
>>>> [email protected]
>>>> > <mailto:[email protected]>
>>>> > > <mailto:[email protected] <mailto:[email protected]>>> wrote:
>>>> > >
>>>> > > Sorry, forgot to attach the file.
>>>> > >
>>>> > > _Wayne
>>>> > >
>>>> > > On Wed, Sep 28, 2016 at 8:17 PM, Wayne Gatlin
>>>> > <[email protected] <mailto:[email protected]>
>>>> > > <mailto:[email protected] <mailto:[email protected]>>>
>>>> wrote:
>>>> > >
>>>> > > These URLs seem to work, I updated WeatherNOAA.pm with
>>>> > the new
>>>> > > URLs and attached it to this email. Let me know if it
>>>> > works for you.
>>>> > >
>>>> > >
>>>> >
>>>> http://forecast.weather.gov/product.php?site=LIX&issuedby=LIX&product=ZFP&format=txt&version=1&glossary=0
>>>> > >
>>>> >
>>>> http://forecast.weather.gov/product.php?site=LIX&issuedby=LIX&product=RWR&format=txt&version=1&glossary=0
>>>> > >
>>>> > > _Wayne
>>>> > >
>>>> > > On Wed, Sep 28, 2016 at 6:39 AM, Brian Klier
>>>> > > <[email protected] <mailto:[email protected]>
>>>> > <mailto:[email protected] <mailto:[email protected]>>>
>>>> wrote:
>>>> > >
>>>> > > I should correct myself, it looks like it WAS
>>>> working
>>>> > until
>>>> > > just recently. I noticed some of the RIDGE
>>>> graphics have
>>>> > > changed to new sites at NOAA, so it sounds like
>>>> they
>>>> > might
>>>> > > be doing some sort of refresh of their website
>>>> this week.
>>>> > >
>>>> > > Brian
>>>> > >
>>>> > > On Tue, Sep 27, 2016 at 10:32 PM, Eloy Paris
>>>> > > <[email protected] <mailto:[email protected]>
>>>> > <mailto:[email protected] <mailto:[email protected]>>> wrote:
>>>> > >
>>>> > > Same here. I tried around 6 PM EDT and it
>>>> didn't
>>>> > work.
>>>> > >
>>>> > >
>>>> > > On September 27, 2016 10:22:50 PM EDT, Wayne
>>>> Gatlin
>>>> > > <[email protected] <mailto:[email protected]>
>>>> > <mailto:[email protected] <mailto:[email protected]>>> wrote:
>>>> > >
>>>> > > I'm not sure how I missed Ricks email, but
>>>> I just
>>>> > > set it up and its not working for me. I'm
>>>> not
>>>> > able
>>>> > > to get to the URLs in the email or the one
>>>> that's
>>>> > > built from my zone.
>>>> > >
>>>> > > I get a 404 for both of these urls:
>>>> > > http://www.srh.noaa.gov/data/LIX/ZFPLIX
>>>> > > http://www.srh.noaa.gov/data/RAH/ZFPRAH
>>>> > > <http://www.srh.noaa.gov/data/RAH/ZFPRAH>
>>>> > >
>>>> > > cat data/web/weather_conditions.txt
>>>> > > Error getting data from
>>>> > > http://www.srh.noaa.gov/data/LIX/RWRLIX
>>>> > >
>>>> > >
>>>> > > Unless there's just an issue at NOAA right
>>>> > now, I'm
>>>> > > not sure what else could be wrong.
>>>> > >
>>>> > >
>>>> > > _Wayne
>>>> > >
>>>> > >
>>>> > >
>>>> > > On Tue, Sep 27, 2016 at 5:09 PM, Brian
>>>> Klier
>>>> > > <[email protected]
>>>> > <mailto:[email protected]>
>>>> > > <mailto:[email protected]
>>>> > <mailto:[email protected]>>> wrote:
>>>> > >
>>>> > > I've been using it since Rick posted
>>>> his
>>>> > fix and
>>>> > > it's been working perfectly here.
>>>> > >
>>>> > > Brian
>>>> > >
>>>> > > On Tue, Sep 27, 2016, 2:01 PM Lieven
>>>> > Hollevoet
>>>> > > <[email protected] <mailto:[email protected]
>>>> >
>>>> > <mailto:[email protected] <mailto:[email protected]>>> wrote:
>>>> > >
>>>> > > Hello all,
>>>> > >
>>>> > > is there somebody who has tested
>>>> this
>>>> > > already? Would be nice if we could
>>>> > add it to
>>>> > > toe upcoming 4.2 stable release.
>>>> > >
>>>> > > Kind regards,
>>>> > > Lieven.
>>>> > >
>>>> > > > Op 19 aug. 2016, om 18:34 heeft
>>>> Rick
>>>> > > Steeves <[email protected]
>>>> > <mailto:[email protected]>
>>>> > > <mailto:[email protected]
>>>> > <mailto:[email protected]>>> het
>>>> > > volgende geschreven:
>>>> > > >
>>>> > > > The two correct URLs (for when
>>>> > your zone
>>>> > > is RAH) used for queries now:
>>>> > > >
>>>> > http://www.srh.noaa.gov/data/RAH/RWRRAH
>>>> > > >
>>>> > http://www.srh.noaa.gov/data/RAH/ZFPRAH
>>>> > > >
>>>> > > > See attached. Updates for
>>>> weather NOAA
>>>> > > website changes:
>>>> > > >
>>>> > > > Updated GEO::WeatherNOAA to
>>>> > confirm with
>>>> > > new website, replace inside the
>>>> base
>>>> > MH code
>>>> > > /lib/site/Geo.
>>>> > > > Used the CPAN 4.38 as
>>>> the base
>>>> > > (which is wildly newer than what's
>>>> > included
>>>> > > in MH).
>>>> > > > Note - the NOAA no
>>>> longer uses
>>>> > > "State", but is instead using
>>>> > regional three
>>>> > > digit zone codes.
>>>> > > > You can get those codes
>>>> here:
>>>> > >
>>>> http://forecast.weather.gov/product_sites.php?site=CRH&product=ZFP
>>>> > > > You must include that
>>>> zone
>>>> > value
>>>> > > in your mh.private.ini file.
>>>> > > > Example: zone=RAH for
>>>> > Raleigh-Durham
>>>> > > > Updated get_weather to
>>>> incorporate
>>>> > using
>>>> > > zone instead of state, located in
>>>> /bin
>>>> > > >
>>>> > > > Note that foundation I used for
>>>> > > get_weather is likely out of date,
>>>> as
>>>> > I have
>>>> > > yet to work with the new (Git?)
>>>> > repository,
>>>> > > so I'm working off my 2.105 (-ish)
>>>> > personal
>>>> > > environment. The WeatherNOAA.pm I
>>>> > built from
>>>> > > the most current version of
>>>> > GEO::WeatherNOAA.pm
>>>> > > >
>>>> > > >
>>>> > > > If anyone still uses this code,
>>>> please
>>>> > > use and let me know how it goes.
>>>> You can
>>>> > > tell if it's working by looking at
>>>> > > > \data\web\weather_forecast.txt
>>>> > > > \data\web\weather_conditions.txt
>>>> > > >
>>>> > > > Rick
>>>> > > >
>>>> > > >
>>>> > > > At 02:10 PM 8/18/2016, Rick
>>>> > Steeves wrote:
>>>> > > >> The NOAA has provided URLs
>>>> which
>>>> > return
>>>> > > raw text for the forecast and point
>>>> > information.
>>>> > > >> For when the location is RAH:
>>>> > > >>
>>>> > http://www.srh.noaa.gov/data/RAH/PFMRAH
>>>> > > >>
>>>> > > >>>>
>>>> > http://www.srh.noaa.gov/data/RAH/ZFPRAH
>>>> > > >>
>>>> > > >> Shouldn't take me much from
>>>> there
>>>> > to fix
>>>> > > Geo::WeatherNOAA
>>>> > > >>
>>>> > > >> Rick
>>>> > > >
>>>> > >
>>>> >
>>>> <get_weather.txt><WeatherNOAA.pm>------------------------------------------------------------------------------
>>>> > > >
>>>> > >
>>>> > ________________________________________________________
>>>> > > > To unsubscribe from this list,
>>>> go to:
>>>> > > https://lists.sourceforge.net/lists/listinfo/misterhouse-users
>>>> > > >
>>>> > >
>>>> > >
>>>> > >
>>>> >
>>>> ------------------------------------------------------------------------------
>>>> > >
>>>> > ________________________________________________________
>>>> > > To unsubscribe from this list, go
>>>> to:
>>>> > > https://lists.sourceforge.net/lists/listinfo/misterhouse-users
>>>> > >
>>>> > >
>>>> > >
>>>> >
>>>> ------------------------------------------------------------------------------
>>>> > >
>>>> > >
>>>> > ________________________________________________________
>>>> > > To unsubscribe from this list, go to:
>>>> > > https://lists.sourceforge.net/lists/listinfo/misterhouse-users
>>>> > >
>>>> > >
>>>> > >
>>>> > >
>>>> >
>>>> ------------------------------------------------------------------------
>>>> > >
>>>> > >
>>>> >
>>>> ------------------------------------------------------------------------
>>>> > >
>>>> > > To unsubscribe from this list, go
>>>> > to:https://lists.sourceforge.net/lists/listinfo/misterhouse-users
>>>> > >
>>>> > >
>>>> > > --
>>>> > > Sent from my Android device with K-9 Mail.
>>>> Please
>>>> > excuse
>>>> > > my brevity.
>>>> > >
>>>> > >
>>>> > >
>>>> > >
>>>> > >
>>>> >
>>>> ------------------------------------------------------------------------------
>>>> > > ________________________________________________________
>>>> > > To unsubscribe from this list, go to:
>>>> > > https://lists.sourceforge.net/lists/listinfo/misterhouse-users
>>>> > >
>>>> > >
>>>> > >
>>>> > > --
>>>> > >
>>>> > > Best regards,
>>>> > > Steve Switzer
>>>> > >
>>>> > > ---
>>>> > > Get world-class business I.T. services and a phone system with
>>>> > awesome features that won't challenge your budget!
>>>> > > http://www.sbsROC.com
>>>> > >
>>>> > >
>>>> > >
>>>> > > ________________________________________________________
>>>> > > To unsubscribe from this list, go to:
>>>> > https://lists.sourceforge.net/lists/listinfo/misterhouse-users
>>>> > >
>>>> >
>>>> > --
>>>> > Rick Steeves
>>>> > https://www.irelandbybicycle.com
>>>> >
>>>> > It's all fun and games until someone ends up wearing a cone.
>>>> >
>>>> >
>>>> > ________________________________________________________
>>>> > To unsubscribe from this list, go to:
>>>> > https://lists.sourceforge.net/lists/listinfo/misterhouse-users
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> >
>>>> > Best regards,
>>>> > Steve Switzer
>>>> >
>>>> > ---
>>>> > Get world-class business I.T. services and a phone system with
>>>> awesome features that won't challenge your budget!
>>>> > http://www.sbsROC.com
>>>> >
>>>> >
>>>> >
>>>> > ________________________________________________________
>>>> > To unsubscribe from this list, go to:
>>>> https://lists.sourceforge.net/lists/listinfo/misterhouse-users
>>>> >
>>>>
>>>> --
>>>> Rick Steeves
>>>> https://www.irelandbybicycle.com
>>>>
>>>> It's all fun and games until someone ends up wearing a cone.
>>>>
>>>>
>>>> ________________________________________________________
>>>> To unsubscribe from this list, go to:
>>>> https://lists.sourceforge.net/lists/listinfo/misterhouse-users
>>>>
>>>>
>>>
>>> --
>>>
>>> Best regards,
>>> Steve Switzer
>>>
>>> ---
>>> Get world-class business I.T. services and a phone system with awesome features that won't challenge your budget!http://www.sbsROC.com
>>>
>>>
>>> This body part will be downloaded on demand.
>>>
>>>
>>> This body part will be downloaded on demand.
>>>
>>>
>>> ________________________________________________________
>>> To unsubscribe from this list, go to:
>>> https://lists.sourceforge.net/lists/listinfo/misterhouse-users
>>>
>>>
>>
>> --
>>
>> Best regards,
>> Steve Switzer
>>
>> ---
>> Get world-class business I.T. services and a phone system with awesome features that won't challenge your budget!http://www.sbsROC.com
>>
>>
>> This body part will be downloaded on demand.
>>
>>
>> This body part will be downloaded on demand.
>>
>>
>> ________________________________________________________
>> To unsubscribe from this list, go to:
>> https://lists.sourceforge.net/lists/listinfo/misterhouse-users
>>
>>
>
> --
>
> Best regards,
> Steve Switzer
>
> ---
> Get world-class business I.T. services and a phone system with awesome features that won't challenge your budget!http://www.sbsROC.com
>
>
>
--
Best regards,
Steve Switzer
---
Get world-class business I.T. services and a phone system with awesome
features that won't challenge your budget!http://www.sbsROC.com
________________________________________________________
To unsubscribe from this list, go to: https://lists.sourceforge.net/lists/listinfo/misterhouse-users