Anyone have time for a weather forcast project?

760 views
Skip to first unread message

Logan Fury

unread,
Jan 23, 2017, 6:00:38 PM1/23/17
to Tasker
Hello Forum,

This 2015 page for having Tasker speak a morning weather report facinated me:


Ive signed up at wunderground and gotten an API key, and attempted to just get up to confirm with flash alert that im in the right spot for getting my data, but im stuck.

The working example is for Winnipeg, Canada, and im in Las Vegas, Nevada, United States. Ive no idea how to properly format my Path line.

Is anyone here in possession of a link to a working weather speaker export? The several ive imported and tested all error.

If not is anyone a wunderground/Tasker user in this manner that can help me make it thru the tutorial at top?

Thank you for reading,

Logan

Walter Francis

unread,
Jan 24, 2017, 4:25:17 PM1/24/17
to Tasker
First thing is to take your API key and find the XML for your location.  The Wunderground API documentation (where you got your key) has all the info you need, honestly.  It might be too much, but digest it slowly.  That's a better way to do it than I do it, at least it's standalone..  what I have done for myself is a CGI that is called from my server which does the forecast data digestion and spits it out into a format that I can parse in Tasker easily.

I would suggest just starting small and build onto it.  That's really the only way to take do something that might be this big; one bite at a time.  I also add widgets to my home screen with current weather, including a screen that'll show me the forecast, read the forecast..  warn me if there's severe weather...  etc.  Again, just build and build.

I've been meaning to refactor my Weather task as it's pretty much one huge task.  It's not something I would just hand out hoping someone can make heads or tails of it..  plus it talks to my watch, hits my server for stuff, etc..  But have fun with this project, it's a good way to learn Tasker :)

Logan Fury

unread,
Jan 24, 2017, 5:14:10 PM1/24/17
to tas...@googlegroups.com
Good Afternoon Walter,

Thank you for the response. While I see this is indeed a learning experience, im very, very new to Tasker and lets just say the potential for mistakes is there. Im talking biblical extremes here man.

That said, TYVM for pointing me at Wunderground again. Ive revisited since creating the key and see many updates including the correct .json data. Ive taken the tutorial to the flash step and successfully retrieved data, so far without getting dizzy, passing out, or falling over (not even once!) and am ready to continue further into the tutorial and go for a successful profile.

If I hit any significant bumps I cant google myself around ill check back in here if thats all right.

--
You received this message because you are subscribed to a topic in the Google Groups "Tasker" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/tasker/c3ck63Kr3sM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to tasker+unsubscribe@googlegroups.com.
Visit this group at https://groups.google.com/group/tasker.
For more options, visit https://groups.google.com/d/optout.

Logan Fury

unread,
Jan 24, 2017, 7:08:01 PM1/24/17
to tas...@googlegroups.com
Well the author of the previously working string no longer works with Tasker. There is some discussion in the comments about failures and fixes but very limited and ive tried both examples without success.

What ive tried:

var temp_f = JSON.parse(global('HTTPD')).current_observation.temp_c; 

and from the comments:

setGlobal('high', JSON.parse(global('HTTPD')).forecast.simpleforecast.forecastday[0].high.fahrenheit);

in both cases the task reads the variable names instead of their data.

Can anyone suggest edits to these specific lines?




Logan Fury

unread,
Jan 25, 2017, 2:47:01 AM1/25/17
to tas...@googlegroups.com
I have a profile and task combo working now, but it required the installation of both the Weather ACE and Weather ACE Tasker plugins.

If anyone experienced with wunderground can provide a 2017 working edit of the above scripts to create and use variables or point me to a page of working examples im still very very interested in getting that version of this profile to work.

What Ive got working with WeatherACE in case anyone wanted to duplicate it:

Wea Test (143)
A1: Weather ACE Tasker Plugin [ Configuration:Current conditions for AUTO Timeout (Seconds):5 ] 
A2: Say [ Text:Good morning Logan. Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ] 
A3: Say [ Text:It is %weatherace_temp degrees in %weatherace_place_name and feels like %weatherace_feelslike degrees. Highs around %weatherace_temp_max degrees later. Windspeed is %weatherace_windspeed miles per hour. Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ] 
A4: Say [ Text:Current conditions %weatherace_weather_desc. Chance of rain %weatherace_pop percent. Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ]

Im not certain if im using the rain data as I think I am but next rainy day ill know.

Biggdadd73

unread,
Mar 29, 2017, 1:41:11 PM3/29/17
to Tasker
I know this is an old thread but I thought I would share what has worked for me thus far...

Using Wunderground API
After many a search I came across this as a solution and has been working great so far (I adjusted according to my needs):

In Tasker 
Start a new task, name it, then search for JavaScriptlet and copy the code below to the code line (adjust how you need - there are icons if you are using this in a scene)

Code
arr = JSON.parse(global("HTTPD"));
var wuconditions = arr.forecast.simpleforecast.forecastday[0].conditions;
var wuicon = arr.forecast.simpleforecast.forecastday[0].icon;
var wuiconurl = arr.forecast.simpleforecast.forecastday[0].icon_url;
var wuhigh = arr.forecast.simpleforecast.forecastday[0].high.fahrenheit;
var wulow = arr.forecast.simpleforecast.forecastday[0].low.fahrenheit;
var wutitle1 = arr.forecast.txt_forecast.forecastday[0].title;
var wutitle2 = arr.forecast.txt_forecast.forecastday[1].title;
var wufcttext1 = arr.forecast.txt_forecast.forecastday[0].fcttext;
var wufcttext2 = arr.forecast.txt_forecast.forecastday[1].fcttext;
var wumaxwindmph = arr.forecast.simpleforecast.forecastday[0].maxwind.mph;
var wuavewindmph = arr.forecast.simpleforecast.forecastday[0].avewind.mph;
var wuavewinddir = arr.forecast.simpleforecast.forecastday[0].avewind.dir;
var wumaxwinddir = arr.forecast.simpleforecast.forecastday[0].maxwind.dir;
var wuavehumidity = arr.forecast.simpleforecast.forecastday[0].avehumidity;

Then you can "variable search and replace" your variables as needed to get what you are looking for or do not want. ie, I use a say command to read the weather but it will say the "F" so I did a "variable search and replace" for F[.] and replaced it with degrees - now my say task will say it correctly.  Especially handy when you get to wind directions - NW, NNW, SSW, W, NW etc...

I haven't figured out how to get all of the wind directions in a few actions so I have about 20 "search and replace" :( (would definately appreciate a little help with that)

Also would love a solution to get weather based on current location.  Currently I've hardcoded the location.

I didn't create this as I have little to no experience with java/javascripts but I hope that it helps

Logan Fury

unread,
Mar 29, 2017, 1:44:48 PM3/29/17
to tas...@googlegroups.com
This looks like a great piece of code to experiment with, ill definately create a Task out of this today.

Thank you for the post, ill update with my results.

Logan Fury

unread,
Mar 29, 2017, 2:16:56 PM3/29/17
to tas...@googlegroups.com
I tried a simple one variable SAY read and got a return of the variable name instead of its output. Do you see what I did wrong here?

Wunderground (368)
A1: JavaScriptlet [ Code:arr = JSON.parse(global("HTTPD"));

var wuconditions = arr.forecast.simpleforecast.forecastday[0].conditions;
var wuicon = arr.forecast.simpleforecast.forecastday[0].icon;
var wuiconurl = arr.forecast.simpleforecast.forecastday[0].icon_url;
var wuhigh = arr.forecast.simpleforecast.forecastday[0].high.fahrenheit;
var wulow = arr.forecast.simpleforecast.forecastday[0].low.fahrenheit;
var wutitle1 = arr.forecast.txt_forecast.forecastday[0].title;
var wutitle2 = arr.forecast.txt_forecast.forecastday[1].title;
var wufcttext1 = arr.forecast.txt_forecast.forecastday[0].fcttext;
var wufcttext2 = arr.forecast.txt_forecast.forecastday[1].fcttext;
var wumaxwindmph = arr.forecast.simpleforecast.forecastday[0].maxwind.mph;
var wuavewindmph = arr.forecast.simpleforecast.forecastday[0].avewind.mph;
var wuavewinddir = arr.forecast.simpleforecast.forecastday[0].avewind.dir;
var wumaxwinddir = arr.forecast.simpleforecast.forecastday[0].maxwind.dir;
var wuavehumidity = arr.forecast.simpleforecast.forecastday[0].avehumidity; Libraries: Auto Exit:On Timeout (Seconds):45 ] 
A2: Say [ Text:Forecast is wuconditions Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ]

Riley Washington

unread,
Mar 29, 2017, 2:32:36 PM3/29/17
to tas...@googlegroups.com
Did you add a HTTPD Get action first?


In the path put:
/api/API_KEY_GOES_HERE/conditions/forecast/q/STATE_GOES_HERE/CITY_GOES_HERE.json

Logan Fury

unread,
Mar 29, 2017, 7:24:17 PM3/29/17
to tas...@googlegroups.com
Good Afternoon Riley,

Thank you for the help! I didnt work with anything but the 2 actions I posted, unfortunately I have no formal coding education so I didnt realize the necessity for the GET.

Editing what Ive got now, Thank you

Logan Fury

unread,
Mar 29, 2017, 7:42:38 PM3/29/17
to tas...@googlegroups.com
Still getting the same result from SAY, here is my 3 action Task as is currently, with my Wunderland API# edited out, but I did get a valid API at that site and used it properly in the code im sure:

Wunderground (368)
A1: HTTP Get [ Server:Port:api.wunderground.com Path:/api/MY_API/conditions/forecast/q/NV/LasVegas.json Attributes: Cookies: User Agent: Timeout:120 Mime Type: Output File: Trust Any Certificate:Off ] 
A2: JavaScriptlet [ Code:arr = JSON.parse(global("HTTPD"));

var wuconditions = arr.forecast.simpleforecast.forecastday[0].conditions;
var wuicon = arr.forecast.simpleforecast.forecastday[0].icon;
var wuiconurl = arr.forecast.simpleforecast.forecastday[0].icon_url;
var wuhigh = arr.forecast.simpleforecast.forecastday[0].high.fahrenheit;
var wulow = arr.forecast.simpleforecast.forecastday[0].low.fahrenheit;
var wutitle1 = arr.forecast.txt_forecast.forecastday[0].title;
var wutitle2 = arr.forecast.txt_forecast.forecastday[1].title;
var wufcttext1 = arr.forecast.txt_forecast.forecastday[0].fcttext;
var wufcttext2 = arr.forecast.txt_forecast.forecastday[1].fcttext;
var wumaxwindmph = arr.forecast.simpleforecast.forecastday[0].maxwind.mph;
var wuavewindmph = arr.forecast.simpleforecast.forecastday[0].avewind.mph;
var wuavewinddir = arr.forecast.simpleforecast.forecastday[0].avewind.dir;
var wumaxwinddir = arr.forecast.simpleforecast.forecastday[0].maxwind.dir;
var wuavehumidity = arr.forecast.simpleforecast.forecastday[0].avehumidity; Libraries: Auto Exit:On Timeout (Seconds):45 ] 
A3: Say [ Text:Forecast is wuconditions Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ]

return once again, was "Forecast is wuconditions" rather than any variable output.

Ready to edit when anyone has time to advise :)

Logan Fury

unread,
Mar 29, 2017, 7:48:05 PM3/29/17
to tas...@googlegroups.com
I did just try an edit on my own of Las_Vegas for LasVegas in the HTTP GET, but no improvement.

Logan Fury

unread,
Mar 30, 2017, 8:58:16 AM3/30/17
to tas...@googlegroups.com
BiggDadd would you consider posting an  API key edited-out description or .xml attachment of your working task here please?

Riley Washington

unread,
Mar 30, 2017, 1:54:39 PM3/30/17
to tas...@googlegroups.com
Sure. 
But you need to enter "Las Vegas" as "Las_Vegas"?
I just tried it in my task as /api/XXXXXXXXXXXXXX/conditions/forecast/q/NV/Las_Vegas.json and received a response....So try that first :)

Morning Routine (101)
A1: HTTP Get [ Server:Port:api.wunderground.com
                      Path:/api/XXXXXXXXXXXXXX/conditions/forecast/q/State/City.json Attributes: Cookies: User Agent: Timeout:10 Mime Type: Output File: Trust Any Certificate:Off ] 
A2: JavaScriptlet [ Code:arr = JSON.parse(global("HTTPD"));
                      var current_day = arr.forecast.txt_forecast.forecastday[0].fcttext;
                      var current_evening = arr.forecast.txt_forecast.forecastday[1].fcttext; Libraries: Auto Exit:On Timeout (Seconds):45 ] 

The Variable Search Replace is used so Ivona voice will read the actual wind direction instead of "NE" it will say "Northeast" etc
(I'm sure there is a more elegant and/or efficient way to do this but for now it works - I also DID NOT add "current_evening" below as it would have basically doubled the number of Variable Search Replace I have already)

A3: Variable Search Replace [ Variable:%current_day Search:F[.] Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: degrees ] 
A4: Variable Search Replace [ Variable:%current_evening Search:F[.] Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: degrees ] 
A5: Variable Search Replace [ Variable:%current_day Search:low Ignore Case:On Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:low of ] 
A6: Variable Search Replace [ Variable:%current_day Search:\sN\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: North  ] 
A7: Variable Search Replace [ Variable:%current_day Search:\sNNE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: North North-East  ] 
A8: Variable Search Replace [ Variable:%current_day Search:\sNE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: North-East  ] 
A9: Variable Search Replace [ Variable:%current_day Search:\sENE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: East North-East  ] 
A10: Variable Search Replace [ Variable:%current_day Search:\sE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: East  ] 
A11: Variable Search Replace [ Variable:%current_day Search:\sESE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: East South-East  ] 
A12: Variable Search Replace [ Variable:%current_day Search:\sSE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: South-East  ] 
A13: Variable Search Replace [ Variable:%current_day Search:\sSSE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: South South-East  ] 
A14: Variable Search Replace [ Variable:%current_day Search:\sS\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: South  ] 
A15: Variable Search Replace [ Variable:%current_day Search:\sSSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: South South-West  ] 
A16: Variable Search Replace [ Variable:%current_day Search:\sSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: South-West  ] 
A17: Variable Search Replace [ Variable:%current_day Search:\sWSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: West South-West  ] 
A18: Variable Search Replace [ Variable:%current_day Search:\sW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: West  ] 
A19: Variable Search Replace [ Variable:%current_day Search:\sWNW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:and a wind from the West North-West  ] 
A20: Variable Search Replace [ Variable:%current_day Search:\sNW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: North-West  ] 
A21: Variable Search Replace [ Variable:%current_day Search:\sNNW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: North North-West  ] 
A22: Say [ Text:Today's weather forecast is %current_day.  Later this evening %current_evening Engine:Voice:com.ivona.tts:eng-USA Stream:3 Pitch:5 Speed:6 Respect Audio Focus:On Network:On Continue Task Immediately:Off ] 
A26: [X] Flash [ Text:%current_day Long:On ] 
A27: [X] Flash [ Text:%current_evening Long:On ] 

Logan Fury

unread,
Mar 30, 2017, 2:23:50 PM3/30/17
to tas...@googlegroups.com
WOOHOO!!

I copied actions 1 thru 4, and then A22 the SAY line as a mini test, and it returned output PERFECTLY!

This is awesome! Im about to conclude rebuilding this in Tasker now with actions 5 thru 21, and your two flashes A26 and A27.

Thank you so much for taking the time to post this, this is giving great, concise information so far and I cant wait to hear the output of the full string.

Thanks again Riley :)

Thanks also to everyone thats contributed to this thread.

Logan Fury

unread,
Mar 30, 2017, 2:49:20 PM3/30/17
to tas...@googlegroups.com
OK all 24 actions have been entered into Tasker, the output is full, complete, and sounds GREAT.

I had been using WeatherAce and WeatherAce Tasker plugin, and was getting duplicate info for highs and lows and current and later temps, no control of wind direction announce like this, and a fraction of the pertinent weather info.

This is fantastic, professional sounding info, clearly more complete and accurate, and im amazed with the results.

Were the two [X]'s preceeding the Flash actions an indication that you have these actions disabled to fire? They were early test actions that never got deleted from the final Task?

Logan Fury

unread,
Mar 30, 2017, 10:23:07 PM3/30/17
to tas...@googlegroups.com
Ive just noticed that the Variable Search & Replace lines seem to be failing.I currently have North-West wind conditions, and ive checked the NW action line carefully, but the output keeps saying "NW" instead of "North-West"

On the plus side, I added a time of day check Task run and proceeded the weather info with a Good Morning/Afternoon/Evening appropriate opening greeting in the SAY line successfully.

Riley Washington

unread,
Mar 30, 2017, 10:42:14 PM3/30/17
to tas...@googlegroups.com
I'm glad you have it working.  Yes the last 2 actions were just test/flash actions. I was writing and reading the results to HTTPD then just flashing the results. That way I wouldn't keep hitting the wunderground api.

Logan Fury

unread,
Mar 30, 2017, 10:44:59 PM3/30/17
to tas...@googlegroups.com
Are we restricted to only calling this info from wunderground so many times daily/monthly on the free accounts we create for our API keys?

Also, could you do a quick confirm for me that you are getting the full direction readouts and not the abbreviations still like im recieving?

Thanks Riley!

Riley Washington

unread,
Mar 30, 2017, 10:47:38 PM3/30/17
to tas...@googlegroups.com
I didn't include all the wind direction variables (evening weather was not setup so that's probably why you are get "NW" in stead of Northwest).  Basically you would need to copy all variable search and replace and just change the variable according. i.e instead of "%current_day" change it to "%current_evening" or whatever you have for your variable in the javascriptlet

Logan Fury

unread,
Mar 30, 2017, 10:49:26 PM3/30/17
to tas...@googlegroups.com
Gotcha! I should have caught that much myself when you mentioned the lack of evening data. Thats what I get for posting while excited with little sleep lol.

Thanks so much for all the patience and help with this :)

Logan Fury

unread,
Mar 30, 2017, 11:01:07 PM3/30/17
to tas...@googlegroups.com
OK im looking at the script more carefully now. I did a quick copy/paste/replace variable for the "low of" and "North-West" actions and immediately got both returns properly in a test fire. Ill just use the edit tools in Tasker to add the %current_evening lines as painlessly as possible.

There wasnt an important reason such as making the Task too large to operate that caused you to not replicate everything for evening data was there?

Logan Fury

unread,
Mar 30, 2017, 11:23:03 PM3/30/17
to tas...@googlegroups.com
OK, I went for it. Here is the 43 action monstrosity I edited your beautiful script into:

Wunderground (371)
A1: HTTP Get [ Server:Port:api.wunderground.com Path:/api/XXXXXXXXXXXXXXXX/conditions/forecast/q/NV/Las_Vegas.json Attributes: Cookies: User Agent: Timeout:120 Mime Type: Output File: Trust Any Certificate:Off ] 

A2: JavaScriptlet [ Code:arr = JSON.parse(global("HTTPD"));
                      var current_day = arr.forecast.txt_forecast.forecastday[0].fcttext;
                      var current_evening = arr.forecast.txt_forecast.forecastday[1].fcttext; Libraries: Auto Exit:On Timeout (Seconds):45 ] 
A3: Variable Search Replace [ Variable:%current_day Search:F[.] Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:degrees ] 
A4: Variable Search Replace [ Variable:%current_evening Search:F[.] Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:degrees ] 
A5: Variable Search Replace [ Variable:%current_day Search:low Ignore Case:On Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:low of ] 
A6: Variable Search Replace [ Variable:%current_evening Search:low Ignore Case:On Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:low of ] 
A7: Variable Search Replace [ Variable:%current_day Search:\sN\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:North ] 
A8: Variable Search Replace [ Variable:%current_evening Search:\sN\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:North ] 
A9: Variable Search Replace [ Variable:%current_day Search:\sNNE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:North North-East ] 
A10: Variable Search Replace [ Variable:%current_evening Search:\sNNE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:North North-East ] 
A11: Variable Search Replace [ Variable:%current_day Search:\sNE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:North-East ] 
A12: Variable Search Replace [ Variable:%current_evening Search:\sNE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:North-East ] 
A13: Variable Search Replace [ Variable:%current_day Search:\sENE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:East North-East ] 
A14: Variable Search Replace [ Variable:%current_evening Search:\sENE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:East North-East ] 
A15: Variable Search Replace [ Variable:%current_day Search:\sE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:East ] 
A16: Variable Search Replace [ Variable:%current_evening Search:\sE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:East ] 
A17: Variable Search Replace [ Variable:%current_day Search:\sESE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:East South-East ] 
A18: Variable Search Replace [ Variable:%current_evening Search:\sESE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:East South-East ] 
A19: Variable Search Replace [ Variable:%current_day Search:\sSE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:South-East ] 
A20: Variable Search Replace [ Variable:%current_evening Search:\sSE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:South-East ] 
A21: Variable Search Replace [ Variable:%current_day Search:\sSSE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:South South-East ] 
A22: Variable Search Replace [ Variable:%current_evening Search:\sSSE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:South South-East ] 
A23: Variable Search Replace [ Variable:%current_day Search:\sS\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:South ] 
A24: Variable Search Replace [ Variable:%current_evening Search:\sS\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:South ] 
A25: Variable Search Replace [ Variable:%current_day Search:\sSSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:South South-West ] 
A26: Variable Search Replace [ Variable:%current_evening Search:\sSSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:South South-West ] 
A27: Variable Search Replace [ Variable:%current_day Search:\sSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:South-West ] 
A28: Variable Search Replace [ Variable:%current_evening Search:\sSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:South-West ] 
A29: Variable Search Replace [ Variable:%current_day Search:\sWSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:West South-West ] 
A30: Variable Search Replace [ Variable:%current_evening Search:\sWSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:West South-West ] 
A31: Variable Search Replace [ Variable:%current_day Search:\sW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:West ] 
A32: Variable Search Replace [ Variable:%current_evening Search:\sW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:West ] 
A33: Variable Search Replace [ Variable:%current_day Search:\sWNW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:and a wind from the West North-West ] 
A34: Variable Search Replace [ Variable:%current_evening Search:\sWNW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:and a wind from the West North-West ] 
A35: Variable Search Replace [ Variable:%current_day Search:\sNW\s Ignore Case:On Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:North-West ] 
A36: Variable Search Replace [ Variable:%current_evening Search:\sNW\s Ignore Case:On Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:North-West ] 
A37: Variable Search Replace [ Variable:%current_day Search:\sNNW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:North North-West ] 
A38: Variable Search Replace [ Variable:%current_evening Search:\sNNW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:North North-West ] 
A39: Perform Task [ Name:Get Time Peroid Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable:%timeperoid Stop:Off ] 
A40: Say [ Text:Good %timeperoid Logan. Today's weather forecast is %current_day.  Later this evening %current_evening Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ] 
A41: Flash [ Text:%current_day Long:On ] 
A42: Wait [ MS:0 Seconds:5 Minutes:0 Hours:0 Days:0 ] 
A43: Flash [ Text:%current_evening Long:On ]

for the sake of completion, here is the Get Time Period task being performed before the SAY:

Get Time Peroid (146)
A1: If [ %TIME < 12 ]
A2: Variable Set [ Name:%timeperoid To:morning Recurse Variables:Off Do Maths:Off Append:Off ] 
A3: Else If [ %TIME < 17 ]
A4: Variable Set [ Name:%timeperoid To:afternoon Recurse Variables:Off Do Maths:Off Append:Off ] 
A5: Else 
A6: Variable Set [ Name:%timeperoid To:evening Recurse Variables:Off Do Maths:Off Append:Off ] 
A7: End If 
A8: Return [ Value:%timeperoid Stop:On ]

This simply "humanizes" the Task a bit with personal greeting and awareness of the state of day (morn/aftenoon/eve)

I went ahead and fired it and it seemed to work fine. I dont think anything went wrong but is Europe still there? I dont know if I would have felt anything from here in Vegas.

Rob

unread,
Mar 31, 2017, 8:46:16 AM3/31/17
to Tasker
Hello Logan,

It might not what you are searching but I hve a weather project with Weather Underground giving me:

  • Current weather on a KWGT widget
  • The daily weather in a Scene for today and 3 coming days
  • Also the fiorecast for 5 days further
  • A html section for the current location weather for 17 hours with temp (feels like temp) and rain expectations.
  • last i also have a radar image as a gif for the rain .
See added pictures

Logan Fury

unread,
Mar 31, 2017, 8:56:41 AM3/31/17
to tas...@googlegroups.com
Good Morning Rob,

That looks like a facinating project! Is this its own application thru the widget creator, or scripting thru Tasker? (or both?)

This has to be of interest to anyone thats been following this thread. Please feel free to post any files or links related to your project here. Id be happy to import anything Tasker related to see how it functions.

Logan Fury

unread,
Apr 3, 2017, 1:16:34 AM4/3/17
to tas...@googlegroups.com
Now that ive a better understanding of what/where the task is doing, I came up with a few tweak ideas.

I replaced the flashes with a greeting and printout on a black popup screen.

I noticed that my voice model is mispronouncing "Lows" so im considering editing the variable replace with a phonetic spelling for the say, then following SAY action immediately with another variable replace for proper spelling before the popup is performed.

Is it possible thru wunderland data to create a variable for wind direction expressed in degrees? If possible, id like to hear the final readout as "Winds are blowing 180 degrees South." for example.

Also, my voice model pronounces the phrase "Lows overnight in the Low 60s" as "Laos overnight in the low 60 seconds" Has anyone ever done a Variable Replace to replicate the sound of multiple "S"? Im not sure how to write this so as not to make the model sound like a snake.

PS to Rob: If you missed the last email, your project sounds right in line with this thread and Id welcome seeing your work and results. Please feel free to post in this thread.

Rob

unread,
Apr 3, 2017, 5:11:44 AM4/3/17
to Tasker
Hi Logan,

My project is fully build in Tasker with the help of some plugins off course.

What I use is:
  • A key generated for use with Weather Underground
  • AutoWeb with Google Maps GeoCode API action to find out my current location
  • AutoTools for all kinds of actions but mainly reading XML and JSON data
    For XML I have created my own (subroutine)Task for retrieving values from XMl output.
  • AutoWeb with Weather Underground API to get the current weather conditions
    When this fails I fallback to a HTTP
  • Direct HTTP for Weather Undergound hourly, forecast, forecast10day and animatedradar data
  • I use KWGT widget for showing current info on my homescreen
  • I change my background wallpaper according to the current weather, nortmally every hour.
    Also the wallpaper changes on sunrise/sunset times, I check/change this every night with the AutoWeb Weather Underground Astronomy API for the location I am in
  • All is build into one scene with different interactions
All is part of my Tasker environment and not as a single app or a seperate project.
I am not sure how I can help you or others but when I see some specific questions or you ask me them, I would be glad to help or share.

regards, Rob
To unsubscribe from this group and all its topics, send an email to tasker+un...@googlegroups.com.

Logan Fury

unread,
Apr 3, 2017, 5:19:32 AM4/3/17
to tas...@googlegroups.com
I can see that its a huge project beyond any simple export to share.

Your scenes look amazing, it came out very clean and professional.

If there was a away to turn your project into an application I bet youd have a lot of interest!

To unsubscribe from this group and all its topics, send an email to tasker+unsubscribe@googlegroups.com.

Logan Fury

unread,
Apr 7, 2017, 5:48:51 AM4/7/17
to tas...@googlegroups.com
Im turning attn to the phonetic errors inherent in TTS, and using phonetic Variable Replace to deal with it.

Ive eliminated the flash in my edit of the Task, and replaced with a 30 sec display of white text on a black background with the output. This makes a second set of Variable Replaces necessary after the SAY and before the POPUP.

today happened to be a "temp in the low 60's" day so I took advantage to experiment with eliminating the 60s as "sixty seconds" speech output, and the mispronouncing of "low" and "wind". Theres still more edits to add for temperatures of 20's thru 100's but im getting curious when im going to break the script or Tasker or South America with too much code in a single Task.

Heres what my edit is looking like now with variable to phonetic to printable partial corrections:

Wunderground (371)
A1: HTTP Get [ Server:Port:api.wunderground.com Path:/api/xxxxxxxxxxxxxxxx/conditions/forecast/q/NV/Las_Vegas.json Attributes: Cookies: User Agent: Timeout:120 Mime Type: Output File: Trust Any Certificate:Off ] 

A2: JavaScriptlet [ Code:arr = JSON.parse(global("HTTPD"));
                      var current_day = arr.forecast.txt_forecast.forecastday[0].fcttext;
                      var current_evening = arr.forecast.txt_forecast.forecastday[1].fcttext; Libraries: Auto Exit:On Timeout (Seconds):45 ] 
A3: Variable Search Replace [ Variable:%current_day Search:F[.] Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: degrees. ] 
A4: Variable Search Replace [ Variable:%current_evening Search:F[.] Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: degrees. ] 
A5: Variable Search Replace [ Variable:%current_day Search:Low Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:Lowe ] 
A6: Variable Search Replace [ Variable:%current_evening Search:Low Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:Lowe ] 
A7: Variable Search Replace [ Variable:%current_day Search:\sN\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North  ] 
A8: Variable Search Replace [ Variable:%current_evening Search:\sN\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North  ] 
A9: Variable Search Replace [ Variable:%current_day Search:\sNNE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North North-East  ] 
A10: Variable Search Replace [ Variable:%current_evening Search:\sNNE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North North-East  ] 
A11: Variable Search Replace [ Variable:%current_day Search:\sNE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North-East  ] 
A12: Variable Search Replace [ Variable:%current_evening Search:\sNE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North-East  ] 
A13: Variable Search Replace [ Variable:%current_day Search:\sENE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing East North-East  ] 
A14: Variable Search Replace [ Variable:%current_evening Search:\sENE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing East North-East  ] 
A15: Variable Search Replace [ Variable:%current_day Search:\sE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing East  ] 
A16: Variable Search Replace [ Variable:%current_evening Search:\sE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing East  ] 
A17: Variable Search Replace [ Variable:%current_day Search:\sESE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing East South-East  ] 
A18: Variable Search Replace [ Variable:%current_evening Search:\sESE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing East South-East  ] 
A19: Variable Search Replace [ Variable:%current_day Search:\sSE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South-East  ] 
A20: Variable Search Replace [ Variable:%current_evening Search:\sSE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South-East  ] 
A21: Variable Search Replace [ Variable:%current_day Search:\sSSE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South South-East  ] 
A22: Variable Search Replace [ Variable:%current_evening Search:\sSSE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South South-East  ] 
A23: Variable Search Replace [ Variable:%current_day Search:\sS\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South  ] 
A24: Variable Search Replace [ Variable:%current_evening Search:\sS\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South  ] 
A25: Variable Search Replace [ Variable:%current_day Search:\sSSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South South-West  ] 
A26: Variable Search Replace [ Variable:%current_evening Search:\sSSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South South-West  ] 
A27: Variable Search Replace [ Variable:%current_day Search:\sSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South-West  ] 
A28: Variable Search Replace [ Variable:%current_evening Search:\sSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South-West  ] 
A29: Variable Search Replace [ Variable:%current_day Search:\sWSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing West South-West  ] 
A30: Variable Search Replace [ Variable:%current_evening Search:\sWSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing West South-West  ] 
A31: Variable Search Replace [ Variable:%current_day Search:\sW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing West  ] 
A32: Variable Search Replace [ Variable:%current_evening Search:\sW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing West  ] 
A33: Variable Search Replace [ Variable:%current_day Search:\sWNW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing West North-West  ] 
A34: Variable Search Replace [ Variable:%current_evening Search:\sWNW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing West North-West  ] 
A35: Variable Search Replace [ Variable:%current_day Search:\sNW\s Ignore Case:On Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North-West  ] 
A36: Variable Search Replace [ Variable:%current_evening Search:\sNW\s Ignore Case:On Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North-West  ] 
A37: Variable Search Replace [ Variable:%current_day Search:\sNNW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North North-West  ] 
A38: Variable Search Replace [ Variable:%current_evening Search:\sNNW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North North-West  ] 
A39: Variable Search Replace [ Variable:%current_day Search:60s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:sixties ] 
A40: Variable Search Replace [ Variable:%current_evening Search:60s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:sixties ] 
A41: Variable Search Replace [ Variable:%current_day Search:Wind Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:winnd ] 
A42: Variable Search Replace [ Variable:%current_evening Search:Wind Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:winnd ] 
A43: Perform Task [ Name:Get Time Peroid Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable:%timeperoid Stop:Off ] 
A44: Say [ Text:Good %timeperoid Logan. Today's weather forecast is %current_day 
Later %current_evening Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:On ] 
A45: Variable Search Replace [ Variable:%current_day Search:Lowe Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:Low ] 
A46: Variable Search Replace [ Variable:%current_evening Search:Lowe Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:Low ] 
A47: Variable Search Replace [ Variable:%current_day Search:Winnd Ignore Case:On Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:Wind ] 
A48: Variable Search Replace [ Variable:%current_evening Search:Winnd Ignore Case:On Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:Wind ] 
A49: Variable Search Replace [ Variable:%current_day Search:sixties Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:60s ] 
A50: Variable Search Replace [ Variable:%current_evening Search:sixties Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:60s ] 
A51: Popup [ Title: Text:Good %timeperoid Logan.


Today's weather forecast is %current_day 

Later %current_evening Background Image: Layout:Fullscreen 24 txt Timeout (Seconds):30 Show Over Keyguard:On ]

A5&6 and A41&42 are phonetic edits, A39&40 eliminate the "60 seconds" effect. A45-50 are my replacements back to printable form preceeding the Popup.

All phonetics are dealt with now except for the even number increments of 10 preceding and following 60. Ill most likely slowly add these over the next few days and frequently check the Task and Program to make sure I havent exceeded some memory limitation and started causing problems.

This script is starting to look pretty monstrous lol. Did anyone see any mathematically elegant way to script this more compactly than the brute-force, all individual lines format here?

Logan Fury

unread,
Apr 7, 2017, 6:19:17 AM4/7/17
to tas...@googlegroups.com
It just dawned on me that I can take the list of numeric to text, and the list of text to numeric and make two seperate Tasks out of them, called with Perform Task, to keep the size of this Task down.

Logan Fury

unread,
Apr 18, 2017, 9:40:10 PM4/18/17
to tas...@googlegroups.com
Hello Rob,

Ive begun a WU/Tasker scene of my own. Its just at the starting stage and really primitive compared to your amazing weather package. Ive been looking at https://www.wunderground.com/weather/api/d/docs?d=resources/icon-sets#icon_sets to try to give my scene more info and graphics and I note the weather condition icons you use in your project arent on Wunderground's icon page. Did you create these yourself or were they a purchased/free download?

Rob

unread,
Apr 19, 2017, 5:06:53 AM4/19/17
to Tasker
Hello Logan,

I have searched the internet for free collections of icon sets which suited my needs, there are a lot of them.
Further more I convert the weather condition descriptions into numbers like seen on https://developer.accuweather.com/weather-icons.
I started using these numbers way back when I was still having a Windows Mobile device and continuing this on Android.
Also when appropriate and available, night time icons are used.

If you want the icons I use, I can zip them and add the file to this post.

Regards, Rob

Op woensdag 19 april 2017 03:40:10 UTC+2 schreef Logan Fury:

Logan Fury

unread,
Apr 19, 2017, 6:02:36 AM4/19/17
to tas...@googlegroups.com
Good Evening Rob,

Thank you for keeping an eye on the thread. If you wouldnt mind, Your iconset really caught my eye and id love to work those into a weather project. Id appreciate a zip either here or at my private email if this forum doesnt allow attachments beyond images.

As far as the WU study goes, im more or less like a drunken baby with a bucket on its head trying to navigate an obstacle course. I did find the following really great tutorial that worked with .xml instead of .json:


This was a tutorial to strip the days maximum temperature from the WU info. I was able to sit down and work with this as a template to make a Task to strip sunrise and sunset times from WU and read them aloud. I managed to pull this off without getting dizzy, passing out, or falling over. Not even once. Im very pleased although im sure this looks ridiculously basic to a real coder. Heres what I turned the tutorial into. I kept all the progress check flashes intact, and put a Wait before the Say so I could note the flashes and confirm that the Say output was correct:

WU Astronomy (222)
A1: HTTP Get [ Server:Port:api.wunderground.com Path:/api/xxxxxxxxxxxxxxxx/astronomy/q/NV/Las_Vegas.xml Attributes: Cookies: User Agent: Timeout:120 Mime Type: Output File: Trust Any Certificate:Off ] 
A2: Variable Set [ Name:%sunset To:%HTTPD Recurse Variables:Off Do Maths:Off Append:Off ] 
A3: Variable Set [ Name:%sunrise To:%HTTPD Recurse Variables:Off Do Maths:Off Append:Off ] 
A4: Flash [ Text:%sunset Long:Off ] 
A5: Variable Split [ Name:%sunset Splitter:<sunset> Delete Base:Off ] 
A6: Flash [ Text:%sunset2 Long:On ] 
A7: Variable Split [ Name:%sunset2 Splitter:<hour> Delete Base:Off ] 
A8: Flash [ Text:%sunset22 Long:Off ] 
A9: Variable Split [ Name:%sunset22 Splitter:</hour> Delete Base:Off ] 
A10: Flash [ Text:%sunset221 Long:Off ] 
A11: If [ %sunset221 > 11 & %sunset221 < 24 ]
A12: Variable Set [ Name:%setm To:P M Recurse Variables:Off Do Maths:Off Append:Off ] 
A13: Else 
A14: Variable Set [ Name:%setm To:A M Recurse Variables:Off Do Maths:Off Append:Off ] 
A15: End If 
A16: Variable Split [ Name:%sunset3 Splitter:<minute> Delete Base:Off ] 
A17: Flash [ Text:%sunset32 Long:Off ] 
A18: Variable Split [ Name:%sunset32 Splitter:</minute> Delete Base:Off ] 
A19: Flash [ Text:%sunset321 Long:Off ] 
A20: If [ %sunset221 > 12 ]
A21: Variable Set [ Name:%sunset221 To:%sunset221-12 Recurse Variables:Off Do Maths:On Append:Off ] 
A22: End If 
<End sunset Begin sunrise>
A23: Anchor 
A24: Flash [ Text:%sunrise Long:Off ] 
A25: Variable Split [ Name:%sunrise Splitter:<sunrise> Delete Base:Off ] 
A26: Flash [ Text:%sunrise2 Long:On ] 
A27: Variable Split [ Name:%sunrise2 Splitter:<hour> Delete Base:Off ] 
A28: Flash [ Text:%sunrise22 Long:Off ] 
A29: Variable Split [ Name:%sunrise22 Splitter:</hour> Delete Base:Off ] 
A30: Flash [ Text:%sunrise221 Long:Off ] 
A31: If [ %sunrise221 > 11 & %sunrise221 < 24 ]
A32: Variable Set [ Name:%risem To:P M Recurse Variables:Off Do Maths:Off Append:Off ] 
A33: Else 
A34: Variable Set [ Name:%risem To:A M Recurse Variables:Off Do Maths:Off Append:Off ] 
A35: End If 
A36: Variable Split [ Name:%sunrise3 Splitter:<minute> Delete Base:Off ] 
A37: Flash [ Text:%sunrise32 Long:Off ] 
A38: Variable Split [ Name:%sunrise32 Splitter:</minute> Delete Base:Off ] 
A39: Flash [ Text:%sunrise321 Long:Off ] 
A40: If [ %sunset221 > 12 ]
A41: Variable Set [ Name:%sunrise221 To:%sunrise221-12 Recurse Variables:Off Do Maths:On Append:Off ] 
A42: End If 
A43: Wait [ MS:0 Seconds:25 Minutes:0 Hours:0 Days:0 ] 
A44: Say [ Text:It is %DAYW, %DATE. 

Sunrise %sunrise221 %sunrise321 %risem.

Son sets at %sunset221 %sunset321 %setm Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ]

I formatted the variable values and the Say phonetically, and it seems successful. This is my first time working with "nested" variable sets (if thats the correct term) and im jazzed that I managed to comprehend the numbering rules.

How does this look to you as an advanced coder? Were there many ways to make this more elegant with math/coding shortcuts?

To unsubscribe from this group and all its topics, send an email to tasker+unsubscribe@googlegroups.com.

Logan Fury

unread,
Apr 19, 2017, 6:31:53 AM4/19/17
to tas...@googlegroups.com
I just noted that the response fields page for Astronomy at WU lists sunrise.hour and sunrise.minute. So I tried this script:

WU Sun 2 (244)
A1: HTTP Get [ Server:Port:api.wunderground.com Path:/api/xxxxxxxxxxxxxxxx/astronomy/sunrise.hour/sunrise.minute/q/NV/Las_Vegas.xml Attributes: Cookies: User Agent: Timeout:120 Mime Type: Output File: Trust Any Certificate:Off ] 
A2: Variable Set [ Name:%risehour To:sunrise.hour Recurse Variables:Off Do Maths:Off Append:Off ] 
A3: Variable Set [ Name:%risemin To:sunrise.minute Recurse Variables:Off Do Maths:Off Append:Off ] 
A4: Say [ Text:Son rises at %risehour %risemin Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ]

This just read aloud the variable names instead of numeric time. Out of curiousity, why didnt this work?

Rob

unread,
Apr 19, 2017, 6:43:04 AM4/19/17
to Tasker
Hi Logan,

I use AutoWeb with the WeatherUnderground API to get the sunrise/set times for my current location  as follows.
With the variables %SUNRISE and %SUNSET profiles are launched to determine night and/or day icons.
Besides this I also have some error/exception processing in the task to check internet availability and to prevent faulty values but I have left that out for now.

A1: Variable Set [ Name:%coo To:%LOCN Recurse Variables:Off Do Maths:Off Append:Off ]
A2: Variable Split [ Name:%coo Splitter:, Delete Base:Off ]
A3: AutoWeb Web Service [ Configuration:API: Weather Underground
API Action: Astronomy
Language: NL Timeout (Seconds):10 Continue Task After Error:On ]
A4: Variable Set [ Name:%SUNRISE To:%sunrisehour.%sunriseminute Recurse Variables:Off Do Maths:Off Append:Off ]
A5: Variable Set [ Name:%SUNSET To:%sunsethour.%sunsetminute Recurse Variables:Off Do Maths:Off Append:Off ]

Regards, Rob

Op woensdag 19 april 2017 12:31:53 UTC+2 schreef Logan Fury:
For more options, visit <a

Rob

unread,
Apr 19, 2017, 7:02:23 AM4/19/17
to Tasker
Hi Logan,

As attachments the zip fiel with weather icons I use.
As far as I know, the icons are royalty free available on the internet.
Also two txt files with the weather condition to icon number conversion tables which I use, you can use the weather condition description is entry in XML format.

Regards, Rob

Op woensdag 19 april 2017 12:02:36 UTC+2 schreef Logan Fury:
weather.zip
Day time icon nr conversion.txt
Night time icon nr conversion.txt

Logan Fury

unread,
Apr 19, 2017, 7:02:45 AM4/19/17
to tas...@googlegroups.com
That %LOCN variable looked facinating to me but I couldnt find any documentation about using it at WU.


also, could I still get that icon zip please.

To unsubscribe from this group and all its topics, send an email to tasker+unsubscribe@googlegroups.com.

Logan Fury

unread,
Apr 19, 2017, 7:03:40 AM4/19/17
to tas...@googlegroups.com
the icons showed a moment after I sent the 2nd request, go ahead and disregard that lol.

Logan Fury

unread,
Apr 19, 2017, 7:17:32 AM4/19/17
to tas...@googlegroups.com
Now ive come up with a completely baffling problem. I cloned the script for sunrise, and changed all instances of sun to moon. I then ran it and at the minutes variable split I keep getting this error and the script stops:

04.11.53/Variables doreplresult: |%moonrise3| -> |%moonrise3|
04.11.53/E Variable Split: %moonrise3 -> %moonrise3
04.11.53/Variables doreplresult: |%moonrise3| -> |%moonrise3|
04.11.53/E Variable Split: can't split unset value to set %moonrise3
04.11.53/E result: stop task (error)
04.11.53/Variables doreplresult: |%moonrise3| -> |%moonrise3|
04.11.53/E Error: 1
04.11.53/MacroEdit action finished exeID 1 action no 35 code 590 status: Err next 35

The WU data for moonrise and moonset is identical in format to sunrise and sunset so I fail to understand why %moonrise3 cannot be split by <minute> when %sunrise in the same action slot in an otherwise identical Task can.

Can anyone make sence of this?

Rob

unread,
Apr 19, 2017, 8:47:28 AM4/19/17
to Tasker
Logan,

the %LOCN is a global Tasker variable, described as follows...

Location (Net) (dynamic) 
%LOCN
The latitude and longitude of the last network location fix. 

I added the weather.zip which contained all icon files earlier, cant you see him ?

AutoWeb is a Tasker plugin from joaomgcd, one of the Taske plugin masters (for me) and gives a easier entry for several website info
But via HTPP it is also possible.

Regards, Rob

Op woensdag 19 april 2017 13:02:45 UTC+2 schreef Logan Fury:

Rob

unread,
Apr 19, 2017, 9:12:35 AM4/19/17
to Tasker
Logan,

I am not sure what is going on but maybe a small task can help retrieving values from XML data.
I have added a task you can import in tasker.

It functions as a callable routine to find and return a value of a key you enter.

What you can try is as follows:
  • Import the file as task, it wil be named [Get]
  • Than if you have xml data and you want to get a value from it...
    • Do a Perform Task with the task [Get]
    • Use the XML data as Parameter 1
    • Use your key (string) as Parameter 2
    • Use a new variable for use with the returned found value
As example
When the data is <keyX>value1</keyX>, the key is keyX and the returned value is value1

Maybe you can try

Regards, Rob

Op woensdag 19 april 2017 13:17:32 UTC+2 schreef Logan Fury:

<a

_Get_.tsk.xml

Rob

unread,
Apr 19, 2017, 9:16:28 AM4/19/17
to Tasker
Logan,

Sorry but one small but important thing, the priority of a called task must be %priority+1 to make sure it processes first completely before the calling task continues.

Regards, Rob

Op woensdag 19 april 2017 15:12:35 UTC+2 schreef Rob:

On Monday, April 3, 2017 at 7:16:34 AM UTC+2, Logan Fury wrote:
<blockquote class="gmail_quot

Logan Fury

unread,
Apr 19, 2017, 10:17:11 AM4/19/17
to tas...@googlegroups.com
Hello Rob,

Sorry I got distracted for some time. I recognize joaomgcd! He makes incredible apps, but the link you provided is 404 and a search in apps of "joaomgcd" does NOT display AutoWeb. He seems to have removed it from his store. Ill email  him and inquire about that.

Thank you very much for the zip files of the icons and the troubleshooting task, ive gotten everything downloaded via email with no problems :)

Since insomnia seems to have a firm hold of me, im going to start some troubleshoots. Here is what is baffling however, please refer to this screenshot of the Flash %sunset

Inline image 1

It shows 

<sunrise>
<hour>n</hour>
<minute>n</minute>
<sunrise>

and immediately below

<moonset>
<hour>n</hour>
<minute>n</minute>
</moonset>

The formatting, spacing, type of data is IDENTICAL save for sunrise replaced by moonset. I have cloned my sunrise Task, so there can be no error, simply edited variable names, and yet the error and task interruption/failure persists. Ive triple checked for spelling errors and I got all my edits right. I may know absolutely nothing about coding but I think ive at least got the basic logic that god promised a puddle of motor oil and this makes no logical sense whatsoever.

Im going to get some caffine into myself and start working with your provided task. Thank you again so much for the assistance with this mystery.

--

Logan Fury

unread,
Apr 19, 2017, 10:44:14 AM4/19/17
to tas...@googlegroups.com
Im unsure exactly how to use the GET Task you provided. Here is what ive got so far:

Xml Return (246)
A1: Perform Task [ Name:[Get] Priority:%priority+1 Parameter 1 (%par1):/api/xxxxxxxxxxxxxxxx/astronomy/q/NV/Las_Vegas.xml Parameter 2 (%par2): Return Value Variable: Stop:Off ]

I dont know what im supposed to put into param 2. Sorry for my lack of understanding, but how do I use this to see why %moonrise3 cant be filled with minute information?

Logan Fury

unread,
Apr 19, 2017, 11:15:58 AM4/19/17
to tas...@googlegroups.com
Update: I joined the beta project and downloaded and installed AutoWeb

Logan Fury

unread,
Apr 19, 2017, 3:37:53 PM4/19/17
to tas...@googlegroups.com
OK Ive fought with the script all night/morning, and I got the Sunrise and Sunset data pulled and broadcasting. I started seperate variables for rise and set to not get to deep into nested variables. It might be inelegant and brute force but it works. I havent removed the troubleshooting Flash actions so this could be a bit smaller. Heres what Ive got:

WU Moon Rise/Set (243)

A1: HTTP Get [ Server:Port:api.wunderground.com Path:/api/xxxxxxxxxxxxxxxx/astronomy/q/NV/Las_Vegas.xml Attributes: Cookies: User Agent: Timeout:120 Mime Type: Output File: Trust Any Certificate:Off ] 
A2: Variable Set [ Name:%moonrise_h To:%HTTPD Recurse Variables:Off Do Maths:Off Append:Off ] 
A3: [X] Flash [ Text:%moonrise_h Long:Off ] 
A4: Variable Split [ Name:%moonrise_h Splitter:<moonrise> Delete Base:Off ] 
A5: [X] Flash [ Text:%moonrise_h2 Long:On ] 
A6: Variable Split [ Name:%moonrise_h2 Splitter:<hour> Delete Base:Off ] 
A7: [X] Flash [ Text:%moonrise_h22 Long:Off ] 
A8: Variable Split [ Name:%moonrise_h22 Splitter:</hour> Delete Base:Off ] 
A9: [X] Flash [ Text:%moonrise_h221 Long:Off ] 
A10: If [ %moonrise_h221 > 11 & %moonrise_h221 < 24 ]
A11: Variable Set [ Name:%mrisem To:P M Recurse Variables:Off Do Maths:Off Append:Off ] 
A12: Else 
A13: Variable Set [ Name:%mrisem To:A M Recurse Variables:Off Do Maths:Off Append:Off ] 
A14: End If 
A15: Variable Set [ Name:%moonrise_m To:%HTTPD Recurse Variables:Off Do Maths:Off Append:Off ] 
A16: Variable Split [ Name:%moonrise_m Splitter:<moonrise> Delete Base:Off ] 
A17: Variable Split [ Name:%moonrise_m2 Splitter:<minute> Delete Base:Off ] 
A18: [X] Flash [ Text:%moonrise_m2 Long:Off ] 
A19: Variable Split [ Name:%moonrise_m22 Splitter:</minute> Delete Base:Off ] 
A20: [X] Flash [ Text:%moonrise_m221 Long:Off ] 
A21: If [ %moonrise_h221 > 12 ]
A22: Variable Set [ Name:%moonrise_h221 To:%moonrise_h221-12 Recurse Variables:Off Do Maths:On Append:Off ] 
A23: End If 
<end rise begin set>
A24: Anchor 
A25: Variable Set [ Name:%moonset_h To:%HTTPD Recurse Variables:Off Do Maths:Off Append:Off ] 
A26: [X] Flash [ Text:%moonset_h Long:Off ] 
A27: Variable Split [ Name:%moonset_h Splitter:<moonset> Delete Base:Off ] 
A28: [X] Flash [ Text:%moonset_h2 Long:On ] 
A29: Variable Split [ Name:%moonset_h2 Splitter:<hour> Delete Base:Off ] 
A30: [X] Flash [ Text:%moonset_h22 Long:Off ] 
A31: Variable Split [ Name:%moonset_h22 Splitter:</hour> Delete Base:Off ] 
A32: [X] Flash [ Text:%moonset_h221 Long:Off ] 
A33: If [ %moonset_h221 > 11 & %moonset_h221 < 24 ]
A34: Variable Set [ Name:%msetm To:P M Recurse Variables:Off Do Maths:Off Append:Off ] 
A35: Else 
A36: Variable Set [ Name:%msetm To:A M Recurse Variables:Off Do Maths:Off Append:Off ] 
A37: End If 
A38: Variable Set [ Name:%moonset_m To:%HTTPD Recurse Variables:Off Do Maths:Off Append:Off ] 
A39: Variable Split [ Name:%moonset_m Splitter:<moonset> Delete Base:Off ] 
A40: Variable Split [ Name:%moonset_m2 Splitter:<minute> Delete Base:Off ] 
A41: [X] Flash [ Text:%moonset_m2 Long:Off ] 
A42: Variable Split [ Name:%moonset_m22 Splitter:</minute> Delete Base:Off ] 
A43: [X] Flash [ Text:%moonset_m221 Long:Off ] 
A44: If [ %moonset_h221 > 12 ]
A45: Variable Set [ Name:%moonset_h221 To:%moonset_h221-12 Recurse Variables:Off Do Maths:On Append:Off ] 
A46: End If 
A47: Say [ Text:It is %DAYW, %DATE.

Moon rises at %moonrise_h221 %moonrise_m221 %mrisem

Moon sets at %moonset_h221 %moonset_m221 %msetm Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:On ] 
A48: Flash [ Text:It is %DAYW, %DATE.

Moon rises at %moonrise_h221:%moonrise_m221 %mrisem

Moon sets at %moonset_h221:%moonset_m221 %msetm Long:On ]

Im not sure why I had to go this route to get the variables to work, but im pretty excited to have worked it out on my own. (I may have just added a few years to Pent's life for a change)

I went about this by creating a single working sunrise task, then a sunset task, then cloning and combining/editing as success in the script incremented its way to the end. From the gentleman's get max temperature Task, ive managed to puzzle out sunrise, sunset, moonrise, moonset, and most exciting personally, wind degrees (which ive wanted to add alongside of wind direction to my original forecast WU Task from this string since its inception)

Im going to clone the monster day/evening forecast Task that this thread originated with, and work on grabbing and adding that wind degrees info to its existing scene display and Say output. Hopefully that doesnt prove too difficult.

Hows the moon data Task posted here look?

Logan Fury

unread,
Apr 20, 2017, 1:47:29 AM4/20/17
to tas...@googlegroups.com
Back at the original WU forecast Task: Ive made a subroutine Task for grabbing current wind compass direction and degrees, and managed to add it to a clone of the existing Task successfully. I have phonetic text in the SAY field and more Variable Search/Replace tasks to add .xml data to the existing .json data display in the Scene. Here is what my new Scene display looks like (coded to auto Destroy 5 seconds after the Task reading the output ends)

Inline image 1

The 4th of the 5 pieces of text is the new info. Ill probable continue my tweaks and try to add windspeed in mph to the new current wind statement. Ill prob also try to add some of the available WU company icons to this to make it a bit more visually appealing. Im still in shock that all the 40-70 action long tasks being run to provide this result havent caused some data ceiling error. When Pent makes an addon he does NOT mess around! This is really turning into a fun project :D

Rob

unread,
Apr 20, 2017, 2:01:45 AM4/20/17
to Tasker
Hi Logan, back again after the night here in the Netherlands so different time-zone.

With the screenshot added I can say the following.
  • Parameter 1 contains the returned HTTPD data as variable, this is were the values are searching from.
    The string <!>err</!> I added will cause the [Get] task to return the value err when the key is not found, I use this a lot so a value is returned always.
  • Parameter 2 contains the one or two key values the macro is searching for, in this case both (sunset|hour) are necessary because the hour section in nested inside the sunset section.
    NB. No more than two keys can be given, if two are entered, divide them with an '!'
  • Return value variable contains the variable name %sunsethour which gets the value found and returned from the ask or err when not found.
I hope this helps.
Regards, Rob

Op woensdag 19 april 2017 16:17:11 UTC+2 schreef Logan Fury:
Screenshot_20170420-074437.png

Logan Fury

unread,
Apr 20, 2017, 2:14:23 AM4/20/17
to tas...@googlegroups.com
Hello Rob,

Welcome back! Im in PST timezone but being a night-owl with insomnia you can catch me at all kinds of odd hours :)

Thank you very much for the expanded explanation of the use of [GET] Task, I appreciate your patience with my ignorance of coding and troubleshooting.

Ive a small flood of progress posts for you to catch up on im afraid, but I did make the sunrise/sunset Task operable by using separate variables - I suspect that was what I should have done all along. My problem was working with a single data output tutorial and trying to turn it on the fly into a double data output task. Took me a bit but I puzzled out the solution, and im now moving on to incorporating the new extra weather details into my existing main WU Task and starting to think about asthetics and graphics/icons embellishment.

Im sure ill hit a stumbling block and youll be hearing from me here again soon lol.

--

Logan Fury

unread,
Apr 20, 2017, 2:41:01 AM4/20/17
to tas...@googlegroups.com
Hi again Rob,

Im also very eager to get into experimenting with %LOCN for ambulatory weather tasks. Im starting to recreate what you previously posted for me:

A1: Variable Set [ Name:%coo To:%LOCN Recurse Variables:Off Do Maths:Off Append:Off ] 
A2: Variable Split [ Name:%coo Splitter:, Delete Base:Off ] 
A3: AutoWeb Web Service [ Configuration:API: Weather Underground
API Action: Astronomy
Language: NL Timeout (Seconds):10 Continue Task After Error:On ] 
A4: Variable Set [ Name:%SUNRISE To:%sunrisehour.%sunriseminute Recurse Variables:Off Do Maths:Off Append:Off ] 
A5: Variable Set [ Name:%SUNSET To:%sunsethour.%sunsetminute Recurse Variables:Off Do Maths:Off Append:Off ] 

Im at A3, ive opened AutoWeb for the first time, im at Web Services page, with a "choose an account" popup showing 2 options, my google acct or add acct. Im sure I need to do add account and put in info to point to my wunderground account but im afraid of putting a wrong value in somewhere and causing a problem with AutoWeb. Can you please detail how to do the initial WU api setup in the addon if youve time?

Logan Fury

unread,
Apr 20, 2017, 3:27:58 AM4/20/17
to tas...@googlegroups.com
Sorry for the false alarm, I figured out the API entry. I believe Ive got a working Task from your LOCN expample:

Current LOC sunrise/set (249)

A1: Variable Set [ Name:%coo To:%LOCN Recurse Variables:Off Do Maths:Off Append:Off ] 
A2: Variable Split [ Name:%coo Splitter:, Delete Base:Off ] 
A3: AutoWeb Web Service [ Configuration:API: Weather Underground
API Action: Astronomy
Language: EN Timeout (Seconds):10 Continue Task After Error:On ] 
A4: If [ %sunrisehour > 11 & %sunrisehour < 24 ]
A5: Variable Set [ Name:%risem To:PM Recurse Variables:Off Do Maths:Off Append:Off ] 
A6: Else 
A7: Variable Set [ Name:%risem To:AM Recurse Variables:Off Do Maths:Off Append:Off ] 
A8: End If 
A9: Variable Set [ Name:%SUNRISE To:%sunrisehour:%sunriseminute Recurse Variables:Off Do Maths:Off Append:Off ] 
A10: If [ %sunsethour > 11 & %sunsethour < 24 ]
A11: Variable Set [ Name:%setm To:PM Recurse Variables:Off Do Maths:Off Append:Off ] 
A12: Else 
A13: Variable Set [ Name:%setm To:AM Recurse Variables:Off Do Maths:Off Append:Off ] 
A14: End If 
A15: If [ %sunsethour > 12 ]
A16: Variable Set [ Name:%sunsethour To:%sunsethour-12 Recurse Variables:Off Do Maths:On Append:Off ] 
A17: End If 
A18: Variable Set [ Name:%SUNSET To:%sunsethour:%sunsetminute Recurse Variables:Off Do Maths:Off Append:Off ] 
A19: Flash [ Text:%SUNRISE%risem

%SUNSET%setm Long:On ]

Rob

unread,
Apr 20, 2017, 3:52:03 AM4/20/17
to Tasker
Logan,

Good for you its working.

AutoWeb Is a very nice plugin and can prevent many variable split actions otherwise needed.
But it is not always reliable in my opinion so I use the [Get] task or just Variable Split also.
Besides this you just have to fiddle around with the task and getting to know its workings.

Regards, Rob

Op donderdag 20 april 2017 09:27:58 UTC+2 schreef Logan Fury:

Logan Fury

unread,
Apr 20, 2017, 7:03:47 AM4/20/17
to tas...@googlegroups.com
Ive taken a detour from functionality, and spent some time on aesthetics. Heres my first two attempts to make this look more professional and appealing.

Inline image 1Inline image 2

I believe im leaning towards the image on the right with the logo and date creating a kind of header effect. Im thinking now some kind of multiday forecast image or something similar on the bottom blank area of the right version.

--

Logan Fury

unread,
Apr 20, 2017, 9:19:47 AM4/20/17
to tas...@googlegroups.com
I'm going with the "header" style, and continuing work on display and output. Ive swapped to a slightly lighter charcoal background for a less jarring contrast, and installed the Swift keyboard to be able to replace the text display of "degrees" with the actual ascii symbol. 

I've also dumped the wind conditions task grabbing wind_degrees and wind_direction, and replaced it with a task grabbing wind_degrees and wind_string which included windspeed. I think it makes the current wind output look and sound a lot better. I'm considering grabbing more info from Conditions.xml rather than Forecast.json and including "feels like" temperature and wind gusts as my next step (prob after some sleep, i've been at this for many hours but I cant seem to stop lol.)

Here's a screenshot of the directions its taking now:

Inline image 1Inline image 3

Its such a subtle, little change but that degrees symbol looks so much better to me. Details really matter! Whats anyone's opinion of the two images above? The right image includes an extra "header text" - does that make the top section look too crowded? Heres an example with the graphics split top and bottom:

Inline image 5

Does this look more appealing than the above two examples? I really welcome the opinion of anyone following the thread even if you havent posted yet. The more eyes the better!



Logan Fury

unread,
Apr 20, 2017, 9:57:29 AM4/20/17
to tas...@googlegroups.com
I noticed the degrees stuck on 23 in all instances and eliminated an unworking Variable Set and now have it displaying proper degrees again.

Logan Fury

unread,
Apr 20, 2017, 10:41:04 AM4/20/17
to tas...@googlegroups.com
Ive now added wind_gust_mph to the displayed data, and set a variable search/replace to set 0 to display "no gusts."

Inline image 1

current temp, feels like and any other immediate info I can pull, im going to work with to replace the Today's Weather Forcast bit. I believe I may delegate that for another screen when this Task gets more complex.

Logan Fury

unread,
Apr 20, 2017, 12:24:00 PM4/20/17
to tas...@googlegroups.com
Well I believe I hit overtired and got my second wind. One hell of a geek session XD.

I have successfully called current condition, temp, feelslike temp and have now logically bundled that with the current wind data and made it the top display of info, followed by the daily forecast, then later daily info.

Here's the new layout and updated header:

Inline image 2

(I hope this flood of posts isn't aggravating, i'm just hoping to show the steps/evolution of my Task if anyone is following along)

Next Id like to incorporate Rob's examle of %LOCN so I can use this task worldwide.

Rob if you're here, may I ask how you navigate between the screens from your image? It looks like your WU project actually runs as part of your homescreen? Are the satellite and other 2 informational screens individual weather tasks called with shortcuts, or have you got a clickable areas in your screen that takes you to another display?

How does this new format look everyone?

Logan Fury

unread,
Apr 20, 2017, 12:49:59 PM4/20/17
to tas...@googlegroups.com
Rob when youve time ill definitively need %LOCN help. I managed the very basic task of adding variable splits and sets to make the Task example you provided speak and display the return, but taking this project from this thread and changing my set city/state location to detected state is almost certainly beyond me. 

Iv'e poked around the net and found this in a weather speaking profile:

Im sure this is part of the puzzle but im not sure how to use this in an HTTP GET. As I can access all my forcast, conditions, astronomy, etc pages on the net to search for variables, I tried to open a page with this data. I used:
http://api.wunderground.com/auto/wui/geo/GeoLookupXML/index.xml?query=%LOCN
and it took me to a simple WU page with this info:
<wui_error>
<title>Search not found</title>
<description/>
</wui_error>

So, im stumped. Rob or anyone that understands what im trying to accomplish here and has time to explain, please post when you can.

Thanks as always for reading.

Logan Fury

unread,
Apr 20, 2017, 1:51:45 PM4/20/17
to tas...@googlegroups.com
I found a task on the web:

get loc name (134)
        A1: HTTP Get [ Server:Port:http://maps.google.com/maps/api/geocode/json?latlng=%LOCN&sensor=false Path: Attributes: Cookies: Timeout:10 Mime Type: Output File: Ignore SSL Anchor Errors:Off ]
        A2: Variable Set [ Name:%httpd To:%HTTPD Do Maths:Off Append:Off ]
        A3: Variable Search Replace [ Variable:%httpd Search:(?<="formatted_address" : ").+(?=",) Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In:%match Replace Matches:Off Replace With: ]
        A4: Flash [ Text:%match1 Long:Off ]

this returned my complete street address, city, state, and country.

I worked with it for a bit and came up with this:

WU LOC output2 (380)
A1: Get Location [ Source:GPS Timeout (Seconds):60 Continue Task Immediately:On Keep Tracking:Off ] 
A2: HTTP Get [ Server:Port:http://maps.google.com/maps/api/geocode/json?latlng=%LOCN&sensor=false Path: Attributes: Cookies: User Agent: Timeout:10 Mime Type: Output File: Trust Any Certificate:Off Continue Task After Error:On ] 
A3: Variable Set [ Name:%httpd To:%HTTPD Recurse Variables:Off Do Maths:Off Append:Off ] 
A4: Variable Search Replace [ Variable:%httpd Search:(?<="formatted_address" : ").+(?=",) Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In:%match Replace Matches:Off Replace With: ] 
A5: Variable Split [ Name:%httpd Splitter:, Delete Base:Off ] 
A6: [X] Flash [ Text:%match3 Long:On ] 
A7: Variable Split [ Name:%match3 Splitter:, Delete Base:Off ] 
A8: Flash [ Text:%match31, %match32 Long:On ]

and by god, %match31 returns Las Vegas and %match32 returns NV.

I believe with a variable replace to turn Las Vegas into Las_Vegas this can work with my main task here. Im going to clone it and give it a shot.

Rob

unread,
Apr 20, 2017, 2:07:50 PM4/20/17
to Tasker
Logan, the upcoming days I do not have any time for this thread. I'm starting a long walking trail for some days.
Monday I shall be back to see what this thread is doing.
See you later...

Logan Fury

unread,
Apr 20, 2017, 2:10:26 PM4/20/17
to tas...@googlegroups.com
Thanks for the update. Have a safe and enjoyable walk and ill look forward to seeing you in the thread when you return :)

Logan Fury

unread,
Apr 20, 2017, 2:18:39 PM4/20/17
to tas...@googlegroups.com
I DID IT!!

WU Worldwide (381)

A1: Get Location [ Source:GPS Timeout (Seconds):60 Continue Task Immediately:On Keep Tracking:Off ] 
A2: HTTP Get [ Server:Port:http://maps.google.com/maps/api/geocode/json?latlng=%LOCN&sensor=false Path: Attributes: Cookies: User Agent: Timeout:10 Mime Type: Output File: Trust Any Certificate:Off Continue Task After Error:On ] 
A3: Variable Set [ Name:%httpd To:%HTTPD Recurse Variables:Off Do Maths:Off Append:Off ] 
A4: Variable Search Replace [ Variable:%httpd Search:(?<="formatted_address" : ").+(?=",) Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In:%Match Replace Matches:Off Replace With: ] 

A5: Variable Split [ Name:%httpd Splitter:, Delete Base:Off ] 
A6: Variable Split [ Name:%Match3 Splitter:, Delete Base:Off ] 
A7: Variable Search Replace [ Variable:%Match31 Search:  Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:_ ] 
A8: HTTP Get [ Server:Port:api.wunderground.com Path:/api/XXXXXXXXXXXXXXXX/conditions/forecast/q/%Match32/%Match31.json Attributes: Cookies: User Agent: Timeout:120 Mime Type: Output File: Trust Any Certificate:Off ] 
A9: JavaScriptlet [ Code:arr = JSON.parse(global("HTTPD"));

                      var current_day = arr.forecast.txt_forecast.forecastday[0].fcttext;
                      var current_evening = arr.forecast.txt_forecast.forecastday[1].fcttext; Libraries: Auto Exit:On Timeout (Seconds):45 ] 
A10: Variable Search Replace [ Variable:%current_day Search:F[.] Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: degrees. ] 
A11: Variable Search Replace [ Variable:%current_evening Search:F[.] Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: degrees. ] 
A12: Variable Search Replace [ Variable:%current_day Search:Low Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:Lowe ] 
A13: Variable Search Replace [ Variable:%current_evening Search:Low Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:Lowe ] 
A14: Variable Search Replace [ Variable:%current_day Search:\sN\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North  ] 
A15: Variable Search Replace [ Variable:%current_evening Search:\sN\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North  ] 
A16: Variable Search Replace [ Variable:%current_day Search:\sNNE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North North-East  ] 
A17: Variable Search Replace [ Variable:%current_evening Search:\sNNE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North North-East  ] 
A18: Variable Search Replace [ Variable:%current_day Search:\sNE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North-East  ] 
A19: Variable Search Replace [ Variable:%current_evening Search:\sNE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North-East  ] 
A20: Variable Search Replace [ Variable:%current_day Search:\sENE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing East North-East  ] 
A21: Variable Search Replace [ Variable:%current_evening Search:\sENE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing East North-East  ] 
A22: Variable Search Replace [ Variable:%current_day Search:\sE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing East  ] 
A23: Variable Search Replace [ Variable:%current_evening Search:\sE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing East  ] 
A24: Variable Search Replace [ Variable:%current_day Search:\sESE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing East South-East  ] 
A25: Variable Search Replace [ Variable:%current_evening Search:\sESE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing East South-East  ] 
A26: Variable Search Replace [ Variable:%current_day Search:\sSE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South-East  ] 
A27: Variable Search Replace [ Variable:%current_evening Search:\sSE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South-East  ] 
A28: Variable Search Replace [ Variable:%current_day Search:\sSSE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South South-East  ] 
A29: Variable Search Replace [ Variable:%current_evening Search:\sSSE\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South South-East  ] 
A30: Variable Search Replace [ Variable:%current_day Search:\sS\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South  ] 
A31: Variable Search Replace [ Variable:%current_evening Search:\sS\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South  ] 
A32: Variable Search Replace [ Variable:%current_day Search:\sSSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South South-West  ] 
A33: Variable Search Replace [ Variable:%current_evening Search:\sSSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South South-West  ] 
A34: Variable Search Replace [ Variable:%current_day Search:\sSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South-West  ] 
A35: Variable Search Replace [ Variable:%current_evening Search:\sSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing South-West  ] 
A36: Variable Search Replace [ Variable:%current_day Search:\sWSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing West South-West  ] 
A37: Variable Search Replace [ Variable:%current_evening Search:\sWSW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing West South-West  ] 
A38: Variable Search Replace [ Variable:%current_day Search:\sW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing West  ] 
A39: Variable Search Replace [ Variable:%current_evening Search:\sW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing West  ] 
A40: Variable Search Replace [ Variable:%current_day Search:\sWNW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing West North-West  ] 
A41: Variable Search Replace [ Variable:%current_evening Search:\sWNW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing West North-West  ] 
A42: Variable Search Replace [ Variable:%current_day Search:\sNW\s Ignore Case:On Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North-West  ] 
A43: Variable Search Replace [ Variable:%current_evening Search:\sNW\s Ignore Case:On Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North-West  ] 
A44: Variable Search Replace [ Variable:%current_day Search:\sNNW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North North-West  ] 
A45: Variable Search Replace [ Variable:%current_evening Search:\sNNW\s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: blowing North North-West  ] 
A46: Variable Search Replace [ Variable:%current_day Search:40s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:forties ] 
A47: Variable Search Replace [ Variable:%current_evening Search:40s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:forties ] 
A48: Variable Search Replace [ Variable:%current_day Search:50s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:fifties ] 
A49: Variable Search Replace [ Variable:%current_evening Search:50s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:fifties ] 
A50: Variable Search Replace [ Variable:%current_day Search:60s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:sixties ] 
A51: Variable Search Replace [ Variable:%current_evening Search:60s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:sixties ] 
A52: Variable Search Replace [ Variable:%current_day Search:70s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:seventies ] 
A53: Variable Search Replace [ Variable:%current_evening Search:70s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:seventies ] 
A54: Variable Search Replace [ Variable:%current_day Search:80s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:eighties ] 
A55: Variable Search Replace [ Variable:%current_evening Search:80s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:eighties ] 
A56: Variable Search Replace [ Variable:%current_day Search:90s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:nineties ] 
A57: Variable Search Replace [ Variable:%current_evening Search:90s Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:nineties ] 
A58: Variable Search Replace [ Variable:%current_day Search:Wind Ignore Case:On Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:winnd ] 
A59: Variable Search Replace [ Variable:%current_evening Search:Wind Ignore Case:On Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:winnd ] 
A60: Variable Set [ Name:%Current_day To:%current_day Recurse Variables:Off Do Maths:Off Append:Off ] 
A61: Variable Set [ Name:%Current_evening To:%current_evening Recurse Variables:Off Do Maths:Off Append:Off ] 
A62: Perform Task [ Name:Get Time Peroid Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable:%timeperoid Stop:Off ] 
A63: Perform Task [ Name:WU Current Cond Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:Off ] 
A64: Perform Task [ Name:WU OUTPUT GLOBAL Priority:4 Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:Off ] 
A65: Wait [ MS:0 Seconds:1 Minutes:0 Hours:0 Days:0 ] 
A66: Variable Search Replace [ Variable:%current_day Search:Lowe Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:Low ] 
A67: Variable Search Replace [ Variable:%current_evening Search:Lowe Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:Low ] 
A68: Variable Search Replace [ Variable:%current_day Search:Winnd Ignore Case:On Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:Wind ] 
A69: Variable Search Replace [ Variable:%current_evening Search:Winnd Ignore Case:On Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:Wind ] 
A70: Variable Search Replace [ Variable:%current_day Search:. b Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:. B ] 
A71: Variable Search Replace [ Variable:%current_evening Search:. b Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:. B ] 
A72: Variable Search Replace [ Variable:%current_day Search:ing t. B Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:ing to b ] 
A73: Variable Search Replace [ Variable:%current_evening Search:ing t. B Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:ing to b ] 
A74: Variable Search Replace [ Variable:%current_day Search:Wind. Blowing Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:Winds blowing ] 
A75: Variable Search Replace [ Variable:%current_evening Search:Wind. Blowing Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:Winds blowing ] 
A76: Variable Search Replace [ Variable:%current_day Search: wil. B Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: will b ] 
A77: Variable Search Replace [ Variable:%current_evening Search: wil. B Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: will b ] 
A78: Variable Search Replace [ Variable:%current_day Search: followe. B Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: followed b ] 
A79: Variable Search Replace [ Variable:%current_evening Search: followe. B Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: followed b ] 
A80: Variable Search Replace [ Variable:%current_day Search:forties Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:40s ] 
A81: Variable Search Replace [ Variable:%current_evening Search:forties Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:40s ] 
A82: Variable Search Replace [ Variable:%current_day Search:fifties Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:50s ] 
A83: Variable Search Replace [ Variable:%current_evening Search:fifties Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:50s ] 
A84: Variable Search Replace [ Variable:%current_day Search:sixties Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:60s ] 
A85: Variable Search Replace [ Variable:%current_evening Search:sixties Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:60s ] 
A86: Variable Search Replace [ Variable:%current_day Search:seventies Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:70s ] 
A87: Variable Search Replace [ Variable:%current_evening Search:seventies Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:70s ] 
A88: Variable Search Replace [ Variable:%current_day Search:eighties Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:80s ] 
A89: Variable Search Replace [ Variable:%current_evening Search:eighties Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:80s ] 
A90: Variable Search Replace [ Variable:%current_day Search:nineties Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:90s ] 
A91: Variable Search Replace [ Variable:%current_evening Search:nineties Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With:90s ] 
A92: Variable Set [ Name:%Current_day To:%current_day Recurse Variables:Off Do Maths:Off Append:Off ] 
A93: Variable Set [ Name:%Current_evening To:%current_evening Recurse Variables:Off Do Maths:Off Append:Off ] 
A94: Variable Set [ Name:%image To:Download/iPhone Wallpapers/LGN icons/wundergroundSM.png Recurse Variables:Off Do Maths:Off Append:Off ] 
A95: Show Scene [ Name:WU OUTPUT GLOBAL Display As:Overlay, Blocking, Full Window Horizontal Position:100 Vertical Position:100 Animation:System Show Exit Button:On Show Over Keyguard:On Continue Task Immediately:On ] 
A96: Wait Until [ MS:0 Seconds:1 Minutes:0 Hours:0 Days:0 ] If [ %TRUN !~ *,WU OUTPUT GLOBAL,* ]
A97: Wait [ MS:0 Seconds:5 Minutes:0 Hours:0 Days:0 ] 
A98: Destroy Scene [ Name:WU OUTPUT GLOBAL ]

Inline image 1

My friends, that NV, Las_Vegas comes from %Match31 and %Match32 variables!!! This script should be able to go worldwide :D

Logan Fury

unread,
Apr 20, 2017, 3:23:35 PM4/20/17
to tas...@googlegroups.com
Here we go, aesthetically corrected to not display underscore in City name, and im working on a subroutine to deal with the 50 abbreviations of states to full name (10 of 50 complete atm >.<).

Another subroutine Task, "Phonetic Time" was called so that the SAY can read out "O clock" on the hour, and allowing me to replace the . in %TIME - usually a value that cannot be altered as a built in variable - with a proper : for display.

Its time to move on to other screens with diff information and ways to navigate between them. Here is the scene after Phonetic Time Task was used to adjust time display. This SHOULD be the final incarnation of this screen:

Inline image 2

Marta Hintz

unread,
Apr 20, 2017, 3:43:03 PM4/20/17
to Tasker
Awesome work, how about a XML file for those of us who have been watching this grow into a success story! 😃

Logan Fury

unread,
Apr 20, 2017, 3:57:58 PM4/20/17
to tas...@googlegroups.com
Hello Marta,

Ive never exported a 100+ action Task with over half a dozen Perform Tasks. Im not sure if a simple export will be successful but im happy to try. I cant export as an application as it uses my personal API key, and I have only so many calls a day on my account.

So to make this work, if the xml is functional, and you want the complete project including the Profile, you will need:

your own API key (free to register for)
TaskerNow plugin
AutoWeb plugin

Are you in the US? If so, ill be done later today with my abbrev to name Task for the full 50 to include in an xml


On Thu, Apr 20, 2017 at 12:43 PM, Marta Hintz <lar...@gmail.com> wrote:
Awesome work, how about a XML file for those of us who have been watching this grow into a success story! 😃

Marta Hintz

unread,
Apr 20, 2017, 4:03:50 PM4/20/17
to Tasker
That's great. Yes I am in the US. No worries, just love/admire the hard work you put into this.

Logan Fury

unread,
Apr 20, 2017, 4:15:05 PM4/20/17
to tas...@googlegroups.com
Thank you for the kind words, ill absolutely get everything prepared and dupe a version for public export with a holding spot for API key, and a personal greeting.

On Thu, Apr 20, 2017 at 1:03 PM, Marta Hintz <lar...@gmail.com> wrote:
That's great. Yes I am in the US. No worries, just love/admire the hard work you put into this.

Logan Fury

unread,
Apr 20, 2017, 4:25:21 PM4/20/17
to tas...@googlegroups.com
Actually, I can offer you some options. Ive keep/renamed all the scenes pictured here, so if you have a preference of where the logo is and how the header is formatted I can put together what appeals to you most. Also I can do the name edit before sending it out, but the API edit for security reasons you want to edit in yourself and not share with anyone.

Also, this isnt quite a complete project! I am waiting for gusty wind conditions to see if any editing of gust data display is necessary, and soon the temps here in vegas will increment up from the 80s thru the 110s or 120s. I believe Ive got everything up to 90 degrees accounted for and I am also waiting for the temps to rise here and see the output and determine again if any search/replaces are necessary.

I can always post what I have now, and repost again in midsummer when all weather conditions have been accounted for. Also here in Vegas we have no tornadoes, hurricanes, monsoons, or earthquakes so im unsure how much of that info will be broadcast by this Task if you live in an area prone to any of those conditions.

I am very excited however to get this into the hands of someone out of state and confirm that the %LOCN section is correct beyond my hometown!

Logan Fury

unread,
Apr 20, 2017, 6:35:26 PM4/20/17
to tas...@googlegroups.com
Im looking at the usage rights for WU icons and they want their icon to be large and take up maximum space. So to comply with this im moving the header date to bottom right, and moving WUicon to bottom left.

Here is what the final page will look like:

Inline image 1

Marta Hintz

unread,
Apr 20, 2017, 7:21:58 PM4/20/17
to Tasker
That looks great. I am from San Diego, but just moved to Minnesota to help with Mom care. So I can definitely help test this for you 😉

Logan Fury

unread,
Apr 20, 2017, 8:01:58 PM4/20/17
to tas...@googlegroups.com
Fantastic. This project is 1 Profile, 1 Scene and 7 tasks. ive completed the 50 states task, written up some instructions, and zipped them up. If you need any assistance with the instructions please dont hesistate to email.

Ill be looking foreward to your results, if you wouldnt mind posting a screenshot once you get it set up and running!

On Thu, Apr 20, 2017 at 4:21 PM, Marta Hintz <lar...@gmail.com> wrote:
That looks great. I am from San Diego, but just moved to Minnesota to help with Mom care. So I can definitely help test this for you 😉
WU.zip

Logan Fury

unread,
Apr 21, 2017, 7:54:15 AM4/21/17
to tas...@googlegroups.com
Ive made some further tweaks that arent reflected in the last posts zip:

I didnt like that .0 MPH for windspeed so I search/replaced to remove the .0
Also Ive ended that statement now with a period instead of a comma, and capitolized No gusts. I suspect gust info comes as a capitolized sentence when its present to replace "No gusts"

If anyone wants this update or instructions where to perform the edit just ask.

Marta Hintz

unread,
Apr 21, 2017, 8:33:47 AM4/21/17
to Tasker
Hmmmm, seems like I can't unzip this file after I d/l it? Can someone else check it? I have d/l it several times now. Eager to check it out!

Logan Fury

unread,
Apr 21, 2017, 8:37:09 AM4/21/17
to tas...@googlegroups.com
Hi Marta,

I used 7zip to package it give that a shot to unzip, its a fantastic archive program. If that doesnt work, post back and Ill upload the 9 files individually :)

On Fri, Apr 21, 2017 at 5:33 AM, Marta Hintz <lar...@gmail.com> wrote:
Hmmmm, seems like I can't unzip this file after I d/l it?  Can someone else check it? I have d/l it several times now.   Eager to check it out!

Logan Fury

unread,
Apr 21, 2017, 8:38:02 AM4/21/17
to tas...@googlegroups.com
perfectly safe freeware, here is the link:

Logan Fury

unread,
Apr 21, 2017, 8:59:55 AM4/21/17
to tas...@googlegroups.com
Did 7zip work for you or do you need me to post the unzipped files?

Logan Fury

unread,
Apr 21, 2017, 9:59:15 AM4/21/17
to tas...@googlegroups.com
More successful edits :D

I didnt like the "temp is 85° and feels like 85°."

So ive created the variables %Feelpre and %Degsym, done a check for if %Curtmp21 = %Feel21

now variables replace the "like" and "°." of "feels like n°." so that I can control a more logical display and say output:

Inline image 1

im watching the XML on browser for the current and feels like values to be different so I can fire the task and test the other half of the IF/ELSE statement.

Logan Fury

unread,
Apr 21, 2017, 2:11:22 PM4/21/17
to tas...@googlegroups.com
It turns out my task was calling on time variables that I thought were built-ins, but were in actuality pieces of my older talking clock Task. This started causing some display errors at the top of the hour, so ive taken the relevant parts of the talking clock task, made thier variables unique, added whats necessary for speaking and displaying top of the hour as "O clock" and ":00" in existing tasks and scene, made a WU project specific Task from it, and added another Perform Task to set the new variables. so this is now an 8 task, 1 profile, 1 scene project.

Additional files and edits avail upon request.

Logan Fury

unread,
Apr 21, 2017, 3:09:14 PM4/21/17
to tas...@googlegroups.com
Just took advantage of the 12:00 noon time to run the script and test the output.

The SAY performed the "O clock" and time displayed in scene properly as 12:00PM.

Now I wait for the all important 12:00 midnight time to run again and confirm that AM is displayed and spoken and a 12;00 not 24:00 or 00:00 is shown in scene.

I may do further edits and have the SAY read out "12 noon" and "12 midnight" instead of "12 O clock"

Here is the noon time success screenshot:

Inline image 1

Marta I havent heard from you in some time, im hoping that releasing the script from the .zip didnt result in it eating Minnesota. Youll need an extra file and some additional edits I failed to note in the instr.txt to get up and running as seen in the screenshots here

Marta Hintz

unread,
Apr 21, 2017, 7:51:05 PM4/21/17
to Tasker
Okay, on my laptop now, and able to d/l the files. I am in Florida right now checking out all the cool sites. Now I can get these files transferred to the phone & get this up and running. - Thanks tons - will let you know how it goes.....

Marta

Marta Hintz

unread,
Apr 21, 2017, 11:23:55 PM4/21/17
to Tasker
Success,
https://imgur.com/gallery/0iHL6

This looks good!

Marta

Logan Fury

unread,
Apr 22, 2017, 12:20:31 AM4/22/17
to tas...@googlegroups.com
Hello Marta, 

It looks like you have a great start! I have another file for you that should repair that %AMPM that you see, and you need to grab a WU icon from their website and edit one file path in your existing files to make the Icon appear on the bottom and give balance to the date and a bit of color.

Ill continue to use 7zip and ill reupload a newer "version" of this so you can have the proper top of the hour displays, the gusts edit, and the extra "O clock" in SAY.

Im very happy to see that its pulling FL data, I feel very fortunate that you expressed interest in this while travelling!

Thank you so much for wanting to try the project, its a tremendous compliment.


Marta

Logan Fury

unread,
Apr 22, 2017, 12:34:10 AM4/22/17
to tas...@googlegroups.com
Say Marta,

I notice you have no preceding zero in your date display. Is this a function on your particular phone, or did you add a DO MATHS line - which I'm about to do after seeing your screenshot :D

Logan Fury

unread,
Apr 22, 2017, 8:19:42 AM4/22/17
to tas...@googlegroups.com
I love this forum. Marta thank you for the inspiration from your screenshot, ive taken control of my date display. Have a great time in Florida and a safe return. Id love to hear that the project is behaving in the next State :)

Inline image 1

Logan Fury

unread,
Apr 22, 2017, 11:32:19 AM4/22/17
to tas...@googlegroups.com
Im monitoring my outputs for different conditions, and have already caught a bad output and done some edits to eliminate them. Im waiting for midnight to test the time string and I may add a feature to read out "noon" and "midnight".

after midnight tonight or later tomorrow after watching for some different wind and temp variations to happen to confirm good output from the task, ill do another file upload so everyone has proper AMPM display and the newest display fixes.

Marta Hintz

unread,
Apr 22, 2017, 12:46:46 PM4/22/17
to Tasker
Sounds good, I will be in Florida for another week and will return to Minnesota, so will check to see what you got and"test" it for you 😎

Logan Fury

unread,
Apr 22, 2017, 12:56:29 PM4/22/17
to tas...@googlegroups.com
Thats wonderful Marta, thank you.

ATM I have removed the "no gusts" bit as it was causing display errors in the scene text. I have just put in a watch for 10:00am and 11:00am (its 9:50am locally now) and are using these as test times to see if I can get the voice feature to say noon and midnight.

Ive been able to view gust and no gust conditions, but although 2 days ago I had varying current and feels like temps all day long, these conditions have since been matched and all I can see is the "feels the same" text without a chance to see if a variation is still displaying well after my last edit to that section. Im refreshing the XML on my web browser every 20 mins or so as I dont want to change out all the works anywhere variables and just start testing other citys and states at random for variations in these two values >.<

When the local weather decides to cooperate and give me enough conditions to test against all possible text garbles and give me some 100+ temperatures, ill be able to declare a final version. Were close!

On Sat, Apr 22, 2017 at 9:46 AM, Marta Hintz <lar...@gmail.com> wrote:
Sounds good, I will be in Florida for another week and will return to Minnesota, so will check to see what you got and"test" it for you 😎

Logan Fury

unread,
Apr 22, 2017, 5:12:22 PM4/22/17
to tas...@googlegroups.com
conditions finally gave a different "feels like" and I was able to confirm that string displays and speaks properly.

using top of the last 4 hours as dummy test times ive determined that "noon" and "midnight" are spoken while standard time is displayed. I believe all thats left to double check on time is that :00 displays properly at the top of the hours other than noon and midnight. in 50 mins ill be running the task and troubleshooting that.

I also caught that I hadnt swapped the word "degrees" to the symbol in today's and later's forecasts, thats fixed.

I believe this page can be called done. Ill get my personal data edited out of everything and rezip and upload here in a few hours. Heres (hopefully) the final look:

Inline image 1


Logan Fury

unread,
Apr 22, 2017, 11:30:51 PM4/22/17
to tas...@googlegroups.com
Marta, I need your opinion please. I hit GIMP and made some background and header images for the scene display. Do you think this is too much, or is this an aesthetic improvement? Which version would you prefer (I created this as a cloned scene so the last version is still easily avail)

Inline image 1

Logan Fury

unread,
Apr 23, 2017, 12:46:52 PM4/23/17
to tas...@googlegroups.com
Ive created a background image with the header and logo embedded, logo and date re-centered, and I caught the "It's is" time typo and corrected that. The new install zip will include only one image file to achieve this complete look.

Inline image 1
Message has been deleted

Logan Fury

unread,
Apr 23, 2017, 9:08:57 PM4/23/17
to tas...@googlegroups.com
Excellent. Ill work on getting a release-style zip ready this eve.

Ive also set up a get-out-of-the-Task solution: Long Press on the scene is a Destroy Scene action, and ive made an acompanying task with Shut Up and Stop Task. So, if you start the Task, something comes up, and you want to silence/stop it, just hold finger on scene for a moment, and have a shortcut to the stop task ready on your phonescreen to tap when fullscreen scene dissapears.

On Sun, Apr 23, 2017 at 6:02 PM, Marta Hintz <lar...@gmail.com> wrote:
I do like those clean lines. 😃 Looks very good to me.

Logan Fury

unread,
Apr 23, 2017, 9:50:00 PM4/23/17
to tas...@googlegroups.com
Here are all the files and instructions, again, zipped up with 7zip.

Enjoy and please share screenshots of Task on your devices1
WU USA.zip

Logan Fury

unread,
Apr 23, 2017, 11:15:55 PM4/23/17
to tas...@googlegroups.com
Here are all the files and instructions, again, zipped up with 7zip.

Enjoy and please share screenshots of Task on your devices!


WU USA.zip

Logan Fury

unread,
Apr 23, 2017, 11:38:52 PM4/23/17
to tas...@googlegroups.com
It doesn't show in the last example pic, but I felt that "Today's forecast:" and "Later" made less sense than "Today's forecast:" and "Tonight:" so thats been edited to, and the font has been reduced by a pixel to give a bit more of a professional look. The Text field is now a separate element floating above the background. Its width is calculated to reach to but not obscure the vertical white border on my phone's 1440x2560 display.and its height is reduced top and bottom to not obscure the headers. 

This is creating the possibility of moving this field offcenter horizontally, towards the top to reduce the blank space between top header and beginning of text, and create a larger blank space below the end of text that can contain more fields of information.

I absolutely don't want to get cluttered and ugly, but i'm thinking a row of small icons for things like the day's pressure, dewpoint, humidity, and visibility may be a nice final enhancement to this page. That or a clean button to lead to other informational pages. Im already looking to the next steps:

Inline image 1

Logan Fury

unread,
Apr 24, 2017, 5:17:47 AM4/24/17
to tas...@googlegroups.com
I found a few more mistakes on my part, and have created another variable to resolve it. Im waiting for 50 mins for a 3am autofire of the task to test the new variables, and then of course, ill have to upload a new zip. Ill prob want to wait til tomorrow to do so as im getting too tired to trust myself to setting up the zip properly.

I have been looking over the WU API Astronomy page and im really disappointed with how little info is there. I had to search a math equation for adding/subtracting time and convert it to tasker to get length of daylight on my own.
Heres my first demo image of what the astronomy page might be built into. I wonder, just as we used google site and HTTP GET to add location information to the project, is there some other weather service that info can be called from to augment this lite astro info? Id at least like moon phase (or is that implicit in age of moon?)

Inline image 1

Now I did find this WU page:


and it has all kinds of data, moon phase, astro/naval, and civil twilight, etc etc. is there anyway to get the info from THIS page?

Logan Fury

unread,
Apr 26, 2017, 4:57:43 PM4/26/17
to tas...@googlegroups.com
Good Afternoon all,

Observation of the task in action revealed a really funny issue. A common weather condition my HTTP GET fetches for display is "Sun and clouds mixed". My phone is speaking this as "Sunday and clouds mixed."

In an attempt to control this, I did a Variable Search/Replace in the correct variable for "Sun and clouds mixed' to be replaced with "A mix of clouds and Sun." and got the same return. I had to edit again and un-capitalize "Sun." to "sun." and this resolved it.

I can upload install files with this edit if anyone is ready. Marta have you had a chance to install and test anything more recent since your last screenshot?

Neil Strawbridge

unread,
Apr 27, 2017, 11:53:52 PM4/27/17
to Tasker
Sometimes, the voice interface you use can affect the spoken output. For example, Ivona Voice will sometimes interpret certain words as abbreviations where the standard Google text to speech will not. I had to ditch Ivona voice a few years ago for that very reason. Quite annoying.

Logan Fury

unread,
Apr 28, 2017, 12:02:08 AM4/28/17
to tas...@googlegroups.com
Good Evening Neil,

Welcome to the thread. Ivona Voice is retail correct? I had tried to experiment with several of the SVOX voices on PlayStore but not a single one could be authorized for trial after download.

While the graphics are 95%+ done (I may add a button for additional screen access) Im pretty sure I need to continue to monitor this project not only for the reaction to 100+ temperatures, but also to catch odd errors like the built-in tendency to pronounce Sun as sunday whenever capitolized.

May I ask if you have installed and experimented with any of the zip files Ive uploaded at this point?

On Thu, Apr 27, 2017 at 8:53 PM, Neil Strawbridge <strawbri...@gmail.com> wrote:
Sometimes, the voice interface you use can affect the spoken output.  For example, Ivona Voice will sometimes interpret certain words as abbreviations where the standard Google text to speech will not.  I had to ditch Ivona voice a few years ago for that very reason.  Quite annoying.

Neil Strawbridge

unread,
Apr 28, 2017, 12:24:28 AM4/28/17
to tas...@googlegroups.com
Hi, Logan

Yes, Ivona Voice is retail.  It's one of those apps I bought (a few years ago now), but have since abandoned.  I've tried SVOX and ran into similar difficulties.  Decided life was easier sticking with the Google text to voice feature.

I've not downloaded and installed any of your zip files (yet?).  I've been working on my own weather app, built in Tasker and based on the NOAA API.  It's taken me a couple of months to get everything working the way I want.  I built Current Conditions, 5 Day Forecast, Temperature and Precipitation Trends scenes, menu choices for initiating an update, disabling updates and accessing Doppler radar.

I fiddled with screen layouts (portrait and landscape) almost incessantly, but I think I've finally settled on something that works.  I'm still squashing the occasional bug here and there.

I'm not competing with you, and this isn't something I plan to offer for sale, but has been a personal exercise in complex programming in Tasker.  I wanted to see how far I could push it.  I'd STILL like to be able to include allergy info, but I haven't found anything worthwhile yet.

I really wanted to be able to integrate a Doppler radar overlay in Google Maps, but presently, that's beyond my capabilities.  MyRadar in the Play Store does a fine job of that, however.

As for your stuff, I'll have to visit my desktop computer and do some looking around... unless you have the links handy.
It is loading more messages.
0 new messages