@Haddood -- the following works for me in the way you describe.
I was able to ask for just the forecast of a city, or else specify a day of the week for a forecast in a particular city. In the first case, it will use today's forecast.
Or if you just ask for the generic "weather forecast" it gives today's local forecast.
I would recommend that you test it in its current form. If it works as is, then you can change it back to using your own phrasing and event trigger system.
... Be careful with your phrasing though.
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.1.4.2-->
<command id="384" name="Weather forecast" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<if ifBlockDisabled="True" ifNot="False">
<ifType>ProcessRunning</ifType>
<ifParams>Kodi&&</ifParams>
<then>
<action>
<cmdType>XJson.Connect</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>VC.TriggerEvent</cmdType>
<params>
<param>Kodi.Cmd.Weather</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else />
</if>
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)==(B)</ifType>
<ifParams>{#P}&&0</ifParams>
<then>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>day</param>
<param>D0</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>WUnder.GetCustom</cmdType>
<params>
<param>Weather in Montreal for {{var.day}.weekday}: {{var.day}.conditions}, with high of {{var.day}.high} degrees Celsius and a low of {{var.day}.low} degrees. There's a {{var.day}.pop}% chance of precipitation, with winds averaging {{var.day}.avewind} km/h.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>VC.StopMacro</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else />
</if>
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)Contains(B)</ifType>
<ifParams>0,1,2,3,4,5,6,7,'today','tomorrow',&&{1}</ifParams>
<then>
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>weather({1})</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>WUnder.Change</cmdType>
<params>
<param>{2}</param>
<param>en</param>
<param>c.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>WethLoc</param>
<param>in {PF.2}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>WUnder.Change</cmdType>
<params>
<param>{1}</param>
<param>en</param>
<param>c.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>WethLoc</param>
<param>in {PF.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>day</param>
<param>D0</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<action>
<cmdType>WUnder.GetCustom</cmdType>
<params>
<param>Weather {var.WethLoc} for {{var.day}.weekday}: {{var.day}.conditions}, with high of {{var.day}.high} degrees Celsius and a low of {{var.day}.low} degrees. There's a {{var.day}.pop}% chance of precipitation, with winds averaging {{var.day}.avewind} km/h.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>WUnder.Change</cmdType>
<params>
<param>Montreal, Quebec</param>
<param>en</param>
<param>c.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>WethLoc</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<phrase>weather forecast</phrase>
<payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="True">payloads\weather_day.xml</payloadFromXML>
<phrase optional="true">in</phrase>
<payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="True">payloads\Weather Locations.xml</payloadFromXML>
</command>